返回市场
代码智能MCP

代码智能MCP

作者:rahulvgmail6 星标更新:2025-05-31

项目介绍

CodeInteliMCP - 智能代码分析服务器

一个高级的MCP(模型上下文协议)服务器,结合了Tree-sitter解析、图数据库和向量搜索功能,以实现跨多个存储库的快速代码智能。

🚀 特性

  • 多存储库支持:同时管理和分析多个代码库
  • 即时使用搜索:在毫秒内找到函数/类的使用位置
  • 语义代码搜索:使用向量嵌入查找相似的代码模式
  • 依赖关系分析:可视化并查询代码依赖关系
  • 影响分析:查看更改时哪些部分会受到影响
  • 自动索引:智能增量更新,随着编码进行
  • 多语言支持:Python、JavaScript、TypeScript、Go、Rust等

🏗 架构

┌─────────────────┐     ┌──────────────────┐     └─────────────────┐
│  Claude Code    │────▶│   MCP Server     │────▶│   Tree-sitter   │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │                           │
                               ▼                           ▼
                        ┌──────────────┐          ┌────────────────┐
                        │  DuckDB      │          │  ChromaDB      │
                        │  (图)        │          │  (向量)        │
                        └──────────────┘          └────────────────┘

🎯 核心能力

1. 图查询(通过DuckDB)

  • 函数调用关系
  • 导入依赖关系
  • 类继承树
  • 变量使用跟踪

2. 向量搜索(通过ChromaDB)

  • 语义代码相似度
  • 自然语言代码搜索
  • 模式检测
  • 代码重复查找

3. 实时分析(通过Tree-sitter)

  • 按需解析
  • 语法验证
  • 代码结构分析
  • 抽象语法树操作

🚦 快速开始

自动设置(推荐)

# 克隆仓库
git clone https://github.com/rahulvgmail/CodeInteliMCP.git
cd CodeInteliMCP

# 运行设置脚本
python setup_for_claude.py

设置脚本将:

  • 安装所有依赖项
  • 配置Claude Desktop/Code
  • 创建数据目录
  • 设置环境变量

手动设置

# 安装依赖项
pip install mcp duckdb chromadb sentence-transformers aiofiles
pip install tree-sitter tree-sitter-python tree-sitter-javascript

# 添加到Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
{
  "mcpServers": {
    "code-intelligence": {
      "command": "python",
      "args": ["/path/to/CodeInteliMCP/code_intelligence_mcp/server_minimal.py"],
      "env": {
        "CODE_INTEL_PROJECT_ROOT": "/path/to/your/project"
      }
    }
  }
}

🛠️ 可用工具

此MCP服务器提供以下工具:

存储库管理

  • add_repository - 添加一个新的存储库进行跟踪

    • name(字符串,必需):存储库名称
    • path(字符串,必需):存储库路径
    • description(字符串,可选):存储库描述
    • make_active(布尔值,可选):设为活动存储库
  • list_repositories - 列出所有已跟踪的存储库

  • set_active_repository - 设置操作的活动存储库

    • name(字符串,必需):要设为活动的存储库名称
  • index_repository - 索引整个存储库

    • repository_name(字符串,必需):要索引的存储库名称
    • include_patterns(字符串,可选):逗号分隔的文件模式包含列表
    • exclude_patterns(字符串,可选):逗号分隔的文件模式排除列表

代码分析

  • index_file - 将单个文件索引到代码图中

    • file_path(字符串,必需):要索引的文件路径
  • find_symbol - 按名称查找符号

    • name(字符串,必需):要搜索的符号名称
    • file_path(字符串,可选):限制搜索到特定文件
  • find_usages - 查找符号的所有使用情况

    • name(字符串,必需):要查找使用情况的符号名称
    • file_path(字符串,可选):限制搜索到特定文件
  • semantic_search - 使用语义相似性搜索代码

    • query(字符串,必需):自然语言搜索查询
    • limit(整数,可选):结果的最大数量(默认:1_0)
    • symbol_types(字符串,可选):逗号分隔的符号类型过滤列表
  • find_similar_code - 查找与给定符号相似的代码

    • symbol_name(字符串,必需):参考符号名称
    • file_path(字符串,可选):包含参考符号的文件

系统工具

  • test_connection - 测试服务器是否正常工作

  • get_index_stats - 获取当前索引统计信息

  • get_vector_stats - 获取向量存储统计信息

📖 使用示例

配置完成后,在Claude中使用这些工具:

# 添加新的存储库
add_repository(name="my-app", path="/path/to/my-app", description="主应用程序")

# 索引存储库
index_repository(repository_name="my-app", include_patterns="**/*.py,**/*.js")

# 搜索认证函数
semantic_search(query="认证和登录函数", limit=20)

# 查找类的使用位置
find_usages(name="UserService")

# 查找相似的实现
find_similar_code(symbol_name="login_user")

📚 文档

📊 性能目标

  • 初始索引:<1分钟处理10万行代码
  • 增量更新:<1秒每文件
  • 使用查询:<50毫秒
  • 语义搜索:<200毫秒