The Agent Pages
For developers

Live local business data for your AI agents.

The Agent Pages is a structured directory of local service businesses exposed as a public MCP endpoint, REST API, and per-business llms.txt. No auth, no scraping, no stale data.

MCP Endpoint

http://theagentpages.com/mcp

JSON-RPC 2.0 — 4 tools

REST API

http://theagentpages.com/api/v1

JSON, public reads

Rate limit

60 requests / minute

Per IP, no auth required

Quick start

Pick any of these. You'll be querying real businesses in under 5 minutes.

1. Test with curl

List the available tools:

curl -X POST http://theagentpages.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Search for plumbers in Miami:

curl -X POST http://theagentpages.com/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "search_businesses",
      "arguments": {"city":"Miami","category":"plumber"}
    },
    "id": 2
  }'

2. Connect from Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS, then restart Claude Desktop:

{
  "mcpServers": {
    "agent-pages": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://theagentpages.com/mcp"]
    }
  }
}

mcp-remote is a widely-used stdio→HTTP bridge maintained by the MCP community. Claude Desktop will auto-install it via npx on first run.

3. Any other agent

If your framework speaks JSON-RPC 2.0, point it at http://theagentpages.com/mcp and call tools/list to discover capabilities, then tools/call to invoke them. If it prefers REST, use the REST API directly.

Tools

The MCP endpoint exposes four tools. All arguments are optional unless noted.

search_businesses

Search for businesses by category, location, or service keyword. Returns a ranked summary list (pro → verified → free tier).

Argument Type Description
categorystringCategory slug (e.g. plumber, electrician).
citystringMatches businesses based in or serving this city.
statestringTwo-letter US state code.
zipstring5-digit ZIP.
servicestringKeyword match against service names.
emergencybooleanFilter for 24/7 / emergency availability.
limitint (1–50)Result count cap. Default 10.

get_business

Fetch the full profile for a single business — services, hours, service areas, reviews, credentials.

ArgumentTypeDescription
slugstringProvide either slug or id.
idintNumeric business ID.

get_services

List the active services offered by a specific business, with pricing.

ArgumentTypeDescription
business_idint *Required.

check_availability

Is a business open right now, or open on a specific day of the week? Also returns emergency availability.

ArgumentTypeDescription
business_idint *Required.
dayint (0–6)0=Sunday. Omit to check current time.

REST API

Prefer plain HTTP/JSON? Public read endpoints, no auth required. Base: http://theagentpages.com/api/v1

Method + Path Description
GET /categoriesList all business categories.
GET /search?city=&category=&service=&emergency=Filterable business search.
GET /businessesPaginated list of all published businesses.
GET /businesses/{slug}Full business profile.
GET /businesses/{id}/servicesActive services.
GET /businesses/{id}/hoursWeekly hours.
GET /businesses/{id}/areasService areas with ZIP codes.
GET /zip-lookup?city=&state= or ?zip=US ZIP code lookup (backed by GeoNames).

llms.txt

If you're building a crawler or a static-context agent, every business publishes a machine-readable profile at a predictable path:

http://theagentpages.com/llms.txt — platform index (categories, cities, query interface)
http://theagentpages.com/b/{slug}/llms.txt — per-business profile (identity, services, reviews, JSON block)

Each per-business file includes an embedded ## Structured Data JSON block — the same shape the REST API returns — so an agent reading the llms.txt can parse structured fields directly without another HTTP call.

Limits & support

Rate limits

60 requests / minute per IP on both /mcp and the REST API.

Need more? Email us.

Availability

Best-effort public endpoint. No SLA at this stage. If it's down, ping us — we'll know within minutes but appreciate the heads up.

Questions, feedback, or found a bug?

If you're building something interesting on top of this, we'd love to hear about it. Feedback from early integrators directly shapes what we build next.