pyscn-mcp MCP 服务器

使用说明

  • 项目简介

    • pyscn-mcp 是将 pyscn 的代码分析能力通过 MCP(Model Context Protocol)服务器对接给 AI 客户端的后端服务器实现。它注册一系列分析工具(如代码分析、复杂度、克隆检测等),对资源进行管理,并提供可渲染的 Prompt 模板,以便在与 LLM 的交互中提供上下文信息和功能调用能力。
    • MCP 客户端通过 JSON-RPC 与 MCP 服务器通信,发送请求以读取资源、注册并执行工具、获取和渲染 Prompt 模板等,服务器端负责会话管理、能力声明以及对传输协议(如 StdIO、SSE、WebSocket)的支持。
  • 主要功能点

    • 资源和数据访问:托管并管理分析所需的资源与数据,提供读取能力。
    • 工具注册与执行:注册 pyscn 提供的分析工具,允许 MCP 客户端调用外部功能。
    • Prompt 模板定义与渲染:定义和渲染可定制的 Prompt 模板,支持不同的交互模式。
    • JSON-RPC 通信:通过 JSON-RPC 规范与客户端交互,支持请求响应和通知。
    • 会话与能力声明:服务器端维护会话、能力声明以及对多传输协议的支持,确保安全、可扩展的上下文服务。
    • 传输协议:支持 StdIO(最常用)、SSE、WebSocket 等传输方式。
  • 安装步骤

    • 进入仓库,构建或安装 Go 版本的 pyscn-mcp 服务端(Go 1.20+ 常用版本)。
    • 使用 make 或 go 构建工具将命令编译为可执行文件。
    • 参考仓库中的说明进行工具注册和配置。
  • 服务器配置(MCP 客户端配置示例) 说明:MCP 客户端需要提供启动 MCP 服务器的命令与参数,以便建立连接。以下为基于仓库信息的准确配置要点,JSON 字符串形式供客户端参考(非代码片段):

    • server_name(服务器名称): "pyscn-mcp"
    • command(启动命令): "uvx" // 参考 Claude/Cursor 插件示例中的启动包装
    • args(启动参数): ["pyscn-mcp"] // 传给包装器的实际服务端二进制名称
    • env(环境变量,可选):
      • PYSCN_CONFIG: "/path/to/.pyscn.toml" // 指向 pyscn 配置文件的路径
    • 说明:此配置使 MCP 客户端能够通过 JSON-RPC 与 pyscn-mcp 服务端进行交互,服务端通过 STDIO 传输读取和写入 RPC 数据。实际路径和环境变量需结合部署环境进行设置。
  • 基本使用方法

    • 启动服务器:使用客户端工具按照配置启动 MCP 服务器(如使用 uvx 封装)。启动后服务器会监听并通过 JSON-RPC 与 MCP 客户端进行通信。
    • 交互方式:客户端发送资源读取、工具调用、Prompts 获取等请求,服务器返回相应的 JSON-RPC 响应,或在需要时发送通知。
    • 常见操作示例(由 MCP 客户端发起、服务器响应):
      • 读取分析资源
      • 调用注册的分析工具(如 analyze_code、check_complexity、detect_clones 等)
      • 获取并渲染 Prompt 模板,用于与 LLM 的对话上下文
    • 传输通道切换:根据实际部署场景选择 StdIO、SSE 或 WebSocket 等传输方式,以实现与不同客户端的并发连接和流式通信需求。
  • 备注

    • 该实现的服务器端代码清晰定义了 MCP 服务端初始化、工具注册、传输选择与日志输出等要点,具备完整的后端 MCP 服务器能力,非单纯的客户端示例。

服务器信息