Token导航 LogoToken导航TokenDH.com
fogcast MCP logo
地图位置stdio官方级别未说明来源级核验

fogcast MCP

MCP Server

一个基于Python的MCP服务器,用于访问德国康斯坦茨的天气数据,提供实时天气和天气预报功能。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
位置天气数据集成Python天气预报Python服务器

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Local-AI-Workflows

提供方

Local-AI-Workflows

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

Fogcast MCP服务器

用于访问德国康斯坦茨天气数据的Python MCP(模型上下文协议)服务器。该服务器提供使用官方MCP协议从Fogcast数据接口检索当前天气状况和天气预报的工具。

特性

  • 当前天气数据:访问DWD、OpenMeteo和当地气象站的实时天气测量数据
  • 天气预报:从多个天气模型中检索预报
  • 模型比较:比较不同天气模型的预报
  • MCP协议:使用官方MCP库实现完整的MCP服务器
  • 异步支持:异步操作可提高性能

项目结构

fogcast_mcp/
├── main.py              # Main entry point
├── requirements.txt     # Python dependencies
├── README.md           # This file
├── env.example         # Environment configuration template
├── tests/              # Test suite
│   ├── __init__.py
│   └── test_app.py
└── src/                # Source code package
    └── fogcast_mcp/    # Main package
        ├── __init__.py
        ├── app.py      # MCP server application
        ├── config.py   # Configuration management
        ├── models/     # Data models and DTOs
        │   ├── __init__.py
        │   ├── weather_data.py
        │   └── api_response.py
        ├── integration/ # External API integration
        │   ├── __init__.py
        │   ├── http_client.py
        │   └── fogcast_client.py
        └── tools/      # MCP tool implementations
            ├── __init__.py
            ├── weather_tools.py
            └── forecast_tools.py

安装

  1. 克隆存储库:
   git clone 
   cd fogcast_mcp
  1. 创建虚拟环境:
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
   pip install -r requirements.txt

配置

服务器使用环境变量进行配置。创建一个 .env 文件或设置以下环境变量:

所需配置

  • FOGCAST_BASE_URL:Fogcast API服务器的基本URL(默认值: https://fogcast.in.htwg-konstanz.de/api)

可选配置

  • FOGCAST_TIMEOUT:请求超时(秒)(默认值: 30)
  • MCP_SERVER_NAME:MCP服务器名称(默认值: fogcast-weather)
  • MCP_SERVER_VERSION:MCP服务器版本(默认值: 1.0.0)
  • LOG_LEVEL:日志记录级别(默认值: INFO)

示例.env文件

FOGCAST_BASE_URL=https://fogcast.in.htwg-konstanz.de/api
LOG_LEVEL=DEBUG

注:.env 应用程序启动时,文件会自动加载。如果没有安装python dotenv,可以手动设置环境变量。

用法

启动服务器

python main.py

服务器将以MCP stdio模式启动,并通过stdin/stdout进行通信。

可用工具

MCP服务器提供以下工具:

1.获取当前天气

  • 工具: get_current_weather
  • 描述:获取康斯坦茨的当前天气数据
  • 参数:无

2.获取天气摘要

  • 工具: get_weather_summary
  • 描述:获取当前天气状况的摘要
  • 参数:无

3.获取可用型号

  • 工具: get_available_models
  • 描述:获取可用预测模型列表
  • 参数:无

4.获取预测

  • 工具: get_forecast
  • 描述:获取特定模型和日期时间的天气预报
  • 参数:

- model_id (必填):预测模型的ID - datetime (可选):以YYYY-MM-DDTHH:MM:SSZ格式预测日期时间

5.获取当前预测

  • 工具: get_current_forecast
  • 描述:获取特定模型的当前预测
  • 参数:

- model_id (必填):预测模型的ID

6.获取预测摘要

  • 工具: get_future_weather_forecast
  • 描述:获取预测条件摘要
  • 参数:

- model_id (必填):预测模型的ID - datetime (可选):以YYYY-MM-DDTHH:MM:SSZ格式预测日期时间

7.比较模型

  • 工具: compare_models
  • 描述:比较多个模型的预测
  • 参数:

- model_ids (必填):要比较的型号ID列表 - datetime (可选):以YYYY-MM-DDTHH:MM:SSZ格式预测日期时间

可用资源

MCP服务器还提供以下资源:

  • fogcast://models -可用预测模型列表
  • fogcast://current-weather -康斯坦茨的当前天气数据
  • fogcast://weather-summary -当前天气状况概述

MCP协议

此服务器实现模型上下文协议(MCP),并通过stdin/stdout进行通信。它提供:

  • 工具:天气数据访问的可执行功能
  • 资源:天气信息的可读数据源
  • 异步操作:所有操作都是异步的,以获得更好的性能

数据模型

天气数据

  • timestamp:ISO格式日期时间
  • temperature:温度(摄氏度)
  • humidity:湿度百分比
  • pressure:大气压力(hPa)
  • wind_speed:风速(m/s)
  • wind_direction:风向(度)
  • visibility:能见度(单位:米)
  • precipitation:降水量(mm)
  • fog_probability:雾概率(0-1)

API响应

所有API响应都遵循以下结构:

{
  "success": true,
  "data": { ... },
  "message": "Operation successful",
  "error": null
}

发展

运行测试

pytest

代码格式化

black .

代码检查

flake8 .

类型检查

mypy .

生产部署

使用Docker编写开放式WebUI

这是推荐的部署方法。设置包括:

# Start all services
docker compose up -d --build

# View logs
docker logs fogcast-mcp -f
docker logs openwebui -f

# Stop services
docker compose down

这将开始:

  • 打开WebUI 在http://localhost:8080
  • Fogcast MCP服务器 (stdio模式,通过docker exec访问)

Dockerfile基于Python 3.11-slim,包含所有必要的依赖项。

配置

MCP服务器需要在Open WebUI中配置:

通过打开WebUI管理UI\*\*(推荐)

  1. 打开http://localhost:8080
  2. 转到管理面板→ 设置→ 外部工具
  3. 选择类型“OpenAPI”
  4. 作为基本URL使用“http://localhost:8000"
  5. 对于OpenAPI规范url,请使用“http://localhost:8000/openapi.json"

故障排除

400预测请求错误

如果您在调用预测工具时收到400 Bad Request错误,则此问题已在最新版本中得到修复。问题是Fogcast API要求将日期时间值四舍五入到最接近的小时。

解决方案: 更新到最新代码。日期时间值现在自动四舍五入到最接近的小时。

例子:

  • 输入: 2025-10-27T14:30:45Z
  • 自动四舍五入为: 2025-10-27T14:00:00Z

SOLUTION_SUMMARY.md 有关此修复程序的详细信息。

连接错误

如果您遇到连接错误:

  1. 检查一下 FOGCAST_BASE_URL 在您的 .env 文件
  2. 验证API是否可访问: curl https://fogcast.in.htwg-konstanz.de/api/models
  3. 检查您的网络连接和防火墙设置

环境变量未加载

如果未从加载环境变量 .env:

  1. 确保已安装python dotenv: pip install python-dotenv
  2. 验证 .env 文件存在于项目根目录中
  3. 检查文件权限: ls -la .env

测试

运行附带的测试脚本以验证一切正常:

# Test datetime rounding fix
python3 test_fix.py

# Test full OpenWebUI request flow
python3 test_openwebui_request.py

# Run full test suite
pytest

许可证

该项目根据MIT许可证获得许可。

支持

有关问题和疑问,请在存储库中创建问题或联系开发团队。

目录标签

目录标签

位置天气数据集成Python天气预报Python服务器天气数据本地部署MCP协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP