← 返回目录
C

Context+ MCP Server

社区
大规模工程语义智能。
分类
开发工具 第 280 / 438
Stars
★ 2.0k 非常热门
传输方式
stdio(本地进程)
运行环境
Node.js · Bun
凭据
可选 API Key
许可证
MIT
最近提交
工具数
17
48FMRS · D

Context+ 是一个功能丰富的 MCP 服务器,提供代码结构分析、语义搜索、静态分析、代码编辑和记忆图功能。它的亮点是结合 AST 和 RAG 进行语义理解,以及影子恢复点机制。配置相对复杂,需要 Ollama 或其他嵌入提供商。

最强项 · 维护活跃度 12/20 最弱项 · 可靠性 8/20

可靠性
8/20
安全与权限
8/20
维护活跃度
12/20
文档质量
10/20
安装易用性
10/20
查看各项评分依据
可靠性 8/20
静态审查显示清晰的架构和17个MCP工具的定义,但未看到实际执行的CI测试证据或工具行为验证,且错误处理和边界条件文档不充分。路径可能可用,但不可靠性较高。
安全与权限 8/20
文档显示提供API密钥的环境变量,但未发现硬编码的密钥或恶意行为。工具如propose_commit会修改文件,但描述中提到有影子恢复点和验证规则。然而权限边界和确认机制未在代码中明确,外部网络调用(如Ollama/OpenAI)需依赖本地服务。无重大红线风险,但安全边界不够透明。
维护活跃度 12/20
仓库有1968颗星,只有2个开放问题,且未归档,表明活跃。但未提供提交历史、发布记录或安全问题响应渠道。依赖更新和政策未见证据。
文档质量 10/20
README详尽,包含安装、配置、工具描述和环境变量表,但缺少故障排除、限制说明和验证示例。文档未提及测试或已知问题。
安装易用性 10/20
文档提供了多种客户端配置示例(Claude Code、Cursor等)和CLI初始化命令,但需要外部依赖(如Ollama、API keys)和本地服务设置。步骤清晰,但可能因依赖而脆弱。

静态评测 · 未实际运行收录于 2026-08-07

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件访问网络

适合谁

  • 大型代码库的开发者
  • 需要高度准确代码理解的团队
  • 使用 Ollama 或 OpenAI 兼容嵌入的用户
  • 希望利用 AI 辅助代码编辑并保留回滚能力的用户

不适合谁

  • 小型项目可能过于复杂
  • 需要原生 git 集成版本控制的用户(仅提供影子恢复点)
  • 需要 SQL 或文件系统访问等非代码操作的场景

所需权限

  • 读取项目文件(通过 AST 解析和文件遍历)
  • 创建影子恢复点(在 .mcp_data 目录下)
  • 运行 linter 和编译器(run_static_analysis)
  • 写入代码文件(通过 propose_commit)
  • 网络访问(调用 Ollama 或 OpenAI 兼容 API)

风险与副作用

  • propose_commit 可能修改代码文件,尽管有验证规则但仍需谨慎
  • 运行时缓存(.mcp_data)可能占用磁盘空间
  • 嵌入基于本地或云端模型,可能涉及数据隐私
  • 谱聚类结果可能不稳定,标签可能不准确

安装接入

准备工作

运行环境:Node.js · Bun

OLLAMA_API_KEY 可选密钥 Ollama Cloud 的 API 密钥,使用本地 Ollama 时不需要;在 Ollama 官网获取。
CONTEXTPLUS_OPENAI_API_KEY 可选密钥 OpenAI 兼容服务的 API 密钥;在 OpenAI、Google AI Studio、Groq 等平台获取。
OPENAI_API_KEY 可选密钥 CONTEXTPLUS_OPENAI_API_KEY 的别名。
其他可选配置项(22 个)
OLLAMA_EMBED_MODEL 可选 Ollama 嵌入模型名称,默认 nomic-embed-text;通过 `ollama pull nomic-embed-text` 获取本地模型。
OLLAMA_CHAT_MODEL 可选 用于语义聚类标注的 Ollama 聊天模型,默认 llama3.2。
CONTEXTPLUS_EMBED_PROVIDER 可选 嵌入后端选择:ollama(默认)或 openai。
CONTEXTPLUS_OPENAI_BASE_URL 可选 OpenAI 兼容 API 端点,默认 https://api.openai.com/v1。
CONTEXTPLUS_OPENAI_EMBED_MODEL 可选 OpenAI 兼容嵌入模型,默认 text-embedding-3-small;Gemini 可用 text-embedding-004。
CONTEXTPLUS_OPENAI_CHAT_MODEL 可选 OpenAI 兼容聊天模型(用于聚类标注),默认 gpt-4o-mini。
OPENAI_BASE_URL 可选 CONTEXTPLUS_OPENAI_BASE_URL 的别名。
OPENAI_EMBED_MODEL 可选 CONTEXTPLUS_OPENAI_EMBED_MODEL 的别名。
OPENAI_CHAT_MODEL 可选 CONTEXTPLUS_OPENAI_CHAT_MODEL 的别名。
CONTEXTPLUS_EMBED_BATCH_SIZE 可选 每次 GPU 嵌入调用的批大小,默认 8,限制在 5-10。
CONTEXTPLUS_EMBED_CHUNK_CHARS 可选 嵌入合并前每块字符数,默认 2000,限制在 256-8000。
CONTEXTPLUS_MAX_EMBED_FILE_SIZE 可选 跳过的超大非代码文本文件字节数,默认 51200。
CONTEXTPLUS_EMBED_NUM_GPU 可选 可选的 Ollama 嵌入运行时 num_gpu 覆盖。
CONTEXTPLUS_EMBED_MAIN_GPU 可选 可选的 Ollama 嵌入运行时 main_gpu 覆盖。
CONTEXTPLUS_EMBED_NUM_THREAD 可选 可选的 Ollama 嵌入运行时 num_thread 覆盖。
CONTEXTPLUS_EMBED_NUM_BATCH 可选 可选的 Ollama 嵌入运行时 num_batch 覆盖。
CONTEXTPLUS_EMBED_NUM_CTX 可选 可选的 Ollama 嵌入运行时 num_ctx 覆盖。
CONTEXTPLUS_EMBED_LOW_VRAM 可选 可选的 Ollama 嵌入运行时 low_vram 布尔覆盖。
CONTEXTPLUS_EMBED_TRACKER 可选 是否在文件变化时实时刷新嵌入,默认 true。
CONTEXTPLUS_EMBED_TRACKER_MAX_FILES 可选 每个刷新周期处理的最大变更文件数,默认 8,限制在 5-10。
CONTEXTPLUS_EMBED_TRACKER_DEBOUNCE_MS 可选 刷新前的防抖窗口毫秒数,默认 700。
CONTEXTPLUS_EXTRA_ROOTS 可选 把被工作区 .gitignore 排除的目录加回索引,路径用系统路径分隔符(Unix 为 :)连接。

无需安装,通过 npx 或 bunx 运行。在 IDE 的 MCP 配置中添加以下内容(示例为 Claude Code、Cursor、Windsurf):

{
  "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 格式。也可以使用 npx -y contextplus init <client> 自动生成配置文件,支持 claude、cursor、vscode、windsurf、opencode。

claude_desktop_config.json
{
  "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"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "contextplus": {
      "command": "bunx",
      "args": [
        "contextplus"
      ],
      "env": {
        "OLLAMA_EMBED_MODEL": "nomic-embed-text",
        "OLLAMA_CHAT_MODEL": "gemma2:27b",
        "OLLAMA_API_KEY": "YOUR_OLLAMA_API_KEY"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add contextplus -e OLLAMA_EMBED_MODEL=nomic-embed-text -e OLLAMA_CHAT_MODEL=gemma2:27b -e OLLAMA_API_KEY=YOUR_OLLAMA_API_KEY -- bunx contextplus

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

将配置加入 MCP 客户端后启动会话,检查工具列表中是否出现 semantic_code_search 和 get_context_tree 等工具;也可以运行 `bunx contextplus skeleton .` 在终端直接查看项目结构树来确认安装成功。

常见排障

  1. 确保 Ollama 已安装并运行,且模型已拉取(如 nomic-embed-text)
  2. 验证 API 密钥和环境变量是否正确设置(OLLAMA_API_KEY 等)
  3. 检查项目路径是否正确,且未被 .gitignore 排除;使用 --include 或 CONTEXTPLUS_EXTRA_ROOTS 添加额外根
  4. 如果使用 OpenAI 兼容提供商,确保设置 CONTEXTPLUS_OPENAI_API_KEY 和 BASE_URL

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 用 semantic_code_search 在这个代码库里搜索与用户认证相关的代码。
  • 给我看 src/core/ 目录的上下文树,标出函数和类的行号。
  • 分析一下 util.parse 函数的爆炸半径,找出所有导入和使用它的位置。
  • 先用 propose_commit 修改 config.ts 里的默认端口,然后展示可用的恢复点。

工具能力 17

get_context_tree 只读
获取项目的结构化 AST 树,包含文件头部和符号范围(函数/类/方法的行号)。动态剪枝自动缩小输出。
get_file_skeleton 只读
获取函数签名、类方法和类型定义,包含行号范围,无需读取完整函数体。展示 API 表面。
semantic_code_search 只读
按语义而非精确文本搜索。使用文件头和符号的嵌入,返回匹配的符号定义行。
semantic_identifier_search 只读
对函数/类/变量进行标识符级语义检索,返回排序的调用点和行号。
semantic_navigate 只读
使用谱聚类按语义浏览代码库。将语义相关的文件分组为带标签的集群。
get_blast_radius 只读
追踪符号在哪些文件和行被导入或使用。防止孤立引用。
run_static_analysis 只读
运行原生 linter 和编译器,发现未使用变量、死代码和类型错误。支持 TypeScript、Python、Rust、Go。
propose_commit 写入
唯一写代码的方式。在保存前根据严格规则验证,并在写入前创建影子恢复点。
展开其余 9 个工具
get_feature_hub 只读
Obsidian 风格的特性中心导航器。中心是包含 [[wikilinks]] 的 .md 文件,将特性映射到代码文件。
list_restore_points 只读
列出 propose_commit 创建的所有影子恢复点。每个恢复点在 AI 更改前捕获文件状态。
undo_change 破坏性
将文件恢复到特定 AI 更改前的状态。使用影子恢复点。不影响 git。
upsert_memory_node 写入
创建或更新记忆节点(概念、文件、符号、笔记),并自动生成嵌入。
create_relation 写入
在节点之间创建类型化边(relates_to, depends_on, implements, references, similar_to, contains)。
search_memory_graph 只读
使用图遍历进行语义搜索——找到直接匹配然后遍历一阶和二阶邻居。
prune_stale_links 破坏性
移除衰减的边(e^(-λt) 低于阈值)和低访问计数的孤立节点。
add_interlinked_context 写入
批量添加节点,并自动相似性链接(余弦 ≥ 0.72 时自动创建边)。
retrieve_with_traversal 只读
从节点开始向外遍历,返回所有可达邻居,按衰减和深度评分。

使用场景

快速理解大型代码库结构
按语义搜索代码,取代文本匹配
分析变更影响范围
在 AI 编辑前创建恢复点
构建代码特性知识图谱

支持客户端

Claude Desktop部分支持
Claude Code
Cursor
VS Code
Windsurf
OpenCode

依据项目文档列出,未经本站实测。

详细介绍

Context+ 是一个 MCP 服务器,专为追求 99% 准确率的开发者设计。通过结合 RAG、Tree-sitter AST、谱聚类和 Obsidian 风格链接,Context+ 将庞大的代码库转化为可搜索、分层的特性图。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 62.9k · 工具数 2 与当前对比 →

源版本 1b59b37f3130 数据同步于 2026-10-13 查看 FMRS 评分方法