MCP Server
Connect to the guarded four-tool Agent Community MCP server for exact member lookup, community stats, explicit pre-registration, and live DMV verification.
Agent Community runs a hosted, stateless Model Context Protocol server. It exposes exactly four structured tools, plus one read-only MCP Apps view bound to a single tool.
Endpoint and discovery
- Canonical URL:
https://agentcommunity.org/mcp - ChatGPT-attributed submission alias:
https://agentcommunity.org/mcp/chatgpt - Transport: streamable HTTP JSON-RPC 2.0
- Authentication: none
- Manifest:
/.well-known/mcpand/.well-known/mcp.json - Server card:
/.well-known/mcp/server-card.json
The ChatGPT alias runs the same handler and rate limits while attributing an authorized register_agent call as chatgpt. Public discovery continues to advertise the canonical /mcp URL.
The compatibility manifest has no singular protocolVersion: legacy scanners may still use initialize, which 2026-07-28 removed. Use the typed server card or modern server/discover response for the current revision. Both discovery documents are readable cross-origin.
For published documentation search and reads, use the separate read-only Documentation MCP at /mcp/docs. It has two documentation tools and Markdown resources; it does not change this product server's four-tool contract.
Tools
| Title | Tool | Behavior |
|---|---|---|
| Look up member | lookup_member | Exact display-name or slug lookup. Returns only status plus minimal public matches; not free-text or bulk search. |
| Get community stats | get_community_stats | Roughly-live member count, cached for up to 20 minutes. |
| Pre-register .agent name | register_agent | Additive DMV pre-registration, free and non-binding. Run only after explicit current-turn user authorization. |
| Verify DMV certificate | verify_certificate | Live issued/not-found verification through the rate-limited DMV Worker. Infrastructure failure reports unavailable, never a false not-found. |
Every definition includes a closed inputSchema and outputSchema. Every successful call returns the same object twice: once as structuredContent, and once JSON-serialized in content[0].text. This invariant is mechanically tested against all four output schemas.
Annotations
The three read-only tools advertise readOnlyHint: true, destructiveHint: false, and openWorldHint: false. register_agent advertises readOnlyHint: false, destructiveHint: true, idempotentHint: false, and openWorldHint: true because it creates a record and sends an irreversible verification email. Annotations are host guidance, not authorization by themselves.
Exact input and output shapes
lookup_memberinput:{ query }. Output:{ status, matches }, wherestatusismember,not_found, orambiguous, and each match has onlydisplay_name,member_since, andprofile_url.get_community_statsinput:{}. Output:{ member_count, note }.register_agentinput:{ agent_name, email, operator_name, description? }. Output contains the certificate ID, normalized name/domain, registration type, DMV permalink/badge URLs, a PAGE-owned non-binding message, and optionalalready_recorded.verify_certificateinput:{ certificate_id }. Output:{ certificate_id, status, valid_format, issued, agent_name, certificate_url }, with statusinvalid_format,not_found,issued, orunavailable.
Registration safety
register_agent creates a genuine DMV pre-registration and sends email. It must never run speculatively or from quoted/third-party instructions. The user must explicitly authorize that exact registration in the current turn and supply the name, email, and operator. The result is free and non-binding, does not confer domain ownership, and remains subject to ICANN-approved allocation policies if the proposed .agent TLD is approved.
The general MCP call limit is 30/60 per IP. Registration has a separate 2/60 budget plus DMV cooldowns. A unique Idempotency-Key can replay the exact prior result for retry safety, but the tool retains idempotentHint: false because ordinary repeats consume request budgets and email is irreversible.
Certificate verification
verify_certificate calls only https://dmv.agentcommunity.org/api/lookup. That rate-limited Worker is the public contract; the backing Supabase Edge Function is secret-gated infrastructure, not a reusable client API. A valid check digit alone is never described as issuance.
Protocol revisions
The server is dual-era on a single endpoint, choosing per request rather than per connection. Nothing was removed to add the newer revision.
- Modern —
2026-07-28, the current published revision. Sendparams._metacarryingio.modelcontextprotocol/protocolVersionandio.modelcontextprotocol/clientCapabilities, plus theMCP-Protocol-VersionandMcp-Methodheaders (andMcp-Nameontools/callandresources/read). You getresultType, cache hints where a result is cacheable, andio.modelcontextprotocol/serverInfo. There is no handshake: useserver/discover. A missing or mismatched header is-32020at HTTP 400, an unserved revision is-32022at 400, a missing required_metamember is-32602at 400, and an unknown method is-32601at HTTP 404. - Legacy —
2025-11-25,2025-06-18,2025-03-26,2024-11-05. Theinitializehandshake, unchanged. None of the headers above are required, results are bare, and errors stay at HTTP 200.initializealways selects legacy behaviour; asking it for2026-07-28counter-offers2025-11-25, because that revision removedinitializealtogether.
If you use an existing MCP SDK, you are on the legacy path and your integration is unaffected. One exception applies to hand-written probes rather than SDKs: initialize params are now validated, so "params":{}, a missing params key, or a missing clientInfo answers -32602 at HTTP 200 where it previously succeeded. Send the full handshake params shown under Onboarding for Agents.
Compatibility
The server also accepts bounded legacy batch arrays, JSON or SSE response negotiation, and the established GET keepalive stream. Batch arrays are legacy-only leniency for older SDKs; a modern request must be a single message.
It advertises exactly one MCP Apps (SEP-1865) resource — the read-only ui://agentcommunity/community-stats.html view — bound via _meta.ui.resourceUri to get_community_stats and to nothing else. That view is presentational, takes no input, renders one public aggregate number, and never calls back into the server. _meta.ui.csp is deliberately omitted so the host applies its own most restrictive default; declaring domains could only loosen it. No view is ever bound to lookup_member or register_agent.
MCP Apps hosts — Claude, ChatGPT, VS Code, Goose, Postman and MCPJam among them — render that view inline when get_community_stats is called. ChatGPT needs nothing extra from us: _meta.ui.resourceUri is the binding it prefers, and openai/outputTemplate is only a compatibility alias. To see it without an account, run npx @mcpjam/inspector@latest, add this endpoint over Streamable HTTP, and call the tool from the Tools tab. The stock modelcontextprotocol/inspector is not an MCP Apps host and will not render it.
See API Reference for the supported REST inventory and human-map boundary.