AdvocateMCP
A Model Context Protocol server that lets any MCP-enabled AI assistant search a directory of AI-ready local businesses and query each one’s canonical agent in real time. Neutral, platform-agnostic, zero setup per AI.
Endpoint
https://api.advocatemcp.com/mcp
Streamable HTTP (JSON-RPC 2.0 over HTTP POST, SSE for server-initiated messages)
What it does
Local businesses (plumbers, law firms, agencies, copywriters, etc.) subscribe to Advocate and fill in a structured profile: services, pricing, hours, credentials, customer quotes, lead-routing preferences. Advocate publishes each profile as a standards-compliant AI advocate agent.
When a user asks their AI assistant “find me a good plumber in Boise who does 24/7 emergency,” the assistant calls search_businesses, then query_business_agent on the top results. The agent answers in the business’s own voice, with verified metadata and a trackable referral link. The AI assistant sees citation-ready answers instead of scraping a dozen inconsistent review sites.
For richer interactions, the read-only planning tools (get_availability, get_quote) and the transactional tools (reserve_slot, request_callback, subscribe_to_updates, initiate_handoff) let the AI assistant act on behalf of the user: check an opening-hours window, get a price range, hold a slot, or hand the conversation off to a human.
Tools
| Tool | Description |
|---|---|
| search_businesses | Search for registered businesses by category, name, or location. Returns slugs + agent endpoints. |
| query_business_agent | Query a specific business’s AI advocate agent. Returns a citation-ready answer with referral link. |
| get_availability | 30-minute windows derived from the business’s configured operating hours — not a live booking calendar. A returned window means the business is normally open then, not that the slot is confirmed free. Real-calendar integration is on the roadmap. |
| get_quote | Service price quote from pricing_json_v2. Returns an exact, range, or estimate label. |
| reserve_slot | Create a 15-minute HELD reservation; returns a signed confirmation_token the agent posts back to /a2a/confirm. |
| initiate_handoff | Start a handoff to a human (SMS/email via tenant routing) or another agent (signed continuation URL). |
| get_credentials | The business’s self-reported licenses, insurance, bonding and certifications. Framed explicitly as self-reported so agents don’t restate tenant claims as verified fact. |
| get_cancellation_policy | The business’s cancellation / refund / no-show policy, verbatim, so an agent can quote it. Returns guidance when the business hasn’t set one. |
| request_callback | Push a user’s contact details to the business. Idempotent on (slug, idempotency_key) within 24h, so agent retries don’t spam the business. |
| subscribe_to_updates | Subscribe a user’s email to updates from a business. Double opt-in (CAN-SPAM / GDPR): returns a confirmation link, never auto-activates, token expires in 7 days. |
The full machine-readable capability manifest, including input schemas, rate-limit declarations, and the list of business slugs, is published at /.well-known/mcp.json.
Quick start
Claude Desktop
Add this block to your claude_desktop_config.json:
{
"mcpServers": {
"advocate": {
"url": "https://api.advocatemcp.com/mcp"
}
}
}
Cursor
Settings → MCP Servers → Add server, then paste the URL above.
Any MCP client
Point at https://api.advocatemcp.com/mcp. The server advertises its tools via the standard initialize → tools/list handshake; no registration is required for discovery or search.
Rate limits
- MCP tools (
/mcp): 60 requests per minute per IP, applied flat across all ten tools. There is no separate, tighter limit for the transactional tools. - A2A endpoints (
/a2a/*) are served by a different origin, which keys the limit one of two ways — not both: per-agent when anx-agent-identityheader is present (100/min unverified, 250/min known, 1000/min trusted), otherwise per-IP at 100/min. Neither applies to/mcp. - Rate limiting is enforced at the edge by a Cloudflare Durable Object; exceeding it returns
429with aRetry-Afterheader.
Attribution
Every referral URL returned by query_business_agent is a signed tracking token of the form https://api.advocatemcp.com/r/<token>. Clicks are recorded with the originating AI assistant (via x-agent-identity) and the tenant can see per-AI conversion data in their dashboard. No cross-site cookies; IP addresses are salted-hashed and discarded within 30 days.
For businesses
If you run a local business and want to be findable through this server, run a free citation audit to see where AI assistants currently land when asked about your category, or head to advocatemcp.com for the 15-minute onboarding.
com.advocatemcp/advocate) and on Smithery. Questions or integration help: support@advocatemcp.com.