agent-coworker MCP 服务器实现
使用说明(简明为开发者与运维人员提供入门要点)
-
项目简介
- 本仓库实现一个 MCP 服务器端,能够托管资源与工具、注册并执行远程工具、并定义和渲染提示模板,供 LLM 客户端通过统一协议进行上下文信息与能力调用。
-
主要功能点
- MCP 服务注册与管理:支持加载、发现与管理远程工具服务器,按名称、传输方式与认证信息进行组织。
- 资源与工具访问:在服务器端托管资源并暴露可远程执行的工具接口,工具可供 MCP 客户端调用。
- Prompts 渲染与模板化:提供与 MCP 相关的提示模板渲染能力,方便在不同上下文中获得一致的对话模板。
- JSON-RPC 通信:通过标准的 JSON-RPC 进行请求与响应,客户端可读取资源、执行工具、获取 Prompt 等。
- 认证与授权:支持多种认证方式(如 API Key、OAuth),以及针对不同服务器的鉴权状态管理。
- 会话与状态管理:实现会话生命周期管理、服务器状态、工具调用跟踪,以及与本地/远程 MCP 的集成。
- 多传输协议支持:可通过 WebSocket、HTTP/SSE、stdio 等传输层与客户端对接,UI/CLI/桌面端等薄客户端统一访问后端。
-
安装与运行
- 依赖环境:本项目基于 Bun 运行时,推荐使用 Bun 进行依赖安装与运行。
- 安装步骤(简化描述):
- 克隆仓库并进入目录
- 运行 bun install 安装所有依赖
- 启动 MCP 服务器(Standalone Server)bun run serve,默认会暴露 WebSocket 服务端点,通常为 ws://127.0.0.1:7337/ws
- 运行后端后,客户端即可通过 MCP 协议对接,读取服务器列表、调用工具、以及获取 Prompts。
-
服务器配置(MCP 客户端视角的启动信息,无需客户端代码)
- MCP 服务器通常通过一个包含服务器定义的配置文件来暴露给客户端使用,配置中包括:服务器名称、传输类型与地址、以及认证信息等字段。
- 参考字段示例(按文档语义描述,非代码):
- name:服务器的唯一名称,例如 grep
- transport:传输方式及目标地址,支持类型如 http、sse、stdio;包含相应的 url 或 command/args(取决于传输类型)
- auth:认证方式,例如 api_key、oauth,及相关参数如 headerName、前缀、oauth 模式等
- 客户端在建立连接时须提供启动命令与参数以启动 MCP 服务器服务端进程(示例描述,不给出具体代码)。客户端需要至少包含服务器名称、启动命令和参数,以便建立连接。
-
基本使用方法(操作性强的步骤)
-
- 启动 MCP 服务器端,并确认 WebSocket/HTTP 端点可达
-
- 以 MCP 客户端的方式将服务器信息注册到本地配置库中(包括服务器名称、传输地址、认证方式等)
-
- 客户端通过 MCP 协议发送请求来读取资源、调用工具、获取并渲染 Prompts
-
- 监控与运维:通过内建的观测与追踪能力对 MCP 服务的健康与性能进行观测
-
- 如需要扩展,请按仓库内的扩展点实现自定义工具或技能,进一步丰富 MCP 的能力边界
-
-
运行时可选事项
- 配置 MCP 服务的传输与认证策略以提升安全性
- 结合现有的日志、观测和追踪工具实现对 MCP 服务的端到端可观测性
- 使用示例前,请确保客户端具备连接 MCP 服务的路径、端点以及认证信息,以实现快速对接