Skip to main content
Glama
crexative

Colombia MCP Server

by crexative

🇨🇴 Colombia MCP Server

NPM Version License: MIT

Un servidor MCP (Model Context Protocol) para consultar información geográfica, turística, histórica y cultural de Colombia.

📋 Características

  • 15 herramientas para consultar datos de Colombia

  • Regiones: Las 6 regiones naturales

  • Departamentos: 32 departamentos + Bogotá D.C.

  • Ciudades: Municipios por departamento

  • Turismo: Atracciones turísticas con coordenadas e imágenes

  • Historia: Presidentes de Colombia

  • Infraestructura: Aeropuertos y emisoras de radio

  • Naturaleza: Áreas naturales protegidas y resguardos indígenas

  • Mapas: Mapas de departamentos

Related MCP server: ApiColombiaMCP

🚀 Instalación

Para Claude Desktop

Agrega lo siguiente a tu archivo de configuración:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "colombia": {
      "command": "npx",
      "args": ["@crexative/colombia-mcp-server"]
    }
  }
}

Para Cursor

Agrega a .cursor/mcp.json en tu proyecto:

{
  "mcpServers": {
    "colombia": {
      "command": "npx",
      "args": ["@crexative/colombia-mcp-server"]
    }
  }
}

Para Windsurf

Agrega a ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "colombia": {
      "command": "npx",
      "args": ["@crexative/colombia-mcp-server"]
    }
  }
}

Para Claude Code (CLI)

Agrega a ~/.claude/settings.json:

{
  "mcpServers": {
    "colombia": {
      "command": "npx",
      "args": ["@crexative/colombia-mcp-server"]
    }
  }
}

Para Cline (VS Code)

En VS Code Settings (JSON):

{
  "cline.mcpServers": {
    "colombia": {
      "command": "npx",
      "args": ["@crexative/colombia-mcp-server"]
    }
  }
}

🛠️ Herramientas Disponibles (15)

📍 Geografía

Herramienta

Descripción

Parámetros

get_regions

Obtiene las 6 regiones naturales de Colombia

-

get_departments

Lista los 32 departamentos + Bogotá D.C.

-

get_department

Información detallada de un departamento

id o name

get_departments_by_region

Departamentos de una región específica

region_id (1-6)

get_cities

Ciudades/municipios de un departamento

department_id

🏖️ Turismo

Herramienta

Descripción

Parámetros

get_tourist_attractions

Atracciones turísticas con coordenadas e imágenes

city_id o search

get_natural_areas

Áreas naturales protegidas (parques, reservas)

department_id (opcional)

get_maps

Mapas de departamentos

department_id (opcional)

🏛️ Historia y Gobierno

Herramienta

Descripción

Parámetros

get_country_info

Información general de Colombia (bandera, himno, símbolos)

-

get_presidents

Lista de todos los presidentes de Colombia

-

get_president

Información detallada de un presidente

id

🏗️ Infraestructura

Herramienta

Descripción

Parámetros

get_airports

Aeropuertos con códigos IATA/OACI

department_id (opcional)

get_radios

Emisoras de radio con frecuencia y streaming

city_id (opcional)

🌿 Cultura y Naturaleza

Herramienta

Descripción

Parámetros

get_indigenous_reservations

Resguardos indígenas

department_id (opcional)

search_colombia

Búsqueda general de información

query


🗺️ IDs de Regiones

ID

Región

1

Caribe

2

Pacífico

3

Orinoquía

4

Amazonía

5

Andina

6

Insular


📝 Ejemplos de Uso

Geografía

Usuario: ¿Cuáles son las regiones de Colombia?
Claude: [Usa get_regions]

Usuario: Dame información sobre Antioquia
Claude: [Usa get_department con name="Antioquia"]

Usuario: ¿Qué departamentos están en la región Caribe?
Claude: [Usa get_departments_by_region con region_id=1]

Usuario: ¿Qué ciudades hay en el Valle del Cauca?
Claude: [Usa get_cities con department_id=31]

Turismo

Usuario: ¿Qué lugares turísticos hay en Cartagena?
Claude: [Usa get_tourist_attractions con search="Cartagena"]

Usuario: Busca playas en Colombia
Claude: [Usa get_tourist_attractions con search="playa"]

Usuario: ¿Cuáles son los parques naturales del Amazonas?
Claude: [Usa get_natural_areas con department_id=1]

Historia

Usuario: ¿Quiénes han sido los presidentes de Colombia?
Claude: [Usa get_presidents]

Usuario: Dame información sobre el presidente con ID 10
Claude: [Usa get_president con id=10]

Infraestructura

Usuario: ¿Cuáles son los aeropuertos de Colombia?
Claude: [Usa get_airports]

Usuario: Aeropuertos en Antioquia
Claude: [Usa get_airports con department_id=2]

Usuario: ¿Qué emisoras de radio hay en Bogotá?
Claude: [Usa get_radios con city_id=167]

Información General

Usuario: ¿Cuál es la capital de Colombia?
Claude: [Usa get_country_info]

Usuario: ¿Cuáles son los símbolos patrios de Colombia?
Claude: [Usa get_country_info]

Usuario: ¿Qué resguardos indígenas hay en el Cauca?
Claude: [Usa get_indigenous_reservations con department_id=11]

🔧 Desarrollo Local

# Clonar el repositorio
git clone https://github.com/crexative/colombia-mcp-server.git
cd colombia-mcp-server

# Instalar dependencias
npm install

# Compilar
npm run build

# Ejecutar
npm start

🌐 API Utilizada

Este MCP utiliza la API Colombia para obtener datos actualizados sobre:

  • Información del país

  • Regiones naturales

  • Departamentos y ciudades

  • Presidentes

  • Aeropuertos

  • Emisoras de radio

  • Atracciones turísticas

  • Áreas naturales protegidas

  • Resguardos indígenas

  • Mapas


📄 Licencia

MIT License - ver LICENSE para más detalles.


🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor, abre un issue o pull request.


📧 Contacto


🇨🇴 Hecho con ❤️ para Colombia

Available Tools

15 tools
get_airportsObtener Aeropuertos de ColombiaA
Read-onlyIdempotent

Obtiene la lista de aeropuertos de Colombia. Puede filtrar por departamento.

Args:

  • department_id (number, opcional): ID del departamento para filtrar

Returns: Lista de aeropuertos con nombre, ciudad, tipo y códigos IATA/OACI.

Ejemplo de uso:

  • "¿Cuáles son los aeropuertos de Colombia?"

  • "Aeropuertos en Antioquia"

ParametersJSON Schema
NameRequiredDescriptionDefault
department_idNoID del departamento para filtrar

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, open-world, idempotent, and non-destructive traits. The description adds valuable context beyond annotations by specifying the return format (list with name, city, type, IATA/OACI codes) and providing usage examples, which helps the agent understand output structure and practical application.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized, with a clear purpose statement, parameter explanation, return details, and usage examples. Every sentence adds value without redundancy, and it is front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 optional parameter), rich annotations covering safety and behavior, and no output schema, the description is complete enough. It explains what the tool does, how to use it, what it returns, and provides examples, compensating adequately for the lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the optional department_id parameter. The description adds no additional parameter semantics beyond what the schema provides, such as format details or examples of department IDs. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Obtiene la lista de aeropuertos de Colombia') and distinguishes it from siblings by focusing on airports rather than cities, departments, or other Colombian entities. It specifies the resource (airports) and scope (Colombia) explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use it ('Puede filtrar por departamento'), but does not explicitly state when not to use it or name alternatives among siblings. It implies usage for airport queries in Colombia, which is helpful but lacks explicit exclusions or comparisons to tools like get_cities or search_colombia.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_citiesObtener Ciudades de un DepartamentoA
Read-onlyIdempotent

Obtiene todas las ciudades/municipios de un departamento específico.

Args:

  • department_id (number): ID del departamento

Returns: Lista de ciudades con nombre, población y código postal.

Ejemplo de uso:

  • "¿Qué ciudades hay en Antioquia?"

  • "Lista los municipios del Valle del Cauca"

ParametersJSON Schema
NameRequiredDescriptionDefault
department_idYesID del departamento

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover key behavioral traits (read-only, open-world, idempotent, non-destructive), so the bar is lower. The description adds useful context about the return format (list with name, population, postal code) and example queries, but does not disclose additional traits like rate limits, authentication needs, or error handling. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by Args, Returns, and usage examples. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, read-only operation), rich annotations, and no output schema, the description is largely complete. It covers purpose, parameter context, return format, and usage examples. A minor gap is the lack of explicit error handling or edge-case guidance, but overall it provides sufficient context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing a clear description of the single parameter (department_id as an integer ID). The description adds minimal value beyond the schema by mentioning the parameter in context but does not elaborate on semantics (e.g., valid ID ranges beyond the schema's minimum). Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Obtiene todas las ciudades/municipios') and resource ('de un departamento específico'), distinguishing it from sibling tools like get_department or get_departments. It precisely communicates the tool's function without being vague or tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (to get cities/municipalities for a specific department), as reinforced by the example usage statements. However, it does not explicitly state when not to use it or name alternatives (e.g., using get_departments first to find department IDs), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_country_infoObtener Información de ColombiaA
Read-onlyIdempotent

Obtiene información general sobre Colombia como país.

Returns: Información del país incluyendo nombre, capital, bandera, moneda, etc.

Ejemplo de uso:

  • "¿Cuál es la capital de Colombia?"

  • "Dame información general de Colombia"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already provide comprehensive behavioral hints (readOnlyHint: true, openWorldHint: true, idempotentHint: true, destructiveHint: false), so the description's burden is reduced. It adds some context about what information is returned ('nombre, capital, bandera, moneda, etc.'), but doesn't provide additional behavioral details like response format, data freshness, or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement, return information, and usage examples. It's appropriately sized for a simple lookup tool. The Spanish/English mix is slightly inconsistent but doesn't significantly impact clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only country information tool with comprehensive annotations but no output schema, the description provides adequate coverage. It explains what information is returned and gives usage examples, though it could be more specific about the exact data structure returned or limitations of the information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist, which is correct for this case. No additional parameter information is needed or provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtiene información general sobre Colombia como país' (Gets general information about Colombia as a country). It specifies the verb ('obtiene') and resource ('información general sobre Colombia'), but doesn't explicitly differentiate from sibling tools like 'get_president' or 'get_departments' which provide more specific information subsets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage examples that imply when to use this tool ('¿Cuál es la capital de Colombia?' and 'Dame información general de Colombia'), suggesting it's for general country overview questions. However, it doesn't explicitly state when NOT to use it or mention alternatives among the many sibling tools for more specific queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_departmentObtener Departamento EspecíficoA
Read-onlyIdempotent

Obtiene información detallada de un departamento específico por ID o nombre.

Args:

  • id (number, opcional): ID del departamento (1-33)

  • name (string, opcional): Nombre del departamento (ej: "Antioquia", "Cundinamarca")

Returns: Información detallada del departamento incluyendo población, superficie, capital y descripción.

Ejemplo de uso:

  • "Dame información sobre Antioquia"

  • "¿Cuál es la capital de Cundinamarca?"

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoID del departamento (1-33)
nameNoNombre del departamento

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide key behavioral hints (readOnlyHint: true, destructiveHint: false, etc.), so the bar is lower. The description adds useful context by specifying that it returns detailed information (población, superficie, capital, descripción), which is not covered by annotations. However, it does not disclose additional traits like rate limits, error handling, or data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The 'Args' and 'Returns' sections are structured but slightly redundant with the schema. The example usage is helpful but adds length. Overall, it's efficient with minimal waste, though the schema overlap reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (read-only, idempotent, with annotations covering safety), no output schema, and rich annotations, the description is mostly complete. It specifies the resource, parameters, return details, and usage examples. However, it could improve by clarifying output format or error cases, but annotations reduce the need for extensive behavioral disclosure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (id and name) with descriptions and constraints. The description adds minimal value by restating the parameters in the 'Args' section and providing examples (e.g., 'Antioquia', 'Cundinamarca'), but does not explain semantics beyond what the schema provides, such as interaction between parameters or default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Obtiene información detallada') and resource ('departamento específico'), and distinguishes it from sibling tools like 'get_departments' (plural) by specifying it retrieves information for a single department. The title 'Obtener Departamento Específico' reinforces this distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by providing example queries ('Dame información sobre Antioquia'), but does not explicitly state when to use this tool versus alternatives like 'get_departments' (which likely lists multiple departments) or 'get_departments_by_region'. No explicit exclusions or prerequisites are mentioned, leaving usage context somewhat inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_departmentsObtener Departamentos de ColombiaA
Read-onlyIdempotent

Obtiene los 32 departamentos de Colombia más Bogotá D.C.

Returns: Lista de departamentos con: id, nombre, capital, población, superficie y región.

Ejemplo de uso:

  • "¿Cuáles son los departamentos de Colombia?"

  • "Lista todos los departamentos"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds value by specifying the return format (list with id, nombre, capital, población, superficie, región) and clarifying that Bogotá D.C. is included. However, it doesn't mention potential limitations like rate limits or authentication needs beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: first sentence states the core purpose, second specifies the return format, and third provides usage examples. Every sentence adds value without redundancy. It's appropriately sized for a simple data retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema, rich annotations), the description is nearly complete. It covers purpose, return format, and usage examples. The only minor gap is lack of explicit guidance on when to use alternative tools like get_departments_by_region for filtered results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics, detailing the structure of returned data. This exceeds the baseline expectation for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtiene los 32 departamentos de Colombia más Bogotá D.C.' This specifies the exact resource (Colombian departments plus Bogotá D.C.) and action (obtains/gets). It distinguishes from siblings like get_department (singular) and get_departments_by_region (filtered).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool through example queries: '¿Cuáles son los departamentos de Colombia?' and 'Lista todos los departamentos.' This indicates it's for comprehensive listing without filtering. However, it doesn't explicitly state when NOT to use it (e.g., for filtered results use get_departments_by_region).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_departments_by_regionObtener Departamentos por RegiónA
Read-onlyIdempotent

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
region_idYesID de la región (1=Caribe, 2=Pacífico, 3=Orinoquía, 4=Amazonía, 5=Andina, 6=Insular)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already provide comprehensive behavioral information (readOnlyHint: true, openWorldHint: true, idempotentHint: true, destructiveHint: false). The description adds useful context about what the tool returns ('Lista de departamentos de esa región') and provides concrete usage examples that help the agent understand typical queries. This goes beyond what annotations provide, though it doesn't mention potential limitations like rate limits or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It starts with the core purpose, then provides parameter details with valuable mappings, return information, and practical usage examples. Every sentence serves a clear purpose with zero wasted words. The information is front-loaded with the most important details first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup tool with comprehensive annotations and a single well-documented parameter, this description is complete. It explains what the tool does, documents the parameter semantics thoroughly, shows what it returns, and provides usage examples. The lack of an output schema is compensated by the clear return description. No additional context is needed for this type of tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already fully documents the single parameter. However, the description adds significant value by providing a complete mapping of region_id values to region names (1=Caribe, 2=Pacífico, etc.), which is crucial semantic information that helps the agent understand what each numeric ID represents. This goes well beyond the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Obtiene' - gets) and resource ('departamentos que pertenecen a una región específica' - departments belonging to a specific region). It distinguishes from siblings like 'get_departments' (which presumably gets all departments) by specifying the regional filtering aspect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when you need departments filtered by region. The usage examples reinforce this context. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools (like when to use 'get_departments' instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_indigenous_reservationsObtener Resguardos IndígenasA
Read-onlyIdempotent

Obtiene la lista de resguardos indígenas de Colombia. Puede filtrar por departamento.

Args:

  • department_id (number, opcional): ID del departamento para filtrar

Returns: Lista de resguardos indígenas con nombre, comunidad y departamento.

Ejemplo de uso:

  • "¿Cuáles son los resguardos indígenas de Colombia?"

  • "Resguardos indígenas en el Cauca"

ParametersJSON Schema
NameRequiredDescriptionDefault
department_idNoID del departamento para filtrar

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide comprehensive behavioral hints (readOnly, openWorld, idempotent, non-destructive). The description adds useful context about filtering capability and return format (name, community, department), which helps the agent understand what data to expect. However, it doesn't disclose additional behavioral traits like rate limits, authentication needs, or pagination behavior that might be relevant for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with the core purpose, explains the optional filtering, specifies return format, and provides concrete usage examples. Every sentence adds value without redundancy. The bilingual presentation (Spanish description with Spanish examples) is consistent and efficient for its intended context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with comprehensive annotations and a well-documented single parameter, the description provides adequate context. It covers purpose, filtering capability, and return format. The main gap is the lack of output schema, but the description compensates by specifying what fields to expect. Given the tool's low complexity, this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already fully documents the single optional parameter. The description adds marginal value by mentioning the filtering capability in natural language and providing example usage, but doesn't add semantic details beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtiene la lista de resguardos indígenas de Colombia' (Gets the list of indigenous reservations in Colombia). It specifies the exact resource (indigenous reservations) and verb (obtains/list), and distinguishes it from siblings like get_departments or get_natural_areas by focusing on this specific cultural/geographic dataset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: when needing indigenous reservation data for Colombia, optionally filtered by department. It includes example queries that demonstrate usage scenarios. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings, though the sibling list suggests related geographic tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mapsObtener MapasA
Read-onlyIdempotent

Obtiene mapas de Colombia o de un departamento específico.

Args:

  • department_id (number, opcional): ID del departamento para obtener su mapa

Returns: URLs de mapas del departamento o país.

Ejemplo de uso:

  • "Dame el mapa de Antioquia"

  • "Quiero ver mapas de Colombia"

ParametersJSON Schema
NameRequiredDescriptionDefault
department_idNoID del departamento

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds useful context by specifying it returns 'URLs de mapas' (map URLs), which clarifies the output format beyond what annotations provide. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with purpose statement, args, returns, and usage examples in separate sections. It's appropriately sized, though the example section could be slightly more concise. Most sentences earn their place by clarifying functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with good annotations and no output schema, the description is reasonably complete. It covers purpose, parameter usage, return format (URLs), and examples. The main gap is lack of explicit guidance on when to use versus sibling tools, but overall it provides sufficient context for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter department_id fully documented in the schema. The description adds minimal value beyond the schema by mentioning it's optional and for obtaining a specific department's map, but doesn't provide additional details like ID ranges or examples. Baseline 3 is appropriate given high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('obtiene' - gets) and resource ('mapas de Colombia o de un departamento específico'), distinguishing it from sibling tools like get_department or get_departments which return data rather than maps. It explicitly mentions both country-level and department-level map retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage through example queries ('Dame el mapa de Antioquia', 'Quiero ver mapas de Colombia'), showing when to use the tool for map requests. However, it doesn't explicitly state when to use this versus alternatives like get_department (which returns department data) or search_colombia (which might include maps in broader searches).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_natural_areasObtener Áreas Naturales ProtegidasA
Read-onlyIdempotent

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
department_idNoID del departamento para filtrar

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds useful context about filtering capability and the return format (name, category, department), which goes beyond what annotations provide. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with a clear purpose statement, parameter explanation, return value description, and usage examples. Every sentence serves a distinct purpose without redundancy, and the information is front-loaded with the core functionality stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with good annotations and a simple parameter, the description is reasonably complete. It explains what the tool does, the optional filtering parameter, and the return format. However, without an output schema, it could benefit from more detail on the structure of returned areas (e.g., fields beyond name, category, department).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'department_id' well-documented in the schema as an optional integer for filtering. The description adds minimal value beyond the schema, only repeating that it filters by department without providing additional context like valid department IDs or filtering behavior specifics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('obtiene' - gets/obtains) and resource ('lista de áreas naturales protegidas de Colombia'), specifying it retrieves protected natural areas in Colombia. It distinguishes from siblings by focusing on this specific resource type, unlike other tools that handle airports, cities, departments, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool - to get protected natural areas in Colombia, optionally filtered by department. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools for related queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_presidentObtener Presidente EspecíficoB
Read-onlyIdempotent

Obtiene información detallada de un presidente específico.

Args:

  • id (number): ID del presidente

Returns: Información detallada del presidente.

Ejemplo de uso:

  • "Dame información sobre el presidente con ID 5"

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID del presidente

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already provide strong behavioral hints (readOnlyHint: true, openWorldHint: true, idempotentHint: true, destructiveHint: false). The description adds minimal behavioral context beyond this - it clarifies that this retrieves 'detailed information' about a specific president, which provides some additional semantic context. However, it doesn't describe what constitutes 'detailed information' or any other behavioral traits not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise and well-structured. It starts with the core purpose, then provides Args and Returns sections, followed by an example. The Spanish language structure is clear. While efficient, the example could be more integrated with the main description rather than appearing as a separate section.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of this tool (single parameter, read-only operation with good annotation coverage), the description is mostly adequate. However, without an output schema, the description should ideally provide more detail about what 'información detallada' includes. The annotations cover safety aspects well, but the description could better explain the relationship with the sibling 'get_presidents' tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'id' clearly documented as 'ID del presidente' with type integer and minimum value 1. The description adds no additional parameter semantics beyond what's already in the schema. With high schema coverage, the baseline score of 3 is appropriate since the schema does the heavy lifting for parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtiene información detallada de un presidente específico' (Gets detailed information of a specific president). It uses a specific verb ('obtiene') and resource ('presidente específico'), but doesn't explicitly differentiate from its sibling 'get_presidents' (plural). The description is clear but lacks sibling differentiation, which would be helpful since both tools deal with presidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'get_presidents' (which presumably lists multiple presidents) or other related tools. The example usage shows how to invoke it but doesn't provide contextual guidance about appropriate use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_presidentsObtener Presidentes de ColombiaA
Read-onlyIdempotent

Obtiene la lista de presidentes de Colombia.

Returns: Lista de presidentes con nombre, período, partido político y ciudad de nacimiento.

Ejemplo de uso:

  • "¿Quiénes han sido los presidentes de Colombia?"

  • "Lista de presidentes colombianos"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide strong behavioral hints (readOnlyHint: true, destructiveHint: false, openWorldHint: true, idempotentHint: true), covering safety and idempotency. The description adds value by specifying the return format ('Lista de presidentes con nombre, período, partido político y ciudad de nacimiento'), which is not covered by annotations. It does not contradict annotations and provides useful context about output structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by return details and usage examples. Every sentence adds value: the first states what it does, the second specifies the return format, and the examples illustrate typical queries. It is appropriately sized with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema) and rich annotations, the description is mostly complete. It covers purpose, return format, and usage examples. However, it could improve by explicitly differentiating from sibling tools like 'get_president'. With annotations handling behavioral aspects, the description provides adequate context for a list-retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description correctly does not discuss parameters, focusing instead on the tool's function and output. This aligns with the baseline of 4 for tools with 0 parameters, as it avoids unnecessary details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtiene la lista de presidentes de Colombia' (Gets the list of presidents of Colombia). It specifies the verb ('obtiene') and resource ('presidentes de Colombia'), but does not explicitly differentiate it from its sibling 'get_president' (singular), which likely returns details for a specific president. The purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes example usage phrases ('¿Quiénes han sido los presidentes de Colombia?', 'Lista de presidentes colombianos'), which imply when to use this tool for general list queries. However, it does not explicitly state when to use this versus alternatives like 'get_president' (for a specific president) or 'search_colombia' (for broader searches). Guidelines are implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_radiosObtener Emisoras de RadioA
Read-onlyIdempotent

Obtiene la lista de emisoras de radio de Colombia. Puede filtrar por ciudad.

Args:

  • city_id (number, opcional): ID de la ciudad para filtrar

Returns: Lista de emisoras con nombre, frecuencia, ciudad y URL de streaming.

Ejemplo de uso:

  • "¿Qué emisoras de radio hay en Colombia?"

  • "Emisoras de radio en Bogotá"

ParametersJSON Schema
NameRequiredDescriptionDefault
city_idNoID de la ciudad para filtrar

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering the safety and idempotency profile. The description adds useful context about filtering capability and the return format (name, frequency, city, streaming URL), which isn't covered by annotations. However, it doesn't mention potential rate limits, authentication needs, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with the core purpose, explains the optional parameter, details the return format, and provides relevant usage examples. Every sentence adds value without redundancy, and the information is front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 optional parameter), rich annotations covering safety and idempotency, and no output schema, the description provides sufficient context. It explains what the tool does, how to use it, and what it returns. The main gap is the lack of an output schema, but the description compensates by detailing the return format. For a simple read operation, this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter city_id clearly documented in the schema. The description mentions filtering by city and provides usage examples that imply the parameter's purpose, but doesn't add significant semantic value beyond what the schema already states. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('obtiene') and resource ('lista de emisoras de radio de Colombia'), and distinguishes it from siblings by specifying it's for radio stations rather than airports, cities, or other Colombian data. The description explicitly mentions Colombia, which differentiates it from generic radio station tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (to get radio stations in Colombia, optionally filtered by city), and the examples reinforce this usage. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the sibling list shows related tools like get_cities that might be used in conjunction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_regionsObtener Regiones de ColombiaA
Read-onlyIdempotent

Obtiene las 6 regiones naturales de Colombia: Caribe, Pacífico, Orinoquía, Amazonía, Andina e Insular.

Returns: Lista de regiones con id, nombre y descripción.

Ejemplo de uso:

  • "¿Cuáles son las regiones de Colombia?"

  • "Dame información sobre las regiones naturales"

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a read-only, non-destructive, idempotent operation with open-world data. The description adds valuable context beyond annotations by specifying the exact number of regions (6), naming them explicitly, and describing the return format ('Lista de regiones con id, nombre y descripción'). This provides concrete behavioral details about what data to expect, which annotations alone don't cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and concise. It leads with the core purpose, immediately lists the specific regions, describes the return format, and provides two relevant usage examples. Every sentence earns its place with no redundant information. The bilingual presentation (Spanish description with Spanish examples) is consistent and appropriate for the tool's context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless read-only tool with comprehensive annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), the description provides complete context. It explains what data is returned, gives concrete examples of the regions, and includes usage examples. Since there's no output schema, the description appropriately covers the return format. This is fully adequate for the tool's complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the absence of parameters. The description appropriately doesn't discuss parameters, which is correct for a parameterless tool. It instead focuses on what the tool returns, which adds semantic value beyond the empty schema. A baseline of 4 is appropriate for 0-parameter tools when the description adds meaningful context about outputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Obtiene las 6 regiones naturales de Colombia' (Gets the 6 natural regions of Colombia). It names all six specific regions (Caribe, Pacífico, Orinoquía, Amazonía, Andina e Insular), clearly distinguishing this from sibling tools like get_departments or get_natural_areas. The verb+resource combination is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context through two example queries ('¿Cuáles son las regiones de Colombia?' and 'Dame información sobre las regiones naturales'), which effectively illustrate when to use this tool. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools, such as get_departments_by_region for a different granularity of information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tourist_attractionsObtener Atracciones TurísticasA
Read-onlyIdempotent

Obtiene atracciones turísticas de Colombia. Puedes buscar por ciudad o por palabra clave.

Args:

  • city_id (number, opcional): ID de la ciudad para filtrar

  • search (string, opcional): Palabra clave para buscar (ej: "playa", "museo", "parque")

Returns: Lista de atracciones con nombre, descripción, ubicación e imágenes.

Ejemplo de uso:

  • "¿Qué lugares turísticos hay en Cartagena?"

  • "Busca atracciones relacionadas con playas"

ParametersJSON Schema
NameRequiredDescriptionDefault
city_idNoID de la ciudad
searchNoPalabra clave para buscar

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds useful context about what the tool returns (list with name, description, location, images) and provides concrete search examples, which goes beyond the annotations. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, args, returns, examples) and uses bullet points for readability. It's appropriately sized for a tool with 2 parameters, though the example queries could be slightly more concise. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with good annotations and 100% schema coverage, the description provides sufficient context: clear purpose, parameter guidance, return format, and usage examples. The main gap is the lack of an output schema, but the description compensates by describing the return format. It could benefit from more explicit sibling tool differentiation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (city_id and search). The description repeats this information in the 'Args' section and provides example keywords ('playa', 'museo', 'parque'), but doesn't add significant semantic value beyond what's in the schema. This meets the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Obtiene' - gets) and resource ('atracciones turísticas de Colombia'), and distinguishes it from siblings like get_cities or search_colombia by focusing specifically on tourist attractions. The description explicitly mentions filtering by city or keyword, which adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (searching for tourist attractions by city or keyword) and includes example queries. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools (like when to use search_colombia instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_colombiaBuscar en ColombiaB
Read-onlyIdempotent

Herramienta de búsqueda general que intenta encontrar información sobre departamentos, ciudades o lugares turísticos.

Args:

  • query (string): Término de búsqueda (nombre de departamento, ciudad o lugar)

Returns: Resultados de búsqueda con la información encontrada.

Ejemplo de uso:

  • "Busca Medellín"

  • "Información sobre el Parque Tayrona"

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesTérmino de búsqueda

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover key behavioral traits (read-only, open-world, idempotent, non-destructive), so the description adds minimal value. It mentions the tool 'attempts to find information,' which hints at potential incompleteness but doesn't elaborate on limitations like accuracy or coverage. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with a clear purpose statement. However, it includes an 'Ejemplo de uso' section that, while helpful, slightly reduces conciseness. Overall, it's efficient with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema) and rich annotations, the description is adequate but incomplete. It lacks details on output format (e.g., structure of search results) and doesn't address how it differs from sibling tools, which is crucial given the context of many specific retrieval alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the parameter 'query' well-defined in the schema. The description adds examples (e.g., 'Busca Medellín') that illustrate usage but doesn't provide additional semantic details beyond what the schema already specifies, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a general search tool for Colombian departments, cities, or tourist places. It uses specific verbs ('find information about') and resources, though it doesn't explicitly differentiate from its many siblings like get_cities or get_tourist_attractions, which appear to be more specific retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many sibling tools (e.g., get_cities, get_tourist_attractions) that seem to fetch specific data, the description lacks any indication of when this general search is preferred over those targeted tools, leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific Colombian data categories like airports, cities, departments, regions, natural areas, indigenous reservations, radios, presidents, tourist attractions, and maps. However, there is some overlap between get_department and search_colombia, as both can retrieve department information, which might cause minor confusion. The descriptions help clarify, but the boundaries are not perfectly sharp.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as get_airports, get_cities, get_department, get_departments_by_region, get_indigenous_reservations, get_natural_areas, get_president, get_presidents, get_radios, get_regions, get_tourist_attractions, and search_colombia. This uniformity makes the tool set predictable and easy to understand, with no deviations in naming conventions.

Tool Count5/5

With 15 tools, the server is well-scoped for providing comprehensive information about Colombia, covering geography, culture, history, and tourism. Each tool serves a specific and relevant function, such as retrieving airports, cities, departments, regions, natural areas, indigenous reservations, radios, presidents, tourist attractions, maps, and a general search. The count is appropriate for the domain, avoiding both thinness and bloat.

Completeness4/5

The tool set offers broad coverage of Colombian data, including CRUD-like retrieval for various entities like departments, cities, regions, airports, natural areas, indigenous reservations, radios, presidents, and tourist attractions. Minor gaps exist, such as no update or delete operations (which may be intentional for a read-only informational server) and limited filtering options in some tools, but agents can work around these with the available search and filtering capabilities. The surface is largely complete for querying Colombian information.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Provides comprehensive information about Colombia including departments, regions, cities, tourist attractions, and general country data through the API Colombia service. Enables users to query Colombian geographical and administrative information through natural language.
    4
  • A
    license
    B
    quality
    C
    maintenance
    Provides access to the GeoDB Cities API for retrieving global geographic data including city details, populations, and local time. It enables users to find nearby locations, calculate distances between places, and browse administrative divisions across countries.
    18
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    This MCP server connects AI agents with Colombian e-commerce, travel, and financial services, allowing users to search MercadoLibre, find hotels, and compare banking products like CDTs and loans. It enables seamless integration with local services in pesos colombianos through specialized tools for shopping, travel planning, and financial simulation.
    8
    19
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/crexative/colombia-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server