使用说明
远程MCP服务器——模板和字段注释(无身份验证)
一个经过现场测试的模板,用于公开 模型上下文协议(MCP) 通过HTTPS连接服务器,以便托管的AI客户端(例如Claude web)可以作为 远程自定义连接器 --再加上实际连接时的调试说明,这是大部分时间都在使用的地方。
这不是一个框架。它是参考架构、使远程连接器工作的确切握手/代理/CORS细节,以及一个故障模式目录,这些故障模式表现为一个问题,但实际上是另一个问题。
这里有什么
- MCP_REMOTE_CONNECTOR_TEMPLATE.md --参考架构:TLS终止反向代理后面的MCP进程(流式HTTP),所需
initialize握手形状,一个可工作的Nginx配置(两者/和/mcp映射)和逐步验证流程。 - MCP_LESSONS_LEARNED.md --直播时会遇到11个具体问题,包括人工智能聊天端点注释(实时数据上下文注入、有界服务器端会话内存)。
给谁的
任何站在远程MCP端点上的人,托管的AI客户端都必须跨越网络边界到达该端点——其中最困难的部分是握手有效载荷形状、传输头、CORS、TLS和DNS,而不是工具代码本身。
节省时间最多的课程
- 握手失败通常是有效载荷形状,而不是协议版本。 完整的
initialize(包括clientInfo)跨版本成功;缺少的字段显示为“无效的请求参数” - 运输集管是承重的。
Accept: application/json, text/event-stream是必需的--错误Accept是直接406。 - 浏览器CORS是一个真正的连接器门。 当直接curl/服务器检查通过时,UI中的连接器可能会出现故障;允许克劳德网络源(
https://claude.ai,https://app.claude.ai)明确。 - 绘制两者
/和/mcp在代理 --不同的客户端探测不同的路径。 - 流媒体误导了CLI测试 —
curl --max-time可以报告超时 成功的 初始化;第一次验证event: message/data:payload,而不是curl退出代码。 - DNS可以公开正确,也可以在本地错误 --在假设服务器发生故障之前,请检查公共解析器和本地存根。
安全态势
- 保持运输 仅在适当的时候授权;当连接器或公开的工具允许时,需要OAuth。
- 永远不要泄露秘密 --在服务器端处理密钥,将凭证文件和特定于部署的详细信息保存在仓库之外。
- 将MCP端点视为一个暴露的工具表面:有意地作用于工具,并保持运行时更改较小且可逆。
使用它
- 在本地端口上运行MCP服务器(流式HTTP)。
- 将其置于TLS终止反向代理之后;地图
/和/mcp(参见Nginx模板)。 - 将Claude网络源代码添加到CORS。
- 验证完整
initialize在本地,然后通过公共URL,确认响应携带serverInfo+capabilities(见验证流程)。
山宁泰可重用模板——故意省略了特定于部署的细节。
