MCP 部署:托管的真实成本

大多数教程都会教你如何在本地构建 MCP 服务器。它们会教你端点和身份验证,但不会教你如何让服务器 24/7 全天候运行。

我花了三个月的时间为我的个人知识库构建了一个 MCP 服务器。我通过惨痛的教训了解到,部署才是真正痛苦的开始。

如果你希望你的 AI 助手能在移动端、网页端或云端客户端工作,你就不能依赖 localhost。你必须部署到公共主机上。

以下是我基于真实生产环境测试的托管方案分析:

  • Heroku

    • 优点:部署简单,自动提供 HTTPS。
    • 缺点:免费层在 30 分钟后会进入休眠状态。这会导致 10 到 30 秒的延迟。在此期间,MCP 客户端经常会超时并失败。
    • 结论:3/10。适合测试,不适合日常使用。
  • Fly.io

    • 优点:部署快速,拥有全球网络。支持为你的文件提供持久化卷(persistent volumes)。
    • 缺点:免费层应用在停止活动一周后会停止运行。你需要使用 cron job 来保持它们处于活跃状态。
    • 结论:6/10。对大多数用户来说是一个可靠的选择。
  • Serverless(例如腾讯云 SCF)

    • 优点:低流量时极其便宜。如果你在中国等特定地区,延迟非常低。
    • 缺点:冷启动需要几秒钟。你必须针对无状态架构进行设计。
    • 结论:7.5/10。非常适合使用率较低的个人项目。
  • VPS(虚拟专用服务器)

    • 优点:完全控制,服务器不会休眠。每月成本可预测。
    • 缺点:你必须自己管理安全、更新和 SSL。
    • 结论:最适合多用户或高流量场景。

三个可以为你节省数小时调试时间的经验教训:

  • 设置超时:MCP 客户端非常缺乏耐心。如果你的搜索超过 10 秒,客户端就会断开连接。请在服务器配置中设置严格的连接超时。

  • 添加健康检查:云提供商需要一种方式来了解你的应用是否在线。创建一个简单的 /health 端点。

  • 修复 CORS:身份验证经常会破坏 CORS 预检请求(preflight requests)。确保你的配置允许无需身份验证的 OPTIONS 请求。

我的工作流:

  1. 本地构建。
  2. 使用 ngrok 测试远程客户端。
  3. 稳定后部署到 Fly.io 或 VPS。

部署并不光鲜亮丽,但它是必要的。如果你的 AI 客户端无法连接到它,那么一个完美的服务器也毫无用处。

你正在使用什么来托管你的 MCP 服务器?请在评论区告诉我。

Source: https://dev.to/kevinten10/mcp-deployment-what-they-dont-tell-you-about-hosting-your-mcp-server-from-3-months-of-production-nb8

Optional learning community: https://t.me/GyaanSetuAi