MCP本地服务器(模型上下文协议)
一个基于Python的服务器,通过模型上下文协议(Model Context Protocol)实现对鸟类检测数据的访问和分析,提供过滤检测结果、访问音频记录以及生成报告等功能。
服务介绍
BirdNet-Pi MCP 服务器
一个基于 Python 的 Model Context Protocol (MCP) 服务器,用于 BirdNet-Pi 集成。
功能
- 按日期和物种筛选的鸟类检测数据检索
- 检测统计和分析
- 访问音频记录
- 每日活动模式
- 报告生成
要求
- Python 3.8+
- FastAPI
- Uvicorn
requirements.txt中列出的其他依赖项
安装
- 克隆仓库:
git clone https://github.com/YourUsername/mcp-server.git
cd mcp-server
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 设置您的数据目录:
mkdir -p data/audio data/reports
配置
可以使用环境变量配置服务器:
BIRDNET_DETECTIONS_FILE: 检测 JSON 文件的路径(默认: 'data/detections.json')BIRDNET_AUDIO_DIR: 音频文件目录的路径(默认: 'data/audio')BIRDNET_REPORT_DIR: 报告目录的路径(默认: 'data/reports')
运行服务器
启动服务器:
python server.py
服务器将在 http://localhost:8000 上运行。
API 端点
/functions- 列出可用功能 (GET)/invoke- 调用功能 (POST)
可用功能
-
getBirdDetections- 按日期范围和物种筛选获取鸟类检测
- 参数:startDate, endDate, species (可选)
-
getDetectionStats- 获取一段时间内的检测统计数据
- 参数:period ('day', 'week', 'month', 'all'), minConfidence (可选)
-
getAudioRecording- 获取检测的音频记录
- 参数:filename, format ('base64' 或 'buffer')
-
getDailyActivity- 获取特定日期的鸟类活动模式
- 参数:date, species (可选)
-
generateDetectionReport- 生成检测报告
- 参数:startDate, endDate, format ('html' 或 'json')
目录结构
mcp-server/
├── birdnet/
│ ├── __init__.py
│ ├── config.py
│ ├── functions.py
│ └── utils.py
├── data/
│ ├── audio/
│ └── reports/
├── server.py
├── requirements.txt
└── README.md