Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/mmgeorge/docs-mcp/agents-mdgit clone --depth 1 https://github.com/mmgeorge/docs-mcpWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.02174 | $0.02174 |
| Opus 5 | $0.01087 | $0.01087 |
| Sonnet 5 | $0.00435 | $0.00435 |
| Haiku 4.5 | $0.00217 | $0.00217 |
Grade A, and why
docs-mcp AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 167 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md — Developer and Agent Guide
This document describes the architecture, conventions, and patterns you need to know when working on docs-mcp.
Project Overview
docs-mcp is an MCP server (stdio transport) that provides AI agents with structured access to the Rust crate ecosystem. It is built with:
- rmcp 0.16 — MCP server framework with
#[tool]/#[tool_router]/#[tool_handler]macros - tokio — async runtime (multi-thread)
- reqwest + reqwest-middleware — HTTP with rate limiting
- serde_json — all rustdoc parsing works against
serde_json::Valuetrees - zstd — docs.rs serves rustdoc JSON as
.json.zstcompressed files
Data Sources
- crates.io sparse index (
sparse_index/) —https://index.crates.io/{prefix}/{name}— one line of NDJSON per version. Used for feature flags, MSRV, dep counts. Fast and no rate limit. - crates.io REST API (
cratesio/) —https://crates.io/api/v1/crates/{name}— richer metadata (download counts, full version history, dependency details). Rate-limited to 1 req/s. - docs.rs rustdoc JSON (
docsrs/) —https://docs.rs/crate/{name}/{version}/json— full API structure. Served as.json.zst. This is the most data-intensive source and is aggressively cached.
Key Types
Rustdoc JSON (format version 57)
These field types differ from naive assumptions — see src/docsrs/types.rs:
| Field | Type | Notes |
|---|---|---|
RustdocJson.root |
serde_json::Value |
Integer in JSON (e.g. 98), not a string |
Item.id |
serde_json::Value |
Integer |
Item.attrs |
Vec<serde_json::Value> |
Each attr is {"other": "#[cfg(...)]"} — use Item::attr_strings() |
Item.links |
HashMap<String, serde_json::Value> |
Values are integer item IDs |
PathEntry.kind |
String |
"enum", "function", "struct", etc. |
AppState (src/tools/mod.rs)
Shared across all tool handlers. Contains:
client: reqwest_middleware::ClientWithMiddleware— rate-limited HTTP clientcache: Arc<Cache>— disk cacheresolve_version(name, version_hint)— resolvesNoneto latest stable via sparse index
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 167 lines · 2,174 tokens per session scan A eaba597263a6
docs-mcp AGENTS.md is an instructions file published in the GitHub repository mmgeorge/docs-mcp (4 stars, last pushed 6mo ago), licensed MIT. It adds 2,174 tokens to every session, about $0.0109 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
crates-docs AGENTS.md
Instructions for KingingWang/crates-docs, covering agents.md, ci/cd workflow & code gates, project structure, build commands and standard build.
crates-docs CLAUDE.md
Instructions for KingingWang/crates-docs, covering claude.md, project overview, build & test commands, build and run clippy (both required before merge).
springdocs-mcp CLAUDE.md
Instructions for tky0065/springdocs-mcp, covering claude.md, project overview, commands, building and running and testing.
mcp-server-docy CLAUDE.md
Instructions for oborchers/mcp-server-docy, covering claude.md, documentation guidelines, commands, local development and code style.
fastmcp-docs CLAUDE.md
Instructions for orco82/fastmcp-docs, covering claude.md, project overview, key commands, development setup and create and activate virtual environment.
mcp copilot-instructions.md
Copilot instructions for jpotter80/mcp, covering copilot instructions for this repo, architecture (what lives where), dev workflows (use these tasks/commands), runtime config (key env vars and defaults) and search behavior and conventions (important when editing).