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 服务器能力,非单纯的客户端示例。