天气查询服务器

Python MCP Weather Server是一个通过MCP协议提供天气查询服务的服务器,支持离线演示模式和结构化观察数据。

  • by ArchanaChetan07
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ArchanaChetan07/Python-MCP-Weather-Server

使用说明

Python MCP天气服务器

FastMCP stdio服务器暴露出弹性 check_weather 该工具使用wttr.in,带有演示回退和观察元数据。


概述

LLM代理需要一个基于MCP的小型类型化天气工具,该工具可以优雅地离线降级,并返回结构化的成功/错误观察结果。

mcp.server.fastmcp快速mcp应用程序;异步 check_weather 验证位置,超时获取wttr.in,重试替换拼写,可选地返回演示存根;服务器周围的pytest覆盖率。

13个文件的MCP服务器包,具有环境可配置的超时/基本URL/演示模式、CI工作流和包含观察分数的代理就绪JSON有效载荷。

此存储库的维护方式为 注重生产的组合工作:清晰的架构、自动检查(如果有的话)和指标 可追溯到已提交的工件 (从未发明)。


建筑学

MCP客户端(stdio)→ FastMCP检查_天气→ 工具/天气。蚀刻_工人_准备→ wttr.in或演示存根→ JSON观察

flowchart LR
  C[MCP Client] -->|stdio| S[FastMCP server]
  S --> T[check_weather]
  T --> F[fetch_weather_agent_ready]
  F -->|live| W[wttr.in]
  F -->|fallback| D[Demo stub]
sequenceDiagram
  participant U as User/Client
  participant S as Service/Pipeline
  participant E as Eval/Tools
  U->>S: request / job
  S->>E: execute
  E-->>S: results
  S-->>U: report / response

结果和存储库事实

仅列出在代码、配置、测试或生成的报告中找到的值。没有临床/ML准确度数字意味着 不 在repo中发布。

度量 值 来源
默认天气HTTP超时 10秒 config.py
在主屏幕上跟踪斑点 13 git tree main
跟踪的文件 13 git tree
Python模块 5 git tree
测试相关路径 1 git tree
CI工作流 是 .github/workflows
Docker存在 不 repo root
%%{init: {'theme':'base'}}%%
pie showData title Language composition (bytes)
    "Python" : 89
    "Batchfile" : 6
    "PowerShell" : 4

主要特点

  • 单MCP工具:check_weather
  • 可配置的WEATHER_TIMEOUT_SECONDS(默认值10,最大值60)
  • DEMO_MODE和ALLOW_DEMO_FALLBACK存根
  • 使用备用位置拼写重试
  • 结构化观察+尝试元数据
  • pytest套件+GitHub操作CI

技术栈

层 技术
语言 Python
协议 模型上下文协议(stdio)
库 mcp[cli]FastMCP
api wttr.in
包装 pyproject.toml/uv.lock

技能展示

Python·MCP FastMCP·pytest·uv·CI/CD·测试·自动化

关键字表面: Python·Python·机器学习·CI/CD·测试·API·Docker·自动化·数据科学·软件工程·系统设计·可观察性·LLM·云


项目结构

Python-MCP-Weather-Server/
├── main.py
├── config.py
├── tools/weather.py
├── tests/test_weather_server.py
├── pyproject.toml
└── .github/workflows/ci.yml

安装和使用

git clone https://github.com/ArchanaChetan07/Python-MCP-Weather-Server.git
cd Python-MCP-Weather-Server
pip install -r requirements.txt
python main.py

运作原理

在stdio传输上,客户端调用 check_weather(location);该工具验证输入,在配置的超时内调用wttr.in,可以重试,并返回一个dict,其中包含适合代理循环的summary/raw/seccept/demo/error/观察字段。


未来的改进

  • 添加更多MCP工具(预测、警报)
  • 用于工具输出的OpenAPI样式模式文档
  • 用MCP客户端接线示例替换模板README

许可证

请参阅存储库。


Python MCP Weather Server
github.com/ArchanaChetan07/Python-MCP-Weather-Server