Skip to main content
Glama
GSA-TTS

mcp-server-gis-helper

Official
by GSA-TTS

Get Geometry Drawn on the Map

gis_get_drawn_geometry
Read-onlyIdempotent

Get the geometry you drew and saved on the map, with validated GeoJSON ready for flood zone screening and waterway analysis.

Instructions

Retrieve the geometry a user drew and saved on the interactive map.

Call this after gis_open_map once the user has drawn a shape and clicked "Save" on the map page. Geometry stored by the map is already validated and normalized (WGS84, closed rings). The returned "geometry" string can be passed directly to nfhl_screen_flood_zone, hydro_find_waterways, and other geometry-accepting GIS tools.

Use when: "I drew a shape, get it", or wired to the "Load drawn geometry" button inside the gis_open_map app.

session_id handling:

  • If you know the exact id from the latest gis_open_map result, pass it.

  • If you don't have it (e.g. a later turn), OMIT session_id entirely and the most recently saved geometry is returned. Never pass a placeholder like "default" — that will fail.

Returns when a shape has been saved: { "ready": true, "session_id": str, # the resolved session id "geometry": str, # compact GeoJSON string, ready to paste downstream "summary": { geo_type, crs_epsg, vertex_count, part_count, bbox, ... } }

Returns when nothing has been saved yet: { "ready": false, "message": "No geometry saved yet ..." }

Error responses:

  • {"ready": false, "error": "Unknown or expired session ..."} — bad session_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idNoThe draw session id returned by gis_open_map. Optional: if omitted (or if you don't have the exact id), the most recently drawn-and-saved geometry is returned. Prefer passing the exact session_id from the most recent gis_open_map result when you have it. Do NOT invent a value like 'default' — leave it unset instead.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description discloses valuable behaviors: geometry is 'validated and normalized (WGS84, closed rings)', return structures for both success and failure cases are shown, and error responses are documented. It also explains session_id fallback behavior and warns against placeholder values, providing comprehensive transparency.

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 long but well-structured with clear sections (purpose, use case, session_id handling, return values, errors). Every sentence adds practical value, and examples are provided without unnecessary fluff. The structure front-loads the core purpose and then logically details the usage.

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?

The description is fully complete for this tool: it explains when to call it, how to handle the optional parameter, what the return values look like (with examples), and what error responses may occur. Even though an output schema exists, the description adds clarity with concrete examples, making it self-sufficient for an agent to use 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?

The input schema already describes the session_id parameter in detail, including its optionality, fallback behavior, and the warning not to invent values. The description's session_id handling section essentially repeats this information without adding new meaning. Since schema coverage is 100%, the baseline is 3, and the description does not elevate it further.

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: 'Retrieve the geometry a user drew and saved on the interactive map.' It uses a specific verb ('Retrieve') and resource ('geometry'), and distinguishes it from sibling tools like gis_open_map (opens map) and gis_validate_geometry (validates geometry). This provides immediate clarity on what the tool does.

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 usage context: 'Call this after gis_open_map once the user has drawn a shape and clicked "Save" on the map page.' It also provides example use cases ('I drew a shape, get it') and mentions it integrates with the 'Load drawn geometry' button. However, it does not explicitly mention when not to use this tool or contrast it with alternatives, so it falls slightly short of a perfect score.

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

Install Server

Other Tools

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/GSA-TTS/mcp-server-gis-helper'

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