npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kshayk/avibase-mcp

v1.0.3

Published

AviBase MCP for Claude Desktop

Readme

AviBase MCP Server

npm version License: ISC

A Model Context Protocol (MCP) server that provides AI assistants with access to comprehensive bird data through the AviBase dataset. This server acts as a bridge between AI assistants and bird taxonomic, conservation, and geographic data.

🦅 Overview

The AviBase MCP Server gives AI assistants access to a comprehensive bird database containing:

  • 40,000+ bird records with taxonomic classification
  • IUCN Red List conservation statuses
  • Geographic distribution data
  • Taxonomic authority information
  • Extinction status and historical data
  • Advanced query capabilities with JSONata

🚀 Installation

Prerequisites

  • Node.js (version 14 or higher)
  • npm or yarn package manager

Install via npm

npm install @kshayk/avibase-mcp

Install from source

git clone <repository-url>
cd mcp-package
npm install

⚙️ Configuration

For Claude Desktop

Add the server to your Claude Desktop configuration file:

On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "avibase": {
      "command": "npx",
      "args": ["@kshayk/avibase-mcp"]
    }
  }
}

For other MCP clients

Run the server with stdio transport:

node mcp-server.js

🛠️ Available Tools

1. get_bird_stats

Get comprehensive statistics about the bird dataset.

Usage: get_bird_stats()

Returns: Total records, species count, families, orders, conservation categories

2. search_birds

Search for birds by scientific or common name with fuzzy matching.

Parameters:

  • query (required): Search term for bird name
  • exact (optional): Use exact matching (default: false)
  • limit (optional): Maximum results (default: 20)

Example: search_birds({query: "eagle", limit: 10})

3. get_birds_by_taxonomy

Filter birds by taxonomic classification.

Parameters:

  • level (required): Taxonomic level ("Order", "Family", or "Taxon_rank")
  • value (required): Value to filter by (e.g., "Strigiformes" for owls)
  • limit (optional): Maximum results (default: 50)

Example: get_birds_by_taxonomy({level: "Order", value: "Strigiformes"})

4. get_conservation_status

Get birds by IUCN Red List conservation status.

Parameters:

  • category (required): IUCN category (CR, EN, VU, NT, LC, DD, EX, EW)
  • limit (optional): Maximum results (default: 50)

Example: get_conservation_status({category: "CR"}) (Critically Endangered)

5. get_birds_by_region

Find birds by geographic region or range.

Parameters:

  • region (required): Geographic region to search
  • limit (optional): Maximum results (default: 50)

Example: get_birds_by_region({region: "Madagascar"})

6. get_extinct_species

Get all extinct or possibly extinct bird species.

Parameters:

  • limit (optional): Maximum results (default: 100)

7. get_birds_by_authority

Find birds described by a specific taxonomic authority.

Parameters:

  • authority (required): Name of the taxonomic authority
  • limit (optional): Maximum results (default: 50)

Example: get_birds_by_authority({authority: "Linnaeus"})

8. get_random_birds

Get a random sample of birds for exploration.

Parameters:

  • count (optional): Number of random birds (default: 10, max: 50)

9. get_bird_report

Get a detailed report for a specific bird species.

Parameters:

  • scientific_name (required): Scientific name of the bird

Example: get_bird_report({scientific_name: "Aquila chrysaetos"})

10. custom_bird_query

Perform complex queries with multiple filters.

Parameters:

  • filters (required): Object with field-value pairs for filtering
  • limit (optional): Maximum results (default: 50)

Example:

custom_bird_query({
  filters: {
    Family: "Accipitridae",
    IUCN_Red_List_Category: ["CR", "EN"]
  }
})

11. execute_jsonata_query

Execute raw JSONata queries for advanced data analysis.

Parameters:

  • query (required): JSONata query expression
  • limit (optional): Maximum results for arrays (default: 50)

Example: execute_jsonata_query({query: "$count($[Taxon_rank = \"species\"])"})

📊 Data Coverage

IUCN Conservation Categories

  • CR: Critically Endangered
  • EN: Endangered
  • VU: Vulnerable
  • NT: Near Threatened
  • LC: Least Concern
  • DD: Data Deficient
  • EX: Extinct
  • EW: Extinct in the Wild

Taxonomic Coverage

  • All major bird orders and families
  • Species, subspecies, and other taxonomic ranks
  • Historical taxonomic authorities
  • Type localities and original descriptions

Geographic Coverage

  • Worldwide distribution data
  • Regional filtering capabilities
  • Range descriptions and habitat information

🔍 Example Use Cases

Conservation Research

// Find all critically endangered raptors
custom_bird_query({
  filters: {
    Family: "Accipitridae",
    IUCN_Red_List_Category: ["CR"]
  }
})

Taxonomic Studies

// Get all species described by Linnaeus
get_birds_by_authority({authority: "Linnaeus", limit: 100})

Regional Biodiversity

// Explore bird diversity in Australia
get_birds_by_region({region: "Australia", limit: 200})

Data Analysis

// Count endangered species by family
execute_jsonata_query({
  query: "$reduce($[IUCN_Red_List_Category = \"EN\"], function($acc, $val) { ($acc[$.Family] := ($acc[$.Family] ? $acc[$.Family] : 0) + 1; $acc) }, {})"
})

🌐 API Endpoint

The server connects to: http://shayk.dev/avibase-mcp

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the ISC License - see the LICENSE file for details.

🙏 Acknowledgments

  • AviBase for providing comprehensive bird data
  • Model Context Protocol team for the MCP framework
  • The birding and ornithology community for their contributions to avian science

📞 Support

For issues, questions, or contributions, please:

  • Open an issue on GitHub
  • Contact: Shay Kintzlinger

Note: This MCP server requires an internet connection to access the AviBase API endpoints.