背景45
所有的文件。没有膨胀。
背景45 是一个最小的MCP服务器,只为AI助手提供基本的文档上下文。Context45返回的不是用5000多个文档标记(如Context7)淹没上下文窗口,而是返回 100-300个代币 这正是你所需要的。
问题
像Context7这样的工具将文档注入到AI助手中,但它们返回的太多了:
||上下文7| 背景45 | |-|----------|---------------| |每次查询的令牌|5000-6200| 100-300 | |输入乘法器|155-215x| 3-10x |
这是上下文使用量的20倍减少,同时仍然能给你正确的答案。
快速开始
克劳德代码
claude mcp add context45 -- npx context45-mcp然后在提示中添加 “使用上下文45” 获取相关文档。
光标
增添 ~/.cursor/mcp.json:
{
"mcpServers": {
"context45": {
"command": "npx",
"args": ["context45-mcp"]
}
}
}可用的库
| 库 | 状态 |
|---|---|
| API(无烟煤) | ✅ 可用 |
| OpenAI API | ✅ 可用 |
运作原理
- 你的AI助手会打电话
resolve-library找到图书馆 - 然后打电话
get-docs使用您的查询(例如,“如何流式传输响应”) - Context45对预压缩文档进行语义搜索
- 仅返回最相关的2-3个块(约100-300个令牌)
文件是 手动策划和压缩 --我们删除了教程、营销、迁移指南和利基功能。只有95%的开发人员每天真正需要的东西才能生存。
MCP工具
resolve-library
按名称查找库。
Input: { "query": "claude" }
Output: Found 1 matching library:
- Claude API (id: claude): Anthropic Claude API reference...get-docs
为特定查询获取最少的文档。
Input: { "libraryId": "claude", "query": "streaming" }
Output: ~146 tokens of streaming docs with code examples参数:
libraryId(必填):来自的库IDresolve-libraryquery(必填):您需要什么文件maxResults(可选):要返回的块数(默认值:3,最大值:10)
发展
先决条件
- Node.js>=18
- Uptash矢量索引(带bge-m3嵌入模型)
设置
git clone https://github.com/arbab-ml/context45.git
cd context45
npm install
cp .env.example .env
# Add your Upstash Vector credentials to .env添加文档
- 放置一个精心策划的
_processed.md归档 `docs/
/`
- 运行管道:
npm run pipeline这会将标记分块并上传到Uptash Vector。
独立测试
在没有人工智能助手的情况下直接测试MCP服务器:
# 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/null这将通过stdin(MCP stdio传输)发送JSON-RPC消息,并将结果打印到stdout。
发展
看 README-dev.md 获取完整的开发指南——添加库、运行管道、清理向量等。
许可证
麻省理工学院
