Skip to main content
Glama

ChartAnt

Country map

generate_country_map
Read-onlyIdempotent

Draw a map of one country with its first-level regions (states, provinces, prefectures, counties, departments) coloured by a number. Works for every country. Use region names or ISO 3166-2 codes (e.g. country 'US', region 'California' or 'US-CA'; country 'India', region 'Maharashtra'). For countries of the world use generate_world_map; for US counties use generate_county_map. Returns a hosted PNG link, a share page, alt text and editable PowerPoint/Excel links.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "country": "<country>",
      "data": "<data>"
    },
    "name": "generate_country_map"
  }
}

Input Schema

NameRequiredDescriptionDefault
dataYesOne row per region.
unitNoUnit for the legend, e.g. 'EUR', 'users', '%'.
titleNoTitle shown above the map.
widthNoImage width in pixels (default 800).
formatNopng (default) or svg. SVG returns a link to a vector version of the map.
heightNoImage height in pixels (default 600).
labelsNoWrite each area's name, value or both on the map (default none). Labels that don't fit are left out.
countryYesCountry name or ISO 3166 code, e.g. 'Germany' or 'DE'.
brandThemeNoName of a brand theme saved on the user's account (their colours and footer), only when the user asks for their theme. Or "colorblind" for colours that people with colour-vision deficiency can tell apart (anyone can use it).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered structurally. The description adds value beyond that by disclosing the return payload (hosted PNG link, share page, alt text, editable PowerPoint/Excel links) and the constraint that 'labels that don't fit are left out'. It stops short of saying what happens with unrecognized region names or codes, which is the one behavioral gap.

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?

Four sentences, each doing distinct work: capability, input format, sibling routing, and return values. The scope statement is front-loaded and the alternative-tool routing is placed before the output description, so the agent gets the disambiguation signal early.

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?

With nine parameters but full schema coverage and no output schema, the description would otherwise leave return values unexplained; it covers them explicitly. Combined with the routing rules and input-format examples, an agent has everything needed to choose and invoke it correctly.

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?

Schema coverage is 100%, so the baseline is 3; the description earns above that by clarifying that the region field accepts either names or ISO 3166-2 codes and by giving cross-country examples, which the schema text ('one row per region') does not. It also notes the brandTheme constraint ('only when the user asks for their theme') and the colorblind preset, adding intent that the schema alone frames only as a saved theme name.

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?

States a specific verb and resource ('Draw a map of one country with its first-level regions coloured by a number') and immediately bounds the scope with 'Works for every country'. It then explicitly names the two nearest siblings, generate_world_map and generate_county_map, so an agent can discriminate without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules: this tool for a single country's first-level regions, generate_world_map for countries of the world, generate_county_map for US counties. It also supplies the accepted input vocabulary (region names or ISO 3166-2 codes) with concrete examples for two different countries, which removes the main ambiguity an agent would face.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.