大型语言模型的智能代码索引和分析
通过高级搜索、分析和导航功能,改变AI理解你的代码库的方式。
</div> <a href="https://glama.ai/mcp/servers/@johnhuang316/code-index-mcp"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=449881589,2432499237&fm=3081&app=3081&f=PNG?w=760&h=400" alt="code-index-mcp MCP server" /> </a>Code Index 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文件
搜索“认证”函数
分析主App.tsx文件
如果你使用 --project-path 启动,可以跳过上述第一个命令 - 服务器已经知道项目位置。
如果你正在使用 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"]
你可以追加
--project-path C:/absolute/path/to/repo到args列表中,以便在启动时自动设置项目(与运行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 run fastmcp.json 通过 FastMCP 启动服务器,使用正确的源入口点和依赖元数据。传递 --project-path(或启动后调用 set_project_path 工具),以便索引针对正确的仓库。.well-known/mcp.json 来分享符合标准的 MCP 清单。支持 .well-known 约定的客户端(如 Claude Desktop, Codex CLI)可以直接导入此文件,而不是手动创建配置。.well-known/mcp.llmfeed.json。它引用相同的 code-index 服务器定义以及文档/源链接,有助于注册表自动呈现描述、标签和功能。分享清单时,请提醒消费者提供 --project-path(或调用 set_project_path),以便服务器索引预期的仓库。
代码审查:"查找所有使用旧API的地方"
重构帮助:"这个函数在哪里被调用?"
学习项目:"展示这个React项目的主组件"
调试:"搜索所有与错误处理相关的代码"
build_deep_index 后,深入洞察结构、导入、类、方法和复杂度指标.jsp, .jspx, .jspf, .tag, .tagx),Grails/GSP(.gsp),Gradle & Groovy 构建(.gradle, .groovy),.properties 和 Protocol Buffers(.proto)具有专用树形解析器的语言:
.py, .pyw) - 完整的AST分析,包括类/方法提取和调用跟踪.js, .jsx, .mjs, .cjs) - 使用树形解析器解析ES6+ 类和函数.ts, .tsx) - 完整的类型感知符号提取,包括接口.java) - 完整的类层次结构、方法签名和调用关系.go) - 结构方法、接收器类型和函数分析.m, .mm) - 类/实例方法区分,使用 +/- 符号.zig, .zon) - 使用树形解析器解析函数和结构所有其他编程语言: 所有其他编程语言使用 FallbackParsingStrategy,提供基本文件索引和元数据提取。这包括:
.c, .cpp, .h, .hpp),Rust(.rs).cs),Kotlin(.kt),Scala(.scala),Swift(.swift).rb),PHP(.php),Shell(.sh, .bash)框架及库:
.vue).svelte).astro)样式:
.css, .scss, .less, .sass, .stylus, .styl).html)模板:
.hbs, .handlebars).ejs).pug).ftl).mustache).liquid).erb)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).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 install code-index-mcp
然后配置:
{
"mcpServers": {
"code-index": {
"command": "code-index-mcp",
"args": []
}
}
}
</details>
| 工具 | 描述 |
|---|---|
set_project_path | 初始化项目目录的索引 |
refresh_index | 在文件更改后重新构建浅层文件索引 |
build_deep_index | 生成用于深度分析的完整符号索引 |
get_settings_info | 查看当前项目配置和状态 |
运行 build_deep_index 以获取符号级别数据;默认浅层索引支持快速文件发现。
| 工具 | 描述 |
|---|---|
search_code_advanced | 使用正则表达式、模糊匹配、文件过滤和分页结果(默认每页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。
使用正则表达式搜索所有匹配 "get.*Data" 的函数调用
找到:getData(),getUserData(),getFormData() 等。
使用模糊搜索查找与认证相关的函数 '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 验证监控是否处于活动状态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
欢迎贡献!请随时提交拉取请求。