Codescout MCP 服务器实现

  • 项目简介
    • Codescout 是一个基于 Model Context Protocol(MCP)的后端服务器实现,面向为大型语言模型(LLM)提供代码上下文与能力。它托管代码资源、注册并执行工具、渲染和提供可定制的 Prompt 模板,支持通过 JSON-RPC 与客户端(如 Claude Code 等)进行通信。服务器还包含会话管理、能力声明、以及对多种传输协议的支持(如标准输入输出、SSE、WebSocket 等),为 LLM 应用提供安全、可扩展的上下文服务框架。
  • 主要功能点
    • MCP 核心实现
      • 通过 JSON-RPC 处理客户端请求,返回工具执行结果、资源数据、Prompts 等响应。
      • 提供服务器信息与能力声明(get_info、list_tools、call_tool 等接口)。
    • 资源与内存管理
      • 资源管理、跨会话记忆(memory)、可嵌入的嵌入向量、跨会话记忆等能力。
    • 工具体系
      • 23 种工具类别覆盖符号导航、文本/文件操作、语义搜索、工作流等,支持 LSP 与树状结构(LSP 辅助)以及回退到 Tree-sitter 的 symbol 查找等。
    • 提示模板与渲染
      • 提供服务器指令集(SERVER_INSTRUCTIONS)与可动态附加的项目状态信息,支持按项目状态渲染 Prompt。
    • 路由与插件
      • 路由插件机制用于将对工具的使用引导到合适工具,确保一致性。
    • 多传输协议
      • 支持 stdio 与 HTTP/SSE 传输,底层实现通过 rmcp 服务端框架对接 MCP 客户端。
    • 安全与权限
      • 具备访问控制、对写操作的沙盒、以及对外部执行命令的保护规则等。
  • 安装步骤
    • 需要 Rust 环境(Cargo)以及合适的依赖环境。
    • 常见安装方式:
      • 通过 Cargo 安装并编译 Codescout,然后使用命令启动 MCP 服务器。
  • 服务器配置(MCP 客户端配置示例)
    • MCP 客户端需要向服务器发起连接,最小化配置包括服务器名称、启动命令及参数。以下为示例配置(JSON 形式,按仓库信息生成,客户端不需要源代码): { "server_name": "codescout", "command": "codescout", "args": [ "start", "--project", "/path/to/your/project", "--transport", "stdio" ] // 说明: // - server_name: MCP 客户端在 UI/注册中看到的服务器名称(与仓库名称保持一致以便识别)。 // - command: 启动 MCP 服务器的可执行程序路径(此处为 codescout 二进制)。 // - args: 启动参数,包含子命令 start、可选的 --project 指定的项目根路径、以及传输模式 --transport(此处示例为 stdio)。 // 注: 以上路径与参数仅为示例,请根据实际部署环境替换为真实路径与配置。 }
  • 基本使用方法
    • 启动
      • 在项目根目录或目标工作区执行上面的启动命令(通过客户端配置中的命令和参数来启动 Codescout MCP 服务器)。
    • 连接与调用
      • 服务器启动后,MCP 客户端(如 Claude Code 的集成)通过 JSON-RPC 与服务器通信,发起对资源读取、工具调用、Prompts 获取等请求。
    • 运行与维护
      • 支持 stdio 与 HTTP/SSE 两种传输模式,适配不同的运行环境和集成场景。要停止服务器,优雅关闭 LSP 服务并断开 MCP 连接。

服务器信息