mcpField
🌦
🌦️ MCP Weather Scraper

🌦️ MCP Weather Scraper

本地服务
github.com/EXPESRaza浏览器自动化080 周前更新

关于 🌦️ MCP Weather Scraper

MCP Weather Scraper 是一个以 FastAPI 构建的天气抓取原型,面向探索 LLM 与 MCP 工具协作的开发者。它解析开放网页内容并借助 OpenAI 将天气信息整理为结构化数据。

主要功能

  1. 01抓取并解析网页天气信息
  2. 02使用 OpenAI 提取结构化数据
  3. 03以 MCP 工具提供天气查询
  4. 04缓存响应以减少重复请求
  5. 05Streamlit 界面展示结果和指标

适用场景

  1. 01按地点查询实时天气信息
  2. 02将网页天气内容转换为结构化结果
  3. 03查看请求耗时和 OpenAI Token 用量

MCP 相关

服务通过 MCP 向客户端提供天气查询工具;工具抓取开放网页并返回结构化天气数据。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

🌦️ MCP 天气抓取器

本项目是 Model Context Protocol (MCP) 的一项实验性实现,使用 ** OpenAI** 提供的轻量级大模型和 FastAPI,从开放的网络来源获取实时天气信息并进行结构化处理。项目旨在探索大模型如何与工具交互,并作为智能 Agent 检索和推理非结构化网络数据。


Python License Issues


🚀 功能

  • ✅ 符合 MCP 规范的服务,可通过浏览器搜索抓取天气信息
  • ✅ 集成 OpenAI 大模型(例如 gpt-3.5-turbo)
  • ✅ FastAPI 服务将天气信息作为可调用的 MCP 工具提供
  • ✅ 使用 selectolax 自动解析 HTML,提升性能
  • ✅ 大模型将非结构化网络内容提取为结构化数据
  • ✅ 提供用于用户交互的 Streamlit 应用前端
  • ✅ 使用 functools.lru_cache 缓存响应

🧠 开始之前,先回顾一下

本项目值得温习的 5 个核心概念

🧩 概念🔍 含义⚙️ 重要性
Model Context Protocol (MCP)一种用于大模型工具调用的新协议支持结构化的 AI Agent 通信
Uvicorn用于 Python Web 应用的快速 ASGI 服务承载基于 FastAPI 的 MCP 服务
Selectolax高速 HTML 解析器高效抓取并提取天气数据
functools.lru_cache用于缓存函数调用的 Python 内置装饰器避免重复获取数据,提升性能
Token Usage Metrics (OpenAI)大模型调用中使用的 Token 数量信息有助于跟踪成本并优化提示词设计

💡 即使你熟悉 Python 和 API,这些工具也代表着前沿的 AI 技术栈工程实践,值得花点时间了解!


📊 Token 使用量与性能指标

Streamlit 界面现在包含:

  • ⏱️ 响应时间
    获取并处理天气信息所用的时间

  • 🧠 提示词 Token 数
    大模型提示词中使用的 Token 数量

  • 💬 补全 Token 数
    大模型响应生成的 Token 数量

  • 🔢 Token 总数
    每次请求的 Token 总数,可用于跟踪成本

这些指标会以清晰的视觉布局显示在每张结果卡片下方。


🖥️ Streamlit 应用预览

README 配图


运行要求

  • Python 3.9 或更高版本
  • requirements.txt 中列出的依赖项

🛠️ 安装

  1. 克隆代码库
    git clone https://github.com/your-username/mcp_weather_scraper.git
    cd mcp_weather_scraper
    
  2. 创建并激活虚拟环境
    python -m venv .venv
    .venv\Scripts\activate  # On Windows
    
  3. 安装依赖项
    pip install -r requirements.txt
    
  4. 设置环境变量 在根目录中创建一个 .env 文件,并添加你的 OpenAI API 密钥
    OPENAI_API_KEY=your_openai_api_key
    
  5. 运行服务
    uvicorn server:app --reload
    
    服务将在 http://localhost:8000 上运行。 你可以通过以下地址访问 API 文档:
  6. 发送请求
    python client.py
    
    或者
    curl -X POST http://localhost:8000/weather -H "Content-Type: application/json" -d '{"location": "Seattle"}'
    
    该脚本会发送一个包含以下负载的 POST 请求:
    {
      "location": "Seattle"
    }
    
    服务将以 JSON 格式返回天气数据,例如:
    {
      "location": "Seattle",
      "temperature": "15°C",
      "humidity": "80%",
      "air_quality": "Good",
      "condition": "Cloudy"
    }
    

📦 文件夹结构

.
📁 mcp_weather_scraper/
│
├── assets/
│   └── streamlit_screenshot.png
├── server.py          # MCP-compatible tool server
├── client.py          # MCP client that interacts with model + tools
├── data_models.py     # Pydantic schemas for request/response
├── utils.py           # HTML cleaning, scraping, etc.
├── requirements.txt
└── .env

📄 许可证

This project is licensed under the MIT License.

评论

支持 Markdown

第一次接触 MCP?

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

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