All the docs. None of the bloat.
Context45 is a minimal MCP server that gives AI assistants only the essential documentation context. Instead of flooding your context window with 5,000+ tokens of docs (like Context7), Context45 returns 100-300 tokens of precisely what you need.
Tools like Context7 inject documentation into AI assistants, but they return way too much:
| Context7 | Context45 | |
|---|---|---|
| Tokens per query | 5,000-6,200 | 100-300 |
| Input multiplier | 155-215x | 3-10x |
That's a 20x reduction in context usage while still giving you the right answer.
claude mcp add context45 -- npx context45-mcpThen in your prompts, add "use context45" to fetch relevant docs.
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"context45": {
"command": "npx",
"args": ["context45-mcp"]
}
}
}| Library | Status |
|---|---|
| Claude API (Anthropic) | ✅ Available |
| OpenAI API | ✅ Available |
- Your AI assistant calls
resolve-libraryto find the library - Then calls
get-docswith your query (e.g., "how to stream responses") - Context45 does a semantic search over pre-compressed documentation
- Returns only the most relevant 2-3 chunks (~100-300 tokens)
The documentation is manually curated and compressed — we strip tutorials, marketing, migration guides, and niche features. Only what 95% of developers actually need day-to-day survives.
Find a library by name.
Input: { "query": "claude" }
Output: Found 1 matching library:
- Claude API (id: claude): Anthropic Claude API reference...
Get minimal documentation for a specific query.
Input: { "libraryId": "claude", "query": "streaming" }
Output: ~146 tokens of streaming docs with code examples
Parameters:
libraryId(required): Library ID fromresolve-libraryquery(required): What you need docs formaxResults(optional): Number of chunks to return (default: 3, max: 10)
- Node.js >= 18
- Upstash Vector index (with bge-m3 embedding model)
git clone https://github.com/arbab-ml/context45.git
cd context45
npm install
cp .env.example .env
# Add your Upstash Vector credentials to .env- Place a curated
_processed.mdfile indocs/<library>/ - Run the pipeline:
npm run pipelineThis chunks the markdown and uploads it to Upstash Vector.
Test the MCP server directly without an AI assistant:
# Start the server and send a get-docs request
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized"}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get-docs","arguments":{"libraryId":"claude","query":"streaming"}}}\n' | npx tsx src/server/index.ts 2>/dev/nullThis sends JSON-RPC messages over stdin (the MCP stdio transport) and prints results to stdout.
See README-dev.md for the full development guide — adding libraries, running the pipeline, cleaning vectors, etc.
MIT