Code Compass MCP 服务器

使用说明(Markdown 格式)

  • 项目简介
    • 该仓库实现了一个 MCP 服务器端,用于向像代码搜索、代码阅读、问答等代理/LLM 客户端提供结构化的上下文、工具和提示模板支持。核心包括一个 MCP 协议处理器、一个标准的标准输入/输出(stdio)服务端以及可选的 HTTP 服务端接口,支持会话管理和能力声明。
  • 主要功能点
    • MCP 协议核心:实现 initialize、tools/list、tools/call 等 MCP 请求的处理及响应、错误码等语义。
    • Tools 与 Prompts:提供 search_code、open_file、ask_code 等工具,支持向量检索、代码读取及基于检索的问答流程,并定义和渲染 Prompt 模板。
    • 数据与向量检索:集成 Qdrant 作为向量数据库,支持多种内容类型(code/docs/all)的检索、RRf 组合排序、以及安全的资源读取策略。
    • 会话与作用域:支持 repo/repos/all 三种作用域,包含对全局作用域的安全开关和边界保护。
    • 传输协议:内置 StdIO 服务端(通过管道/重定向与父进程交互)以及可选的 HTTP 控制器与路由,方便在不同环境下接入。
    • 安全与治理:实现对资源路径的安全读取、对文件系统的 root 限制、以及对输入参数的严格校验。
  • 安装步骤(简要)
    • 准备运行环境:Node.js 版本符合仓库要求、NestJS 环境、以及 Python 组件所需的依赖(用于嵌入/向量模型等)。
    • 启动向量数据库 Qdrant(可使用 Docker Compose 提供的 infra 方案)。
    • 安装并构建服务端:安装依赖、构建产物(dist)。
    • 启动 MCP 服务器:根据需要选择 stdio(默认)或 http 传输模式运行。
  • 服务器配置(MCP 客户端需要的启动信息) 服务器端的启动信息采用 JSON 形式,描述服务器名称、启动命令以及参数。示例配置如下(请将 path 替换为实际仓库路径或部署后的位置): { "serverName": "Code Compass MCP Server", "command": ["node", "<REPO_ROOT>/apps/mcp-server/dist/main.js"], "args": ["--transport", "stdio"] // 传输模式,stdio 为默认,可改为 http // 注释:上述配置用于 MCP 客户端在本地通过标准输入/输出与 MCP 服务器通信。若要通过 HTTP 访问,请将 transport 设置为 http,并根据实际暴露端口进行配置。 }
  • 基本使用方法
    • 标准输出/输入方式(stdio)
      • 将 MCP 服务器以标准输入输出模式启动,客户端通过 JSON-RPC 请求发送到服务器并接收响应。
    • HTTP 接入方式
      • 将 MCP 服务器切换到 HTTP 模式后,客户端通过 HTTP 请求与 MCP 服务器的接口进行交互。
    • 客户端重点关注点
      • 使用 initialize 获取能力描述。
      • 使用 tools/list 获取可用工具。
      • 使用 tools/call 调用具体工具(如 search_code、open_file、ask_code),并处理返回的 content、结果结构等。
    • 安全与运维
      • 运行前确保 Qdrant、文件系统读取约束、以及作用域策略按需配置。
      • 如需调整向量检索或嵌入模型,修改环境变量或配置项以匹配实际环境。

服务器信息