MyProjectManager-Go MCP 服务器
使用说明
-
项目简介
- 这是一个 MCP 服务器端实现,核心职责包括:托管并管理 Resources(资源)、注册与执行 Tools(工具)、定义与渲染 Prompt 模板(Prompts),并通过 JSON-RPC 与 LLM 客户端通信,提供跨会话的上下文服务与能力声明。
-
主要功能点
- 资源与数据访问:提供对项目资源、文档、日志等的集中管理与访问能力。
- 工具注册与执行:内置多组系统工具(如 memory、搜索、分析、文档、提示词等),能够被 LLM 调用以完成具体任务。
- 提示与模板:支持 Prompt 相关工具,方便将高质量提示词持久化与复用。
- 会话与记忆:会话生命周期管理、SSOT 记忆、以及跨会话上下文的能力传递。
- 项目分析与导航:集成 AST 索引、代码地图、项目结构与复杂度分析等功能。
- 安全与扩展性:设计包含多种工具与工作流,便于扩展新工具或新的上下文渲染策略。
- 传输协议与兼容性:当前实现通过 JSON-RPC 使用标准输入输出(STDIO)作为 MCP 服务传输通道,后续可扩展到 SSE/WebSocket 等。
-
安装步骤
- 克隆仓库并切换到根目录。
- 确保本地已安装 Go 1.21+。
- 构建 MCP 服务器(Go 端实现在 mcp-server-go/cmd/server 目录):
- go build ./mcp-server-go/cmd/server
- 生成可执行文件后,可以直接运行生成的二进制,例如 bin/mpm-go.exe(Windows)或 bin/mpm-go(Unix/macOS)。
- 运行后服务器将通过 STDIO 与 MCP 客户端通信,请确保客户端按 MCP 规定的消息格式发送请求。
-
服务器配置(给 MCP 客户端的启动配置,JSON 格式) { "server_name": "MyProjectManager-Go", "command": "./bin/mpm-go", // 服务器可执行文件路径(按你的系统调整) "args": [], // 如需传入运行参数,可在此填写 "transport": "stdio", // 暂支持 STDIO 传输;后续可扩展到 SSE/WebSocket "version": "1.0.0", "description": "MCP 服务器实现:MyProjectManager 的后端服务,提供资源、工具、Prompts 的标准化访问" } 说明:
- MCP 客户端应按照以上字段提供 server_name、command、args 等信息,以便与服务器建立连接。
- 当前实现以 STDIO 为传输通道,确保客户端能够通过标准输入输出与 MCP 服务器交互。
-
基本使用方法
- 启动服务器后,客户端通过 MCP 协议的 JSON-RPC 形式向服务器发送请求,例如读取资源、调用工具、获取 prompts 等。
- 客户端可通过以下流程进行典型操作:
- 初始化会话并声明能力(服务端会在启动时进行必要的内置工具注册与初始化)。
- 通过 code_search、code_impact、project_map 等工具组合,向 LLM 提供结构化的上下文信息。
- 调用 memo、prompt、wiki_writer 等工具以实现上下文增强、提示词持久化、文档生成等场景。
- 通过记忆、知识库、以及服务发现 HUD 的整合,提升跨会话的一致性与可追溯性。
- 如需对接,请参考仓库中提供的工具注册、示例调用以及文档(user-manual 目录下的相关文档)。
-
备注
- 该实现使用了 MCP 的核心组件:工具注册、会话管理、记忆、AST 索引、地图、文档等,具备作为 MCP 服务器的基本能力。
- 如需正式上线,请确保本地环境具备所需依赖(Go 环境、编译产物、外部工具如 Rust/AST 索引引擎等的可用性)。