返回 MCP 目录
public公开dns本地运行

python-mcp-server

一个基于Python的天气MCP服务器项目,使用MCP协议和NWS API提供天气数据服务,包含完整的测试套件和开发环境配置。

article

README

🚀 MCP 服务器

天气 MCP 服务器 Python 版本,为你提供便捷的天气服务相关功能

📚 文档

🐍 Python SDK

🚀 快速开始

项目初始化

# 创建一个新的项目目录
uv init

虚拟环境配置

# 创建虚拟环境并激活它
uv venv
source .venv/bin/activate

依赖安装

# 安装依赖项
uv add "mcp[cli]" httpx

📦 安装指南

安装开发依赖项

你可以使用以下命令安装所有开发依赖项:

# 使用 uv
uv pip install -e ".[dev]"

# 或者使用 pip
pip install -e ".[dev]"

💻 使用示例

测试

此项目包含一个全面的测试套件,用于测试天气服务 API。这些测试使用 pytest 和 pytest-asyncio 来测试与国家气象局 API 相互作用的异步函数。

测试要求

  • Python 3.12+ 版本
  • pytest
  • pytest-asyncio
  • pytest-cov
  • httpx

运行测试

# 运行所有测试
pytest

# 以详细输出模式运行测试
pytest -v

# 以代码覆盖率模式运行测试
pytest --cov=weather

测试覆盖率

测试套件涵盖以下内容:

  1. 帮助函数的单元测试
    • format_alert 函数用于格式化警报数据
    • make_nws_request 中的错误处理
  2. API 函数测试
    • get_alerts:测试成功检索、空结果和 API 失败情况
    • get_forecast:测试成功获取预报及其对两个 API 端点的错误处理
  3. 模拟响应
    • 所有 HTTP 请求均使用 httpx.AsyncMock 进行模拟
    • 具有不同的 API 响应的多个测试场景

持续集成

⚠️ 重要提示

在为天气服务添加新功能时,请确保所有测试通过后再提交更改。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端