一个生产就绪的 模型上下文协议 (MCP) 服务器,它革新了AI代理如何导航和理解代码库。AI代理无需反复扫描文件,即可即时访问智能描述、语义搜索和上下文感知建议。
MCP Code Indexer 解决了大型代码库中AI代理的一个关键问题:无需反复扫描文件就能理解代码结构。代理可以:
适用于AI驱动的代码审查、重构工具、文档生成和代码库分析工作流。
开始将MCP Code Indexer集成到您的AI代理工作流中:
# 安装包
pip install mcp-code-indexer
# 启动MCP服务器
mcp-code-indexer
# 连接您的MCP客户端并开始使用工具
# 查看API参考以获取完整的工具文档
部署并配置服务器供团队使用:
# 生产环境部署,自定义设置
mcp-code-indexer \
--token-limit 64000 \
--db-path /data/mcp-index.db \
--cache-dir /var/cache/mcp \
--log-level INFO
# 检查安装
mcp-code-indexer --version
新用户? 从这里开始:
pip install mcp-code-indexermcp-code-indexer --token-limit 32000check_codebase_size工具开发设置:
# 克隆并设置贡献环境
git clone https://github.com/fluffypony/mcp-code-indexer.git
cd mcp-code-indexer
# 以开发模式安装(必需)
pip install -e .
# 运行服务器
mcp-code-indexer --token-limit 32000
🚀 新功能:自动代码索引,结合AI驱动的分析!随着代码库的发展,自动同步文件描述。
# 设置OpenRouter API密钥
export OPENROUTER_API_KEY="sk-or-v1-your-api-key-here"
# 测试git钩子功能
mcp-code-indexer --githook
# 安装post-commit钩子
cp examples/git-hooks/post-commit .git/hooks/
chmod +x .git/hooks/post-commit
Git钩子集成为智能自动化提供支持:
💡 零手动工作:描述始终保持最新,无需任何努力 ⚡ 性能:仅分析更改的文件,而不是整个代码库 🔒 可靠性:强大的错误处理确保git操作不会失败 🎛️ 可配置性:支持自定义模型和超时设置
了解更多:参见Git Hook 设置指南,了解完整的配置选项和故障排除方法。
为MCP Code Indexer贡献?遵循这些步骤设置适当的开发环境:
# 设置开发环境
git clone https://github.com/fluffypony/mcp-code-indexer.git
cd mcp-code-indexer
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 以可编辑模式安装包(开发必需)
pip install -e .
# 安装开发依赖
pip install -e .[dev]
# 验证安装
python main.py --help
mcp-code-indexer --version
⚠️ 重要:可编辑安装(pip install -e .)是开发所必需的。项目使用标准的PyPI包结构,绝对导入如from mcp_code_indexer.database.database import DatabaseManager。如果没有可编辑安装,将会遇到ModuleNotFoundError异常。
# 激活虚拟环境
source venv/bin/activate
# 直接运行服务器
python main.py --token-limit 32000
# 或使用已安装的CLI命令
mcp-code-indexer --token-limit 32000
# 运行测试
python -m pytest tests/ -v
# 带覆盖率运行测试
python -m pytest tests/ --cov=src --cov-report=html
# 格式化代码
black src/ tests/
isort src/ tests/
# 类型检查
mypy src/
服务器提供了11个强大的MCP工具,用于智能代码库管理。无论是AI代理还是人类开发者,这些工具都能使代码导航变得轻松。
check_codebase_size - 获取即时推荐,了解如何导航您的代码库search_descriptions - 通过它们的功能查找文件,而不仅仅是名称get_codebase_overview - 获取任何项目的高层次理解get_file_description - 即时检索存储的文件描述update_file_description - 存储详细的文件摘要和元数据find_missing_descriptions - 扫描项目以查找没有描述的文件update_missing_descriptions - 批量更新多个文件描述get_all_descriptions - 完整的分层项目结构get_word_frequency - 技术词汇分析,带停用词过滤merge_branch_descriptions - 两阶段合并,带冲突解决update_codebase_overview - 创建全面的代码库文档💡 专业提示:始终从check_codebase_size开始,以获取针对特定代码库的个性化推荐。
在每次提交、rebase或合并时,自动同步代码库文档,进行分析:
# 分析当前暂存的变化
mcp-code-indexer --githook
# 分析特定提交
mcp-code-indexer --githook abc123def
# 分析提交范围(适合rebase)
mcp-code-indexer --githook abc123 def456
🎯 适用于:
参见**Git Hook 设置指南**,了解包括post-commit、post-merge和post-rewrite钩子在内的完整安装说明。
经过高达10,000个文件的代码库测试:
# 生产环境设置,自定义限制
mcp-code-indexer \
--token-limit 50000 \
--db-path /data/mcp-index.db \
--cache-dir /tmp/mcp-cache \
--log-level INFO
# 启用结构化日志
export MCP_LOG_FORMAT=json
mcp-code-indexer
# 示例:AI代理使用MCP工具
async def analyze_codebase(project_path):
# 检查代码库是否很大
size_info = await mcp_client.call_tool("check_codebase_size", {
"projectName": "my-project",
"folderPath": project_path,
"branch": "main"
})
if size_info["isLarge"]:
# 对于大型代码库使用搜索
results = await mcp_client.call_tool("search_descriptions", {
"projectName": "my-project",
"folderPath": project_path,
"branch": "main",
"query": "认证逻辑"
})
else:
# 对于较小的项目获取完整概览
overview = await mcp_client.call_tool("get_codebase_overview", {
"projectName": "my-project",
"folderPath": project_path,
"branch": "main"
})
# 示例:GitHub Actions集成
- name: 更新代码描述
run: |
python -c "
import asyncio
from mcp_client import MCPClient
async def update_descriptions():
client = MCPClient('mcp-code-indexer')
# 查找没有描述的文件
missing = await client.call_tool('find_missing_descriptions', {
'projectName': '${{ github.repository }}',
'folderPath': '.',
'branch': '${{ github.ref_name }}'
})
# 使用AI处理并更新...
asyncio.run(update_descriptions())
"
# 安装带测试依赖
pip install mcp-code-indexer[test]
# 运行完整测试套件
python -m pytest tests/ -v
# 带覆盖率运行测试
python -m pytest tests/ --cov=src --cov-report=html
# 运行性能测试
python -m pytest tests/ -m performance
# 仅运行集成测试
python -m pytest tests/integration/ -v
服务器提供结构化的JSON日志用于监控:
{
"timestamp": "2024-01-15T10:30:00Z",
"level": "INFO",
"message": "工具search_descriptions完成",
"tool_usage": {
"tool_name": "search_descriptions",
"success": true,
"duration_seconds": 0.045,
"result_size": 1247
}
}
mcp-code-indexer [OPTIONS]
选项:
--token-limit INT 推荐搜索前的最大令牌数(默认:32000)
--db-path PATH SQLite数据库路径(默认:~/.mcp-code-index/tracker.db)
--cache-dir PATH 缓存目录路径(默认:~/.mcp-code-index/cache)
--log-level LEVEL 日志级别:DEBUG|INFO|WARNING|ERROR|CRITICAL(默认:INFO)
mcp-code-indexer --githook [OPTIONS]
# 使用OpenRouter API自动分析git变更
# 需要:OPENROUTER_API_KEY环境变量
# 列出所有项目和分支
mcp-code-indexer --getprojects
# 直接执行MCP工具
mcp-code-indexer --runcommand '{"method": "tools/call", "params": {...}}'
# 导出项目的描述
mcp-code-indexer --dumpdescriptions PROJECT_ID [BRANCH]
准备好为您的AI代理提供智能代码库导航吗?
我们欢迎贡献!参见我们的**贡献指南**,了解:
MIT 许可证 - 详情见**LICENSE**。
转变您的AI代理对代码的理解方式! 🚀