Skip to main content
Glama

Update the ICP

gtm_update_icp
Idempotent

Change the ICP a play runs — the query behind people_search and the fit gate on every other lane. Seven string arrays, plain words (gtmotto normalises 'Swiss' → Switzerland, 'Fintech' → Financial Services itself): titles, seniority, languages, industries, sizes (headcount bands like '11-50'), locations, exclude ('never contact' — absolute). ONLY the facets you name change; the first write on a play forks its own ICP row from the product baseline (or a sibling play's row), so no other play's targeting is rewritten. Filling an empty ICP unblocks lanes parked on icp_empty and kicks the play's due lanes if it is active. Size a candidate first with gtm_estimate_icp.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizesNo
playIdYesThe play, from gtm_list_plays.
titlesNo
excludeNo
languagesNo
locationsNo
seniorityNo
industriesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations, the description discloses key side effects: 'ONLY the facets you name change,' the first-write fork of an ICP row, and that no other play's targeting is rewritten. It also reveals normalization behavior ('gtmotto normalises 'Swiss' → Switzerland...') and the absolute nature of exclude. This adds substantial value and does not contradict the idempotentHint or destructiveHint 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?

Three dense sentences, each serving a distinct purpose: core action, parameter meanings, and side effects/sequencing. The opening is front-loaded and the middle sentence, while long, contains only meaningful clauses. Slightly verbose in places, but no filler.

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 mutation with seven optional facets and subtle forking behavior, the description covers purpose, parameter semantics, side effects, and a linked sibling tool. It does not describe the response/return value or error cases, but the annotations and schema already cover the safety profile. Overall, the description is complete enough for correct invocation.

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 description coverage is only 13%, so the description carries most of the burden. It enumerates all seven array facets and adds concrete semantics: 'sizes' are headcount bands like '11-50', 'exclude' means 'never contact' and is absolute, and values should be plain words subject to normalization. It does not enumerate valid values for every facet, but it provides enough clarity for constructing a valid call.

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 opens with a specific verb and resource: 'Change the ICP a play runs' and defines what the ICP is — 'the query behind people_search and the fit gate on every other lane.' It also distinguishes itself from broader play manipulation by noting 'no other play's targeting is rewritten,' making it easy to tell apart from tools like gtm_update_play.

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 gives explicit sequencing guidance: 'Size a candidate first with gtm_estimate_icp.' It also provides situational context — filling an empty ICP unblocks lanes and kicks due lanes if the play is active. It does not explicitly state exclusions or when not to use it, but the guidance is sufficient for agent selection.

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.