floop MCP 服务端
使用说明(Markdown 格式)
- 项目简介
- 这是一个实现 MCP 协议的服务端组件,隶属于 floop 项目。它暴露了资源、工具、提示等能力给 LLM 客户端,并通过 JSON-RPC 2.0 在标准输入输出流上进行通信。服务端可以与 Claude Code、Cursor、Windsurf、Copilot 等工具搭配使用,作为 Agent 的上下文和功能提供者。
- 主要功能点
- MCP 服务入口:提供一个 mcp-server 子命令,启动并进入阻塞模式,直到客户端断开连接。
- JSON-RPC 基础通信:服务器以 MCP 规范的 JSON-RPC 请求/响应格式与客户端交互,支持读取资源、执行工具、获取 Prompts 等能力的远程调用。
- 会话与能力声明:服务端负责维护会话状态、能力声明,能动态暴露可用资源、工具和 prompts。
- 多传输/接入场景扩展性:理论上可扩展为多种传输协议,尽管当前实现以 stdio(stdin/stdout)为通信通道,方便与本地工具或集成代理对接。
- 与现有框架耦合:与 floop 的资源管理、工具/模板渲染、Prompt 渲染等模块对齐,确保 MCP 客户端在调用时可得到一致的上下文信息与可执行能力。
- 安装与运行
- 安装依赖环境后,可通过 Go 构建并运行 MCP 服务端。
- 典型运行方式:构建后直接执行 mcp-server 子命令,以 stdio 作为 MCP 通道,与客户端工具搭配使用。
- 服务器配置(JSON 配置,供 MCP 客户端示例使用) 说明:以下配置用于 MCP 客户端在其本地工具中注册并调用该 MCP 服务端。客户端本身不需要理解代码实现,只需要知道 server 的名称、启动命令和参数即可连接 MCP 服务。
{ "server_name": "floop", "command": "floop", "args": ["mcp-server"], "description": "Floop MCP 服务端,基于 MCP 协议通过 stdio 提供资源、工具与 Prompts 等能力", "notes": "该配置用于 MCP 客户端在其集成配置中对接服务端。实际能力暴露、资源与工具的命名请参考 floop 项目对 MCP 的实现细节。" }
使用说明中的配置仅作为示例,实际客户端集成时请遵循所使用工具的 MCP 集成文档。
- 基本使用方法
- 启动与连接
- 启动 MCP 服务端:运行命令 floop mcp-server
- 客户端通过 MCP 规范的 JSON-RPC 方式向 stdin 发送请求,服务器通过 stdout 返回响应。
- 常用交互流程
- 客户端请求获取可用的 Resources、Tools、Prompts 等列表
- 客户端调用某个 Tool 的外部功能,或检索并渲染 Prompt 模板
- 客户端通过资源接口读取数据,或将结果回写到服务端以驱动后续上下文
- 运行环境与扩展性
- 当前实现通过 stdio 进行 MCP 通信,便于集成到脚本、CLI 工具、IDE 插件等环境
- 如需扩展传输协议,可在后续版本将 SSE/WebSocket 等传输通道接入 MCP 服务
- 备注
- 该仓库中的 MCP 服务器实现紧密绑定于 floop 的资源、工具和提示体系,确保 LLM 客户端在上下文注入、工具执行和 Prompt 渲染等方面获得一致的接口与行为。
- 客户端集成时应遵循 MCP 的规范,确保请求的 JSON-RPC 格式与服务端约定一致,服务端将返回相应的 JSON-RPC 响应或通知。
6-8. 注意事项
- MCP 客户端需要的仅是 server、command、args 的配置信息,实际实现细节在服务端完成。
- 本实现当前以 stdio 为核心通信通道,若后续扩展到其他传输协议,也会保持对 MCP 兼容性。