前置条件:你需要什么
VPS 基础要求
最低配置:1 核 CPU、512MB 内存、Ubuntu 22.04 LTS。MCP Server 本身不重,但如果你的 Server 会调用 AI API 或做文件处理,建议 1GB 内存起步。 必须满足的三个条件:有独立公网 IP(不是 NAT 后的内网机)、80 和 443 端口未被防火墙屏蔽、有一个指向该 IP 的域名(Let’s Encrypt 签发证书需要)。本地开发环境确认
本文假设你已经有一个可以在本地跑起来的 MCP Server 项目。如果还没有,用官方 SDK 建一个最小示例:transport 选型:为什么 stdio 不能用于远程
| transport | 通信方式 | 能否跨网络 | 主流客户端支持 | 适用场景 |
|---|---|---|---|---|
| stdio | 标准输入输出(进程管道) | 仅本机 | Claude Desktop 本地模式 | 本地工具、IDE 插件 |
| SSE | HTTP 长连接,服务端推送 | 是 | Claude Desktop、Cursor(部分版本有断连问题) | 中等并发,只需服务端推送 |
| Streamable HTTP | 标准 HTTP POST + 流式响应 | 是 | Claude Desktop、Cursor、所有支持 HTTP 的客户端 | 远程部署首选 |
部署 MCP Server 并配置 Nginx HTTPS 反代
安装依赖与启动 MCP Server 进程
把项目上传到 VPS,安装依赖:server.js 中 Streamable HTTP transport 初始化的关键代码:
Nginx 配置:反代 + 长连接支持
Let’s Encrypt 证书申请与自动续期
listen 443 ssl 并填入证书路径。
systemd 守护进程配置
鉴权:用 Bearer Token 防止公网裸奔
MCP Server 挂上公网之后,不加鉴权等于把工具调用接口全部公开。有两个方案,按需选。方案一:Nginx map 层鉴权(轻量,不改应用代码)
方案二:应用层鉴权(适合多用户场景)
[Service] 段注入 token:
客户端接入:Claude Desktop 与 Cursor 配置
服务跑起来之后,在客户端填入远程 MCP Server 的连接信息。 Claude Desktop(macOS 配置文件路径:~/Library/Application Support/Claude/claude_desktop_config.json):
.cursor/mcp.json,放在项目根目录或用户目录均可):
常见问题
Remote MCP Server 和本地 stdio MCP Server 有什么区别?
Remote MCP Server 和本地 stdio MCP Server 有什么区别?
stdio transport 通过标准输入输出在两个本地进程之间传数据,客户端和 Server 必须在同一台机器上。Remote MCP Server 用 HTTP-based transport(SSE 或 Streamable HTTP),Server 运行在任意有公网地址的机器上,客户端通过 URL 远程调用。两者的 MCP 协议层完全一致,只是传输层不同。
MCP Server 需要 HTTPS 才能远程使用吗?
MCP Server 需要 HTTPS 才能远程使用吗?
是的。Claude Desktop、Cursor 等主流客户端在连接远程 MCP Server 时强制要求 HTTPS,纯 HTTP 端点直接拒绝。用 Let’s Encrypt 申请免费证书,配合 Certbot 自动续期,操作不超过 5 分钟。
VPS 上运行 MCP Server 需要什么配置要求?
VPS 上运行 MCP Server 需要什么配置要求?
MCP Server 本身极轻,512MB 内存的 VPS 完全够跑。如果 Server 内部有 AI 推理或大文件处理逻辑,建议 1–2GB 内存。CPU 要求不高,1 核足够处理正常并发。
Streamable HTTP 和 SSE 该选哪个?
Streamable HTTP 和 SSE 该选哪个?
新项目直接用 Streamable HTTP。MCP 官方文档已将 SSE 标注为 legacy,主流客户端的 SSE 实现在高频调用下有稳定性问题。Streamable HTTP 是当前推荐的远程 transport,兼容性更好,实现也更简单。