SuperAPI AI 工具集

birdnet-go-mcp

birdnet-go-mcp 是一个面向 BirdNET-Go 生物声学观测站的高性能 Model Context Protocol(MCP)服务器与命令行工具。它通过局域网或 localhost 直接连接 BirdNET-Go 的 v2 REST API,无需锁定原始数据库,也不依赖未维护的 Python 库。用户可将 Claude、Antigravity、OpenClaw 及本地大语言模型接入自家后院的鸟类监测站。该工具支持 npx 即时运行,无需 Go 工具链;也提供零依赖静态二进制文件,覆盖 Linux、macOS 和 Windows。它同时具备面向人类的 CLI 与面向 AI 智能体的 MCP 服务器(stdio 与 SSE)两种模式,并内置 8KB 响应上限以保护模型上下文窗口。所有工具均为只读,不带任何修改或破坏性端点,并标注 readOnlyHint 与 idempotentHint,便于并行调用。它还能解析局域网 Caddy/Nginx 的 .wav 音频片段 URL,并内置 base64 音频流,供多模态模型使用。

访问官网

工具介绍

birdnet-go-mcp 是一个面向 BirdNET-Go 生物声学观测站的高性能 Model Context Protocol(MCP)服务器与 CLI 工具。它旨在将 Claude、Antigravity、OpenClaw 以及本地大语言模型连接到用户后院的鸟类监测站。

用途 该工具用于以只读方式访问 BirdNET-Go 观测站数据,包括查询最近的鸟类检测记录、流式获取麦克风遥测数据、解析局域网音频录音,以及查看观测记录。它直接对接 BirdNET-Go 的 v2 REST API,通过局域网或 localhost 通信,无需锁定原始数据库,也不依赖未维护的 Python 依赖。

主要能力

  • 原生支持 BirdNET-Go:直接与 BirdNET-Go v2 REST API 交互,无需原始数据库锁定或未维护的 Python 依赖。
  • 即时运行:可通过 npx -y birdnet-go-mcp 立即启动,无需 Go 工具链。
  • 零依赖静态二进制:单一 Go 二进制文件(CGO_ENABLED=0),支持 Linux、macOS 和 Windows。
  • 双模式(CLI + MCP):提供面向人类的 CLI,用于快速终端健康检查(birdnet-mcp status);同时提供完整的 stdio 与 SSE MCP 服务器,供 AI 智能体使用。
  • 上下文保护(8KB 信封):硬性限制输出,防止数百条检测查询溢出模型上下文窗口。
  • 只读且并行安全:省略所有修改/破坏性端点;所有工具都标注 readOnlyHint 和 idempotentHint,便于快速并行调用。
  • 音频与片段访问:解析局域网 Caddy/Nginx 的 .wav 片段 URL,并内置 base64 音频流,供多模态模型使用。

使用方式

  1. 通过 NPX 即时运行(推荐 Claude Desktop 与 Node 用户):无需安装 Go,会自动下载对应平台的本地二进制文件。
  2. 通过 Go 安装。
  3. 预编译二进制文件:从 GitHub Releases 下载适用于自身架构的最新静态二进制文件,包括 darwin-arm64(Apple Silicon M1/M2/M3/M4)、darwin-amd64(Intel Mac)、linux-amd64(x86_64 服务器、Proxmox LXC、Docker)、linux-arm64(Raspberry Pi 4 / 5)、linux-armv7(Raspberry Pi 2 / 3 / Zero 2 W)。

客户端与运行框架配置

  • Claude Desktop 与 Cursor:编辑 macOS 的 ~/Library/Application Support/Claude/claude_desktop_config.json、Windows 的 %APPDATA%\Claude\claude_desktop_config.json,或在 Cursor Settings ➔ Features ➔ MCP 下添加。也可通过 CLI 直接添加。
  • Google Antigravity:在 Antigravity MCP 配置(~/.gemini/antigravity/mcp/ 或项目设置)中添加。
  • OpenClaw:在 ~/.openclaw/openclaw.json 中配置,并添加到智能体的 tools.allow 列表中。
  • 远程/无头智能体(SSE HTTP 模式):若智能体运行在另一台机器或云端且无法访问本地 stdio,可将智能体指向 http://<your-server-ip>:8092/sse。

交互式 CLI 命令 birdnet-mcp 既是面向人类的完整 CLI 工具,也是面向智能体的 MCP 服务器。可用于检查站点与 RTSP 麦克风健康、查看最近观测记录、下载音频录音。

MCP 工具参考

  • birdnet://station/health:Pi 麦克风流与 BirdNET-Go 引擎的实时 JSON 快照。
  • birdnet://detections/recent:最近 10 条检测记录。
  • birdnet://species/summary:物种出现情况聚合摘要。
  • daily_backyard_brief:面向常驻鸟类智能体的晨间简报工作流模板。
  • investigate_detection:对照 eBird 评估异常观测的深入分析模板。

生产环境实战经验与加固 birdnet-go-mcp 并非在理论真空中构建,而是在真实的后院生物声学观测站中经过实战检验和验证:

  • 麦克风站点:Raspberry Pi Zero 2 W 安装在室外,配备防风雨驻极体麦克风,通过 RTSP(mediamtx)以约 75 KB/s 的速率在 Wi-Fi 上流式传输 48kHz 单声道音频。
  • 检测器主机:BirdNET-Go 运行在 Debian 12 Proxmox LXC 容器中(amd64,AMD Ryzen 5 PRO),使用 Cornell Lab of Ornithology 的神经网络分析音频块。
  • 片段 Web 服务器:Caddy 反向代理通过 HTTP 在端口 8091 上提供 /var/lib/birdnet-go/clips/ 目录。
  • 智能体网格:OpenClaw 运行在 Apple Silicon Mac Mini 上,运行自主常驻智能体:Blenda(基础设施智能体,GLM-5.3)负责监控服务器健康、管理网关重启并监督工具权限;Leopold(常驻博物学家,Gemini 3.8 Flash)负责撰写每日后院野生动物简报、标记异常物种(东蓝鸲、卡罗莱纳鹪鹩、北美黑啄木鸟)并检查音频频谱图。

真实世界经验与“Incident Zero”

  • Caddy 目录权限陷阱(Incident Zero):BirdNET-Go 会创建按月划分的片段目录(/clips/YYYY/MM/),权限为 750(drwxr-x---)。以自身系统用户身份运行的外部 Web 服务器(Caddy、Nginx)在向智能体或 Discord webhook 提供音频片段时会遇到 HTTP 403 Forbidden。修复方法:将现有月份文件夹权限设为 755,并将 Web 服务器用户加入 birdnet 组:sudo chmod -R 755 /var/lib/birdnet-go/clips 与 sudo usermod -aG birdnet caddy。
  • Apple Silicon AMFI 与交叉编译:从 Linux 交叉编译 macOS Go 二进制文件(GOOS=darwin GOARCH=arm64)并剥离调试符号(-ldflags="-s -w")时,macOS Apple Mobile File Integrity(AMFI)会立即以 SIGKILL(退出码 137)终止进程。所有 Darwin ARM64 发布版本均已正确进行 ad-hoc 代码签名(codesign -s - --force)。
  • 上下文窗口 Token 预算保护:将原始 base64 WAV 录音输入多模态 LLM 对于验证困难鸟叫非常有用,但单个 15 秒 WAV 会消耗约 1.9MB(约 500,000 tokens),一次工具调用就可能占用 100 万 token 上下文窗口的 50%。birdnet-go-mcp 严格将所有结构化 JSON 工具响应限制在 8KB 信封上限内,同时明确豁免 get_audio_clip_base64,使模型可以有意调用它,而不会在日常简报流程中意外导致上下文爆炸。

贡献与开发、致谢与许可 基于 mark3labs/mcp-go 构建。为 tphakala/birdnet-go 设计。鸟类识别神经网络由 Cornell Lab of Ornithology 与 Chemnitz University of Technology 开发。采用 MIT 许可证。