Skip to main content

Add your description here

Project description

MCP-Client-For-Weather-Example

MCP-Client-For-Weather-Example 是一个基于 MCP(Modular Communication Protocol)的客户端和服务器项目,支持通过 LLM 的大语言模型与工具交互,并提供天气查询功能。

功能特性

  • MCP 客户端:支持与 MCP 服务器通信,调用工具并处理查询。
  • 天气查询服务:通过 OpenWeather API 查询指定城市的天气信息。
  • 环境变量支持:通过 .env 文件配置 API 密钥和其他参数。
  • 异步支持:使用 asynciohttpx 实现高效的异步通信。

文件结构

├── .env # 环境变量配置文件
├── .gitignore # Git 忽略文件
├── client.py # MCP 客户端实现
├── mcp_weather_server.py # 天气查询服务实现
├── pyproject.toml # 项目依赖配置文件
└── README.md # 项目说明文件

环境配置

1. 安装依赖

确保已安装 Python 3 或更高版本。然后运行以下命令安装依赖:

# 使用 uv
pip install uv
uv add mcp httpx openai
# 创建虚拟环境
uv venv
# 激活虚拟环境
source .venv/bin/activate

2. 配置环境变量

在项目根目录下创建 .env 文件,并添加以下内容:

这里使用的硅基智能的 API,天气API去 https://openweathermap.org 注册

OPENAI_API_KEY=你的OpenAI API密钥
BASE_URL=https://api.siliconflow.cn/v1 # <你的OpenAI API基础URL>
MODEL=使用的模型名称
WEATHER_API_KEY=你的OpenWeather API密钥

使用方法

  1. 运行以下命令启动 MCP 客户端并连接到服务器:
python client.py mcp_weather_server.py
  1. 启动后,输入城市名称(英文)即可查询天气信息。例如:

回答效果取决于模型本身,你的输出可能有些出入。

你: 今天北京天气怎样?
🤖 LLM: 北京的天气情况如下:
- 温度:10.94°C
- 湿度:15%
- 风速:4 m/s
- 天气:晴,少云
今天的北京天气晴朗,温度适宜,适合外出活动。请注意保暖,因为早晨和晚上的气温可能会有所下降
  1. 退出客户端 输入 quit 退出 MCP 客户端。

项目依赖

Python 3+
httpx - 异步 HTTP 客户端
mcp - Modular Communication Protocol
openai - OpenAI API 客户端
python-dotenv - 环境变量加载工具

开发指南

代码格式化

使用 pycharm 快捷键,进行格式化

单元测试

目前项目未包含单元测试模块,建议后续添加测试以提高代码质量。

许可证

本项目未指定许可证,默认保留所有权利。如需使用,请联系项目作者。

贡献

欢迎提交 Issue 和 Pull Request 来改进本项目。

联系方式

如有问题,请通过 GitHub Issue 提交反馈。

感谢

学习资源

MCP Servers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_a_persimmons_mcp_ds_client-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_a_persimmons_mcp_ds_client-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_a_persimmons_mcp_ds_client-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_a_persimmons_mcp_ds_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 086f61d74a9aa4b52c05e043848bc921bc922ee43fd767fde154dfd285ff18ca
MD5 0e832fab5b7435a4981643975bd2f243
BLAKE2b-256 fe72f161b21188a52c54df9a9170c844c1f1ba12085649f3b038e727fba9dd84

See more details on using hashes here.

File details

Details for the file iflow_mcp_a_persimmons_mcp_ds_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_a_persimmons_mcp_ds_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_a_persimmons_mcp_ds_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdf5db2d4b0a33387472c533f8d7944e77fba667ad1c6db9792416f7c07d4ed4
MD5 622e09ff4af42c320692435f9b5d03de
BLAKE2b-256 dc5e4a845b3d1cac890452b5d2475c0b53005f77fb1ad01eb52855416fcd2b81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page