eBird

live ScienceBiodiversity

Cornell Lab bird sightings — 1B+ observations worldwide, with notable-sighting flags and rich region trees.

5 tools
0ms auth
free tier 50 calls/day

Tools

recent_observations required: region_code

Recent sightings in a region.

Parameters
Name Type Description
region_code req string eBird region code
species_code opt string Optional species filter
back opt number 1-30 days
max_results opt number 1-10000
include_provisional opt boolean Include unconfirmed
Try it
recent_notable required: region_code

Rare / out-of-range sightings in a region.

Parameters
Name Type Description
region_code req string eBird region code
back opt number 1-30 days
max_results opt number 1-10000
detail opt string simple | full
Try it
nearby_observations required: latitude, longitude

Sightings within a radius of a lat/lon.

Parameters
Name Type Description
latitude req number Latitude
longitude req number Longitude
dist_km opt number 1-50
back opt number 1-30 days
max_results opt number 1-10000
species_code opt string Optional species filter
Try it
find_species required: query

Search eBird taxonomy by common/scientific name.

Parameters
Name Type Description
query req string Species name
Try it
list_subregions required: region_type

Child regions of a parent.

Parameters
Name Type Description
region_type req string country | subnational1 | subnational2
parent_region_code opt string Parent region (default "world")
Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/ebird/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/ebird/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"recent_observations","arguments":{"region_code": "example"}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("recent_observations", {"region_code":"example"});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("cornell lab bird sightings — 1b+ observations worldwide, with notable-sighting flags and rich region trees");