Skip to main content
Glama

EasyTerritory MCP

show_map_overlay

[Tier 1 — Map Overlay] When: customer wants something on the map — US ZIP codes, counties, accounts/points, or a territory alignment — in any phrasing ('add US zip codes to the map', 'show zip codes', 'add zips'). Prerequisites: ts_handle (or inline ts) from get_map_visualization; viewer connected for live MC refresh. Pass user_request alone (e.g. 'add US zip codes to the map') or overlay_kind (part_layer | point_layer | tal | route) with optional overlay_id. Resolves the four MC overlay families and calls the correct underlying step (configure_map for part layers and active TAL; point layers must already be in the TS from ingest_accounts). Source the TS via ts_handle, inline ts, OR map_session_id (preferred for points: reads the LIVE session TS so points pushed by ingest_accounts(map_session_id=...) are found without threading a new ts_handle). Returns overlay_kind, overlay_id, viewer_hint, and for part layers a visibility block (state, min_zoom, camera_action). An open map_session_id zooms the MC to min_zoom (camera_action=fit_to_visible). When the user already named a center and zoom, do_this_next.tool is configure_map: call it once with that center and zoom before ingest or a point classification, so the fit does not replace it. Skip that call when no center was named, and do not invent one. Do not call configure_map again unless a later result also reports camera_action=fit_to_visible. Do not use ezt_test/focusAt. POINT LAYERS with map_session_id: status=already_on_map is verified against the live session render payload; when the layer is in the TS but missing from the session, the tool pushes a refresh and returns status=refreshed with a map_refresh block — check its render_ack before claiming points are visible. ROUTE overlay (overlay_kind=route) needs map_session_id and only re-shows or hides routes calculate_route already drew — 'hide/remove/clear the route' clears them; with no route yet it returns blocked_by=needs_route pointing at calculate_route. Pass route_id to target ONE of several routes; omit it to act on all of them. To delete a route for good use delete_route; to change a route's stops re-run calculate_route with the same route_id. calculate_route already draws its own result, so this is recovery, not the normal path. Prefer this over raw configure_map for show/add-on-map asks. Part-layer overlays are written onto the live session even when map_push_status=viewer_not_connected (session durability); SSE paint still needs a connected viewer. A later linked ingest_accounts keeps those overlays (non-destructive compose with points). Dual surface: the overlay lands on the in-chat map on Apps-capable hosts and in the map_url tab everywhere else — same map_session_id, no extra call. Scenarios: MC-010, ChatGPT/external MCP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tsNo
route_idNo
ts_handleNo
overlay_idNo
overlay_kindNo
user_requestNo
map_session_idNo
merge_strategyNo
guidance_handleNo
expected_revisionNo
expected_content_hashNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

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?

With no annotations, the description carries the full burden and delivers unusual depth: session durability when map_push_status=viewer_not_connected, status=already_on_map validated against the live render payload, status=refreshed with a map_refresh block and render_ack check, blocked_by=needs_route, non-destructive compose with a later ingest_accounts, and dual in-chat/map_url surfaces under the same session id.

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

Conciseness3/5

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

The structure is sensible — When, Prerequisites, dispatch behavior, then scenario tags — and the routing constraints are front-loaded. But it is a dense wall of near-run-on sentences with a lot of trailing edge-case detail (SSE paint, merge strategy, route recovery notes) that could be tightened considerably without losing meaning.

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 an 11-parameter, zero-required dispatch tool with no annotations, this is close to complete: prerequisites, dispatch rules, return fields (overlay_kind, overlay_id, viewer_hint, visibility block), failure/blocked states, and the dual-surface behavior are all covered. An output schema exists, so return-value explanation is bonus rather than obligation.

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 0% across 11 parameters, so prose must compensate. It does explain ts_handle, inline ts, map_session_id (including why it is preferred for points), user_request, overlay_kind (enumerating part_layer/point_layer/tal/route), overlay_id, and route_id semantics. However merge_strategy, guidance_handle, expected_revision, and expected_content_hash are never mentioned, leaving roughly a third of the surface undocumented in both schema and description.

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 Tier-scoped statement of exactly what the tool does: resolve the four MC overlay families (part_layer, point_layer, tal, route) and dispatch to the correct underlying step. It differentiates from siblings by name — 'Prefer this over raw configure_map', 'use delete_route', 'calculate_route already draws its own result' — so an agent can route without opening any 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?

Explicit When clause with literal user phrasings, prerequisites (ts_handle from get_map_visualization, connected viewer), and conditions for calling configure_map first ('when the user already named a center and zoom') versus skipping it ('Skip that call when no center was named, and do not invent one'). It also states when NOT to use it for route deletion and route editing, naming the correct alternatives.

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.

Resources