智能代码分析服务器

CodeInteliMCP是一个结合Tree-sitter解析、图数据库和向量搜索的高级代码智能分析服务器,支持多仓库管理和实时代码分析。

  • by rahulvgmail
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 rahulvgmail/CodeInteliMCP

使用说明

CodeInteliMCP-智能代码分析服务器

一种先进的MCP(模型上下文协议)服务器,它将树保姆解析与图形数据库和向量搜索相结合,在多个存储库中实现闪电般快速的代码智能。

🚀 特性

  • 多存储库支持:同时管理和分析多个代码库
  • 即时使用情况搜索:查找函数/类的使用位置(以毫秒为单位)
  • 语义代码搜索:使用向量嵌入查找类似的代码模式
  • 相关性分析:可视化和查询代码依赖关系
  • 影响分析:看看当你改变一些东西时,会发生什么
  • 自动索引:编写代码时智能增量更新
  • 多语言支持:Python、JavaScript、TypeScript、Go、Rust等

🏗 建筑

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Claude Code    │────▶│   MCP Server     │────▶│   Tree-sitter   │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │                           │
                               ▼                           ▼
                        ┌──────────────┐          ┌────────────────┐
                        │  DuckDB      │          │  ChromaDB      │
                        │  (Graph)     │          │  (Vectors)     │
                        └──────────────┘          └────────────────┘

🎯 核心能力

1.图形查询(通过DuckDB)

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

2.矢量搜索(通过ChromaDB)

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

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

  • 按需解析
  • 语法验证
  • 代码结构分析
  • AST操纵

🚦 快速开始

自动设置(推荐)

# Clone the repository
git clone https://github.com/rahulvgmail/CodeInteliMCP.git
cd CodeInteliMCP

# Run the setup script
python setup_for_claude.py

安装脚本将:

  • 安装所有依赖项
  • 配置Claude桌面/代码
  • 创建数据目录
  • 设置环境变量

手动设置

# Install dependencies
pip install mcp duckdb chromadb sentence-transformers aiofiles
pip install tree-sitter tree-sitter-python tree-sitter-javascript

# Add to Claude Desktop config (~/.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 (string,必填):要索引的文件的路径
  • find_symbol -按名称查找符号

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

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

    • query (字符串,必填):自然语言搜索查询
    • limit (整数,可选):最大结果数(默认值:10)
    • symbol_types (字符串,可选):以逗号分隔的要筛选的符号类型列表
  • find_similar_code -查找与给定符号类似的代码

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

系统工具

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

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

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

📖 使用示例

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

# Add a new repository
add_repository(name="my-app", path="/path/to/my-app", description="Main application")

# Index the repository
index_repository(repository_name="my-app", include_patterns="**/*.py,**/*.js")

# Search for authentication functions
semantic_search(query="authentication and login functions", limit=20)

# Find where a class is used
find_usages(name="UserService")

# Find similar implementations
find_similar_code(symbol_name="login_user")

📚 文档

📊 绩效目标

  • 初始索引:100k LOC小于1分钟
  • 增量更新:每个文件<1秒
  • 使用查询:<50ms
  • 语义搜索:<200ms