get_bird_report
Generate detailed bird species reports using scientific names, including related species, conservation status, and geographic data, via the AviBase MCP Server.
Instructions
Get a detailed report for a specific bird species including related species and comprehensive information.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scientific_name | Yes | Scientific name of the bird species (e.g., "Aquila chrysaetos") |
Implementation Reference
- mcp-server.js:567-617 (handler)The handler function that implements the core logic for the 'get_bird_report' tool. It makes an API request to fetch detailed information about a specific bird species by scientific name, processes the response to extract bird details and related species, and returns a formatted markdown report.async handleGetBirdReport(args) { const { scientific_name } = args; const endpoint = `/bird/${encodeURIComponent(scientific_name)}`; const response = await this.makeAPIRequest(endpoint); const bird = response.data.bird; const related = response.data.relatedInFamily; return { content: [ { type: 'text', text: `# Detailed Report: ${bird.Scientific_name} ## Basic Information - **Scientific Name:** ${bird.Scientific_name} - **Common Name:** ${bird.English_name_AviList || 'No common name available'} - **Alternative Names:** ${bird.English_name_Clements_v2024 || bird.English_name_BirdLife_v9 || 'None listed'} - **Taxonomic Authority:** ${bird.Authority || 'Unknown'} ## Taxonomic Classification - **Order:** ${bird.Order} - **Family:** ${bird.Family} (${bird.Family_English_name || 'Family name not available'}) - **Taxonomic Rank:** ${bird.Taxon_rank} ## Conservation & Status - **IUCN Red List Category:** ${bird.IUCN_Red_List_Category || 'Not assessed'} - **Conservation Status:** ${response.data.conservationStatus} - **Extinction Status:** ${bird.Extinct_or_possibly_extinct || 'Not extinct'} ## Geographic Distribution ${bird.Range ? `**Range:** ${bird.Range}` : '**Range:** No range data available'} ## Additional Information - **Type Locality:** ${bird.Type_locality || 'Not specified'} - **Original Description:** ${bird.Title_of_original_description || 'Not available'} - **Bibliographic Details:** ${bird.Bibliographic_details || 'Not available'} ## External Resources ${response.data.hasUrls.birdLife ? `- **BirdLife DataZone:** Available` : ''} ${response.data.hasUrls.birdsOfTheWorld ? `- **Birds of the World:** Available` : ''} ${response.data.hasUrls.originalDescription ? `- **Original Description:** Available` : ''} - **Species Code:** ${bird.Species_code_Cornell_Lab || 'Not available'} - **AvibaseID:** ${bird.AvibaseID || 'Not available'} ## Related Species in ${bird.Family} ${related.length > 0 ? related.map((rel, i) => `${i + 1}. **${rel.Scientific_name}** - ${rel.English_name_AviList || 'No common name'}`).join('\n') : 'No related species data available'}`, }, ], }; }
- mcp-server.js:217-230 (schema)The input schema definition for the 'get_bird_report' tool, specifying the required 'scientific_name' parameter as a string.{ name: 'get_bird_report', description: 'Get a detailed report for a specific bird species including related species and comprehensive information.', inputSchema: { type: 'object', properties: { scientific_name: { type: 'string', description: 'Scientific name of the bird species (e.g., "Aquila chrysaetos")', }, }, required: ['scientific_name'], }, },
- mcp-server.js:312-313 (registration)The switch case in the CallToolRequestSchema handler that registers and routes calls to the 'get_bird_report' tool to its handler function.case 'get_bird_report': return await this.handleGetBirdReport(args);