Skip to main content
Glama

File a government service request

submit_service_request
Destructive

Submit a government service request (e.g., report a pothole, broken streetlight, illegal dumping). The request is validated, geocoded, classified, routed to the correct government entity, and recorded. Delivery is enabled per-entity: where the target channel is live, the request is transmitted (response delivery.state = "sent", or "held" when queued for review); for entities not yet enabled it is recorded and routable but not transmitted (delivery.state = "dry_run", or "handoff" with a redirect_url the user finishes). Always check delivery.state. Requires X-API-Key header. Rate limit: 2 requests/hour. Supported countries: US, IE (Ireland), GB (United Kingdom).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imagesNoUp to 3 base64-encoded images (optional). Each item: {data: "base64...", media_type: "image/jpeg"}
addressNoAddress to geocode (e.g., "123 Main St, Ventura, CA 93001"). Provide this OR latitude+longitude.
latitudeNoLatitude (-90 to 90). Provide with longitude as alternative to address.
longitudeNoLongitude (-180 to 180). Provide with latitude as alternative to address.
descriptionYesDescription of the issue (10-5000 characters)
country_codeNoCountry code: "US", "IE", or "GB" (default: "US")
contact_emailYesEmail of the person reporting the issue
service_type_idNoService type ID from list_service_types (optional — auto-classified from description if omitted)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=true, openWorldHint=true), the description discloses critical runtime behavior: the request is validated, geocoded, classified, routed, and recorded; delivery has four distinct states (sent, held, dry_run, handoff) with a redirect_url for handoff; and it explicitly instructs 'Always check delivery.state'. It also reveals rate limiting and country restrictions, which are not part of the annotations. This adds substantial context that an agent needs to interpret the outcome, and it does not contradict any annotation.

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 dense but organized: it leads with purpose and examples, then explains the backend processing, then details delivery states and the imperative to check delivery.state, and finishes with auth, rate limit, and supported countries. Every sentence adds new information; there is no fluff. The length is justified by the tool's complexity, though a more compact phrasing of the delivery states could tighten it slightly.

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 complex mutation tool with 8 parameters and no output schema, the description covers the essential behavioral context: how the request flows (validation → geocoding → classification → routing → recording), what delivery states to expect, auth requirements, rate limits, and supported countries. It explicitly mentions redirect_url for handoff. It does not detail error scenarios or the full response envelope, but the reminder to check delivery.state mitigates the missing output schema. Given the richness of the input schema, this is nearly complete.

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% — every parameter has a descriptive entry, including the address/lat-long alternative, country_code default, and service_type_id auto-classification. The description adds no additional parameter-level guidance beyond what the schema already provides; it only presents examples and high-level behavior. Baseline 3 is appropriate because the schema carries the full explanatory load.

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-resource pair ('Submit a government service request') and concrete examples (pothole, broken streetlight, illegal dumping) that make the tool's function unmistakable. It clearly distinguishes itself from the read-focused siblings (get_*, search_*, list_*) which all retrieve or list data, whereas this is the only submission tool.

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 clear context on when to use the tool: when a citizen wants to file a service request. It also explains the delivery states and the need to check delivery.state, implicitly steering agents toward caution when the request is not immediately transmitted. However, it does not explicitly name alternative tools to use in other scenarios (e.g., when looking up a status, use get_cgj_report), though the sibling set makes the distinction obvious. It also outlines prerequisites (X-API-Key, rate limit, supported countries) that guide safe invocation.

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