get_taxonomy
Retrieve eBird's complete bird species taxonomy with codes, names, and classifications. Filter by species, category, or version, and choose response format for integration.
Instructions
Get the eBird taxonomy (list of all species with codes, names, and classification).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cat | No | Taxonomic category filter (e.g., 'species', 'issf', 'hybrid') | |
| fmt | No | Response format | json |
| locale | No | Language for common names | en |
| species | No | Comma-separated species codes to fetch (e.g., 'cangoo,barswa') | |
| version | No | Specific taxonomy version |
Implementation Reference
- src/index.ts:466-477 (handler)Handler function that constructs parameters from args and fetches taxonomy data via makeRequest from the eBird API endpoint.async (args) => { const params: Record<string, string | number | boolean> = { fmt: args.fmt, locale: args.locale, }; if (args.cat) params.cat = args.cat; if (args.species) params.species = args.species; if (args.version) params.version = args.version; const result = await makeRequest("/ref/taxonomy/ebird", params); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; }
- src/index.ts:459-465 (schema)Zod schema defining input parameters for the get_taxonomy tool.{ cat: z.string().optional().describe("Taxonomic category filter (e.g., 'species', 'issf', 'hybrid')"), fmt: z.enum(["json", "csv"]).default("json").describe("Response format"), locale: z.string().default("en").describe("Language for common names"), species: z.string().optional().describe("Comma-separated species codes to fetch (e.g., 'cangoo,barswa')"), version: z.string().optional().describe("Specific taxonomy version"), },
- src/index.ts:456-478 (registration)Registration of the get_taxonomy tool using server.tool, including description, schema, and handler.server.tool( "get_taxonomy", "Get the eBird taxonomy (list of all species with codes, names, and classification).", { cat: z.string().optional().describe("Taxonomic category filter (e.g., 'species', 'issf', 'hybrid')"), fmt: z.enum(["json", "csv"]).default("json").describe("Response format"), locale: z.string().default("en").describe("Language for common names"), species: z.string().optional().describe("Comma-separated species codes to fetch (e.g., 'cangoo,barswa')"), version: z.string().optional().describe("Specific taxonomy version"), }, async (args) => { const params: Record<string, string | number | boolean> = { fmt: args.fmt, locale: args.locale, }; if (args.cat) params.cat = args.cat; if (args.species) params.species = args.species; if (args.version) params.version = args.version; const result = await makeRequest("/ref/taxonomy/ebird", params); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } );