Birding Planner

Birding Planner

MCP server for birding trip planning with migration forecasts, hotspot analysis, and daily email briefings, integrating eBird, BirdCast, NWS, and iNaturalist data.

Category
Visit Server

README

Birding Planner

MCP server + daily email briefing for Cincinnati-area migration monitoring.

MCP Server Tools

All 10 tools for interactive birding planning in Claude Desktop:

Tool What it does
plan_birding_trip Ranks nearby hotspots by recent species count + migration activity
migration_forecast BirdCast radar data + NWS weather interpretation
hotspot_details Recent species and notable sightings at a single hotspot
compare_hotspots Side-by-side species comparison with iNaturalist verification
species_finder Where a species has been seen recently near a location
best_day_to_bird Recommends the best day in a date range using migration + weather
birding_weather NWS overnight/morning forecast interpreted for migration prediction
verify_sighting Cross-references eBird reports against iNaturalist photo-verified obs
birding_window Sunrise, civil twilight, and recommended arrival time
species_frequency Historical peak week and current phenology status via BirdCast
plan_vacation_birding Discovery report for a travel destination: target species you won't find in Cincinnati, hotspots ranked by active birder community, and birding window. Uses historical bar chart data — works weeks or months ahead.

Setup

1. API Keys

  • eBird API key (required): https://ebird.org/api/keygen — free
  • BirdCast API key (required): contact BirdCast at https://birdcast.info for API access
  • Resend API key (for email): https://resend.com — free tier, 3,000 emails/month

2. Environment

Copy .env.example to .env and fill in your keys:

cp .env.example .env

3. Install dependencies

npm install

4. Claude Desktop Integration

Add to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "ebird-birding-planner": {
      "command": "node",
      "args": ["/absolute/path/to/ebird-birding-planner/src/index.js"],
      "env": {
        "EBIRD_API_KEY": "your_key_here",
        "BIRDCAST_API_KEY": "your_key_here",
        "EBIRD_LIFE_LIST_CSV": "/path/to/MyEBirdData.csv"
      }
    }
  }
}

Daily Briefing (Anthropic Routine)

The briefing runs as a cloud-hosted Anthropic Routine — no machine needs to be on.

How it works

  1. Agent runs at 4:00 AM ET daily during migration season
  2. scripts/triage.js fetches BirdCast + NWS data and outputs a JSON recommendation
  3. Agent decides: full briefing / quiet-period note / silent skip
  4. scripts/briefing.js builds HTML email and sends via Resend

Test locally

# Run triage check (outputs JSON recommendation)
node scripts/triage.js

# Generate briefing HTML (saves to ./briefing-output/ if no Resend key)
node scripts/briefing.js

# Generate quiet-period email
node scripts/briefing.js --quiet

Set up the Routine

See routine-prompt.md for the exact prompt to paste into claude.ai when creating the Routine. Required secrets to configure:

  • EBIRD_API_KEY
  • BIRDCAST_API_KEY
  • RESEND_API_KEY
  • BRIEFING_EMAIL_TO
  • BRIEFING_REGION (default: US-OH-061)
  • BRIEFING_LAT / BRIEFING_LNG (default: 39.1 / -84.5)

Architecture

src/
  index.js          — MCP server (10 tools)
  ebird-client.js   — eBird API v2 wrapper
  birdcast-client.js — BirdCast radar data
  nws-client.js     — NWS Weather API
  inaturalist-client.js — iNaturalist photo verification
  utils.js          — Cache, location resolution, date parsing

scripts/
  triage.js         — Fast migration check, outputs JSON
  briefing.js       — HTML email builder + Resend sender

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured