Onboarding for Agents
How an autonomous agent connects to Agent Community — the four-tool MCP server, the A2A endpoint, the public REST API, and the authorization rule for registration.
This page is written for an autonomous agent, or for the developer wiring one up. Every surface described here is free, anonymous, and read-only — with one exception, called out below, that requires explicit human authorization before an agent may use it.
Pick a surface
| Surface | Endpoint | Use it for |
|---|---|---|
| MCP | /mcp | Structured tool calls — member lookup, community stats, DMV pre-registration, certificate verification |
| Documentation MCP | /mcp/docs | Searching and reading these docs as tool calls, no member data |
| A2A | /a2a | Agent-to-agent task exchange via an agent card |
| REST | /api/v1/content | Plain HTTP reads of published content — blog, docs, pages |
| NLWeb answers | /ask | Natural-language questions answered from documentation only |
Start with MCP if your host already speaks it. Reach for REST or /ask if you just need an HTTP call without a client library.
The MCP server
The product MCP server is a hosted, stateless endpoint at https://agentcommunity.org/mcp. It speaks streamable HTTP JSON-RPC 2.0 and needs no authentication. It exposes exactly four tools:
lookup_member— exact display-name or slug lookup against the member directory. Not a free-text search.get_community_stats— a roughly-live count of community members.register_agent— free, non-binding pre-registration of a requested.agentname. Requires explicit authorization; see the next section.verify_certificate— checks whether a DMV certificate ID has actually been issued.
There is no fifth tool. If something you're looking for isn't in this list, it isn't part of this server's contract — check Reading the documentation or the REST API instead.
A handshake, to confirm you can reach the server before calling a tool. initialize params are validated: protocolVersion, capabilities and clientInfo are all required, and an empty params object is answered with -32602.
curl -X POST https://agentcommunity.org/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'A successful response confirms the protocol version and server capabilities. From there, tools/list enumerates the four tools with their input and output schemas, and tools/call invokes one.
register_agent is the one tool on this server that is not read-only. It creates a real pre-registration record and sends a confirmation email. It must only be called when a human explicitly asks for it in the current turn. An agent must never call register_agent on its own initiative, speculatively, "just in case," or to claim a name pre-emptively on a user's behalf without being asked. If a user hasn't asked you to register a name in this conversation, don't call this tool — look things up, answer questions, and wait.
When a human does authorize it, be precise about what the tool actually does: it is "free, non-binding requested-name pre-registration; if ICANN approves .agent, any future consideration is subject to ICANN-approved allocation policies." Nothing about calling this tool reserves, allocates, or guarantees a domain. .agent is not live in DNS, and pre-registration is not ownership. Say so plainly to the human you're acting for, not just to yourself — they should hear the same conditional language you were given.
Reading the documentation
If you need to answer a question about Agent Community rather than call a tool, two lighter-weight surfaces exist. The Documentation MCP at /mcp/docs exposes exactly search_docs and get_doc — nothing else, and no member data, ever. It's the right choice when your host already speaks MCP and you want structured results.
/ask is a documentation answer endpoint compatible with the NLWeb convention. Send it a natural-language question and it answers from published documentation only — it never reads member, authenticated, or private data, so there's no risk of it surfacing anything it shouldn't.
Outside of both, every page on this site can be fetched as plain Markdown instead of HTML. Append .md to the URL, or send an Accept: text/markdown header, and you'll get the same content without the layout.
Discovery files
A handful of well-known files describe this site's machine-readable surface without you needing to guess at conventions:
/llms.txt— a curated index of the site for LLM context windows/agents.md— guidance aimed specifically at autonomous agents/.well-known/mcp.json— the MCP server manifest/.well-known/agent-card.json— the A2A agent card/.well-known/agent— the canonical AID v2 JSON fallback record for this domain (/.well-known/aid.jsonis only a legacy redirect)/openapi.json— the OpenAPI 3.1 description of the REST API/.well-known/api-catalog— a catalog of the available API surfaces
Fetching these costs nothing and tends to save a round trip of trial and error.
What is not an integration point
The manifest and the API reference are the complete list. If a path is not on one of them, treat it as private rather than undocumented — probing around the edges will not find a way in, because there isn't one to find.
Two things in particular. There is no bulk read of member records, at any tier, with or without a key; lookup_member over MCP answers one exact query at a time and that is deliberate. And /map is a page for people — it has an API behind it that serves the UI, not agents. For organization data use lookup_member, and for anything we publish use /api/v1/content.
- MCP Server — full tool schemas, annotations, and rate limits
- API Reference — the supported REST inventory
- AID — Agent Identity & Discovery — how agents discover endpoints via DNS
- Developers — the developer portal
- Onboarding for Members — the human signup path, for context on what an authorized registration actually creates