get_natural_areas
Retrieve protected natural areas in Colombia, filterable by department. Returns names, categories, and locations for parks and reserves.
Instructions
Obtiene la lista de áreas naturales protegidas de Colombia. Puede filtrar por departamento.
Args:
department_id (number, opcional): ID del departamento para filtrar
Returns: Lista de áreas naturales con nombre, categoría y departamento.
Ejemplo de uso:
"¿Cuáles son los parques naturales de Colombia?"
"Áreas naturales en el Amazonas"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| department_id | No | ID del departamento para filtrar |
Implementation Reference
- src/index.ts:918-957 (handler)Handler function for the 'get_natural_areas' tool. Fetches natural protected areas from the API, optionally filtered by department ID, processes the data into a formatted structure including ID, name, category, department ID, and area in hectares, and returns it as a JSON text content block or an error message.async ({ department_id }) => { try { let areas: any[]; if (department_id) { areas = await apiRequest<any[]>(`/Department/${department_id}/naturalareas`); } else { areas = await apiRequest<any[]>("/NaturalArea"); } const resultado = { total: areas.length, areas_naturales: areas.map(a => ({ id: a.id, nombre: a.name, categoria: a.categoryNaturalArea?.name || "N/A", departamento_id: a.departmentId, area_hectareas: a.areaHa, })), }; return { content: [ { type: "text", text: JSON.stringify(resultado, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error al obtener áreas naturales: ${error instanceof Error ? error.message : "Error desconocido"}`, }, ], }; } }
- src/index.ts:908-910 (schema)Zod input schema defining the optional 'department_id' parameter for filtering natural areas by department.inputSchema: { department_id: z.number().int().optional().describe("ID del departamento para filtrar"), },
- src/index.ts:893-958 (registration)Registration of the 'get_natural_areas' tool using server.registerTool, including metadata, schema, annotations, and inline handler function.server.registerTool( "get_natural_areas", { title: "Obtener Áreas Naturales Protegidas", description: `Obtiene la lista de áreas naturales protegidas de Colombia. Puede filtrar por departamento. Args: - department_id (number, opcional): ID del departamento para filtrar Returns: Lista de áreas naturales con nombre, categoría y departamento. Ejemplo de uso: - "¿Cuáles son los parques naturales de Colombia?" - "Áreas naturales en el Amazonas"`, inputSchema: { department_id: z.number().int().optional().describe("ID del departamento para filtrar"), }, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, }, async ({ department_id }) => { try { let areas: any[]; if (department_id) { areas = await apiRequest<any[]>(`/Department/${department_id}/naturalareas`); } else { areas = await apiRequest<any[]>("/NaturalArea"); } const resultado = { total: areas.length, areas_naturales: areas.map(a => ({ id: a.id, nombre: a.name, categoria: a.categoryNaturalArea?.name || "N/A", departamento_id: a.departmentId, area_hectareas: a.areaHa, })), }; return { content: [ { type: "text", text: JSON.stringify(resultado, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error al obtener áreas naturales: ${error instanceof Error ? error.message : "Error desconocido"}`, }, ], }; } } );