文档精简服务

Context45是一个最小化的MCP服务器,为AI助手提供仅包含必要文档上下文的服务,显著减少上下文窗口的令牌使用量。

  • by arbab-ml
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 arbab-ml/context45

使用说明

背景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 ✅ 可用

运作原理

  1. 你的AI助手会打电话 resolve-library 找到图书馆
  2. 然后打电话 get-docs 使用您的查询(例如,“如何流式传输响应”)
  3. Context45对预压缩文档进行语义搜索
  4. 仅返回最相关的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 (必填):来自的库ID resolve-library
  • query (必填):您需要什么文件
  • 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

添加文档

  1. 放置一个精心策划的 _processed.md 归档 docs/<library>/
  2. 运行管道:
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 获取完整的开发指南——添加库、运行管道、清理向量等。

许可证

麻省理工学院