Skip to main content
Glama

Mingli MCP Server

by spyfree
MIT License
  • Apple
  • Linux
CLOUDFLARE_DEPLOY.md7.28 kB
# Cloudflare 部署指南 ## 🌟 推荐方案:Cloudflare Tunnel(零信任访问) Cloudflare Tunnel 可以把本地服务安全地暴露到公网,**完全免费**且功能强大。 ### ✨ 优势 - ✅ **完全免费** - 无限流量 - ✅ **无需公网IP** - 通过隧道连接 - ✅ **自动HTTPS** - 免费SSL证书 - ✅ **DDoS防护** - Cloudflare全球网络 - ✅ **访问控制** - 可配置认证 - ✅ **本地运行** - 代码在你的机器上 ### 📋 前置条件 1. 注册Cloudflare账号(免费):https://dash.cloudflare.com/sign-up 2. (可选)有自己的域名,并添加到Cloudflare --- ## 🚀 快速部署步骤 ### 步骤1:安装 cloudflared #### macOS ```bash brew install cloudflare/cloudflare/cloudflared ``` #### Linux ```bash # Debian/Ubuntu wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb # CentOS/RHEL wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm sudo rpm -i cloudflared-linux-x86_64.rpm ``` #### Windows ```powershell # 下载安装器 https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.exe ``` ### 步骤2:登录 Cloudflare ```bash cloudflared tunnel login ``` 会打开浏览器让你选择域名(如果没有域名,可以使用Cloudflare提供的免费域名)。 ### 步骤3:创建隧道 ```bash # 创建一个名为 mingli-mcp 的隧道 cloudflared tunnel create mingli-mcp # 会生成一个 UUID,记下来(类似:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) ``` ### 步骤4:配置隧道 创建配置文件 `~/.cloudflared/config.yml`: ```yaml tunnel: mingli-mcp credentials-file: ~/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json ingress: # 如果有自己的域名 - hostname: mcp.yourdomain.com service: http://localhost:8080 # 如果没有域名,使用trycloudflare(临时) - service: http://localhost:8080 ``` ### 步骤5:配置DNS(如果有域名) ```bash # 添加DNS记录 cloudflared tunnel route dns mingli-mcp mcp.yourdomain.com ``` ### 步骤6:启动服务 ```bash # 终端1:启动你的MCP服务 cd /Users/lix18854/Documents/code/ziwei_mcp source venv/bin/activate export TRANSPORT_TYPE=http export HTTP_PORT=8080 python mingli_mcp.py # 终端2:启动Cloudflare隧道 cloudflared tunnel run mingli-mcp ``` ### 步骤7:测试访问 ```bash # 如果有域名 curl https://mcp.yourdomain.com/health # 如果使用临时域名,会在启动时显示类似: # https://random-name.trycloudflare.com curl https://random-name.trycloudflare.com/health ``` ### 步骤8:在Coze配置 ```json { "mcpServers": { "mingli": { "url": "https://mcp.yourdomain.com/mcp", "headers": { "Content-Type": "application/json" } } } } ``` --- ## 🔧 高级配置 ### 使用免费临时域名(快速测试) 如果没有域名,可以使用临时隧道: ```bash # 启动MCP服务 python mingli_mcp.py # 另开终端,启动临时隧道 cloudflared tunnel --url http://localhost:8080 ``` 会生成一个临时URL,有效期24小时。 ### 开机自动启动 #### macOS/Linux (systemd) 创建服务文件 `/etc/systemd/system/cloudflared.service`: ```ini [Unit] Description=Cloudflare Tunnel After=network.target [Service] Type=simple User=your-username ExecStart=/usr/local/bin/cloudflared tunnel run mingli-mcp Restart=on-failure [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl enable cloudflared sudo systemctl start cloudflared ``` #### macOS (launchd) ```bash # cloudflared会自动安装服务 cloudflared service install ``` ### 添加访问认证 在 `config.yml` 中添加: ```yaml tunnel: mingli-mcp credentials-file: ~/.cloudflared/xxxxxxxx.json ingress: - hostname: mcp.yourdomain.com service: http://localhost:8080 # 添加访问策略 originRequest: noTLSVerify: false ``` 然后在Cloudflare Dashboard配置Zero Trust访问策略。 --- ## 🎯 方案2:Cloudflare Workers(不推荐) Cloudflare Workers 主要支持JavaScript,Python支持还在Beta且有限制: **限制**: - ❌ CPU时间限制(10-50ms) - ❌ 内存限制(128MB) - ❌ 不支持大部分Python库 - ❌ 冷启动时间长 **不适合本项目**,因为: - py-iztro、lunar_python等库无法运行 - 排盘计算可能超时 - 依赖安装复杂 --- ## 💰 成本对比 | 方案 | 费用 | 流量限制 | 稳定性 | |------|------|---------|--------| | **Cloudflare Tunnel** | 免费 | 无限 | ⭐⭐⭐⭐⭐ | | Cloudflare Workers | 免费/付费 | 100k req/day免费 | ⭐⭐⭐ | | Railway | $5/月 | 有限 | ⭐⭐⭐⭐⭐ | | Render | 免费/付费 | 休眠 | ⭐⭐⭐⭐ | --- ## 🛡️ 安全建议 ### 1. 启用API密钥 ```bash export HTTP_API_KEY=your-secret-key python mingli_mcp.py ``` ### 2. 配置防火墙 ```bash # 只允许Cloudflare IP访问(如果部署在VPS) # Cloudflare IP列表:https://www.cloudflare.com/ips/ ``` ### 3. 限制请求频率 在HTTP transport中已实现基础认证,可以添加: ```python from slowapi import Limiter limiter = Limiter(key_func=get_remote_address) @app.post("/mcp") @limiter.limit("30/minute") # 每分钟30次 async def handle_mcp(request: Request): ... ``` ### 4. 配置Zero Trust 在Cloudflare Dashboard配置访问策略: - IP白名单 - 邮箱验证 - 一次性PIN - OAuth集成 --- ## 🐛 常见问题 ### Q1: 隧道连接失败 **检查**: ```bash # 查看隧道状态 cloudflared tunnel info mingli-mcp # 查看日志 cloudflared tunnel run mingli-mcp --loglevel debug ``` ### Q2: 本地服务未启动 **确认**: ```bash # 检查服务是否运行 curl http://localhost:8080/health # 检查端口占用 lsof -i :8080 ``` ### Q3: DNS未生效 **等待时间**:DNS记录生效需要几分钟 **验证DNS**: ```bash nslookup mcp.yourdomain.com ``` --- ## 📊 监控和日志 ### Cloudflare Dashboard 访问:https://dash.cloudflare.com → Zero Trust → Access → Tunnels 可以看到: - 连接状态 - 流量统计 - 请求日志 - 错误信息 ### 本地日志 ```bash # 查看cloudflared日志 cloudflared tunnel run mingli-mcp --loglevel debug # 查看MCP服务日志 export LOG_LEVEL=DEBUG python mingli_mcp.py ``` --- ## 🚀 生产部署清单 - [ ] 安装cloudflared - [ ] 创建隧道 - [ ] 配置DNS(如有域名) - [ ] 启动MCP服务 - [ ] 启动隧道 - [ ] 测试健康检查 - [ ] 配置开机自启 - [ ] 启用API认证 - [ ] 配置访问策略 - [ ] 在Coze测试 - [ ] 监控日志 --- ## 📚 参考资源 - [Cloudflare Tunnel文档](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/) - [Zero Trust Dashboard](https://dash.cloudflare.com) - [Cloudflare Status](https://www.cloudflarestatus.com/) --- **推荐理由总结**: Cloudflare Tunnel是**最佳选择**,因为: 1. ✅ 完全免费且稳定 2. ✅ 设置简单(5分钟上手) 3. ✅ 代码在本地运行(完全可控) 4. ✅ 自动HTTPS和DDoS防护 5. ✅ 无需公网IP或云服务器 对于你的项目来说,这是**性价比最高**的方案!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/spyfree/mingli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server