mcpField
W
Weather App

Weather App

本地服务
github.com/mindsightventures媒体与设计286 周前更新

关于 Weather App

Weather App 是提供全球地点天气信息的命令行应用和 MCP 服务,适合需要查询实时天气与预报的用户。它也可作为创建 Python MCP 服务的模板。

主要功能

  1. 01查询当前天气
  2. 02获取每日和逐小时预报
  3. 03查询天气预警
  4. 04按坐标查询天气
  5. 05自动检测用户位置

适用场景

  1. 01查看某地当前天气和预报
  2. 02按经纬度查询天气
  3. 03检查地点天气预警

MCP 相关

MCP 服务向客户端提供天气查询、预报、预警、位置检测及 API 状态检查等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

天气应用

CI codecov

基于命令行和 MCP 的天气应用,可提供全球各地的当前天气状况、预报和警报。

功能

  • 获取任意地点的当前天气状况
  • 获取每日天气预报
  • 获取每小时天气预报
  • 获取天气警报
  • 根据坐标获取天气
  • 自动检测位置
  • 测试 API 连接
  • 检查 API 密钥和订阅状态

安装

先决条件
  • Python 3.12 或更高版本
  • uv 包管理器
设置
  1. 克隆此仓库:

    git clone <repository-url>
    cd weather-app
    
  2. 在根目录中创建一个 .env 文件,并填入你的 OpenWeatherMap API 密钥:

    OPENWEATHER_API_KEY=your_api_key_here
    

    你可以从 OpenWeatherMap 获取 API 密钥。

  3. 运行安装脚本:

    ./scripts/install.sh
    

    如需设置开发环境,请使用:

    ./scripts/install.sh --dev
    

使用方法

运行天气应用:

./scripts/run_weather.sh

这将启动 MCP 服务,其中包含以下可用工具:

  • get_current_weather:获取当前天气状况
  • get_forecast:获取每日天气预报
  • get_hourly_forecast:获取每小时天气预报
  • get_alerts:获取天气警报
  • get_weather_by_coordinates:根据坐标获取天气
  • get_user_location:获取你当前的位置
  • test_api_connection:测试 API 连接
  • check_api_key_and_subscription:检查你的 API 密钥和订阅状态

开发

代码风格和 Lint

本项目使用:

所有这些工具都在 pyproject.toml 文件中进行了配置。

Pre-commit 钩子

我们使用 pre-commit 钩子来确保代码质量。安装开发依赖后,钩子会自动设置。

手动安装 pre-commit 钩子:

uv run pre-commit install

手动运行 pre-commit 钩子:

uv run pre-commit run --all-files
测试

运行测试:

./scripts/run_tests.sh

运行测试并生成覆盖率报告:

./scripts/run_tests.sh --coverage

运行集成测试(需要 API 密钥):

./scripts/run_tests.sh --integration

运行集成测试并生成覆盖率报告:

./scripts/run_tests.sh --integration --coverage

创建 MCP 服务

使用此项目作为模板创建你自己的 MCP 服务:

  1. 安装项目及其开发依赖:

    ./scripts/install.sh --dev
    
  2. 创建一个新的 Python 文件,实现你的 MCP 服务:

    import os
    from dotenv import load_dotenv
    from mcp.server.fastmcp import FastMCP
    
    # Load environment variables
    load_dotenv()
    
    # Initialize FastMCP server
    mcp = FastMCP("your-app-name")
    
    # Define your tools
    @mcp.tool
    async def your_tool(param1: str, param2: int) -> str:
        """Tool description."""
        # Your implementation here
        return "Result"
    
    # Run the server
    if __name__ == "__main__":
        mcp.run()
    
  3. 运行你的服务:

    python your_server.py
    

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。