Context+
Context+
面向大规模工程的语义智能。
Context+ 是一款专为追求 99% 准确率的开发者设计的 MCP 服务器。通过结合 RAG、Tree-sitter AST、谱聚类和 Obsidian 风格的链接,Context+ 将庞大的代码库转化为可搜索的层级化特征图。
在你浏览的同时,欢迎查看我的另一个项目 Airena。组建一支 AI 智能体团队,与其他编排器进行正面交锋。排行榜第一名可获得 1600 美元奖金!
https://github.com/user-attachments/assets/a97a451f-c9b4-468d-b036-15b65fc13e79
工具
发现
工具 | 描述 |
| 项目的结构化 AST 树,包含文件头和符号范围(函数/类/方法的行号)。动态修剪功能可自动缩减输出。 |
| 函数签名、类方法和类型定义及其行范围,无需读取完整主体。展示 API 表面。 |
| 按含义而非精确文本进行搜索。在文件头/符号上使用嵌入,并返回匹配的符号定义行。 |
| 针对函数/类/变量的标识符级语义检索,包含排名的调用点和行号。 |
| 使用谱聚类按含义浏览代码库。将语义相关的代码文件分组为带标签的簇。 |
分析
工具 | 描述 |
| 追踪符号被导入或使用的每个文件和行。防止出现孤立引用。 |
| 运行原生 linter 和编译器以查找未使用的变量、死代码和类型错误。支持 TypeScript、Python、Rust、Go。 |
代码操作
工具 | 描述 |
| 编写代码的唯一方式。在保存前根据严格规则进行验证。在写入前创建一个影子还原点。 |
| Obsidian 风格的特征中心导航器。中心是包含 |
版本控制
工具 | 描述 |
| 列出由 |
| 将文件恢复到 AI 修改前的状态。使用影子还原点。不影响 git。 |
内存与 RAG
工具 | 描述 |
| 创建或更新带有自动生成嵌入的内存节点(概念、文件、符号、笔记)。 |
| 在节点之间创建类型化边(relates_to、depends_on、implements、references、similar_to、contains)。 |
| 带有图遍历的语义搜索 — 查找直接匹配项,然后遍历一阶/二阶邻居。 |
| 移除衰减的边(e^(-λt) 低于阈值)和访问计数较低的孤立节点。 |
| 批量添加节点并进行自动相似度链接(余弦相似度 ≥ 0.72 时自动创建边)。 |
| 从一个节点开始向外遍历 — 返回所有可达的邻居,并按衰减和深度进行评分。 |
配套服务器: pmll-memory-mcp (
npx pmll-memory-mcp) 是由 @drQedwards 开发的独立 MCP 服务器,它适配了 Context+ 的长期内存图,并增加了短期 KV 上下文内存、Q-promise 去重以及顶层的解决方案引擎。详情请参阅 drQedwards/PPM。
设置
快速开始 (npx / bunx)
无需安装。将 Context+ 添加到你的 IDE MCP 配置中。
对于 Claude Code、Cursor 和 Windsurf,请使用 mcpServers:
{
"mcpServers": {
"contextplus": {
"command": "bunx",
"args": ["contextplus"],
"env": {
"OLLAMA_EMBED_MODEL": "nomic-embed-text",
"OLLAMA_CHAT_MODEL": "gemma2:27b",
"OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
}
}
}
}对于 VS Code (.vscode/mcp.json),请使用 servers 和 inputs:
{
"servers": {
"contextplus": {
"type": "stdio",
"command": "bunx",
"args": ["contextplus"],
"env": {
"OLLAMA_EMBED_MODEL": "nomic-embed-text",
"OLLAMA_CHAT_MODEL": "gemma2:27b",
"OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
}
}
},
"inputs": []
}如果你更喜欢 npx,请使用:
"command": "npx""args": ["-y", "contextplus"]
或者直接在当前目录生成 MCP 配置文件:
npx -y contextplus init claude
bunx contextplus init cursor
npx -y contextplus init opencode支持的编码代理名称:claude, cursor, vscode, windsurf, opencode。
配置文件位置:
IDE | 配置文件 |
Claude Code |
|
Cursor |
|
VS Code |
|
Windsurf |
|
OpenCode |
|
CLI 子命令
init [target]- 生成 MCP 配置(目标:claude,cursor,vscode,windsurf,opencode)。skeleton [path]或tree [path]- (新) 直接在终端中查看项目的结构树,包含文件头和符号定义。[path]- 为指定路径启动 MCP 服务器 (stdio)(默认为当前目录)。
从源码构建
npm install
npm run build嵌入提供程序
Context+ 支持两种由 CONTEXTPLUS_EMBED_PROVIDER 控制的嵌入后端:
提供程序 | 值 | 需要 | 最适合 |
Ollama (默认) |
| 本地 Ollama 服务器 | 免费、离线、私有 |
兼容 OpenAI |
| API 密钥 | Gemini (免费层级), OpenAI, Groq, vLLM |
Ollama (默认)
无需额外配置。只需运行带有嵌入模型的 Ollama:
ollama pull nomic-embed-text
ollama serveGoogle Gemini (免费层级)
完整的 Claude Code .mcp.json 示例:
{
"mcpServers": {
"contextplus": {
"command": "npx",
"args": ["-y", "contextplus"],
"env": {
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
"CONTEXTPLUS_OPENAI_API_KEY": "YOUR_GEMINI_API_KEY",
"CONTEXTPLUS_OPENAI_BASE_URL": "https://generativelanguage.googleapis.com/v1beta/openai",
"CONTEXTPLUS_OPENAI_EMBED_MODEL": "text-embedding-004"
}
}
}
}在 Google AI Studio 获取免费 API 密钥。
OpenAI
{
"mcpServers": {
"contextplus": {
"command": "npx",
"args": ["-y", "contextplus"],
"env": {
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
"OPENAI_API_KEY": "sk-...",
"OPENAI_EMBED_MODEL": "text-embedding-3-small"
}
}
}
}其他兼容 OpenAI 的 API (Groq, vLLM, LiteLLM)
任何实现 OpenAI Embeddings API 的端点均可工作:
{
"mcpServers": {
"contextplus": {
"command": "npx",
"args": ["-y", "contextplus"],
"env": {
"CONTEXTPLUS_EMBED_PROVIDER": "openai",
"CONTEXTPLUS_OPENAI_API_KEY": "YOUR_KEY",
"CONTEXTPLUS_OPENAI_BASE_URL": "https://your-proxy.example.com/v1",
"CONTEXTPLUS_OPENAI_EMBED_MODEL": "your-model-name"
}
}
}
}注意:
semantic_navigate工具也使用聊天模型进行簇标记。使用openai提供程序时,请设置CONTEXTPLUS_OPENAI_CHAT_MODEL(默认:gpt-4o-mini)。对于 VS Code、Cursor 或 OpenCode,请在 IDE 的 MCP 配置格式中使用相同的
env块(参见上方的 配置文件位置 表格)。
架构
基于 TypeScript 构建的三层架构,通过 Model Context Protocol SDK 在 stdio 上运行:
核心 (src/core/) - 多语言 AST 解析(tree-sitter,43 种扩展)、感知 gitignore 的遍历、带磁盘缓存的 Ollama 向量嵌入、维基链接中心图、带衰减评分的内存属性图。
工具 (src/tools/) - 17 个 MCP 工具,提供结构化、语义化、操作化和内存图功能。
Git (src/git/) - 影子还原点系统,用于在不触碰 git 历史的情况下进行撤销。
运行时缓存 (.mcp_data/) - 在服务器启动时创建;存储可重用的文件、标识符和调用点嵌入,以避免重复的 GPU/CPU 嵌入工作。实时跟踪器会增量刷新已更改的文件/函数。
配置
变量 | 类型 | 默认 | 描述 |
| string |
| 嵌入后端: |
| string |
| Ollama 嵌入模型 |
| string | - | Ollama Cloud API 密钥 |
| string |
| 用于簇标记的 Ollama 聊天模型 |
| string | - | 兼容 OpenAI 提供程序的 API 密钥 (别名: |
| string |
| 兼容 OpenAI 的端点 URL (别名: |
| string |
| 兼容 OpenAI 的嵌入模型 (别名: |
| string |
| 用于标记的兼容 OpenAI 的聊天模型 (别名: |
| string (解析为数字) |
| 每个 GPU 调用的嵌入批处理大小,限制在 5-10 |
| string (解析为数字) |
| 合并前的每块字符数,限制在 256-8000 |
| string (解析为数字) |
| 跳过大于此字节数的非代码文本文件 |
| string (解析为数字) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为数字) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为数字) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为数字) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为数字) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为布尔值) | - | 可选的 Ollama 嵌入运行时 |
| string (解析为布尔值) |
| 启用文件更改时的实时嵌入刷新 |
| string (解析为数字) |
| 每个跟踪器周期处理的最大更改文件数,限制在 5-10 |
| string (解析为数字) |
| 跟踪器刷新前的防抖窗口 |
测试
npm test
npm run test:demo
npm run test:allResources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
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/ForLoopCodes/contextplus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server