MCP 系列(07):企业级部署——安全、认证与版本管理

发布时间:2026/7/15 22:57:18
MCP 系列(07):企业级部署——安全、认证与版本管理 从本地到生产的三个跨越本地 MCP Server 一条命令就能跑:python server.py。进入企业生产环境,三个问题必须解决:认证:stdio 模式没有认证,所有进程都能连。生产环境需要明确的身份验证进程守护:Python 进程崩溃后不重启,没有告警。需要守护进程和健康检查平滑升级:多个 Agent 会话同时连接同一个 Server 时,升级不能中断已有连接认证方案API Key(内部服务首选)最简单,适合企业内网中服务间调用:importosfrommcp.serverimportServerfrommcp.server.stdioimportstdio_server# 启动时检查环境变量里的 KeyEXPECTED_API_KEY=os.environ.get("MCP_API_KEY")ifnotEXPECTED_API_KEY:raiseRuntimeError("MCP_API_KEY environment variable is required")server=Server("jira-tools")# 在 initialize 处理里验证 client 传来的 key@server.on_messageasyncdefhandle_message(message):# 对于非 stdio 的 HTTP 传输,在请求头里验证# stdio 模式下,通过部署层(Docker network)做隔离pass对于HTTP 传输(非 stdio),在 HTTP 层验证:fromstarlette.middleware.baseimportBaseHTTPMiddlewarefromstarlette.requestsimportRequestclassApiKeyMiddleware(BaseHTTPMiddleware):asyncdefdispatch(self,request:Request,call_next):key=request.headers.get("X-API-Key")orrequest.headers.get("Authorization","").removeprefix("Bearer ")ifkey!=os.environ["MCP_API_KEY"