代码索引分析服务

Code Index MCP是一个模型上下文协议服务器,使大型语言模型能够索引、搜索和分析项目目录中的代码。

  • by BangNGH
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bangngh/github-code-index-mcp-server

使用说明

代码索引MCP

代码索引MCP是一个模型上下文协议服务器,它使大型语言模型(LLM)能够对项目目录中的代码进行索引、搜索和分析。

特性

  • 索引和导航项目文件结构
  • 在代码中搜索特定模式
  • 获取详细的文件摘要
  • 分析代码结构和复杂性
  • 支持多种编程语言
  • 项目设置的持久存储

安装

该项目使用uv进行环境管理和依赖安装。

  1. 确保您安装了Python 3.10或更高版本

  2. 安装uv(推荐):

    # Windows
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  3. 获取代码:

    # 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.py

UV将根据项目的配置自动处理所有依赖项安装。

与Claude Desktop集成

您可以轻松地将代码索引MCP与Claude Desktop集成:

  1. 确保已安装UV(请参阅上面的安装部分)

  2. 查找或创建Claude Desktop配置文件:

    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. 添加以下配置(替换为实际路径):

    对于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在正确的项目目录中运行,并且可以正确加载所有依赖项。

  4. 重新启动Claude Desktop以使用代码索引器分析代码项目

无需手动安装依赖关系-运行服务器时,UV将自动处理所有依赖关系。

基本工作流程

  1. 设置项目路径 (必需的第一步):

    • 首次使用时,必须设置要分析的项目路径
    • 通过Claude命令:“我需要分析一个项目,帮助我设置项目路径”
    • 提供完整的项目目录路径
  2. 代码搜索:

    • 搜索特定关键字或模式:“在项目中搜索‘函数名称’”
    • 按文件类型筛选:“在所有.py文件中搜索‘import’”
  3. 文件分析:

    • 分析特定文件:“分析文件src/main.py”
    • 获取文件摘要:“给我一个utils/helpers.js中的函数列表”
  4. 项目导航:

    • 查看项目结构:“显示此项目的结构”
    • 查找与特定模式匹配的文件:“查找所有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.