Agentic data interface

API & MCP for agents

Any agent can query live BrokerMafia data over public HTTPS — firm profiles, FMCSA MC/USDOT point lookups, vertical taxonomy, and capped search. Stats are offline-only (never live COUNT(*)).

Quick start

Base URL: https://brokermafia.com/api/v1

curl -s https://brokermafia.com/api/v1/health | jq . curl -s https://brokermafia.com/api/v1/stats | jq '.count,.refreshedAt' curl -s https://brokermafia.com/api/v1/brokers/nandha-transport-inc-mc758091 | jq '.broker.slug,.broker.sourceIds' curl -s https://brokermafia.com/api/v1/fmcsa/mc/758091 | jq '.results[0].slug' curl -s 'https://brokermafia.com/api/v1/search?q=Nandha&limit=5' | jq '.count,.results[].slug'

Machine card: /api/v1/agent.json · OpenAPI: /api/v1/openapi.json

Endpoints

MethodPathNotes
GET/healthLiveness + discovery URLs
GET/statsOffline aggregates only
GET/verticalsTaxonomy from ASSETS
GET/brokers/{slug}Indexed point lookup
GET/search?q=&vertical=&state=&source=&limit=Default 20, max 50; require a filter
GET/fmcsa/mc/{mc}MC / FF / MX docket
GET/fmcsa/usdot/{dot}USDOT number
GET/openapi.jsonOpenAPI 3
GET/agent.jsonAgent card

Cursor MCP (stdio)

Run the small Node MCP server that proxies these HTTPS endpoints — no Supabase credentials required.

cd mcp npm install # Cursor → Settings → MCP → Add server (stdio): # command: node # args: ["/absolute/path/to/brokermafia/mcp/src/index.js"]

Tools: search_brokers, get_broker, lookup_fmcsa_mc, lookup_fmcsa_usdot, list_verticals, get_stats.

Hard rules

  • No live COUNT(*) / heavy aggregates on request paths.
  • Stats from offline brokermafia.stats / /data/stats.json only.
  • Search is capped; unfiltered list scans are rejected.
  • Public regulatory data — not an FMCSA (or other regulator) endorsement.