Token导航 LogoToken导航TokenDH.com
MCP Realtime Vs Non Realtime Weather App logo
AI代理stdio官方级别未说明来源级核验

MCP Realtime Vs Non Realtime Weather App

MCP Server

一个展示模型上下文协议(MCP)的天气演示服务,提供模拟和实时天气数据两种模式,支持STDIO和HTTP/SSE传输方式。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
位置天气开发工具PythonAPI集成

安装说明

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

作者 / 组织

aravind07d

提供方

aravind07d

最后核验

2026/5/17 20:21

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

优秀👍 — 这是你的 完全更新 README.md ✅ 包括两者 顺序(逐一)平行(同时进行) 模式 ✅ 为您的研讨会清楚地解释端口、客户端更改和图表

______________________________________________________________________

📘 README.md--MCP天气演示(模拟与实时)

🚀 概述

该项目展示了 模型上下文协议(MCP) 使用两种不同的服务器和传输模式(STDIO和HTTP/SSE):

  • 🟢 weather_server.py模拟/非实时天气
  • 🔵 realtime_weather_server.py通过Open-Meteo API直播天气

两者都公开了客户端可以发现和调用的MCP工具:

  • get_weather → 静态本地数据
  • get_realtime_weather → 动态的、基于API的数据

你会学到:

  • MCP服务器如何使用 @mcp.tool()
  • 客户端如何通过STDIO或HTTP(SSE)调用工具
  • 如何比较本地与现场API集成

______________________________________________________________________

📁 文件夹结构

MCP_MCP_TOOLS_vs_SERVER_TOOL/
├── weather_server.py               # Mock server (non-realtime)
├── realtime_weather_server.py      # Live weather (Open-Meteo API)
├── client_stdio.py                 # Local STDIO client (spawns server)
├── client_http.py                  # HTTP/SSE client (connects to running server)
├── requirements.txt
└── README.md

______________________________________________________________________

⚙️ 设置

python -m venv .venv
. .venv/Scripts/activate      # Windows
# or source .venv/bin/activate (Linux/macOS)

pip install -r requirements.txt

依赖关系包括

  • mcp==1.19.0
  • httpx (用于API调用)
  • anyio, pydantic等等。

______________________________________________________________________

🧩 如何运行Demos

您可以在中运行演示 双向 这取决于你的目标。

______________________________________________________________________

🅰️ 选项1——顺序模式(建议用于培训/幻灯片)

在此模式下,您一次运行一台服务器(默认端口8000)。

1.️⃣ 运行模拟服务器(非实时)

端子1

python weather_server.py --sse

2号航站楼

python client_http.py

🪄 输出示例

HTTP/SSE tools: ['get_weather']
[ok] get_weather({'city': 'Atlanta'}) -> Sunny, 28°C

停止此服务器(Ctrl + C)在查看输出后。

______________________________________________________________________

2.️⃣ 运行实时服务器(通过Open Meteo实时运行)

端子1

python realtime_weather_server.py --sse

2号航站楼

python client_http.py

🪄 输出示例

HTTP/SSE tools: ['get_weather', 'get_realtime_weather']
[ok] get_realtime_weather({'city': 'Atlanta'}) -> Atlanta, Georgia, United States | Now: 27.8°C/82°F, Partly cloudy | Wind: 10.2 km/h | Today H/L: 30°C/86°F / 21°C/70°F

最适合Demos: 简单、可预测、无端口更改。

______________________________________________________________________

🅱️ 选项2——并行模式(高级比较)

如果你想跑步 同时使用两台服务器 并在一个客户端会话中连接到两者:

1.️⃣ 更新端口

编辑底部 realtime_weather_server.py:

if args.sse:
    mcp.run(transport={"type": "sse", "host": "127.0.0.1", "port": 8080})
else:
    mcp.run(transport="stdio")

保持 weather_server.py 默认值(端口8000)。

______________________________________________________________________

2.️⃣ 运行两台服务器

终端1——模拟服务器

python weather_server.py --sse

终端2——实时服务器

python realtime_weather_server.py --sse

______________________________________________________________________

3.️⃣ 更新客户端(可选)

编辑 client_http.py 如果你想两者都打电话:

SERVER_MOCK = "http://127.0.0.1:8000/sse"
SERVER_REAL = "http://127.0.0.1:8080/sse"

然后连接到两个服务器并并排打印结果。

______________________________________________________________________

4.️⃣ 运行客户端

python client_http.py

🪄 输出

HTTP/SSE tools from mock server: ['get_weather']
[ok] get_weather({'city': 'Atlanta'}) -> Sunny, 28°C

HTTP/SSE tools from realtime server: ['get_realtime_weather']
[ok] get_realtime_weather({'city': 'Atlanta'}) -> Atlanta, Georgia, United States | Now: 28.1°C/82.6°F, Clear sky | Wind: 9.3 km/h | Today H/L: 30°C/86°F / 20°C/68°F

最适合动手工作坊: 实时比较静态和动态MCP工具。

______________________________________________________________________

🌤️ 视觉概述

🧩 顺序模式(更简单)

client_http.py ──→ weather_server.py (mock)
          └─────→ realtime_weather_server.py (realtime)
(run one at a time on port 8000)

⚙️ 并行模式(高级)

          ┌─────────────── Port 8000 ────────────────┐
client_http.py ──→ weather_server.py (mock)
          └─────────────── Port 8080 ────────────────┘
                 └→ realtime_weather_server.py (realtime)

______________________________________________________________________

🧠 主要区别

方面weather_server.pyrealtime_weather_server.py
工具get_weatherget_realtime_weather
数据源静态本地dictOpen-Meteo API
需要互联网
端口80008080(如果更改)
用例快速静态测试真实的API现场演示

______________________________________________________________________

🧩 运输比较

模式运输描述用于
STDIO本地进程管道主机在本地生成MCP服务器client_stdio.py
SSEHTTP over port(事件流)远程式连接client_http.py

______________________________________________________________________

✅ 测试版本

组件版本
Python3.12
MCP SDK1.19.0
httpx0.28.1
操作系统Windows 11

______________________________________________________________________

📚 参考文献

______________________________________________________________________

你想让我生成一个 可视化PNG图 (STDIO vs SSE,Mock vs Realtime)接下来要包含在README或研讨会幻灯片中吗?它将清楚地显示服务器和端口(8000对8080),以便并排比较。

目录标签

目录标签

位置天气开发工具PythonAPI集成天气服务本地部署MCP协议数据传输

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP