Skip to main content

部署指南

9.1 本地部署(stdio)

适合个人工具和团队内部使用。

npm包方式

把Server发布为npm包,用户全局安装后直接使用:

直接运行方式

不发布npm包,直接指定脚本路径:

Python Server本地部署

9.2 远程部署(Streamable HTTP)

适合面向外部用户的SaaS服务。

完整的Express.js Streamable HTTP Server

Docker部署

云平台部署

9.3 会话管理

Streamable HTTP是有状态协议,Mcp-Session-Id 头用于维持会话。生产部署需要考虑:

无状态部署(多实例)

如果Server部署了多个实例(如K8s Pod),需要外部会话存储:

会话清理

设置合理的会话超时和清理策略:

9.4 Client连接配置

远程Server(Streamable HTTP)

支持OAuth的远程Server

当Server实现了完整的OAuth 2.1流程时,Host应用会自动处理认证,用户只需提供Server URL:
Host会自动发现Server的OAuth配置(通过Protected Resource Metadata),引导用户完成授权。

9.5 监控和日志

生产环境推荐:

健康检查

请求日志

监控指标

断线恢复

Streamable HTTP支持通过SSE的 Last-Event-ID 实现断线恢复。生产环境中,Server应维护事件ID序列,以便Client重连时从断点继续:

下一章: 实战案例 — 不同场景的MCP Server实现