返回市场
MCP服务器

MCP服务器

作者:Abhinavexists8 星标更新:2025-07-05

项目介绍

MCP

一个简单的命令行工具实现,通过客户端-服务器架构使用模型上下文协议(MCP)和Google的Gemini AI访问美国天气数据。 该项目旨在实践并理解MCP的工作原理。

概述

本项目连接了一个Python客户端应用程序与一个天气数据服务器,允许用户使用自然语言查询天气信息。服务器通过与国家气象服务API通信来获取天气警报和预报。

功能

  • 使用州代码查询美国各州的天气警报
  • 使用经纬度获取特定地点的详细天气预报
  • 由Google的Gemini AI驱动的自然语言界面
  • 使用模型上下文协议(MCP)的客户端-服务器架构

预备条件

  • Python 3.8+
  • Node.js(如果运行JavaScript服务器)
  • Google Gemini API密钥

安装

  1. 克隆仓库:

    git clone https://github.com/Abhinavexists/MCP_Server.git
    cd weather-tool
    
  2. 如果还没有安装uv,请安装它:

    pip install uv
    
  3. 创建并激活虚拟环境:

    uv venv
    
    • 在Windows上:.venv\Scripts\activate
    • 在macOS/Linux上:source .venv/bin/activate
  4. 使用uv安装依赖项(此项目使用uv.lock和pyproject.toml):

    uv pip sync
    
  5. 在项目根目录创建一个.env文件,并添加您的Gemini API密钥:

    GEMINI_API_KEY=your_gemini_api_key_here
    

使用方法

  1. 启动客户端并连接到天气服务器:

    python client.py server.py
    
  2. 连接后,您可以询问有关天气信息的问题:

    查询:CA州当前有哪些天气警报?
    查询:纬度37.7749,经度-122.4194的天气预报是什么?
    
  3. 输入quit退出应用程序。

可用工具

服务器提供以下工具:

  • get_alerts:获取指定美国州的天气警报(使用两位字母州代码)
  • get_forecast:获取特定位置的天气预报(使用经纬度)

项目结构

  • client.py:连接到服务器并使用Gemini AI处理用户查询的MCP客户端
  • server.py:实现天气数据工具并与国家气象服务API通信的MCP服务器

错误处理

应用程序包括对以下情况的健壮错误处理:

  • 无效的服务器脚本路径
  • 与NWS API的连接问题
  • API响应中缺少或无效的数据

未来改进

  • 添加额外的天气数据端点
  • 实现缓存以存储频繁请求的数据
  • 增加对地点名称查找的支持(而不是需要经纬度)
  • 创建网页界面

许可证

MIT许可证

资源

要了解更多信息关于模型上下文协议(MCP),请参阅官方Claude MCP文档: