天气、加密货币和货币MCP服务器🌤️ ₿ 💱
模型上下文协议(MCP)服务器,提供OpenWeatherMap API的天气数据、CoinGecko API的加密货币价格和ExchangeRate-API的货币汇率。该项目演示了如何构建一个MCP服务器,使像克劳德这样的人工智能助手能够回答天气、加密和货币相关的问题。
🎯 这有什么作用
该项目在克劳德和现实世界数据之间架起了一座桥梁:
- 你问:“巴黎的天气怎么样?”
- 或者:“比特币的价格是多少?”
- 或者:“将100美元兑换为欧元”
- 或者:“英镑和日元的汇率是多少?”
- 甚至:“给我看看伦敦和东京的天气,加上以太坊的价格”
- Claude使用MCP服务器获取实时数据
- 你会得到一个包含当前信息的自然语言答案
- 支持20多种加密货币、全球任何城市和160多种货币
📁 项目结构
weather-crypto-mcp/
├── src/
│ ├── __init__.py # Package initialization
│ ├── server.py # MCP server (provides weather, crypto & currency tools)
│ └── client.py # Terminal client (asks questions)
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
└── README.md # This file🚀 安装说明
步骤1:获取OpenWeatherMap API密钥
- 访问https://openweathermap.org/api
- 注册一个免费帐户
- 转到API密钥部分并复制密钥
- 等待几分钟,让钥匙激活
步骤2:安装依赖项
# Create a virtual environment (recommended)
python -m venv venv
# Activate it
# On macOS/Linux:
source venv/bin/activate
# On Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt步骤3:配置环境
# Copy the example env file
cp .env.example .env
# Edit .env and add your API key
# OPENWEATHER_API_KEY=your_actual_api_key_here步骤4:设置Anthropic API密钥
客户需要克劳德来解释你的问题:
# On macOS/Linux:
export ANTHROPIC_API_KEY=your_anthropic_api_key
# On Windows:
set ANTHROPIC_API_KEY=your_anthropic_api_key从以下位置获取您的Anthropic API密钥:https://console.anthropic.com/
💻 用法
交互模式
在交互式会话中运行不带参数的客户端:
python src/client.py然后问以下问题:
- “伦敦的天气怎么样?”
- “今天的比特币价格是多少?”
- “将100美元兑换成欧元”
- “英镑兑日元的汇率是多少?”
- “显示Solana和Dogecoin的价格”
- “伦敦和巴黎的天气怎么样?”
- “东京的天气和比特币价格怎么样?”
- “东京会下雨吗?”
- “给我巴黎的天气预报”
单查询模式
将您的问题作为命令行参数传递:
python src/client.py "What's the weather in Berlin?"🔧 运作原理
建筑
User Question → Client → MCP Server → OpenWeatherMap / CoinGecko / ExchangeRate-API
↓ ↓ ↓
Claude 4 Tools Weather, Crypto & Currency Data
↓ ↓ ↓
Natural Language Answer ← Formatted Data组件说明
1.MCP服务器(Server.py)
- 向克劳德展示四个工具:
- get_current_weather:一个城市的现状 - get_weather_forecast:一个城市的5天预报 - get_crypto_price:支持20多种加密货币的动态加密货币价格工具 - get_exchange_rate:160多种货币的汇率
- 从OpenWeatherMap、CoinGecko和ExchangeRate-API获取数据
- 返回结构化天气、加密货币和货币信息
- 支持多个同时进行的工具调用(例如,“伦敦和巴黎的天气”)
2.终端客户端(Client.py)
- 回答你的自然语言问题
- 连接到MCP服务器
- 用克劳德来解释你的问题
- Claude决定调用哪个工具
- 格式化并显示答案
3.MCP协议
- 人工智能访问外部数据的标准化方式
- 服务器公开“工具”(功能)
- 客户端请求可用工具
- AI决定何时以及如何使用它们
📊 可用工具
天气工具
get_current天气 返回当前天气状况,包括:
- 温度(实际温度和感觉温度)
- 天气状况(晴朗、多云、多雨等)
- 湿度和压力
- 风速
- 云量百分比
get_weather_forecast 返回5天预测,包括:
- 每3小时预测一次
- 温度预报
- 预期天气状况
- 每个预测的时间戳
加密货币工具
加密价格 支持20多种加密货币的动态工具:
- 接受符号(btc、eth、sol)或CoinGecko ID(比特币、以太坊)
- 返回当前价格(美元)
- 24小时价格变动百分比
- 市值
支持的加密货币:
- 顶级硬币:BTC、ETH、USDT、BNB、SOL
- 主要山寨币:XRP、USDC、ADA、DOGE、TRX、AVAX、LINK、DOT、MATIC
- Meme币希布、佩佩、威夫
- 德菲:UNI、AAVE、CRV
- 任何CoinGecko硬币:直接将CoinGecko ID传递给未上市的硬币
示例:
- “索拉纳的价格是多少?”(使用符号:sol→ 索拉纳)
- “给我看比特币和以太坊”(一次多个硬币)
- “仲裁价格”(传递给CoinGecko)
货币兑换工具
get_exchange_rate 获取任意两种货币之间的实时汇率:
- 支持160多种世界货币(美元、欧元、英镑、日元、加元、澳元等)
- 返回当前汇率
- 用于转换的可选金额参数
- 来自ExchangeRate-API的数据(免费,不需要API密钥)
支持的货币: 所有主要世界货币,包括:
- 美洲:美元、加元、MXN、BRL、ARS
- 欧洲:欧元、英镑、瑞士法郎、瑞典克朗、挪威克朗、丹麦克朗、波兰克朗
- 亚洲:日本、加拿大、韩国、印度、新加坡、香港、泰国
- 大洋洲:AUD,NZD
- 中东:AED、SAR、ILS
- 非洲:ZAR、EGP、NGN
- 还有140多个!
示例:
- “将100美元兑换成欧元”
- “英镑对日元的汇率是多少?”
- “50加元等于多少澳元?”
🛠️ 故障排除
“找不到OPENWEATHER_API_KEY”
- 确保您创建了
.env文件 - 检查您的API密钥是否正确
- 确保键入内容周围没有引号
.env
“未找到城市”
- 检查城市名称的拼写
- 尝试使用国家代码:“英国伦敦”或“法国巴黎”
“API请求失败”
- 新的API密钥需要几分钟才能激活
- 检查您的互联网连接
- 验证您的API密钥是否有效
“找不到ANTHROPIC_API_KEY”
- 确保您已设置环境变量
- 使用
export(macOS/Linux)或set(Windows) - 设置后重新启动终端
📚 学习资源
- MCP文件: https://modelcontextprotocol.io/
- OpenWeatherMap API: https://openweathermap.org/api
- CoinGecko API: https://www.coingecko.com/en/api
- 汇率-API: https://www.exchangerate-api.com/
- 无烟煤API: https://docs.anthropic.com/
🎓 关键概念
模型上下文协议(MCP)
- 将AI助手连接到外部数据源
- Anthropic创建的标准化方案
- 服务器暴露了AI可以使用的“工具”
MCP中的工具
- AI可以调用的函数
- 每个工具都有一个名称、描述和输入模式
- AI根据用户查询决定何时使用工具
标准通信
- 服务器和客户端通过标准输入/输出进行通信
- 允许进程相互通信
- 本地MCP服务器简单高效
🔐 安全说明
- 永不承诺
.env文件到版本控制 - 对API密钥保密
- 这
.env.example文件显示没有实际密钥的格式 - 添加
.env给你的.gitignore文件
📝 许可证
这是一个学习项目,您可以根据需要自由使用和修改!
🤝 贡献
这是一个教育项目。请随意:
- 添加更多天气特征(紫外线指数、空气质量等)
- 在CRYPTO_IDS字典中添加更多加密货币符号
- 支持不同的API(股票、新闻等)
- 添加历史汇率数据
- 改进错误处理
- 添加测试
- 为API响应添加缓存
📋 更新日志
v3.0.0 (当前)
- 新增货币汇率工具
get_exchange_rate - 支持160多种世界货币(美元、欧元、英镑、日元等)
- 汇率不需要API密钥(使用ExchangeRate-API)
- 示例:“将100美元兑换为欧元”,“英镑兑换为日元”
v2.0.0版本
- 将单个加密工具替换为动态加密工具
get_crypto_price(symbol)工具 - 添加了对20多种加密货币的支持,并提供了符号快捷方式
- 修复了错误:现在可以同时处理多个工具调用
- 示例:“伦敦和巴黎的天气”,“BTC和ETH价格”
v1.0.0
- 初始版本支持天气和基本加密货币
- 4个工具:天气、预报、BTC价格、ETH价格
编码愉快! 🚀
