MCP Connection Test Server
A simple cloud-hosted MCP server for verifying upstream MCP connectivity via Streamable HTTP, exposing a single tool that returns a fixed success message.
README
云端 MCP Server 连接测试工具
这是一个只使用 Streamable HTTP 的云端 MCP Server。公网入口为:
https://你的域名/mcp
上游能够发现并调用 mcp_connection_test,调用后固定返回
MCP连接成功。工具不调用模型,也不需要 API Key。
部署结构
上游 MCP 客户端 -> 已有 HTTPS 服务 443 -> 127.0.0.1:18080 -> MCP 容器 8000
项目不再启动 Caddy,也不占用 80、443。MCP 只绑定服务器本机回环地址, 由现有 Nginx、Apache 或 Caddy 使用已有证书反向代理。
一、准备服务器和域名
- 云服务器安装 Docker Engine 和 Docker Compose 插件。
- 准备已有证书覆盖的域名,例如
mcp.example.com。 - 确认现有 HTTPS 服务能够修改反向代理配置。
MCP_DOMAIN 只填写域名,不要包含 https:// 或路径。
二、上传项目
在本地 Mac 执行,将 SERVER_USER 和 SERVER_IP 换成真实值。这里明确排除
本地 .env 和虚拟环境,避免把旧 API Key 或无关文件上传到服务器:
rsync -av \
--exclude='.env' \
--exclude='.venv' \
--exclude='__pycache__' \
"/Users/clarence/Desktop/项目/兴先达/MCPtest/" \
SERVER_USER@SERVER_IP:~/mcp-connection-test/
登录服务器:
ssh SERVER_USER@SERVER_IP
cd ~/mcp-connection-test
三、填写域名并启动
cp deploy.env.example deploy.env
编辑 deploy.env:
MCP_DOMAIN=mcp.example.com
MCP_LOCAL_PORT=18080
如果 18080 已被占用,可以改成其他未使用的高位端口,例如 18081。检查端口:
sudo ss -ltnp | grep ':18080'
构建并后台启动:
docker compose --env-file deploy.env up -d --build
如果之前启动过旧版 Caddy 编排,使用下面的命令同时清理已经移除的 Caddy 容器;不会影响服务器上其他项目的容器:
docker compose --env-file deploy.env up -d --build --remove-orphans
查看运行状态和日志:
docker compose --env-file deploy.env ps
docker compose --env-file deploy.env logs --tail=100
四、接入现有 HTTPS 服务
如果使用 Nginx,将 nginx-mcp-location.conf.example 中的 location /mcp
配置加入已有证书域名对应的 server { ... } 中。确认反向代理端口与
MCP_LOCAL_PORT 一致,然后执行:
sudo nginx -t
sudo systemctl reload nginx
Nginx 的 proxy_pass 应指向:
http://127.0.0.1:18080
最终公网 MCP 地址仍然是:
https://mcp.example.com/mcp
五、验证工具发现和调用
在本地 Mac 执行,验证公网链路:
/opt/homebrew/Caskroom/miniconda/base/bin/python \
"/Users/clarence/Desktop/项目/兴先达/MCPtest/verify_remote.py" \
https://mcp.example.com/mcp
成功时会显示:
发现工具:mcp_connection_test
调用返回:MCP连接成功
这一步会真实执行 MCP 初始化、tools/list 和 tools/call,比普通的端口或
HTTP 检查更准确。
六、上游配置
将上游 MCP 客户端的服务器 URL 配置为:
https://mcp.example.com/mcp
工具名称:
mcp_connection_test
调用参数可以是空对象:
{}
也可以传入探测内容:
{
"probe": "upstream-health-check"
}
更新与停止
更新代码后重新部署:
docker compose --env-file deploy.env up -d --build
停止服务:
docker compose --env-file deploy.env down
常见问题
- 返回
421 Invalid Host header:deploy.env中的域名与访问域名不一致。 - 出现
Connection refused:检查MCP_LOCAL_PORT、容器状态及反向代理端口是否一致。 - 查看 MCP 服务日志:
docker compose --env-file deploy.env logs mcp-server。 - HTTPS 相关问题继续查看服务器现有 Nginx、Apache 或 Caddy 日志。
当前服务没有身份认证,因为它只有一个无副作用的连接测试工具。如果以后添加 真实业务工具,应增加 MCP 鉴权,或者在云安全组中只允许上游固定 IP 访问。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。