get_distribution
Retrieve geographic distribution and occurrence data for marine species using scientific names. Access FishBase marine biology records to identify where species are found globally.
Instructions
Get distribution/occurrence information for a species
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| species_name | Yes | Scientific name of the species |
Implementation Reference
- src/index.ts:82-95 (registration)Registration of the 'get_distribution' tool in the MCP server's ListToolsRequestHandler, including name, description, and input schema.{ name: "get_distribution", description: "Get distribution/occurrence information for a species", inputSchema: { type: "object", properties: { species_name: { type: "string", description: "Scientific name of the species", }, }, required: ["species_name"], }, },
- src/index.ts:201-213 (handler)MCP CallToolRequestHandler case for 'get_distribution' that calls the FishBaseAPI.getDistribution method and returns JSON response.case "get_distribution": return { content: [ { type: "text", text: JSON.stringify( await fishbaseAPI.getDistribution(args.species_name as string), null, 2 ), }, ], };
- src/fishbase-api.ts:84-98 (handler)Core implementation of getDistribution in FishBaseAPI: retrieves species SpecCode, queries occurrence table, filters by SpecCode, handles errors.async getDistribution(speciesName: string): Promise<any[]> { try { const speciesData = await this.getSpecies(speciesName); if (speciesData.length === 0) { throw new Error(`Species not found: ${speciesName}`); } const specCode = speciesData[0].SpecCode; const distData = await this.queryTable('occurrence'); return distData.filter((row: any) => row.SpecCode === specCode); } catch (error) { throw new Error(`Failed to get distribution data: ${error}`); } }
- src/index.ts:85-94 (schema)Input schema definition for the 'get_distribution' tool, specifying required 'species_name' parameter.inputSchema: { type: "object", properties: { species_name: { type: "string", description: "Scientific name of the species", }, }, required: ["species_name"], },