Claude-ast-index-search MCP服务端

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库包含一个高性能的本地代码索引工具(Rust 实现,名为 ast-index),以及一个用于 Claude Code 集成的 MCP 服务端实现(从 legacy-python-mcp 文件夹中看,使用 Python 与 fastmcp 库实现)。MCP 服务器负责暴露工具、资源与提示相关的接口,供 LLM 客户端通过标准的 MCP 协议进行调用与交互。
  • 主要功能点

    • 资源与数据访问:提供对代码索引中所维护的文件、模块、符号等元数据的读取能力(通过工具暴露的查询接口实现)。
    • 注册与执行工具:通过 MCP 服务暴露的方法,LLM 客户端可以调用服务器端提供的工具(如文件/符号检索、索引重建、增量更新、使用统计等)。
    • Prompt 模板与交互:服务器端的工具集合可用于构建与渲染对话时的上下文信息,便于 LLM 在对话中获取代码相关背景。
    • JSON-RPC 通信:服务器端使用 MCP 框架实现标准的请求/响应流程,适配 Claude Code 客户端的请求格式。
    • 扩展性与传输协议:MCP 服务通过标准库实现通信,理论上支持多种传输方式(如 stdio、SSE、WebSocket 等,具体实现依赖所用的 MCP 库能力)。
  • 安装步骤

    • 安装依赖
      • Rust 环境(用于 ast-index 的编译和运行)
      • Python 环境与相关依赖(用于 legacy Python MCP 服务器,需安装 fastmcp 等库)
    • 构建与运行
      • 使用 cargo 构建 Rust 端的索引服务(可以得到名为 ast-index 的可执行二进制)
      • 启动 Python MCP 服务器(放在 legacy-python-mcp 目录下,例行路径为 legacy-python-mcp/src/kotlin_index/server.py)
    • 项目根设置
      • 运行 MCP 服务器前,请通过环境变量设置目标 Kotlin/Android 项目的根目录,以确保服务器能够正确索引与检索相关数据。例如设置 KOTLIN_INDEX_PROJECT_ROOT 的值为你要索引的 Android 项目根路径(服务器启动时会据此自动建立/更新索引)。
  • 服务器配置(MCP 客户端需要使用的配置信息)

    • 服务器名称:KotlinIndexMCP
    • 启动命令(示范,实际要按你的环境执行)
      • 命令:python3
      • 参数:legacy-python-mcp/src/kotlin_index/server.py
    • 说明
      • 服务器名称用于客户端在管理界面中区分不同的 MCP 服务端。 启动命令用于让客户端通过 MCP 协议建立连接,args 指定了服务器脚本的位置。MCP 客户端通常只需要提供 server、command、args 三项信息来建立连接,运行时再通过 MCP 协议分发请求与接收响应。
    • 额外配置与注意
      • 请确保在启动服务器前已经设置了环境变量 KOTLIN_INDEX_PROJECT_ROOT 指向需要索引的 Kotlin/Android 项目根目录,否则服务器可能无法正确建立索引或检索数据。
      • MCP 客户端在连接成功后即可发起对工具的调用(如检索、重建索引、查看统计等),服务器将返回相应的数据或结果。
  • 基本使用方法

    • 启动阶段
      • 启动 Rust 端的索引服务(如有需要)以建立本地索引,然后启动 MCP 服务端以对外提供工具接口。
    • 客户端调用
      • 通过 Claude Code 的 MCP 客户端接口,向服务器发送带有所需工具名和参数的请求,服务器执行对应的工具逻辑并返回结果。
    • 常用场景
      • 快速检索指定符号、文件、模块的定位信息
      • 重建或更新索引以保持数据时效性
      • 获取索引统计信息用于监控与优化
    • 退出与维护
      • 如需停止服务,正常结束 MCP 服务进程即可;如需要更改索引设置或重新加载项目,请停止后重新启动并确保环境变量正确。
  • 备注

    • 本 MCP 服务器实现以 legacy-python-mcp 提供的服务端为核心,结合仓库中 Rust 端的 ast-index 提供的高效索引能力,能够为 Claude Code 提供稳定的上下文服务与代码检索能力。
    • 若要扩展更多 Resource、Prompt 模板等 MCP 特性,请参考 MCP 服务器框架文档,并在服务器端添加相应的接口实现。

服务器信息