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,并在配置中启用新语言的分析能力。
-
关键词与定位
- 本实现聚焦在代码项目的语义索引、向量检索和上下文分析,不仅限于简单文本匹配,强调对代码结构和依赖的理解与查询。