Docker MCP服务模板

一个用于构建Python中Model Context Protocol(MCP)服务的生产就绪模板,通过Docker容器化,可快速连接到Claude Desktop或任何MCP兼容客户端。

  • by aviz92
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aviz92/docker-mcp-service-template

使用说明


💡 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


🛠️ 如何使用

  1. 添加服务 --在中创建新类 mcp_services/ (例如。 mcp_services/my_service.py)
  2. 注册该工具 --将服务导入 server.py 并用以下元素装饰功能 @mcp.tool()
  3. 塑造形象 --奔跑 docker build -t my-mcp-service .
  4. 连接到克劳德桌面 --将下面显示的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=<your_api_key>",
        "-i", "docker-mcp-service"
      ]
    }
  }
}

🤝 贡献

如果你有一个有用的模式或改进建议:

  1. 分叉回购
  2. 创建新分支
  3. 提交拉取请求

欢迎为促进清洁、可维护和生产就绪的MCP服务做出贡献。


📄 许可证

MIT许可证——见 许可证 了解详情。


🙏 谢谢

感谢您浏览此存储库! 编码愉快!