天气微服务

一个轻量级的天气API服务,使用MCP和uv进行Python依赖管理,支持Docker容器化部署,适用于本地开发和Claude Desktop集成。

  • by hightower9
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 hightower9/weather-mcp-server

使用说明

🌤️ MCP+UV天气微服务

一个轻量级的、支持MCP的天气API服务,使用 uv 用于Python依赖管理,Docker用于容器化部署。专为无缝本地开发、Claude Desktop集成和可扩展部署而构建。


🚀 特性

  • 🧪 快速本地开发 使用实时重新加载 uv 和 mcp
  • 🐳 Docker化 用于生产或暂存环境
  • 🧠 克劳德桌面 集成就绪
  • 🔐 从安全地加载机密 .env 或环境变量

⚙️ 运行服务器

🧪 开发模式(配备MCP检查员)

在开发模式下通过热重新加载启动服务器:

uv run mcp dev server.py

即时添加依赖项:

uv run mcp dev server.py --with pandas --with numpy

将您的本地代码挂载为可编辑:

uv run mcp dev server.py --with-editable .

🧠 Claude桌面集成

将您的服务器安装到Claude Desktop:

uv run mcp install server.py

自定义名称:

uv run mcp install server.py --name "My Analytics Server"

注入环境变量:

uv run mcp install server.py -v API_KEY=abc123 -v DB_URL=postgres://...
uv run mcp install server.py -f .env

🔧 直接执行

要获得更多控制或高级部署:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("My App")

if __name__ == "__main__":
    mcp.run()

手动运行它:

uv run python server.py
# or
uv run mcp run server.py

🐳 Docker支持

🔨 构建图像

docker build -t weather-service .

▶️ 运行容器

docker run --env-file .env -p 6274:6274 weather-service

📁 项目结构

.
├── server.py
├── .env
├── pyproject.toml
├── uv.lock
├── Dockerfile
└── README.md

🔒 环境变量

创建一个 .env 文件:

API_KEY=your_api_key_here
DB_URL=your_database_url_here

📦 依赖管理

使用 uv 要管理和同步依赖关系,请执行以下操作:

uv pip install mcp
uv pip install pandas numpy
uv sync  # sync dependencies based on uv.lock

📃 许可证

MIT许可证-自由使用,负责任地修改。