内容
# MCP 初学者项目
该仓库包含了一系列使用 MCP(模型控制协议)框架构建的项目。主要项目是一个天气服务,使用国家气象局(National Weather Service)API 提供天气警报和预报。
## 项目结构
```
mcp-beginner/
├── .git/ # Git 仓库数据
├── .gitignore # Git 忽略规则
├── tester.json # 测试配置文件
└── weather/ # 天气服务项目
├── .python-version # Python 版本说明
├── .venv/ # 虚拟环境目录
├── README.md # 天气项目特定文档
├── hello.py # 简单的 Hello World 示例
├── pyproject.toml # 项目依赖和元数据
├── uv.lock # 依赖锁定文件
└── weather.py # 主要天气服务实现
```
## 天气服务
主要应用是一个天气服务,提供两个主要功能:
1. **天气警报**:获取任何美国州的活跃天气警报
2. **天气预报**:使用经纬度获取任何地点的详细天气预报
### 特性
- 从国家气象局 API 获取数据
- 提供格式化、可读的天气警报和预报
- 优雅地处理错误
- 实现适当的 API 请求处理,包括超时和头部设置
### 技术细节
- **Python 版本**:3.11+
- **关键依赖**:
- `httpx`:用于发起异步 HTTP 请求
- `mcp`:用于工具集成的模型控制协议框架
### API 端点
1. `get_alerts(state: str)`:
- 接受一个两字母的美国州代码(例如,“CA”,“NY”)
- 返回指定州的活跃天气警报
2. `get_forecast(latitude: float, longitude: float)`:
- 接受经纬度坐标
- 返回指定地点的 5 期天气预报
## 设置与安装
1. 确保安装了 Python 3.11 或更高版本
2. 导航到天气目录:
```bash
cd weather
```
3. 创建并激活虚拟环境:
```bash
python -m venv .venv
source .venv/bin/activate # 在 Windows 上: .venv\Scripts\activate
```
4. 安装依赖:
```bash
pip install -e .
```
## 使用
天气服务可以作为 MCP 服务器运行:
```python
from weather import get_alerts, get_forecast
# 获取加利福尼亚的天气警报
alerts = await get_alerts("CA")
# 获取旧金山的天气预报
forecast = await get_forecast(37.7749, -122.4194)
```