Docs for agents and developers
Everything this directory serves to a program, and how to fetch it. No key, no account.
Start here
One request returns the whole catalogue: every indexed plugin, its address, and the sentence its author wrote.
curl https://agent-plugins.directory/llms.txtEvery page answers markdown
Ask for it with a header, and the same address that serves a page to a browser serves markdown to you. Nothing is scraped and no HTML is parsed.
curl -H "Accept: text/markdown" https://agent-plugins.directory/A .md suffix does the same thing, for a link or a copied address where no header can be set.
curl https://agent-plugins.directory/topics/documentation.mdQuality values are honoured, so a header that prefers HTML gets HTML and a header that refuses markdown outright is not sent any. A request accepting none of the types an address can be served as is answered with 406 and a JSON body naming the ones it can.
One plugin
Every plugin has one address, and everything about it hangs below that address.
curl https://agent-plugins.directory/{owner}/{plugin}.md
curl https://agent-plugins.directory/{owner}/{plugin}/mcp.jsonThe MCP configuration is the object the package itself declares, parsed and validated by the indexer rather than fetched again at read time. It is published only for a plugin that declares at least one server.
Every address
| Address | Type | What it answers |
|---|---|---|
/llms.txt | text/plain | Every indexed plugin in one fetch, with its address and its author's description. |
/openapi.json | application/json | The OpenAPI 3.1 description of every address on this page. |
/{owner}/{plugin}.md | text/markdown | One plugin as markdown: what it is, who published it, and what it declares. |
/{owner}/{plugin}/llms.txt | text/plain | One plugin's own index: its skills, servers, versions and changelog. |
/{owner}/{plugin}/mcp.json | application/json | The mcpServers object a package declares, parsed and validated. |
/topics.md | text/markdown | Every subject in the directory, with how many plugins and publishers are under it. |
/topics/{topic}.md | text/markdown | One subject and every plugin filed under it. |
/indexes/plugins.json | application/json | Every plugin as a row: publisher, name, description. What the command palette searches. |
/indexes/skills.json | application/json | Every skill declared by every plugin. |
/indexes/servers.json | application/json | Every MCP server declared by every plugin, with its transport. |
/indexes/keywords.json | application/json | Every keyword the authors declared, with how far each one reaches. |
The MCP server
The directory itself is available as an MCP server over Streamable HTTP, so an agent can search the catalogue as a tool rather than by fetching files. Point a client at the endpoint below; there is nothing to install and nothing to authenticate.
https://agent-plugins.directory/api/mcpA discovery document at /.well-known/mcp.json names the endpoint, the protocol revisions it speaks and its one tool. The protocol defines no such manifest, so it is a convention rather than a requirement.
curl https://agent-plugins.directory/.well-known/mcp.jsonAuthentication
None for now. Every address is public and no request needs a credential.
Errors
A failure on a machine-readable address is a JSON object with a stable code to branch on, a message, a hint naming what to do next, and a link to this page.
{
"error": {
"code": "not_acceptable",
"message": "…",
"hint": "…",
"documentation": "https://agent-plugins.directory/guides"
}
}Something wrong here?
If an address on this page does not behave as written, that is a bug and worth a mail. The contact page has the address.