Project Indexer MCP Server

使用说明(简化要点,便于快速上手):

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的后端服务器,用于对代码项目进行上下文分析、索引、语义搜索以及与客户端工具的交互。
    • 通过 JSON-RPC 风格的 MCP 调用,暴露 8 个管理与查询工具,底层使用 ChromaDB 做向量检索,OpenAI 模型做代码分析与嵌入生成。
  • 主要功能点

    • MCP 服务端:使用 FastMCP 框架,提供 8 个工具接口,支持项目索引、代码/文件检索、项目信息查询、项目列表、文件更新/删除等。
    • 资源与工具管理:托管向量数据、元数据及上下文信息;注册并执行工具以读取/修改索引。
    • Prompt 渲染与上下文分析:在索引文件前进行项目上下文分析,结合 README/配置文件推断技术栈与架构。
    • 向量存储:基于 ChromaDB 的本地持久化存储,支持跨项目的快速语义检索。
    • 开发与扩展:提供了 Python 3.12+ 环境的实现、可扩展的 Provider 架构(LLM/Embedding)、以及可选的语言适配器与 AST 分析。
    • 附加管理接口:提供一个 Web 管理端(FastAPI)用于浏览与管理索引数据(可选使用)。
  • 安装步骤

    • 准备环境
      • 需要 Python 3.12 及以上版本。
      • 需要 OpenAI API Key,以及可用的网络访问 OpenAI 的服务。
    • 获取代码
      • 克隆仓库并进入项目根目录。
    • 安装依赖
      • 创建并激活虚拟环境后,安装依赖:pip install -r requirements.txt(如有额外依赖,请按 README 指示安装)。
    • 配置环境变量
      • 复制并编辑环境变量文件(如 .env),设置 OPENAI_API_KEY、以及 Embedding/LLM 模型等参数。
    • 运行服务器
      • 使用启动脚本运行 MCP 服务器:运行 run_server.py(在项目根目录执行 python run_server.py),服务器将通过 STDIO 与 MCP 客户端通信。
    • 可选:启动管理端
      • 运行 run_web_server.py 启动 Web 管理端,在浏览器中查看与管理已索引的项目。
    • MCP 客户端连接
      • MCP 客户端需要一个配置 JSON,指定服务器名称、启动命令及参数(见下方“服务器配置”示例)。客户端不需要暴露服务器实现细节,仅通过客户端配置与服务器交互。
  • 服务器配置(MCP 客户端需要的启动信息,JSON 格式,包含 server name、command、args 等) 说明:以下为示例结构,请将具体路径、命令和环境变量替换为实际部署信息。 { "server_name": "project-indexer", "command": "/usr/bin/python3", "args": ["/path/to/project-indexer-mcp/run_server.py"], "env": { "OPENAI_API_KEY": "sk-YOUR_OPENAI_API_KEY", "CHROMA_PERSIST_DIRECTORY": "./chroma_data", "LOG_LEVEL": "INFO" } // 其他运行时参数或覆盖项(如需要)请按 MCP 客户端要求配置 }

  • 基本使用方法

    • 启动后客户端可调用以下工具:index_project、search_code、search_files、get_project_info、list_projects、update_files、remove_files、delete_project_index。
    • 想了解可用工具与能力,请在 MCP 客户端查询服务器声明的工具列表,并通过相应的参数调用各工具。
    • 如需查看或管理已索引的项目,可在 Web 管理端访问相应页面,查看项目信息、文件、搜索结果等。
  • 其他说明

    • 服务器在异常情况下会记录日志,便于排错。
    • 通过配置文件和环境变量可以调整并发、速率限制、模型等参数,以适应不同规模的代码库。
  • 参考与扩展

    • 服务器实现包含一个 Web 管理端的 Portal(可选启用),以及完整的项目索引、查询、更新与删除流程。
    • 若要对语言支持进行扩展,可增加相应的 LanguageAdapter 与 Analyzer,并在配置中启用新语言的分析能力。
  • 关键词与定位

    • 本实现聚焦在代码项目的语义索引、向量检索和上下文分析,不仅限于简单文本匹配,强调对代码结构和依赖的理解与查询。

服务器信息