birdnet-go-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@birdnet-go-mcpWhat bird species were detected in the last 24 hours?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
birdnet-go-mcp
Highlights
Native BirdNET-Go Support: Interfaces directly with BirdNET-Go's v2 REST API over LAN or localhost. No raw database locking or unmaintained Python dependencies.
Instant
npxRun: Launch immediately withnpx -y birdnet-go-mcpβ zero Go toolchain required.Zero-Dependency Static Binary: Single Go binary (
CGO_ENABLED=0) compiled for Linux, macOS, and Windows.Dual-Mode (CLI + MCP): Human-friendly CLI for quick terminal health checks (
birdnet-mcp status), plus full stdio & SSE MCP server for AI agents.Context-Protected (8KB Envelope): Hard-capped output preventing multi-hundred detection queries from overflowing model context windows.
Read-Only & Parallel-Safe: Omits all mutating/destructive endpoints. Annotates all tools with
readOnlyHintandidempotentHintfor fast parallel agent calls.Audio & Clip Access: Resolves LAN Caddy/Nginx
.wavclip URLs, with built-in base64 audio streaming for multimodal models.
Related MCP server: BirdNet-Pi MCP Server
Quick Start
1. Instant Run via NPX (Recommended for Claude Desktop & Node users)
No Go installation needed. Downloads the native binary for your platform automatically:
# Check station health in your terminal
npx -y birdnet-go-mcp status
# Or set target host
BIRDNET_BASE_URL="http://192.168.1.130:8080" npx -y birdnet-go-mcp recent2. Install via Go
go install github.com/zax0rz/birdnet-go-mcp/cmd/birdnet-mcp@latest3. Pre-Compiled Binaries
Download the latest static binary for your architecture from GitHub Releases:
darwin-arm64(Apple Silicon M1/M2/M3/M4)darwin-amd64(Intel Mac)linux-amd64(x86_64 servers, Proxmox LXC, Docker)linux-arm64(Raspberry Pi 4 / 5)linux-armv7(Raspberry Pi 2 / 3 / Zero 2 W)windows-amd64
Client & Harness Setup
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Option A: Using npx (Easiest)
{
"mcpServers": {
"birdnet": {
"command": "npx",
"args": ["-y", "birdnet-go-mcp", "serve"],
"env": {
"BIRDNET_BASE_URL": "http://192.168.1.130:8080",
"CLIPS_BASE_URL": "http://192.168.1.130:8091"
}
}
}
}Option B: Using Native Binary
{
"mcpServers": {
"birdnet": {
"command": "/usr/local/bin/birdnet-mcp",
"args": ["serve"],
"env": {
"BIRDNET_BASE_URL": "http://192.168.1.130:8080",
"CLIPS_BASE_URL": "http://192.168.1.130:8091"
}
}
}
}Claude Code
Add directly via CLI:
claude mcp add birdnet -- npx -y birdnet-go-mcp serveGoogle Antigravity
In your Antigravity MCP configuration (~/.gemini/antigravity/mcp/ or project settings):
{
"mcpServers": {
"birdnet": {
"command": "birdnet-mcp",
"args": ["serve"],
"env": {
"BIRDNET_BASE_URL": "http://192.168.1.130:8080",
"CLIPS_BASE_URL": "http://192.168.1.130:8091"
}
}
}
}OpenClaw
In ~/.openclaw/openclaw.json:
{
"mcp": {
"servers": {
"birdnet": {
"command": "/Users/zach/.openclaw/mcp-servers/birdnet-go-mcp/bin/birdnet-mcp",
"args": [],
"env": {
"BIRDNET_BASE_URL": "http://192.168.1.130:8080",
"CLIPS_BASE_URL": "http://192.168.1.130:8091"
},
"toolFilter": {
"include": ["*"]
}
}
}
}
}In your agent's tools.allow list:
"tools": {
"allow": [
"birdnet__get_recent_detections",
"birdnet__search_detections",
"birdnet__get_detection_detail",
"birdnet__get_today_summary",
"birdnet__get_new_arrivals",
"birdnet__get_station_health",
"birdnet__get_audio_clip",
"birdnet__get_audio_clip_base64"
]
}Remote / Headless Agents (SSE HTTP Mode)
If your agent runs on another machine or in the cloud without access to local stdio:
# Start background SSE server on port 8092
birdnet-mcp serve --sse --port 8092Point your agent to:
http://<your-server-ip>:8092/sse
Interactive CLI Commands
birdnet-mcp is a full CLI tool for humans as well as an MCP server for agents.
Check Station & RTSP Mic Health
$ birdnet-mcp status
π Connecting to BirdNET-Go at http://192.168.1.130:8080...
=== AUDIO STREAMS ===
NAME TYPE HEALTH STATE THROUGHPUT LAST RECEIVED
birdz0rz-pi rtsp π’ HEALTHY running 74.8 KB/s 2026-09-04T20:38:53-04:00
=== DETECTOR HOST ===
Host: birdz0rz (Debian Linux, x86_64)
CPU: AMD Ryzen 5 PRO 2400G (2 cores)
Uptime: 15d 3h 6m (Host) | 6d 4h 47m (BirdNET-Go)
Kernel: 7.0.14-12-pve
Environment: LXCView Recent Sightings
$ birdnet-mcp recent --limit 5 --min-conf 0.80
ID TIME SPECIES COMMON NAME CONF NEW? CLIP URL
#129 2026-09-04 19:59:35 easblu Eastern Bluebird 84% - http://192.168.1.130:8091/2026/09/sialia_sialis_84p_20260904T195937Z.wav
#128 2026-09-04 19:58:17 easblu Eastern Bluebird 95% - http://192.168.1.130:8091/2026/09/sialia_sialis_95p_20260904T195819Z.wav
#127 2026-09-04 19:05:23 blujay Blue Jay 84% - http://192.168.1.130:8091/2026/09/cyanocitta_cristata_84p_20260904T190525Z.wav
#126 2026-09-04 18:46:16 carwre Carolina Wren 96% - http://192.168.1.130:8091/2026/09/thryothorus_ludovicianus_96p_20260904T184618Z.wav
#124 2026-09-04 18:35:34 houfin House Finch 90% - http://192.168.1.130:8091/2026/09/haemorhous_mexicanus_90p_20260904T183536Z.wavDownload Audio Recording
$ birdnet-mcp clip sialia_sialis_95p_20260904T195819Z.wav --download --out bluebird.wav
β
Saved 1440044 bytes to bluebird.wavMCP Tool Reference
Tool | Parameters | Description |
|
| Fetches the most recent bird acoustic detections with confidence scores, timestamps, and audio clip URLs. |
|
| Historical search through detection records stored in SQLite. |
|
| Inspects a single detection: weather conditions at detection time, confidence breakdown, and audio clip info. |
| (none) | Aggregate summary of today's observatory run: total count, species diversity, and top visitors. |
| (none) | Identifies species heard for the first time ever or new this season/year (vital for tracking migration). |
| (none) | Real-time diagnostic telemetry: RTSP mic stream state, ingest bit rate, dropped packets, and host uptime. |
|
| Resolves the accessible LAN URL on Caddy/Nginx (:8091) for Discord/web embedding. |
|
| Downloads and base64-encodes the raw |
MCP Resources
birdnet://station/healthβ Live JSON snapshot of the Pi mic stream and BirdNET-Go engine.birdnet://detections/recentβ The 10 most recent detections.birdnet://species/summaryβ Aggregated species occurrence summary.
MCP Prompts
daily_backyard_briefβ Morning dispatch workflow template for resident bird agents.investigate_detectionβ Deep-dive template for evaluating anomalous sightings against eBird.
Configuration Reference
Environment Variable | CLI Flag | Default | Description |
|
|
| BirdNET-Go v2 REST API base URL |
|
|
| Base URL for audio clips file server |
|
| (empty) | Optional HTTP Basic Auth username |
|
| (empty) | Optional HTTP Basic Auth password |
|
| (empty) | Optional Bearer authorization token |
| (none) |
| HTTP client timeout in seconds |
Field-Tested in Production: The Origin Story & Hardening
birdnet-go-mcp wasn't built in a theoretical vacuum β it was forged and verified against a live backyard bioacoustic observatory:
Mic Station: Raspberry Pi Zero 2 W mounted outdoors with a weather-sealed electret microphone streaming 48kHz mono audio via RTSP (
mediamtx) at ~75 KB/s over Wi-Fi.Detector Host: BirdNET-Go running inside a Debian 12 Proxmox LXC container (
amd64, AMD Ryzen 5 PRO), analyzing audio chunks with the Cornell Lab of Ornithology neural network.Clip Web Server: Caddy reverse proxy serving
/var/lib/birdnet-go/clips/over HTTP on port 8091.Agent Mesh: OpenClaw on an Apple Silicon Mac Mini running autonomous resident agents:
Blenda (Infra agent, GLM-5.3): Monitors server health, manages gateway restarts, and oversees tool permissions.
Leopold (Resident Naturalist, Gemini 3.8 Flash): Composes daily backyard wildlife briefings, flags unusual species (Eastern Bluebirds, Carolina Wrens, Pileated Woodpeckers), and inspects audio spectrograms.
Real-World Lessons & "Incident Zero"
The Caddy Directory Permission Trap (Incident Zero): BirdNET-Go creates monthly clip directories (
/clips/YYYY/MM/) with750permissions (drwxr-x---). External web servers (Caddy, Nginx) running as their own system user will hit HTTP 403 Forbidden when serving audio clips to agents or Discord webhooks. Fix: Set permissions to755on existing month folders and add your web server user to thebirdnetgroup:sudo chmod -R 755 /var/lib/birdnet-go/clips sudo usermod -aG birdnet caddyApple Silicon AMFI & Cross-Compilation: When cross-compiling Go binaries from Linux for macOS (
GOOS=darwin GOARCH=arm64) with stripped debug symbols (-ldflags="-s -w"), macOS Apple Mobile File Integrity (AMFI) will immediately terminate the process withSIGKILL(exit code 137). All Darwin ARM64 releases are properly ad-hoc codesigned (codesign -s - --force).Context Window Token Budget Guard: Feeding raw base64 WAV recordings into multimodal LLMs is magical for verifying difficult bird calls, but a single 15-second WAV consumes ~1.9MB (approx. 500,000 tokens). That can consume 50% of a 1M-token context window in one tool invocation.
birdnet-go-mcpstrictly caps all structured JSON tool responses at an 8KB envelope cap, while keepingget_audio_clip_base64explicitly exempt so models can call it intentionally without risk of accidental context blowup in daily briefing routines.
Contributing & Development
# Clone
git clone https://github.com/zax0rz/birdnet-go-mcp.git
cd birdnet-go-mcp
# Run unit tests
make test
# Build for local OS
make build
# Cross-compile for Darwin ARM64 (Apple Silicon)
make build-macCredits & License
Built with
mark3labs/mcp-go.Designed for
tphakala/birdnet-go.Bird identification neural network developed by the Cornell Lab of Ornithology and Chemnitz University of Technology.
Licensed under the MIT License.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
Connect AI clients to biomedical data and tools.
Provide detailed PokΓ©mon data and information through a standardized MCP interface. Enable LLMs anβ¦
Related MCP Servers
- AlicenseAqualityDmaintenanceCross-reference your BirdNET-Pi data with eBird observations using natural language3121MIT
- FlicenseNot gradedqualityDmaintenanceA Python-based server that enables accessing and analyzing bird detection data through the Model Context Protocol, offering features like filtering detections, accessing audio recordings, and generating reports.3-
- AlicenseNot gradedqualityDmaintenanceIntegrates the eBird API with Claude to query bird observation data, including recent sightings, rare bird reports, contributor statistics, hotspot locations, and taxonomy information through natural language.5MIT
- AlicenseAqualityDmaintenanceAn AI-powered birding companion that connects Claude to eBird and Xeno-canto APIs, enabling personalized birding with life list tracking, route-based hotspot discovery, and recording enrichment.282MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zax0rz/birdnet-go-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server