TellWorldAI 世界档案
问档案English

首页›实践›实践

实践

MCP 服务器上线部署

MCP 服务器可以只在本机运行,也可以部署到云端。本文讲清本地运行、Azure Container Apps 示例的四个步骤,以及为什么 /sse 地址已是旧传输方式。

这篇适合谁,读完能做到什么

只在自己电脑上跑的 MCP 服务器,别人和别的环境都用不了。部署之后,它的工具和资源才能被本机以外的地方访问。读完这篇,你能分清本地运行和远程部署,照着示例把服务器部署到 Azure Container Apps,并知道示例里的 /sse 属于较旧的传输方式[1]。

先看传输方式:SSE 已是旧方式

配置示例里用 /sse 端点的,对应的是旧的 HTTP+SSE 传输方式。MCP 2026-07-28 版本的远程服务器使用 Streamable HTTP,通常挂在服务器自己定义的端点上,例如 /mcp[1]。如果你要新做远程服务器,应按这个版本选择传输方式,/sse 的示例只当旧资料看[1]。

本地运行

如果服务器运行在用户自己的机器上,先把服务器下载到本机(如果不是你写的),再启动服务器进程[1]。只有 SSE 类型的服务器才需要配置网络:确认服务器在预期端口上可以访问,客户端用 http://localhost:3000 这类本地地址连接[1]。stdio 类型的服务器不需要这一步[1]。

云上部署有哪些方式

MCP 服务器可以部署到几类云平台[1]:

  • Serverless 函数:适合轻量的服务器。
  • 容器服务:例如 Azure Container Apps、AWS ECS 或 Google Cloud Run。
  • Kubernetes:在集群里运行和管理,获得高可用。

示例:部署到 Azure Container Apps

Azure Container Apps 支持部署 MCP 服务器,但这一支持仍在完善中,目前只支持 SSE 类型的服务器[1]。示例仓库见[2]。

第一步:克隆示例

克隆示例仓库[1][2]:

git clone https://github.com/anthonychu/azure-container-apps-mcp-sample.git

第二步:先在本地跑一遍

用 uv venv 创建环境,用 uv sync 安装依赖。然后设置环境变量 API_KEYS:Linux 和 macOS 用 export,Windows 用 set。最后用 FastAPI 的开发模式启动[1]:

uv venv
uv sync

# linux/macOS
export API_KEYS=<AN_API_KEY>
# windows
set API_KEYS=<AN_API_KEY>

uv run fastapi dev main.py

第三步:在 VS Code 里连接

在 .vscode 目录下新建 mcp.json,内容如下[1]:

{
    "inputs": [
        {
            "type": "promptString",
            "id": "weather-api-key",
            "description": "Weather API Key",
            "password": true
        }
    ],
    "servers": {
        "weather-sse": {
            "type": "sse",
            "url": "http://localhost:8000/sse",
            "headers": {
                "x-api-key": "${input:weather-api-key}"
            }
        }
    }
}

这里的 API key 通过名为 weather-api-key 的密码输入项获取,文件里用 ${input:weather-api-key} 引用,并不直接写明文。SSE 服务启动后,点击 JSON 文件里的播放图标,GitHub Copilot 就能看到服务器上的工具,界面上会出现工具图标[1]。

第四步:部署

运行下面的命令[1]:

az containerapp up -g <RESOURCE_GROUP_NAME> -n weather-mcp --environment mcp -l westus --env-vars API_KEYS=<AN_API_KEY> --source .

命令里 -g 是资源组,-n 是应用名,--environment 是环境,-l 是地区,--env-vars 传入环境变量。--source . 表示从当前目录部署[1]。

建议的顺序

先在本机跑通:用 uv run fastapi dev main.py 启动,再用 VS Code 连接,确认工具能被列出,然后才执行 az containerapp up 部署。这样一旦出错,你能分清问题出在代码还是云端配置[1]。

限制和常见问题

  • 示例只支持 SSE 服务器,所以它的端点和配置都是旧传输方式的写法[1]。
  • 命令里的地区 westus、资源组和 API key 都是占位值,要换成你自己的[1]。
  • 本地的 API_KEYS 用 export 或 set 设置,部署时要通过 --env-vars 传给云端,两处都得配置[1]。
  • mcp.json 里的地址是 localhost,只能让本机的 VS Code 连上。别人要连接,地址要换成部署后的可访问地址[1]。
  • 微软技术社区有一篇文章专门讲在 Azure Container Apps 上托管远程 MCP 服务器[3]。

下一步

同一系列的下一个主题是高级服务器话题[1]。示例仓库和 Azure 文章的地址见前面的脚注[2][3]。

本文改编自 Microsoft 开源课程 mcp-for-beginners 的部署一课[1],原文以 MIT 许可证发布。

来源

  1. 1
    Deploying MCP ServersMicrosoft mcp-for-beginners (MIT)
  2. 2
    Azure Container Apps MCP sampleazure-container-apps-mcp-sample (GitHub)
  3. 3
    Azure Container Apps articleMicrosoft Tech Community

引用本页: MCP 服务器上线部署. TellWorld, https://www.tellworld.net/zh/practice/practice-mcp-deployment. 更新于 2026-11-14

相关动态