deepcontext-mcp
基于AST语义解析+MCP协议,为AI编程工具提供跨文件代码定位能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于AST语义解析+MCP协议,为AI编程工具提供跨文件代码定位能力
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:DeepContext 项目 Logo
当你用 Claude Code 或 Codex CLI 开发一个 10 万行代码的中大型项目时,有没有遇到过这种情况:让 AI 修复一个 Bug,它翻遍了整个代码库,却总是找不到正确的文件?或者让它实现一个新功能,它生成了完全错误的实现,因为根本不知道项目里已经有类似的代码?
这背后是一个残酷的事实——大多数 AI 编程工具本质上只是增强版的 grep。它们搜索代码靠的是关键字匹配:输入「用户认证」,它就去找所有包含「用户」「认证」「login」「auth」这些词的文件。问题在于,代码的语义远比文字复杂。同一个功能可能叫 UserService、AccountManager、IdentityProvider,纯文本搜索根本无法知道它们是同一个东西。
更糟糕的是,当你在一个有几千个文件的代码库里搜索「token」时,grep 返回的结果可能有好几百个,AI 还没读完就已经超出上下文窗口了。这就是为什么很多 AI 编程工具在大项目上表现堪忧——不是模型不够聪明,而是搜索机制太原始。
DeepContext 正是为了解决这个根本性问题而诞生的。
DeepContext 由 Wildcard AI 开发维护,这是一家专注于 AI 编程工具链的初创公司。项目的主页是 wild-card.ai/deepcontext,团队在 2025 年 9 月正式开源了这款产品。
开源的动机很直接:Wildcard AI 在开发 AI 编程工具的过程中,深刻体会到现有方案在代码理解上的局限。团队认为,要让 AI 真正「理解」代码而不是简单地搜索文字,需要一套新的基础设施——基于语义而非关键词的代码索引与检索系统。
项目采用 Apache 2.0 开源许可证,支持 TypeScript 和 Python 两种主流语言,目前在 GitHub 上拥有约 277 颗星、25 个 forks、5 个 open issues。
DeepContext 的技术方案可以分为四个层次来理解。
第一层:AST 解析与符号提取
传统的文本搜索只看字符串,而 DeepContext 使用 Tree-sitter 解析器对代码进行语法分析,构建抽象语法树(AST)。这让它能够精确识别代码中的语义单元:函数、类、接口、变量、常量、模块导入导出关系。
例如,当你在搜索「处理订单的函数」时,AST 分析能够区分 processOrder() 是一个函数定义,而 const order = processOrder(id) 是调用点;它还能追踪 import 语句,知道 processOrder 来自哪个模块。这些信息是纯文本搜索永远无法提供的。
符号提取还包括作用域分析——区分局部变量和导出成员,以及参数和返回类型的提取,为后续的语义索引提供丰富的元数据。
第二层:混合搜索(Hybrid Search)
DeepContext 的搜索采用三阶段混合检索架构:
首先是向量相似度搜索。代码块被切分后,通过 Jina AI 的 jina-embeddings-v3 模型生成 1024 维的语义向量。查询时,用户输入的自然语言查询也被转为向量,在向量空间中找「语义距离最近」的代码块。
其次是 BM25 全文搜索,处理精确的关键词匹配。当你想找包含特定变量名或函数名的代码时,BM25 负责兜底。
最后是 Jina Reranker v2 对结果进行重排序,综合向量相似度和 BM25 分数,给出最相关的 Top-N 结果。
这套架构的关键在于权重配置:向量搜索权重和 BM25 权重的比例可以根据实际场景调整,而 Reranker 则确保最终结果既「语义相关」又「用词精确」。
第三层:语义分块(Semantic Chunking)
DeepContext 不会把文件按固定行数切块——它会识别代码的语义边界,在函数、类、模块的交界处切分,保留完整的代码单元。每个 chunk 还附带符号信息(属于哪个函数、来自哪个文件),搜索结果可以精确返回「那个函数的实现」而不是「包含那个函数名字的整段代码」。
第四层:增量索引(Incremental Indexing)
项目使用文件修改时间和 SHA-256 内容哈希来跟踪代码变化。只对内容发生变化的文件重新解析和嵌入,已索引的文件不会重复处理。这对大型代码库非常重要——每次运行 index this codebase 时,新增或修改的文件才需要处理。
DeepContext 提供了两种使用方式,对应不同的用户需求。
方式一:直接使用 Wildcard 云端服务(推荐新手)
这是最简单的方式:
claude mcp add deepcontext ...~/.codex/config.tomlindex this codebase,等待索引完成整个过程不需要任何代码改动,不需要 Docker,不需要理解向量数据库,5 分钟内就能在现有的 Claude Code 或 Codex 环境中用起来。
方式二:自托管部署(适合有技术背景的用户)
如果你不想依赖 Wildcard 的云端服务,可以自建后端。官方代码仓里包含一个完整的 backend/ 目录,使用 Prisma + PostgreSQL 管理 API key 和限流逻辑,支持 Turbopuffer 和 Jina AI 的自部署。
自托管的前提条件是:你需要有自己的 Turbopuffer API Key(向量存储)和 Jina AI API Key(嵌入生成)。后端本身是一个 Express/TypeScript 服务,数据库迁移通过 Prisma 完成。
不过值得注意的是,自托管方案目前无法完全脱离 Wildcard 的前端服务——README 明确说明,自托管需要修改代码以直接对接向量存储和嵌入服务,不是一个开箱即用的选项。
DeepContext 最适合以下场景:大型代码库(1万行以上)、多模块项目(跨文件调用关系复杂)、需要 AI 频繁理解代码上下文的工作流。当你的项目规模较小、文件结构简单时,普通的文本搜索就足够用了,DeepContext 的优势不明显。
项目目前支持 TypeScript 和 Python,对其他语言的支持还未实现。如果你主要用 Go、Rust 或 Java,短期内无法使用这个工具。另外,产品目前处于早期阶段,README 明确表示暂不接受外部贡献——团队专注快速迭代,这既是好事(更新快),也意味着 API 和行为可能发生变化。
DeepContext 的出现反映了 AI 编程工具领域的一个趋势:从「对话生成」向「上下文感知」演进。
Model Context Protocol(MCP)是 Anthropic 提出的标准化协议,让 AI 工具能够通过统一接口访问外部数据源和工具。DeepContext 的核心价值在于,它让 MCP 服务器具备了真正的代码理解能力,而不只是文件读写能力。
随着 MCP 生态的扩展,未来会有更多工具(不仅仅是 Claude Code 和 Codex)接入 MCP 协议。DeepContext 的架构——AST 解析 + 混合搜索 + 增量索引——为这类代码理解需求提供了一个可参考的技术范本。它展示了如何将传统软件工程工具(Tree-sitter、向量数据库、全文搜索)与现代 AI 技术(Reranker、语义嵌入)结合起来,服务于编程辅助场景。
从增长角度看,DeepContext 的 GitHub stars 在近期稳定上升,月增长率约 10.24%——虽然绝对数字不大,但考虑到它面向的是一个相对垂直的受众(AI 编程工具用户),这个增速说明产品确实解决了真实痛点。