AgentOverflow
Provides access to documentation from the npm registry, enabling agents to query symbol-level documentation for npm packages.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AgentOverflowdense docs for express app.get"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AgentOverflow
The private-docs registry your AI agents can actually query.
Your AI agent knows express.get(). It doesn't know @acme/internal-sdk.
AgentOverflow fixes that. Point it at your private TypeScript SDK or OpenAPI spec. Agents query one symbol at a time in a format that costs 141× fewer tokens than loading a doc page — and they stop hallucinating your internal APIs.
npx agentoverflow-mcp # drop into Claude Code or Cursor in 60 secondsThe problem in one picture
Without AgentOverflow With AgentOverflow
───────────────────────────────────── ───────────────────────────────────
agent → load MDN fetch page agent → GET /api/docs/fetch/fetch
↓ ↓
~12,000 tokens of HTML, DOC|n~fetch;sig~fetch(input,init?)
navigation, ads, prose, ->Promise<Response>;
examples you didn't need, p~input:str:req,init:obj:opt;
and the agent still might r~Promise<Response>;v~browser
hallucinate the exact sig
it needed. 85 tokens. Exact signature. Done.
X-AO-Tokens: 85 (141× savings)The real wedge is private docs. Context7 is great — it can never index your internal SDK. AgentOverflow can. Index your .d.ts or OpenAPI spec in one curl and your agents get symbol-level precision on private APIs.
Related MCP server: Symbol Delta Ledger
What's new in v0.4.0
BM25 semantic search — replaces substring matching. "retry on network error", "make HTTP request" now return the right symbols even without exact name matches.
Python support —
pypi:requests,pyi:ospull stubs from typeshed + PyPI alongside TypeScript.auto_ingestMCP tool — reads yourpackage.json/requirements.txtand indexes every dependency in one shot. Zero manual config.GitHub webhook auto-sync — register your repo once; docs update on every push automatically.
Benchmarks
Token cost to answer "what does app.get() do?":
Method | Tokens | Accurate? |
Load full Express README | ~12,000 | Sometimes |
Load MDN page | ~11,800 | Yes |
AgentOverflow JSON | 171 | ✅ Yes |
AgentOverflow dense | 85 | ✅ Yes |
Search quality — 30 natural-language queries, 200-symbol corpus:
Engine | Recall@5 |
Substring match (v0.3) | 0.61 |
BM25 (v0.4) | 0.89 |
Reproduce: npm run bench:tokens · npm test
Quick start (60 seconds)
1. Get a free key — no card needed:
curl -X POST https://ao-registry.fly.dev/api/keys \
-H "Content-Type: application/json" \
-d '{"name":"my-workspace","email":"you@example.com"}'
# → { "key": "ao_...", "plan": "free" }2a. Claude Code / Cursor (MCP)
// ~/.claude/mcp.json or Cursor MCP settings
{
"mcpServers": {
"agentoverflow": {
"command": "npx",
"args": ["agentoverflow-mcp"],
"env": { "AO_KEY": "ao_your_key_here" }
}
}
}Then tell your agent:
> auto_ingest ← indexes every dep in package.json + requirements.txt
> search "retry fetch with backoff"
> get_doc express app.get2b. Plain HTTP
curl "https://ao-registry.fly.dev/api/docs/express/app.get?format=dense" \
-H "X-API-Key: ao_..."
# → DOC|n~app.get;sig~app.get(path,...handlers)->app;... (85 tokens)Index your private docs
# TypeScript SDK → every exported symbol from the .d.ts
curl -X POST https://ao-registry.fly.dev/api/ingest \
-H "X-API-Key: ao_..." -H "Content-Type: application/json" \
-d '{"targets":["ts:@acme/internal-sdk"],"private":true}'
# OpenAPI spec → every endpoint as a queryable record
curl -X POST https://ao-registry.fly.dev/api/ingest \
-H "X-API-Key: ao_..." \
-d '{"targets":["openapi:https://api.acme.com/openapi.json"],"private":true}'
# Python stubs
curl -X POST https://ao-registry.fly.dev/api/ingest \
-H "X-API-Key: ao_..." \
-d '{"targets":["pypi:httpx","pypi:pydantic"]}'
# Auto-detect and index everything from package.json + requirements.txt (MCP)
> auto_ingest { "private": true }Private docs are tenant-isolated — namespaced to your API key, never visible to other users. Your private doc wins over a public one with the same name.
GitHub webhook auto-sync
Docs stay fresh automatically when your SDK changes:
# Register your repo
curl -X POST https://ao-registry.fly.dev/api/webhooks/register \
-H "X-API-Key: ao_..." -H "Content-Type: application/json" \
-d '{"repo":"acme/internal-sdk","targets":["ts:@acme/internal-sdk"]}'
# → { "webhookUrl": "https://ao-registry.fly.dev/api/webhooks/github" }
# Add that URL as a GitHub webhook on your repo (push events, JSON content-type)
# Every push → AgentOverflow re-crawls the .d.ts and updates all symbols.Ingestion sources
Scheme | What it indexes | Best for |
| Full | Private SDKs, any npm package |
| Every endpoint in OpenAPI 3.x / Swagger 2.0 | Internal REST APIs |
| Python stubs from typeshed or PyPI | Python packages |
| stdlib stubs from typeshed | Python stdlib |
| README API sections | Quick npm overview |
| MDN Web Docs | Browser APIs |
MCP tools
Tool | What it does |
| Fetch one symbol's doc — cheapest call, 85 tokens |
| All symbols for a library with token budget trimming |
| BM25 full-text search across docs + Q&A |
| Detect deps from package.json/requirements.txt and index all |
| Preview what |
| Crawl specific targets: npm/ts/mdn/openapi/pypi/pyi |
| Post a Q&A entry to the shared registry |
| Answer an existing Q&A entry |
| Upvote / downvote Q&A to surface best answers |
| Corpus size, libraries, tokenizer mode |
How it compares
AgentOverflow | Headroom | Context7 | |
Private docs | ✅ Index your SDK | ❌ Stateless compressor | ❌ Public only |
Prevents hallucinations | ✅ Exact signatures | ❌ Can compress wrong answers | ✅ Public docs only |
Symbol-level lookup | ✅ 85 tokens/query | ❌ Whole context compressed | ✅ |
Auto-detect project deps | ✅ | ✅ | ❌ |
Python support | ✅ pypi: / pyi: | ✅ | ✅ |
GitHub webhook sync | ✅ | ❌ | ❌ |
Zero agent code change | ❌ Agent calls API | ✅ Proxy mode | ❌ |
Self-hostable | ✅ MIT | ✅ Apache 2 | ❌ |
They compose well. Use AgentOverflow for symbol lookup + Headroom for compressing tool outputs. Adjacent problems, not the same one.
Architecture
Your agent (Claude Code · Cursor · LangChain · any MCP client)
│
│ MCP tools / HTTP GET /api/docs/:lib/:symbol?format=dense
▼
┌─────────────────────────────────────────────────────────┐
│ AgentOverflow │
│ ────────────────────────────────────────────────── │
│ BM25Index → symbol store → serialize() │
│ (ranking) SQLite/PG dense/json/xml/prose │
│ │
│ Crawlers: ts(.d.ts) · openapi · pypi(typeshed) │
│ npm · mdn · pyi(stdlib) │
│ │
│ Auth: API keys · per-plan rate limits · Stripe │
│ Private docs: owner-namespaced, tenant-isolated │
│ GitHub webhooks: auto re-crawl on every push │
└─────────────────────────────────────────────────────────┘
│
│ 85 tokens · exact signature · no hallucination
▼
LLM (Anthropic · OpenAI · any provider)Token counts are exact — real BPE tokenizer (gpt-tokenizer, o200k_base). npm run bench:tokens reproduces every number in this file.
Self-host
# Minimal — SQLite, no auth
npm install agentoverflow && npm start
# With auth + Postgres
AO_REQUIRE_KEY=1 AO_ADMIN_TOKEN=changeme \
DATABASE_URL=postgres://user:pass@host/db npm start
# Docker
docker run -p 4317:4317 \
-e AO_REQUIRE_KEY=1 -e AO_ADMIN_TOKEN=secret \
-v ao_data:/data \
ghcr.io/tatsunori-ono/agentoverflow:latest
# Then seed with public libraries
npm run crawl -- ts:express ts:zod pypi:requests openapi:https://petstore.swagger.io/v2/swagger.jsonContributing
git clone https://github.com/tatsunori-ono/agentoverflow
cd agentoverflow && npm install
npm test # ~30 tests
npm run dev # hot-reload on :4317New crawler source? Add it under src/crawler/ and write a test in test/sources.test.js.
License
MIT · LICENSE
Built with Model Context Protocol · gpt-tokenizer · python/typeshed
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityAmaintenanceLets AI agents navigate documentation by section instead of reading files by brute force, reducing token usage and improving precision.64202
- Alicense-qualityAmaintenanceEnables AI coding agents to efficiently query code context via a symbol graph, reducing token usage by up to 20x.1,303462Inno Setup
- Flicense-qualityCmaintenanceEnables AI agents to search, fetch, and clean live documentation from LangChain, LlamaIndex, and OpenAI via Model Context Protocol, with token-optimized extraction.
- Alicense-qualityBmaintenanceProvides up-to-date documentation for AI agents by locally querying a community-driven registry of pre-built docs packages.Apache 2.0
Related MCP Connectors
Token-efficient search for coding agents over public and private documentation.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tatsunori-ono/agentoverflow'
If you have feedback or need assistance with the MCP directory API, please join our Discord server