使用说明
FastMCP 模板
这是一个FastMCP模板项目,能够在本地、Docker和云环境中无缝运行。 一键部署到Railway,即刻快速启动!
🚀 快速部署到铁路系统(推荐)
在云端快速启动您的FastMCP服务器的最快方法:
一键部署
将远程客户端连接到铁路系统
部署完成后,可使用此客户端从任何地方进行连接:
简单方法(直接URL):
# my_client_remote.py
import asyncio
from fastmcp import Client
# Replace with your Railway URL
RAILWAY_URL = "https://your-railway-url.up.railway.app/mcp"
client = Client(RAILWAY_URL)
async def call_tool(name: str):
async with client:
result = await client.call_tool("greet", {"name": name})
print(result)
if __name__ == "__main__":
asyncio.run(call_tool("Ford"))
运行它:
uv run my_client_remote.py
使用环境变量(更灵活):
export RAILWAY_URL="https://your-railway-url.up.railway.app/mcp"
uv run my_client_remote.py
项目结构
my_server.py- 配备有(某种功能或组件的)FastMCP服务器greet工具(支持本地、Docker 和 Railway 环境)my_client.py- 通过HTTP连接的本地/Docker客户端my_client_remote.py- 铁路连接的远程客户端Dockerfile- 所有云部署的容器配置
本地开发
非常适合在您的机器上进行测试和开发。
1号航站楼 - 启动服务器:
uv run fastmcp run my_server.py:mcp --transport http --port 8080
2号航站楼 - 运行客户端:
export PORT=8080
export HOST_URL="http://localhost"
uv run my_client.py
输出: Hello, Ford!
Docker 部署
使用Docker在本地部署,或在任何容器平台上部署。
构建Docker镜像:
docker build -t fastmcp-server .
运行Docker容器:
docker run -p 8080:8080 fastmcp-server
连接客户端:
export PORT=8080
export HOST_URL="http://localhost"
uv run my_client.py
环境变量
本地与Docker部署
HOST_URL- 服务器主机URL(默认:http://localhost)PORT- 服务器端口(默认:8080)
示例:
# Custom port
export PORT=3000
uv run fastmcp run my_server.py:mcp --transport http --port 3000
export PORT=3000
uv run my_client.py
# Custom host
export HOST_URL="http://192.168.1.100"
export PORT=8080
uv run my_client.py
铁路部署
RAILWAY_URL- 完整的铁路终端URL(例如。,https://your-url.up.railway.app/mcp)- 在Railway仪表板中配置额外变量 → 变量选项卡
建筑
为何采用这种方法?
这个模板使用了 HTTP传输 为了确保所有部署场景的一致性:
- 一致性 - 全球统一协议
- 简洁 - 任何场景仅需两个文件
- 可扩展性 - HTTP支持云部署
- 灵活性 - 容易根据环境修改URL/端口
部署选项
┌──────────────────────────────────────────────┐
│ 🚀 RECOMMENDED: Railway Cloud │
│ • One-click deployment │
│ • Automatic HTTPS & CDN │
│ • Global access │
│ URL: https://your-url.up.railway.app/mcp │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 🐳 Docker (Local or Any Cloud) │
│ • Full control │
│ • Works anywhere with Docker │
│ URL: http://localhost:8080/mcp │
└──────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ 🏠 Local Development │
│ • Perfect for testing │
│ • Two terminal setup │
│ URL: http://localhost:8080/mcp │
└──────────────────────────────────────────────┘
配置详情
服务器(my_server.py)
服务器使用了FastMCP框架,并且配置简单 greet 工具:
@mcp.tool
def greet(name: str) -> str:
return f"Hello, {name}!"
当在本地运行时,使用:
uv run fastmcp run my_server.py:mcp --transport http --port 8080
当在Docker中运行时通过 Dockerfile:
CMD ["sh", "-c", "uv run fastmcp run my_server.py:mcp --transport http --host 0.0.0.0 --port $PORT"]
客户端(my_client.py)
本地/Docker 客户端通过环境变量进行连接:
PORT = os.getenv("PORT", "8080")
HOST_URL = os.getenv("HOST_URL", "http://localhost")
client = Client(f"{HOST_URL}:{PORT}/mcp")
远程客户端(my_client_remote.py)
铁路/远程客户端通过直接URL或环境变量进行连接:
RAILWAY_URL = os.getenv("RAILWAY_URL", "https://your-url.up.railway.app/mcp")
client = Client(RAILWAY_URL)
故障排除
铁路连接问题
服务器无响应:
- 在仪表板中检查铁路部署日志
- 验证URL:
https://your-url.up.railway.app/mcp - 使用curl进行测试:
curl https://your-railway-url.up.railway.app/mcp
查找您的铁路网址:
- 前往铁路项目仪表盘
- 选择部署
- 前往“设置”
- 复制域名网址
- 附加
/mcp对于终端点
铁路自定义域名:
- 进入服务设置 → 自定义域名
- 添加您的域名(例如。,
mcp.example.com)
地方发展问题
连接失败:
- 检查服务器是否正在运行:
ps aux | grep fastmcp - 验证端口是否可访问:
curl http://localhost:8080/mcp - 确保设置了PORT和HOST_URL环境变量
端口已被使用:
# Use different port
export PORT=3000
uv run fastmcp run my_server.py:mcp --transport http --port 3000
export PORT=3000
uv run my_client.py
Docker 问题
- 检查容器是否正在运行:
docker ps - 查看日志:
docker logs <container-id> - 验证端口映射:
docker run -p 8080:8080 ... - 测试连接性:
curl http://localhost:8080/mcp
摘要
这个FastMCP模板提供了多种部署选项:
- ✅ 铁路 - 最快的云部署(推荐)
- ✅ Docker - 完全控制,随处可用
- ✅(对勾符号,表示正确、同意或完成) 本地 - 非常适合开发和测试
- ✅ 相同的代码库 - 不同部署无需进行更改
- ✅ 只需更改URL - 环境变量处理所有变化
