Skip to main content
Glama

upsert_cities_batch

Batch insert or update strategic cities under a specific country to keep urban records current and organized in one operation.

Instructions

Batch insert or update strategic cities scoped to a specific country.

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_id": "<country_id>",
      "cities": "<cities>"
    },
    "name": "upsert_cities_batch"
  }
}

Input Schema

NameRequiredDescriptionDefault
citiesYesArray of cities to upsert
country_idYesCountry ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it only tells us this is a write that may insert or update. It does not disclose the conflict/match key used to decide insert vs update, whether cities absent from the array are left untouched or removed, whether the batch is transactional or partial-failure tolerant, or what permissions are required. These are exactly the facts an agent needs before issuing a bulk mutation.

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?

A single front-loaded sentence with no filler, and the scope constraint is stated in the same breath as the action. Nothing is redundant or buried.

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

Completeness2/5

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

For a batch mutation with nested per-city objects, no annotations, and no output schema, one sentence is thin. Missing are the upsert key, overwrite semantics for existing cities, error/partial-success behavior, and any notion of what 'strategic' means, all of which an agent must know to call this correctly.

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 both country_id and cities are already documented structurally, which sets the baseline at 3. The description adds only the scoping relationship between cities and country_id; it adds no meaning about the nested city fields (name, themes, description) or about which field drives the upsert match.

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 names a specific verb pair (batch insert or update) and resource (cities) plus its scoping constraint (a specific country), so an agent can tell it apart from create_city and upsert_countries_batch. It stops short of naming the bulk-population siblings (populate_cities_bulk, populate_country_cities), which do similar work, so the boundary is not fully drawn.

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?

There is no explicit when-to-use guidance: nothing says whether this is preferred over create_city for single items, or over populate_cities_bulk / populate_country_cities for bulk loading. Usage is only implied by the words 'batch insert or update', leaving the agent to infer the selection rule from sibling names alone.

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