code-index-mcp
code-index-mcp 是一款基于模型上下文协议(MCP)的智能服务工具,旨在帮助大语言模型轻松理解、索引和分析复杂的代码仓库。它解决了 AI 在面对大型项目时难以全面掌握代码结构、定位特定功能或进行深度分析的痛点,让 AI 助手能像资深开发者一样快速导航和解读你的代码库。
这款工具特别适合软件开发者、技术团队以及需要处理代码审查、重构、文档生成或架构分析的研究人员使用。只需极简的配置,即可让 AI 获得强大的代码搜索与分析能力。
其核心亮点在于“开箱即用”的便捷性与深度的代码理解力。用户无需编写复杂脚本,通过简单的命令行参数或配置文件,即可将本地项目路径映射给 AI。code-index-mcp 支持智能索引和高级搜索,能精准查找特定类型的文件(如所有 TypeScript 文件)或函数逻辑(如认证相关功能),并能对具体文件进行详细剖析。无论是日常调试、辅助编程还是系统架构梳理,它都能显著提升人机协作的效率,让大模型真正成为懂你代码的得力助手。
使用场景
资深后端工程师李工正接手一个遗留的百万行代码微服务项目,急需在两天内理清复杂的认证逻辑以便进行安全重构。
没有 code-index-mcp 时
- 盲目搜索效率低:只能依赖 IDE 全局文本搜索,面对大量同名函数和注释干扰,难以精准定位核心业务逻辑。
- 上下文理解断裂:大模型因无法读取完整仓库结构,常产生“幻觉”,给出的修改建议往往忽略跨文件依赖,导致编译失败。
- 人工梳理耗时久:为了搞清楚一个接口的调用链路,需要手动打开十几个文件逐行追踪,耗费数小时绘制调用图。
- 重构风险不可控:由于缺乏全局视角,不敢轻易改动底层公共模块,担心引发未知的连锁反应。
使用 code-index-mcp 后
- 语义级精准定位:直接让 AI“查找所有处理 OAuth2 令牌刷新的函数”,code-index-mcp 瞬间索引全库并返回精确的代码位置,无视无关噪声。
- 全局感知更智能:AI 通过 MCP 协议实时获取项目拓扑,提出的重构方案自动适配现有接口定义,确保跨文件调用的完整性。
- 自动化链路分析:输入“分析用户登录流程”,工具立即生成从网关到数据库的完整调用链摘要,将数小时的工作压缩至几分钟。
- 安全重构有底气:基于准确的依赖分析,AI 能预先警告哪些修改会影响下游服务,让重构过程可控且安心。
code-index-mcp 通过将静态代码库转化为大模型可理解的动态上下文,彻底消除了 AI 辅助编程时的“盲区”,让复杂系统的维护变得像对话一样简单。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明(文档提及针对大型代码库进行了内存优化)

快速开始
代码索引 MCP
概述
代码索引 MCP 是一个 Model Context Protocol 服务器,它弥合了 AI 模型与复杂代码库之间的鸿沟。它提供智能索引、高级搜索功能以及详细的代码分析,以帮助 AI 助手有效地理解和导航您的项目。
非常适合: 代码审查、重构、文档生成、调试辅助以及架构分析。
快速入门
🚀 推荐设置(大多数用户)
开始使用任何兼容 MCP 的应用程序最简单的方法:
先决条件: Python 3.10+ 和 uv
添加到您的 MCP 配置(例如
claude_desktop_config.json或~/.claude.json):{ "mcpServers": { "code-index": { "command": "uvx", "args": ["code-index-mcp"] } } }可选:在
args数组中追加--project-path /absolute/path/to/repo,使服务器自动初始化该仓库(等同于启动后调用set_project_path)。重启您的应用程序 –
uvx会自动处理安装和执行开始使用(向您的 AI 助手提供以下提示):
将项目路径设置为 /Users/dev/my-react-app 查找该项目中的所有 TypeScript 文件 搜索“authentication”函数 分析主 App.tsx 文件如果您使用
--project-path启动,则可以跳过上述第一条命令——服务器已经知道项目位置。
Codex CLI 配置
如果您使用 Anthropic 的 Codex CLI,请将服务器添加到 ~/.codex/config.toml。在 Windows 上,该文件位于 C:\Users\<you>\.codex\config.toml:
[mcp_servers.code-index]
type = "stdio"
command = "uvx"
args = ["code-index-mcp"]
您可以在
args列表中追加--project-path C:/absolute/path/to/repo,以便在启动时自动设置项目(效果与运行set_project_path工具相同)。
在 Windows 上,uvx 需要标准的配置文件目录存在。请在同一块中保留环境变量覆盖,以确保 MCP 能够可靠启动:
env = {
HOME = "C:\\Users\\<you>",
APPDATA = "C:\\Users\\<you>\\AppData\\Roaming",
LOCALAPPDATA = "C:\\Users\\<you>\\AppData\\Local",
SystemRoot = "C:\\Windows"
}
Linux 和 macOS 已经暴露了所需的 XDG 路径和 HOME,因此通常可以省略这里的 env 表格。仅当您在受限容器内运行 CLI 时才需要添加覆盖。
FastMCP & 发现清单
- 运行
fastmcp run fastmcp.json,通过 FastMCP 启动服务器,使用正确的源入口点和依赖项元数据。传递--project-path(或在启动后调用set_project_path工具),以便索引针对正确的仓库进行构建。 - 提供或复制
.well-known/mcp.json,以共享符合标准的 MCP 清单。支持.well-known约定的客户端(例如 Claude Desktop、Codex CLI)可以直接导入此文件,而无需手动创建配置。 - 当您希望公开更丰富的 LLM Feed 元数据时,发布
.well-known/mcp.llmfeed.json。它引用相同的code-index服务器定义以及文档/源链接,这有助于注册表自动呈现描述、标签和功能。
在分享这些清单时,请提醒使用者提供 --project-path(或调用 set_project_path),以便服务器索引到预期的仓库。
典型用例
代码审查:“找出所有使用旧 API 的地方”
重构帮助:“这个函数在哪里被调用?”
学习项目:“给我看看这个 React 项目的主组件”
调试:“搜索所有与错误处理相关的代码”
核心功能
🔍 智能搜索与分析
- 双策略架构:针对 10 种核心语言的专业 tree-sitter 解析,对 50 多种文件类型采用回退策略
- 直接 tree-sitter 集成:对于专业语言不使用正则表达式回退——快速失败并显示清晰错误
- 高级搜索:自动检测并使用最佳可用工具(ugrep、ripgrep、ag 或 grep)
- 通用文件支持:从高级 AST 解析到基本文件索引,覆盖全面
- 文件分析:运行
build_deep_index后,可深入了解结构、导入、类、方法以及复杂度指标
🗂️ 多语言支持
- 10 种使用 tree-sitter AST 解析的语言:Python、JavaScript、TypeScript、Java、Kotlin、C#、Go、Objective-C、Zig、Rust
- 50 多种使用回退策略的文件类型:C/C++、Ruby、PHP,以及其他所有编程语言
- 文档与配置文件:Markdown、JSON、YAML、XML,并进行适当处理
- Web 前端:Vue、React、Svelte、HTML、CSS、SCSS
- Java Web 与构建:JSP/Tag 文件(
.jsp、.jspx、.jspf、.tag、.tagx)、Grails/GSP(.gsp)、Gradle & Groovy 构建(.gradle、.groovy)、.properties以及 Protocol Buffers(.proto) - 数据库:SQL 变体、NoSQL、存储过程、迁移
- 配置:JSON、YAML、XML、Markdown
- 查看完整列表
⚡ 实时监控与自动刷新
- 文件监视器:文件更改时自动更新索引
- 跨平台:原生操作系统文件系统监控
- 智能处理:批量处理快速变化,防止过度重建
- 浅层索引刷新:监视文件变化并保持文件列表最新;当需要符号元数据时再进行深度重建
⚡ 性能与效率
- Tree-sitter AST 解析:原生语法解析,用于准确提取符号
- 持久化缓存:存储索引,以便后续访问速度极快
- 智能过滤:智能排除构建目录和临时文件
- 内存高效:针对大型代码库优化
- 直接依赖:无回退机制——快速失败并显示清晰错误信息
支持的文件类型
📁 编程语言(点击展开)
具有专用 Tree-sitter 策略的语言:
- Python(
.py、.pyw) - 全面的 AST 分析,支持类/方法提取和调用跟踪 - JavaScript(
.js、.jsx、.mjs、.cjs) - 使用 Tree-sitter 解析 ES6+ 的类和函数 - TypeScript(
.ts、.tsx) - 完整的类型感知符号提取,包括接口 - Java(
.java) - 完整的类层次结构、方法签名及调用关系 - Kotlin(
.kt、.kts) - 包感知的符号提取,包含方法和调用关系 - C#(
.cs) - 命名空间感知的类型/成员提取,支持调用关系 - Go(
.go) - 结构体方法、接收者类型及函数分析 - Rust(
.rs) - 函数、模块感知的命名、impl 方法、结构体/枚举/特质,以及基础的调用关系 - Objective-C(
.m、.mm) - 区分类方法与实例方法,使用+/-符号表示 - Zig(
.zig、.zon) - 使用 Tree-sitter AST 解析函数和结构体
其他所有编程语言: 所有其他编程语言均使用 FallbackParsingStrategy,提供基础的文件索引和元数据提取。其中包括:
- 系统与底层: C/C++(
.c、.cpp、.h、.hpp) - 面向对象: Scala(
.scala)、Swift(.swift) - 脚本与动态: Ruby(
.rb)、PHP(.php)、Shell(.sh、.bash) - 以及其他 40 多种文件类型 - 均通过后备策略进行基础索引处理
🌐 Web 与前端(点击展开)
框架与库:
- Vue(
.vue) - Svelte(
.svelte) - Astro(
.astro)
样式:
- CSS(
.css、.scss、.less、.sass、.stylus、.styl) - HTML(
.html)
模板:
- Handlebars(
.hbs、.handlebars) - EJS(
.ejs) - Pug(
.pug) - FreeMarker(
.ftl) - Mustache(
.mustache) - Liquid(
.liquid) - ERB(
.erb)
🗄️ 数据库与 SQL(点击展开)
SQL 变体:
- 标准 SQL(
.sql、.ddl、.dml) - 数据库特定格式(
.mysql、.postgresql、.psql、.sqlite、.mssql、.oracle、.ora、.db2)
数据库对象:
- 存储过程与函数(
.proc、.procedure、.func、.function) - 视图与触发器(
.view、.trigger、.index)
迁移与工具:
- 迁移文件(
.migration、.seed、.fixture、.schema) - 工具专用格式(
.liquibase、.flyway)
NoSQL 与现代数据库:
- 图数据库与查询语言(
.cql、.cypher、.sparql、.gql)
📄 文档与配置(点击展开)
- Markdown(
.md、.mdx) - 配置文件(
.json、.xml、.yml、.yaml、.properties)
🛠️ 开发设置
如需贡献或本地开发:
克隆并安装:
git clone https://github.com/johnhuang316/code-index-mcp.git cd code-index-mcp uv sync配置本地开发环境:
{ "mcpServers": { "code-index": { "command": "uv", "args": ["run", "code-index-mcp"] } } }使用 MCP Inspector 调试:
npx @modelcontextprotocol/inspector uv run code-index-mcp
替代方案:手动 pip 安装
如果您更倾向于传统的 pip 管理方式:
pip install code-index-mcp
然后配置:
{
"mcpServers": {
"code-index": {
"command": "code-index-mcp",
"args": []
}
}
}
可用工具
🏗️ 项目管理
| 工具 | 描述 |
|---|---|
set_project_path |
初始化项目目录的索引 |
refresh_index |
文件变更后重建浅层文件索引 |
build_deep_index |
生成深度分析使用的完整符号索引 |
get_settings_info |
查看当前项目配置和状态 |
当需要符号级数据时,请运行 build_deep_index;默认的浅层索引则用于快速文件发现。
🔍 搜索与发现
| 工具 | 描述 |
|---|---|
search_code_advanced |
智能搜索,默认按字面匹配,可选 regex=True、模糊匹配、文件过滤及分页结果(默认每页 10 条);正则模式需要原生搜索工具,因为基础后备策略仅支持字面匹配 |
find_files |
使用 glob 模式查找文件(例如 **/*.py) |
get_file_summary |
分析文件结构、函数、导入及复杂度(需深索引) |
🔄 监控与自动刷新
| 工具 | 描述 |
|---|---|
get_file_watcher_status |
检查文件监视器的状态和配置 |
configure_file_watcher |
启用/禁用自动刷新并配置相关设置 |
🛠️ 系统与维护
| 工具 | 描述 |
|---|---|
create_temp_directory |
设置索引数据的存储目录 |
check_temp_directory |
验证索引存储位置及权限 |
clear_settings |
重置所有缓存数据和配置 |
refresh_search_tools |
重新检测可用的搜索工具(ugrep、ripgrep 等) |
使用示例
🎯 快速入门流程
1. 初始化项目
将项目路径设置为 /Users/dev/my-react-app
自动索引您的代码库,并创建可搜索的缓存
2. 探索项目结构
查找 src/components 目录下的所有 TypeScript 组件文件
使用:find_files,模式为 src/components/**/*.tsx
3. 分析关键文件
请给我 src/api/userService.ts 的概要信息
使用:get_file_summary 显示函数、导入和复杂度
提示:如果收到 needs_deep_index 的响应,请先运行 build_deep_index。
🔍 高级搜索示例
代码模式搜索
使用 `regex=True` 搜索所有匹配 "get.*Data" 的函数调用
匹配结果:getData()、getUserData()、getFormData() 等。正则表达式搜索需要显式启用;请安装原生搜索工具并使用 regex=True,因为基础的回退行为仅支持字面量匹配。
模糊函数搜索
通过模糊搜索查找与认证相关的函数 'authUser'
匹配结果:authenticateUser、authUserToken、userAuthCheck 等。
特定语言搜索
仅在 Python 文件中搜索 "API_ENDPOINT"
使用:search_code_advanced 进行字面量匹配,并设置 file_pattern: "*.py"(默认返回 10 条结果;可通过 max_results 扩展或 start_index 进行分页)。
自动刷新配置
配置文件更改时自动更新索引
使用:configure_file_watcher 启用/禁用监控,并设置防抖延迟时间。
项目维护
我添加了新组件,请刷新项目索引。
使用:refresh_index 更新可搜索缓存。
故障排除
🔄 自动刷新未生效
如果文件更改时自动索引更新未生效,请尝试:
pip install watchdog(可能解决环境隔离问题)- 使用手动刷新:在修改文件后调用
refresh_index工具 - 检查文件监视器状态:使用
get_file_watcher_status验证监控是否已启用
macOS 文件监视选项
默认的 FSEvents 监视器适用于大多数项目。若遇到问题,可通过 configure_file_watcher 切换到其他监视器:
"auto"(默认):平台默认(macOS 上为 FSEvents)"kqueue":Kqueue 监视器(macOS/BSD)"fsevents":强制使用 FSEvents(仅限 macOS)"polling":跨平台轮询后备方案
注意:Kqueue 每个被监视的文件会占用一个文件描述符。对于大型项目,若使用 Kqueue,可能需要提高限制:ulimit -n 10240
开发与贡献
🔧 从源码构建
git clone https://github.com/johnhuang316/code-index-mcp.git
cd code-index-mcp
uv sync
uv run code-index-mcp
🐛 调试
npx @modelcontextprotocol/inspector uvx code-index-mcp
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
📜 许可证
🌐 翻译
版本历史
v2.15.02026/04/03v2.14.22026/03/23v2.14.12026/03/21v2.14.02026/03/02v2.13.02026/01/09v2.12.02026/01/09v2.11.02025/12/30v2.10.02025/12/18v2.9.42025/11/27v2.9.32025/11/26v2.9.22025/11/20v2.9.12025/11/12v2.9.02025/11/10v2.8.12025/11/10v2.8.02025/11/05v2.7.02025/10/30v2.6.02025/10/29v2.5.12025/10/29v2.5.02025/10/28v2.4.12025/10/03常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备