代码索引MCP
代码索引MCP是一个模型上下文协议服务器,它使大型语言模型(LLM)能够对项目目录中的代码进行索引、搜索和分析。
特性
- 索引和导航项目文件结构
- 在代码中搜索特定模式
- 获取详细的文件摘要
- 分析代码结构和复杂性
- 支持多种编程语言
- 项目设置的持久存储
安装
该项目使用uv进行环境管理和依赖安装。
- 确保您安装了Python 3.10或更高版本
- 安装uv(推荐):
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh- 获取代码:
# Clone the repository
git clone https://github.com/your-username/code-index-mcp.git用法
直接运行服务器
# Run directly with uv - no additional dependency installation needed
uv run run.pyUV将根据项目的配置自动处理所有依赖项安装。
与Claude Desktop集成
您可以轻松地将代码索引MCP与Claude Desktop集成:
- 确保已安装UV(请参阅上面的安装部分)
- 查找或创建Claude Desktop配置文件:
- 窗户: %APPDATA%\Claude\claude_desktop_config.json - macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
- 添加以下配置(替换为实际路径):
对于Windows:
{
"mcpServers": {
"code-indexer": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\username\\path\\to\\code-index-mcp",
"run",
"run.py"
]
}
}
}适用于macOS/Linux:
{
"mcpServers": {
"code-indexer": {
"command": "uv",
"args": [
"--directory",
"/home/username/path/to/code-index-mcp",
"run",
"run.py"
]
}
}
}备注:The --directory 选项很重要,因为它确保uv在正确的项目目录中运行,并且可以正确加载所有依赖项。
- 重新启动Claude Desktop以使用代码索引器分析代码项目
无需手动安装依赖关系-运行服务器时,UV将自动处理所有依赖关系。
基本工作流程
- 设置项目路径 (必需的第一步):
- 首次使用时,必须设置要分析的项目路径 - 通过Claude命令:“我需要分析一个项目,帮助我设置项目路径” - 提供完整的项目目录路径
- 代码搜索:
- 搜索特定关键字或模式:“在项目中搜索‘函数名称’” - 按文件类型筛选:“在所有.py文件中搜索‘import’”
- 文件分析:
- 分析特定文件:“分析文件src/main.py” - 获取文件摘要:“给我一个utils/helpers.js中的函数列表”
- 项目导航:
- 查看项目结构:“显示此项目的结构” - 查找与特定模式匹配的文件:“查找所有test\_\*.py文件”
技术细节
永久存储
所有索引和设置数据都存储在 .code_indexer 项目目录中的文件夹:
config.json:项目配置信息file_index.pickle:文件索引数据content_cache.pickle:文件内容缓存
这确保了整个项目在每次使用时都不需要重新索引。
UV依赖管理
代码索引MCP使用UV进行依赖关系管理,这提供了几个优点:
- 根据项目需求自动解决依赖关系
- 更快的软件包安装和环境设置
- 通过锁文件实现一致的依赖版本
支持的文件类型
目前支持以下文件类型用于索引和分析:
- Python(.py)
- JavaScript/TTypeScript(.js、.ts、.jsx、.tsx)
- Java(.Java)
- C/C++(.C、.cpp、.h、.hpp)
- C#(.cs)
- 去(.去)
- Ruby(.rb)
- PHP(.PHP)
- Swift(.Swift)
- 科特林(.kt)
- 锈蚀(.rs)
- Scala(.scale)
- Shell(.sh、.bash)
- HTML/CSS(.HTML、.CSS、.scs)
- Markdown(.md)
- JSON(.JSON)
- XML(.XML)
- YAML(.yml,.YAML)
安全考虑
- 文件路径验证可防止目录遍历攻击
- 不允许绝对路径访问
- 必须显式设置项目路径,没有默认值
- 这
.code_indexer文件夹包括.gitignore防止提交索引数据的文件
贡献
欢迎通过问题或拉取请求来添加新功能或修复错误。
______________________________________________________________________
*有关中文文档,请参阅 README_zh.md.*
