返回市场
代码索引MCP

代码索引MCP

作者:johnhuang316563 星标更新:2025-11-20

项目介绍

Code Index MCP

<div align="center">

MCP Server Python License

大型语言模型的智能代码索引和分析

通过高级搜索、分析和导航功能,改变AI理解你的代码库的方式。

</div> <a href="https://glama.ai/mcp/servers/@johnhuang316/code-index-mcp"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=449881589,2432499237&fm=3081&app=3081&f=PNG?w=760&h=400" alt="code-index-mcp MCP server" /> </a>

概览

Code Index MCP 是一个 Model Context Protocol 服务器,它弥合了AI模型与复杂代码库之间的差距。它提供了智能索引、高级搜索能力和详细的代码分析,帮助AI助手有效地理解和导航你的项目。

适用于: 代码审查、重构、文档生成、调试辅助和架构分析。

快速开始

🚀 推荐设置(大多数用户)

使用任何兼容MCP的应用程序最简单的方法:

前提条件: Python 3.10+ 和 uv

  1. 添加到你的MCP配置(例如,claude_desktop_config.json~/.claude.json):

    {
      "mcpServers": {
        "code-index": {
          "command": "uvx",
          "args": ["code-index-mcp"]
        }
      }
    }
    

    可选:在 args 数组中追加 --project-path /absolute/path/to/repo,以便服务器自动初始化该仓库(相当于启动后调用 set_project_path)。

  2. 重启你的应用程序uvx 自动处理安装和执行

  3. 开始使用(给这些提示给你的AI助手):

    将项目路径设置为 /Users/dev/my-react-app
    查找该项目中的所有TypeScript文件
    搜索“认证”函数
    分析主App.tsx文件
    

    如果你使用 --project-path 启动,可以跳过上述第一个命令 - 服务器已经知道项目位置。

Codex CLI 配置

如果你正在使用 Anthropic 的 Codex CLI,请将服务器添加到 ~/.codex/config.toml。 在 Windows 上,文件位于 C:\Users\<you>\.codex\config.toml

[mcp_servers.code-index]
type = "stdio"
command = "uvx"
args = ["code-index-mcp"]

你可以追加 --project-path C:/absolute/path/to/repoargs 列表中,以便在启动时自动设置项目(与运行 set_project_path 工具效果相同)。

在 Windows 上,uvx 需要标准配置文件目录存在。 在同一块中保持环境覆盖,以确保 MCP 可靠启动:

env = {
  HOME = "C:\\Users\\<you>",
  APPDATA = "C:\\Users\\<you>\\AppData\\Roaming",
  LOCALAPPDATA = "C:\\Users\\<you>\\AppData\\Local",
  SystemRoot = "C:\\Windows"
}

Linux 和 macOS 已经暴露了所需的 XDG 路径和 HOME,因此通常可以省略 env 表。 仅当在受限容器内运行 CLI 时才添加覆盖。

FastMCP & 发现清单

  • 运行 fastmcp run fastmcp.json 通过 FastMCP 启动服务器,使用正确的源入口点和依赖元数据。传递 --project-path(或启动后调用 set_project_path 工具),以便索引针对正确的仓库。
  • 提供或复制 .well-known/mcp.json 来分享符合标准的 MCP 清单。支持 .well-known 约定的客户端(如 Claude Desktop, Codex CLI)可以直接导入此文件,而不是手动创建配置。
  • 当你想公开更丰富的 LLM Feed 元数据时,发布 .well-known/mcp.llmfeed.json。它引用相同的 code-index 服务器定义以及文档/源链接,有助于注册表自动呈现描述、标签和功能。

分享清单时,请提醒消费者提供 --project-path(或调用 set_project_path),以便服务器索引预期的仓库。

典型用例

代码审查:"查找所有使用旧API的地方"
重构帮助:"这个函数在哪里被调用?"
学习项目:"展示这个React项目的主组件"
调试:"搜索所有与错误处理相关的代码"

主要特性

🔍 智能搜索与分析

  • 双策略架构:7种核心语言的专用树形解析器,50多种文件类型的回退策略
  • 直接树形解析器集成:对于专用语言没有正则表达式回退 - 出错时快速失败并显示清晰错误
  • 高级搜索:自动检测并使用最佳可用工具(ugrep, ripgrep, ag, 或 grep)
  • 通用文件支持:从高级抽象语法树解析到基本文件索引的全面覆盖
  • 文件分析:在运行 build_deep_index 后,深入洞察结构、导入、类、方法和复杂度指标

🗂️ 多语言支持

  • 7种语言具有树形解析器:Python, JavaScript, TypeScript, Java, Go, Objective-C, Zig
  • 50多种文件类型具有回退策略:C/C++, Rust, Ruby, PHP 和其他编程语言
  • 文档及配置文件:Markdown, JSON, YAML, XML 适当处理
  • Web前端:Vue, React, Svelte, HTML, CSS, SCSS
  • Java Web & 构建:JSP/Tag 文件(.jsp, .jspx, .jspf, .tag, .tagx),Grails/GSP(.gsp),Gradle & Groovy 构建(.gradle, .groovy),.properties 和 Protocol Buffers(.proto
  • 数据库:SQL变体,NoSQL,存储过程,迁移
  • 配置:JSON, YAML, XML, Markdown
  • 查看完整列表

实时监控与自动刷新

  • 文件监视器:文件更改时自动更新索引
  • 跨平台:原生操作系统文件系统监控
  • 智能处理:批量快速更改以防止过度重建
  • 浅层索引刷新:监视文件更改并保持文件列表最新;需要符号元数据时运行深度重建

性能与效率

  • 树形解析器:原生语法解析以准确提取符号
  • 持久缓存:存储索引以实现闪电般快速的后续访问
  • 智能过滤:智能排除构建目录和临时文件
  • 内存高效:针对大型代码库进行优化
  • 直接依赖项:无回退机制 - 出错时快速失败并显示清晰错误信息

支持的文件类型

<details> <summary><strong>📁 编程语言(点击展开)</strong></summary>

具有专用树形解析器的语言:

  • Python.py, .pyw) - 完整的AST分析,包括类/方法提取和调用跟踪
  • JavaScript.js, .jsx, .mjs, .cjs) - 使用树形解析器解析ES6+ 类和函数
  • TypeScript.ts, .tsx) - 完整的类型感知符号提取,包括接口
  • Java.java) - 完整的类层次结构、方法签名和调用关系
  • Go.go) - 结构方法、接收器类型和函数分析
  • Objective-C.m, .mm) - 类/实例方法区分,使用 +/- 符号
  • Zig.zig, .zon) - 使用树形解析器解析函数和结构

所有其他编程语言: 所有其他编程语言使用 FallbackParsingStrategy,提供基本文件索引和元数据提取。这包括:

  • 系统及低级语言:C/C++(.c, .cpp, .h, .hpp),Rust(.rs
  • 面向对象语言:C#(.cs),Kotlin(.kt),Scala(.scala),Swift(.swift
  • 脚本及动态语言:Ruby(.rb),PHP(.php),Shell(.sh, .bash
  • 以及其他40多种文件类型 - 所有通过回退策略进行基本索引
</details> <details> <summary><strong>🌐 Web & 前端(点击展开)</strong></summary>

框架及库:

  • Vue(.vue
  • Svelte(.svelte
  • Astro(.astro

样式:

  • CSS(.css, .scss, .less, .sass, .stylus, .styl
  • HTML(.html

模板:

  • Handlebars(.hbs, .handlebars
  • EJS(.ejs
  • Pug(.pug
  • FreeMarker(.ftl
  • Mustache(.mustache
  • Liquid(.liquid
  • ERB(.erb
</details> <details> <summary><strong>🗄️ 数据库 & SQL(点击展开)</strong></summary>

SQL变体:

  • 标准SQL(.sql, .ddl, .dml
  • 数据库特定(.mysql, .postgresql, .psql, .sqlite, .mssql, .oracle, .ora, .db2

数据库对象:

  • 存储过程 & 函数(.proc, .procedure, .func, .function
  • 视图 & 触发器(.view, .trigger, .index

迁移 & 工具:

  • 迁移文件(.migration, .seed, .fixture, .schema
  • 工具特定(.liquibase, .flyway

NoSQL & 现代:

  • 图形 & 查询(.cql, .cypher, .sparql, .gql
</details> <details> <summary><strong>📄 文档 & 配置(点击展开)</strong></summary>
  • Markdown(.md, .mdx
  • 配置(.json, .xml, .yml, .yaml, .properties
</details>

🛠️ 开发设置

用于贡献或本地开发:

  1. 克隆并安装:

    git clone https://github.com/johnhuang316/code-index-mcp.git
    cd code-index-mcp
    uv sync
    
  2. 配置本地开发:

    {
      "mcpServers": {
        "code-index": {
          "command": "uv",
          "args": ["run", "code-index-mcp"]
        }
      }
    }
    
  3. 使用MCP Inspector调试:

    npx @modelcontextprotocol/inspector uv run code-index-mcp
    
<details> <summary><strong>替代方案:手动pip安装</strong></summary>

如果你偏好传统的pip管理:

pip install code-index-mcp

然后配置:

{
  "mcpServers": {
    "code-index": {
      "command": "code-index-mcp",
      "args": []
    }
  }
}
</details>

可用工具

🏗️ 项目管理

工具描述
set_project_path初始化项目目录的索引
refresh_index在文件更改后重新构建浅层文件索引
build_deep_index生成用于深度分析的完整符号索引
get_settings_info查看当前项目配置和状态

运行 build_deep_index 以获取符号级别数据;默认浅层索引支持快速文件发现。

🔍 搜索与发现

工具描述
search_code_advanced使用正则表达式、模糊匹配、文件过滤和分页结果(默认每页10个)的智能搜索
find_files使用glob模式定位文件(例如,**/*.py
get_file_summary分析文件结构、函数、导入和复杂度(需要深度索引)

🔄 监控与自动刷新

工具描述
get_file_watcher_status检查文件监视器状态和配置
configure_file_watcher启用/禁用自动刷新并配置设置

🛠️ 系统与维护

工具描述
create_temp_directory设置索引数据存储目录
check_temp_directory验证索引存储位置和权限
clear_settings重置所有缓存数据和配置
refresh_search_tools重新检测可用搜索工具(ugrep, ripgrep 等)

使用示例

🎯 快速开始工作流程

1. 初始化你的项目

将项目路径设置为 /Users/dev/my-react-app

自动索引你的代码库并创建可搜索缓存

2. 探索项目结构

查找 src/components 中的所有TypeScript组件文件

使用:find_files 与模式 src/components/**/*.tsx

3. 分析关键文件

给我 src/api/userService.ts 的摘要

使用:get_file_summary 显示函数、导入和复杂度 提示:如果收到 needs_deep_index 响应,请先运行 build_deep_index

🔍 高级搜索示例

<details> <summary><strong>代码模式搜索</strong></summary>
使用正则表达式搜索所有匹配 "get.*Data" 的函数调用

找到:getData()getUserData()getFormData() 等。

</details> <details> <summary><strong>模糊函数搜索</strong></summary>
使用模糊搜索查找与认证相关的函数 'authUser'

匹配:authenticateUserauthUserTokenuserAuthCheck 等。

</details> <details> <summary><strong>语言特定搜索</strong></summary>
仅在Python文件中搜索 "API_ENDPOINT"

使用:search_code_advanced 并设置 file_pattern: "*.py"(默认返回10个匹配项;使用 max_results 扩展或 start_index 分页)

</details> <details> <summary><strong>自动刷新配置</strong></summary>
配置文件更改时自动更新索引

使用:configure_file_watcher 启用/禁用监控并设置防抖时间

</details> <details> <summary><strong>项目维护</strong></summary>
我添加了新组件,请刷新项目索引

使用:refresh_index 更新可搜索缓存

</details>

故障排除

🔄 自动刷新不起作用

如果文件更改时自动索引更新不起作用,请尝试:

  • pip install watchdog(可能解决环境隔离问题)
  • 手动刷新:在更改文件后调用 refresh_index 工具
  • 检查文件监视器状态:使用 get_file_watcher_status 验证监控是否处于活动状态

开发与贡献

🔧 从源码构建

git clone https://github.com/johnhuang316/code-index-mcp.git
cd code-index-mcp
uv sync
uv run code-index-mcp

🐛 调试

npx @modelcontextprotocol/inspector uvx code-index-mcp

🤝 贡献

欢迎贡献!请随时提交拉取请求。


📜 许可证

MIT 许可证

🌐 翻译