Claude Context — 基于语义搜索的代码库上下文插件
通过语义搜索将整个代码库变为 AI 编码助手的上下文,实现高效代码检索。
证据显示:MCP服务器通过环境变量接收API密钥,未发现硬编码凭据;但未提供用户确认机制,数据流透明度有限(仅说明发送到向量数据库和嵌入服务),敏感数据处理未详细说明,依赖安全未提供审计,外部影响(如索引整个代码库)未明确提示,回滚机制缺失,来源归属仅通过README和package.json的author字段部分体现。扣分原因:缺少用户确认、数据流细节、敏感数据保护措施、依赖审计、外部影响提示、回滚机制。
证据显示:README和package.json描述一致,构建脚本和CI配置存在,依赖声明明确,但失败消息未在文档中详细说明。扣分原因:失败消息文档不足。
证据显示:README提供了多种MCP客户端的配置示例,支持多种嵌入提供商和向量数据库,文件包含/排除规则可定制,环境要求明确。扣分原因:能力边界(如支持的代码语言)在README中列出但未深入说明,触发精度(如索引命令)未详细说明。
证据显示:README结构清晰,安装说明详细,命名一致,提供了示例和FAQ,MIT许可证明确,但版本变更日志未提供,维护责任仅通过GitHub仓库和作者信息部分体现。扣分原因:缺少版本变更日志,维护责任不明确。
证据显示:README声称约40%的token减少,提供了使用示例,但未提供成本效益的详细分析。扣分原因:成本效益分析不足。
证据显示:README中的声明(如token减少)未提供详细数据或方法,评估目录存在但未在提供的文件中展示,事实与推断未明确区分。扣分原因:声明缺乏可追溯性,交叉验证不足。
- 该工具需要将代码库内容发送到外部向量数据库和嵌入服务,可能涉及敏感代码泄露风险,请确保使用可信的服务提供商并配置适当的访问控制。
- 未提供用户确认机制,工具可能自动索引整个代码库,建议在敏感环境中谨慎使用。
- 依赖安全未审计,建议定期检查依赖漏洞。
这个 Agent 能做什么,适合哪些场景?
Claude Context 是一个 MCP 插件,利用语义搜索为 Claude Code 等 AI 编码助手提供整个代码库的深度上下文。它通过向量数据库索引代码库,仅将相关代码片段注入上下文,从而在保持检索质量的同时大幅降低成本。该项目是一个 monorepo,包含核心索引引擎(@zilliz/claude-context-core)、MCP 服务器(@zilliz/claude-context-mcp)以及一个 VS Code 扩展。它支持混合搜索(BM25 + 稠密向量)、增量索引(基于 Merkle 树)和基于抽象语法树(AST)的智能代码切分。部署需要 OpenAI 嵌入 API 和 Zilliz Cloud 或 Milvus 向量数据库,通过标准 stdio 传输遵循 MCP 协议。
Claude Context 在初始化时接受代码库目录,将文件拆分为块,通过 OpenAI(或配置的)嵌入模型生成嵌入向量,并将嵌入存储到 Milvus/Zilliz Cloud 中。它提供 MCP 工具:index_codebase(索引代码库)、search_code(自然语言混合搜索)、clear_index(清除索引)、get_indexing_status(查看进度)。搜索时,它使用 BM25 和稠密向量检索相关的代码片段,并提供文件路径、行号和内容。架构包括 Context、MilvusVectorDatabase、OpenAIEmbedding 等核心类;MCP 服务器通过 npx @zilliz/claude-context-mcp 运行,支持多个 MCP 客户端,如 Claude Code、Codex CLI、Gemini CLI、Cursor 等。
- 开发者在 Claude Code 中处理大型或陌生的代码库,需要快速定位实现特定功能的代码,避免手动搜索。
- 编码代理工程师希望在不将整个代码库加载到上下文的情况下,减少标记消耗和成本,提升响应速度和效率。
- 技术团队需要将代码库语义上下文集成到多种 AI 工具(如 Cursor、Gemini CLI)中,希望采用标准 MCP 协议并支持混合搜索。
- 维护大型项目的开发者需要高效索引和增量更新(仅重新索引修改的文件),以保持上下文最新并控制成本。
- VSCode 用户希望在不离开 IDE 的情况下,使用自然语言搜索代码,获得相关片段和行号。
这个 Agent 有哪些优点和局限?
- 混合搜索(BM25 + 稠密向量)提供相关且上下文丰富的代码片段。
- 增量索引使用 Merkle 树,仅重新索引更改的文件,减少开销。
- 基于 AST 的代码切分提高代码理解,并支持多种编程语言。
- MCP 协议支持广泛的 AI 编码工具,包括 Claude Code、Codex、Cursor 等。
- 评估显示在等效检索质量下可实现约 40% 的令牌减少,节省成本。
- 需要外部向量数据库(Zilliz Cloud 或 Milvus)和 OpenAI API 密钥,并非完全本地化。
- 设置需要多个配置步骤和 API 密钥管理,可能增加集成负担。
- 对 Zilliz Cloud 的依赖可能引起供应商锁定担忧,尽管 Milvus 提供了替代方案。
- MCP 服务器仅支持 Node.js 环境,限制了非 Node.js 项目中的使用。
如何安装或部署这个 Agent?
前置条件: Node.js >= 20;获取 OpenAI API 密钥;获取 Zilliz Cloud 实例(公共端点和 API 密钥)。
对于 Claude Code,运行:
claude mcp add claude-context \
-e OPENAI_API_KEY=sk-your-openai-api-key \
-e MILVUS_ADDRESS=your-zilliz-cloud-public-endpoint \
-e MILVUS_TOKEN=your-zilliz-cloud-api-key \
-- npx @zilliz/claude-context-mcp@latest其他客户端配置见 README 对应部分。
如何使用这个 Agent?
- 在项目目录中启动 Claude Code(
claude)。 - 使用自然语言指令:“Index this codebase” 进行索引。
- 使用“Check the indexing status”查看进度。
- 直接提问,例如:“Find functions that handle user authentication”。
也可以使用核心包在 TypeScript 应用程序中集成:
import { Context, MilvusVectorDatabase, OpenAIEmbedding } from '@zilliz/claude-context-core';
const embedding = new OpenAIEmbedding({ apiKey: 'your-openai-api-key', model: 'text-embedding-3-small' });
const vectorDatabase = new MilvusVectorDatabase({ address: 'your-zilliz-cloud-public-endpoint', token: 'your-zilliz-cloud-api-key' });
const context = new Context({ embedding, vectorDatabase });
const stats = await context.indexCodebase('./your-project', (progress) => {});
const results = await context.semanticSearch('./your-project', 'vector database operations', 5);这个 Agent 与同类方案有什么区别?
与 Serena、Context7 或 DeepWiki 等其他工具比较,Claude Context 专注于将代码库作为上下文,并采用混合搜索和增量索引。具体差异在 FAQ 中提及。