Skip to main content
Glama
GSA-TTS

mcp-server-gis-helper

Official
by GSA-TTS

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool has a distinct role in the workflow: gis_open_map initiates an interactive drawing session, gis_get_drawn_geometry retrieves the result, and gis_validate_geometry validates an existing GeoJSON string. There is no overlap in purpose, and the 'Use when' conditions clearly separate them.

    Naming Consistency5/5

    All tool names follow a consistent 'gis_' prefix followed by a verb_noun pattern: open_map, get_drawn_geometry, validate_geometry. The naming is uniform, snake_case, and each verb clearly indicates the action.

    Tool Count5/5

    Three tools is well-scoped for a GIS helper that focuses on geometry capture and validation. The count falls within the ideal 3-15 range, and each tool is necessary for the core workflow without redundancy.

    Completeness5/5

    The toolset covers the entire lifecycle of preparing user-drawn geometry for downstream GIS servers: open a map to draw, retrieve the drawn geometry, and validate/normalize it. There are no obvious gaps; session handling is gracefully managed by omitting the session ID, and the output is directly usable.

  • Average 4.5/5 across 3 of 3 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: the returned Prefab app, the user-driven draw/save/load sequence, session_id surfacing, and how the GeoJSON output feeds downstream tools. It does not contradict the annotations, though it doesn't explicitly remark on non-idempotency beyond implying a new session.

    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?

    The description is multi-paragraph but well-structured with a numbered workflow and clear sections. Each part earns its place, though a few phrases (e.g., 'then capture it') are slightly redundant with the later workflow steps.

    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?

    There is no output schema, so the description fully explains the return (a Prefab app with link and button), the interactive workflow, session_id usage, downstream GeoJSON consumers, and the option to call gis_get_drawn_geometry directly. It accounts for both user-driven and agent-driven retrieval paths.

    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 has 100% coverage with rich descriptions for lat, lon, and zoom. The description only briefly mentions 'optionally center it with lat/lon/zoom', adding little beyond the schema, so the baseline 3 applies.

    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 states 'Open an interactive map so the user can draw GIS geometry, then capture it' with a clear verb and resource. It distinguishes from siblings by explicitly pointing to gis_validate_geometry for users who already have coordinates and referencing gis_get_drawn_geometry for retrieval.

    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?

    Provides explicit 'Use when' and 'Don't use when' guidance, naming gis_validate_geometry as the alternative and outlining the workflow involving gis_get_drawn_geometry. This leaves no ambiguity about when to invoke this tool.

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

  • 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.

  • Behavior5/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds substantial behavioral context: it unwraps Feature/FeatureCollection wrappers, closes unclosed polygon rings, checks WGS84 coordinate validity, returns a compact single-line GeoJSON string, and documents error scenarios. No contradiction with annotations.

    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 well-structured with clear sections: a leading summary, usage guidance, success return format, and error responses. It is moderately long but every sentence serves a purpose—no fluff or repetition. Front-loaded with the core purpose and quickly readable.

    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?

    Given the tool's complexity (normalization, validation, coordinate system, wrappers, downstream compatibility), the description covers everything needed: what is validated, what transformations occur, the exact return shape (with a summary sub-object), and possible error messages. It is complete even without relying on the output schema.

    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 schema description covers the only parameter (geometry) fully at 100% coverage, including supported types, BoundingBox shorthand, accepted wrappers, and coordinate order. The description adds behavioral normalization details (e.g., closing rings) but that falls under transparency rather than parameter semantics. With high schema coverage, a baseline of 3 is appropriate.

    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 begins with a specific verb+resource: 'Validate and normalize a GeoJSON geometry string for use with GIS servers.' It clearly distinguishes itself from siblings by stating when to use it (before querying another GIS server) and when not to (interactive drawing, use gis_open_map). This is a precise, non-tautological purpose statement.

    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?

    The description provides explicit 'Use when' and 'Don't use when' guidance, naming the alternative tool (gis_open_map) for interactive drawing. It also lists downstream GIS tools that consume the output, making the usage context very clear.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-server-gis-helper MCP server

Copy to your README.md:

Score Badge

mcp-server-gis-helper MCP server

Copy to your README.md:

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