Gives your AI coding agent a single `docs` tool that runs async code in a sandbox, letting it fetch documentation from multiple stacks in one round trip instead of making separate tool calls. Ships with Next.js, React, Turborepo, and Supabase docs out of the box, but it's built to be forked. Each stack you add contributes `<stack>_index()` and `<stack>_docs({ path })` to the sandbox SDK, plus there's a BM25 ranked search across all stacks. Reach for this when you want agents to efficiently grab framework docs, internal library references, or any markdown source without the usual MCP request overhead. The real win is packaging exactly the docs your team needs rather than using the starter set.
A Code Mode MCP server that gives AI coding agents curated, per-stack documentation as typed tools.
Citadel is built to be forked and tailored. The hosted package ships with a small starter set of stacks, but the real value comes from packaging the docs your agents actually need. Each stack is a tiny module — adding one is mostly mechanical.
Install the MCP server for all your coding agents:
npx add-mcp citadel-mcp@latest
Add -y to skip the confirmation prompt and install to all detected agents already in use in the project directory. Add -g to install globally across all projects.
Add the following config to your MCP client:
{
"mcpServers": {
"citadel": {
"command": "npx",
"args": ["-y", "citadel-mcp@latest"]
}
}
}
[!NOTE] Using
citadel-mcp@latestensures that your MCP client will always use the latest version of the Citadel MCP server.
Using Amp CLI:
amp mcp add citadel -- npx citadel-mcp@latest
Or configure manually:
Follow Amp's MCP documentation and apply the standard configuration shown above.
Use the Claude Code CLI to add the Citadel MCP server:
claude mcp add -s user citadel -- npx -y citadel-mcp@latest
Use -s project instead of -s user to scope the install to the current project. Restart Claude Code, then verify with claude mcp list. A working server advertises a single tool named docs.
Using Codex CLI:
codex mcp add citadel -- npx citadel-mcp@latest
Or configure manually:
Follow the MCP setup guide with the standard configuration format:
npx-y, citadel-mcp@latestGo to Cursor Settings -> MCP -> New MCP Server. Use the JSON config provided above.
Using Gemini CLI:
Project-wide installation:
gemini mcp add citadel npx citadel-mcp@latest
Global installation:
gemini mcp add -s user citadel npx citadel-mcp@latest
Using VS Code CLI:
code --add-mcp '{"name":"citadel","command":"npx","args":["-y","citadel-mcp@latest"]}'
Or configure manually:
Follow the official VS Code MCP server setup guide and add the Citadel server through VS Code settings.
Navigate to Settings | AI | Manage MCP Servers and select + Add to register a new MCP server with the following configuration:
citadelnpx-y, citadel-mcp@latestThe hosted package includes a starter set of stacks so you can try it immediately:
This list is intentionally small. For the best results, fork this repo and add the stacks your agents care about — your internal libraries, the framework version you actually use, or any docs site that publishes machine-readable markdown. See docs/adding-a-docs-tool.md.
Citadel is a Code Mode server: instead of advertising one tool per docs source, it advertises a single docs tool. The agent writes one async () => { ... } per turn that calls codemode.<stack>_docs(...) and codemode.<stack>_index() directly, and the server runs that code in a local Node sandbox. N doc fetches collapse into one round-trip.
Each stack contributes two callable tools to the sandbox SDK:
<stack>_index() — returns the doc index so the agent can pick a valid path<stack>_docs({ path }) — fetches that specific doc as markdownCitadel also exposes a cross-stack ranked search: codemode.docs_search({ query, stacks?, fetch: true }) returns BM25-ranked matches with markdown content attached in a single call.
docs tool, served at runtime as MCP resource citadel://docs/agent-usage. SDK reference, parallel fan-out, error handling, worked examples.<stack>_index + <stack>_docs.To run the MCP server locally for development:
Clone the repository.
Install and build:
pnpm install
pnpm build
Configure your MCP client to use the local version:
{
"mcpServers": {
"citadel-dev": {
"command": "node",
"args": ["/absolute/path/to/citadel-mcp/dist/index.js"]
}
}
}
Or with the Claude Code CLI:
claude mcp add -s user citadel-dev -- node /absolute/path/to/citadel-mcp/dist/index.js
For development with auto-reload, point the MCP client at tsx and the src entry instead:
claude mcp add -s user citadel-dev -- npx tsx /absolute/path/to/citadel-mcp/src/index.ts
MIT