get_departments_by_region
Retrieve departments for a specific Colombian region by providing its ID. Use this tool to find which departments belong to regions like Caribe, Pacífico, Orinoquía, Amazonía, Andina, or Insular.
Instructions
Obtiene todos los departamentos que pertenecen a una región específica.
Args:
region_id (number): ID de la región
1 = Caribe
2 = Pacífico
3 = Orinoquía
4 = Amazonía
5 = Andina
6 = Insular
Returns: Lista de departamentos de esa región.
Ejemplo de uso:
"¿Cuáles departamentos están en la región Caribe?"
"Dame los departamentos de la Amazonía"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| region_id | Yes | ID de la región (1=Caribe, 2=Pacífico, 3=Orinoquía, 4=Amazonía, 5=Andina, 6=Insular) |
Implementation Reference
- src/index.ts:312-354 (handler)Handler function that takes region_id, fetches departments from `/Region/${region_id}/departments` API endpoint, maps region name, formats department list with id, name, capital, population, and returns as JSON text content.async ({ region_id }) => { try { const departments = await apiRequest<Department[]>(`/Region/${region_id}/departments`); const regionNames: Record<number, string> = { 1: "Caribe", 2: "Pacífico", 3: "Orinoquía", 4: "Amazonía", 5: "Andina", 6: "Insular", }; const resultado = { region: regionNames[region_id] || `Región ${region_id}`, total_departamentos: departments.length, departamentos: departments.map(d => ({ id: d.id, nombre: d.name, capital: d.cityCapital?.name || "N/A", poblacion: d.population, })), }; return { content: [ { type: "text", text: JSON.stringify(resultado, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error al obtener departamentos por región: ${error instanceof Error ? error.message : "Error desconocido"}`, }, ], }; } }
- src/index.ts:281-355 (registration)Registration of the 'get_departments_by_region' tool using server.registerTool, including title, description, input schema for region_id, annotations, and the inline handler function.server.registerTool( "get_departments_by_region", { title: "Obtener Departamentos por Región", description: `Obtiene todos los departamentos que pertenecen a una región específica. Args: - region_id (number): ID de la región - 1 = Caribe - 2 = Pacífico - 3 = Orinoquía - 4 = Amazonía - 5 = Andina - 6 = Insular Returns: Lista de departamentos de esa región. Ejemplo de uso: - "¿Cuáles departamentos están en la región Caribe?" - "Dame los departamentos de la Amazonía"`, inputSchema: { region_id: z.number().int().min(1).max(6).describe("ID de la región (1=Caribe, 2=Pacífico, 3=Orinoquía, 4=Amazonía, 5=Andina, 6=Insular)"), }, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, }, async ({ region_id }) => { try { const departments = await apiRequest<Department[]>(`/Region/${region_id}/departments`); const regionNames: Record<number, string> = { 1: "Caribe", 2: "Pacífico", 3: "Orinoquía", 4: "Amazonía", 5: "Andina", 6: "Insular", }; const resultado = { region: regionNames[region_id] || `Región ${region_id}`, total_departamentos: departments.length, departamentos: departments.map(d => ({ id: d.id, nombre: d.name, capital: d.cityCapital?.name || "N/A", poblacion: d.population, })), }; return { content: [ { type: "text", text: JSON.stringify(resultado, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error al obtener departamentos por región: ${error instanceof Error ? error.message : "Error desconocido"}`, }, ], }; } } );
- src/index.ts:303-304 (schema)Zod input schema defining region_id as integer between 1 and 6 with description of region mappings.region_id: z.number().int().min(1).max(6).describe("ID de la región (1=Caribe, 2=Pacífico, 3=Orinoquía, 4=Amazonía, 5=Andina, 6=Insular)"), },