______________________________________________________________________
💡 Docker MCP服务模板
用于构建的生产就绪模板 模型上下文协议(MCP) Python中的服务,用Docker容器化。克隆此仓库,添加您的服务,并在几分钟内将它们连接到Claude Desktop或任何兼容MCP的客户端。
______________________________________________________________________
📦 安装
git clone https://github.com/aviz92/docker-mcp-service-template.git
cd docker-mcp-service-template
uv sync______________________________________________________________________
🚀 特性
- ✅ FastMCP服务器 --轻量级MCP服务器使用官方
mcp[cli]软件开发工具包 - ✅ Docker就绪 --单身
Dockerfile用于构建和运送您的服务 - ✅ 服务层模式 --MCP工具定义和业务逻辑之间的清晰分离
- ✅ 结构化日志记录 —
custom-python-logger开箱即用,没有print()生产中 - ✅ 环境配置 —
python-dotenv为了安全,本地.env-基于配置 - ✅ 可扩展 --通过将服务类删除到中来添加新的MCP工具
mcp_services/并将其注册到server.py
______________________________________________________________________
⚙️ 配置
创建一个 .env 项目根目录中的文件:
WEATHER_API_KEY=your_openweathermap_api_key在获取免费API密钥 openweathermap.org
______________________________________________________________________
🛠️ 如何使用
- 添加服务 --在中创建新类
mcp_services/(例如。mcp_services/my_service.py) - 注册该工具 --将服务导入
server.py并用以下元素装饰功能@mcp.tool() - 塑造形象 --奔跑
docker build -t my-mcp-service . - 连接到克劳德桌面 --将下面显示的JSON配置添加到您的Claude Desktop设置中
______________________________________________________________________
🚀 快速开始
# Build the Docker image
docker build -t docker-mcp-service .
# Run locally (outside Docker) for development
uv run server.py______________________________________________________________________
▶️ 用法示例
示例1:Ping工具——验证服务器是否处于活动状态
# Registered in server.py
@mcp.tool()
def ping() -> str:
"""Simple test tool to verify server stays running."""
return ping_service.ping()Claude将调用此工具并收到: "pong"
______________________________________________________________________
示例2:天气工具——获取实时天气数据
@mcp.tool()
def get_weather(city: str) -> dict[str, Any]:
"""Fetch current weather for a given city."""
return weather_service.fetch_weather(city)克劳德会打电话的 get_weather(city="Tel Aviv") 并接收:
{
"city": "Tel Aviv",
"temperature": 24.3,
"description": "clear sky",
"humidity": 58,
"wind_speed": 4.1
}______________________________________________________________________
示例3:连接到克劳德桌面
将以下内容添加到您的Claude Desktop MCP服务器配置中:
{
"mcpServers": {
"docker-mcp-service": {
"command": "docker",
"args": [
"run", "--rm",
"-e", "WEATHER_API_KEY=",
"-i", "docker-mcp-service"
]
}
}
}______________________________________________________________________
🤝 贡献
如果你有一个有用的模式或改进建议:
- 分叉回购
- 创建新分支
- 提交拉取请求
欢迎为促进清洁、可维护和生产就绪的MCP服务做出贡献。
______________________________________________________________________
📄 许可证
MIT许可证——见 许可证 了解详情。
______________________________________________________________________
🙏 谢谢
感谢您浏览此存储库! 编码愉快!
