SPAWN MCP 服务器
使用说明
-
项目简介
- 这是一个以 MCP(Model Context Protocol)为核心的服务器实现,内置多种工具插件,能够向大型语言模型客户端暴露资源、工具和提示渲染等能力,帮助模型在执行任务时获得上下文信息与外部功能调用能力。
- 服务器基于 Node/TypeScript 实现,使用 Express 处理 HTTP 请求,且通过 @modelcontextprotocol/sdk 提供的 MCP 服务端框架来处理 MCP 的请求与响应。
-
主要功能点
- MCP 核心能力:实现基于 JSON-RPC 的 MCP 请求处理、响应以及通知传播,支持 StreamableHTTP 传输。
- 工具注册与执行:提供多组 MCP 工具(如项目、系统、数据库、内存、活动、AgentMail 等),LLM 客户端可通过工具调用外部功能。
- 资源与内存:提供持久化内存(spawn_memories)、活动日志、通知渠道等,便于上下文管理和历史追踪。
- 与外部服务集成:包含 AgentMail 通信、云端工具、邮件通知、系统状态等集成,扩展上下文能力。
- 安全与部署性:提供 Bearer Token 认证、Redis/PG 等后端支持,具备健康端点和对外暴露的 MCP 入口。
- 多传输与会话:支持基于 StreamableHTTPTransport 的会话化 MCP 扫描和请求处理,适配不同的前端/LLM 客户端。
-
安装步骤
- 准备环境
- Ubuntu 20.04+(推荐),Node.js 20+,PostgreSQL 数据库,确保网络可访问的计划外部服务。
- 获取代码
- 克隆或下载仓库,并进入 spawn-mcp 子目录。
- 安装依赖与构建
- 安装依赖并编译 MCP 服务端代码(dist/index.cjs)。
- 配置环境变量(示例,具体请按实际部署调整)
- DATABASE_URL:PostgreSQL 数据库连接字符串,例如 postgres://user:pass@host:5432/dbname
- AUTH_TOKEN:用于 MCP 端点的 Bearer 认证令牌
- PORT:MCP 服务器监听端口(默认 5020)
- DAEMON_URL:用于访问 SPAWN 守护进程的 API(默认 http://localhost:4000)
- AGENTMAIL_API_KEY(如使用 AgentMail 工具时需要)
- 启动 MCP 服务
- 使用 Node 运行打包后的服务:node dist/index.cjs,确保 PORT 和其他环境变量按需设置
- 示例(实际按你的部署脚本执行):
- PORT=5020 AUTH_TOKEN=your-token DATABASE_URL=postgresql://scws:pwd@localhost:5432/scws_daemon node /path/to/spawn-mcp/dist/index.cjs
- 依赖的外部服务
- 请确保 PostgreSQL 可用并且数据库表已创建(代码中提供 ensureTables 等初始化逻辑)
- SPAWN 守护进程(daemon)需在同一环境中运行,MCP 服务会通过 DAEMON_URL 与其交互
- 运行验证
- 访问健康端点 http://<host>:5020/health 测试 MCP 服务是否就绪
- 使用 MCP 客户端通过 /mcp 路径进行 JSON-RPC 请求,验证基本的 initialize/notify/tools/list 流程是否工作
- 准备环境
-
服务器配置(MCP 客户端配置示例,启动命令由 MCP 客户端使用,不同实现可能略有差异) 说明:以下为 MCP 客户端需要的配置示例信息,描述了服务器名称、启动命令及参数。实际你在 MCP 客户端配置中仅需要“服务器名称、启动命令及参数”等字段来连接该 MCP 服务器。请将示例中的主机、端口、令牌等替换为实际环境中的值。 { "server_name": "spawn-mcp", "type": "streamableHttp", "url": "http://<HOST>:5020/mcp", "headers": { "Authorization": "Bearer <AUTH_TOKEN>" }, "command": "node", "args": [ "/var/www/scws/projects/spawn-mcp/dist/index.cjs" ], "notes": "环境变量 PORT 应设置为 5020(通过启动命令或环境变量传递)。MCP 客户端通过以上信息启动并连接到 MCP 服务器。" }
-
基本使用方法
- 连接与初始化
- 使用 MCP 客户端连接到上述 MCP 服务器地址,发送 initialize 请求,获取服务器能力、会话等信息。
- 调用工具与获取上下文
- 通过 MCP 客户端查询已注册的工具、读取/写入内存、读取活动日志等,LLM 可以调用工具执行具体任务。
- 会话与通知
- MCP 服务器支持会话管理、日志记录和通知,便于在跨轮对话中维持上下文与状态。
- 监控与扩展
- 结合现有健康端点和日志,可对 MCP 服务进行健康监控、扩展新的工具或资源。
- 连接与初始化
-
备注
- 本仓库的 spawn-mcp 通过多模块工具实现了丰富的 MCP 能力,且与 SPAWN 守护进程、邮件/系统等组件有紧密集成,能够为 LLM 客户端提供丰富的上下文环境和能力扩展。