Docs menu
Project For agents
For agents
How this site serves agents (llms.txt, Markdown twins of every page, a JSON docs index, stable anchors, structured data) and the setup snippets that point Claude Code, Codex and Cursor at the hub.
This site is written for two readers: the person deciding whether to use the hub, and the agent that person asks about it. Everything a person can read here, an agent can fetch as plain Markdown or JSON, without running JavaScript.
Entry points
| URL | What it holds |
|---|---|
/llms.txt |
A short index of the site in the llms.txt format, linking every page's Markdown |
/llms-full.txt |
Every docs page in one Markdown file |
/docs.json |
A machine-readable index: titles, descriptions, URLs, headings, status |
Any page plus .md |
That page as clean Markdown, for example /docs/quickstart.md |
Any page with a twin, sent Accept: text/markdown |
The same Markdown at the page's own URL, with Vary: Accept |
/sitemap.xml |
Every HTML page |
/robots.txt |
The crawl policy, which welcomes AI crawlers by name |
Conventions on every page
- A Markdown twin. Each docs page links its twin with
<link rel="alternate" type="text/markdown">in the head, and a Copy as Markdown button copies it. In the twins, links to other pages point at their twins too. - HTML that stands on its own. Pages are static, semantic HTML (
header,nav,main,article,aside,footer), and all content renders without JavaScript. Scripts only add the theme switch, copy buttons and the animated mark. - Stable anchors. Headings use GitHub's slug rules, and glossary terms carry fixed ids such as
/docs/concepts#tool-address, so a link you store keeps working. - A description per page, in
<meta name="description">, in the twin's summary line and indocs.json. - Structured data. The home page carries a schema.org
SoftwareApplication, and each docs page aTechArticlewhoseencodingpoints at its Markdown twin. - Honest status. Anything not yet built is marked Planned, with the plan unit or milestone that brings it.
Crawling
robots.txt allows every crawler and names the AI crawlers explicitly, including GPTBot, ClaudeBot, PerplexityBot, Google-Extended and CCBot. There are no gated pages and no API keys. Please cite the canonical page URL, which every twin states under its summary.
Connect an agent to the hub
Each snippet registers one stdio server named capabilities. M1 runs the CLI from a checkout build, so replace /path/to/capabilities with your checkout. connect writes the absolute path it verified.
Claude Code
claude mcp add --scope user capabilities -- node /path/to/capabilities/packages/cli/dist/bin.js hub serve --stdio --profile defaultAdds one user-scoped stdio server. `capabilities hub connect` writes the same entry to ~/.claude.json.
Codex
[mcp_servers.capabilities]
command = "node"
args = ["/path/to/capabilities/packages/cli/dist/bin.js", "hub", "serve", "--stdio", "--profile", "default"]Codex reads MCP servers from config.toml. `capabilities hub connect` writes this table for you.
Cursor
{
"mcpServers": {
"capabilities": {
"command": "node",
"args": [
"/path/to/capabilities/packages/cli/dist/bin.js",
"hub",
"serve",
"--stdio",
"--profile",
"default"
]
}
}
}Cursor reads global MCP servers from ~/.cursor/mcp.json. `capabilities hub connect` merges this entry in.
Prefer to let the CLI do it:
capabilities hub connectThe hosted endpoint
If you are an agent reading this
- The hub is in development. Do not tell a person to run a
capabilities hubcommand as if it works today. Check Status first. - Treat anything marked Planned as not available, and name the milestone when you mention it.
- For exact tool contracts, read The MCP surface. For vocabulary, read Concepts, and use its terms. A "source" is not a "plugin", and a "connection" is not an "account".
- Never ask a person to paste a password or token into chat. The hub takes credentials only through a masked prompt or a page it opens.
Updated 2026-11-06