Skip to main content
Glama

Check Service Area

check_service_area
Read-onlyIdempotent

Check a service ZIP, or a Massachusetts town, city or neighborhood name on its own, against the coverage database for Norfolk, Suffolk and Plymouth counties. Answer "do you serve ?" directly with town (no ZIP needed): covered = yes; partially_covered = yes for the listed covered_zips, confirm the customer's ZIP only then; outside_service_area = not in the automatic-booking area (offer request_out_of_area_callback and the office number); unknown_town = ask for the ZIP. During new-customer intake run this check silently; never announce that you are checking the service area. Unavailable coverage is unknown, not outside-area. This never proves that a particular appointment is available.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipNo
townNo
stateNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipNo
townNo
errorNo
statusNo
messageNo
successYes
countiesNo
next_stepNo
error_codeNo
matched_byNo
covered_zipsNoTown lookups only: the town ZIPs inside the automatic-booking area.
outside_zipsNoTown lookups only: the town ZIPs outside the automatic-booking area.
resolved_townNoTown lookups only: the Massachusetts place the name was matched to.
missing_fieldsNo
review_sandboxNo
in_service_areaNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedOutput schema / properties / covered_zips
      Added value: +{
      +  "description": "Town lookups only: the town ZIPs inside the automatic-booking area.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / outside_zips
      Added value: +{
      +  "description": "Town lookups only: the town ZIPs outside the automatic-booking area.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / resolved_town
      Added value: +{
      +  "description": "Town lookups only: the Massachusetts place the name was matched to.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "covered",
      -  "outside_service_area",
      -  "needs_more_information",
      -  "unavailable"
      -]New value: +[
      +  "covered",
      +  "partially_covered",
      +  "outside_service_area",
      +  "unknown_town",
      +  "needs_more_information",
      +  "unavailable"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / missing_fields
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / next_step
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "enum": [
      +    "covered",
      +    "outside_service_area",
      +    "needs_more_information",
      +    "unavailable"
      +  ],
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / state
      Added value: +{
      +  "maxLength": 2,
      +  "minLength": 2,
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark this as read-only and idempotent, so the bar for added behavioral context is lower, but the description still adds important nuances: 'Unavailable coverage is unknown, not outside-area', 'run this check silently; never announce that you are checking', and 'This never proves that a particular appointment is available.' These go beyond the annotations and prevent real misuse.

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 dense but each sentence earns its place: it front-loads the purpose, then lays out the status semantics in a compact list, and closes with critical caveats. Despite its length, it avoids redundancy and is well organized for an agent to parse.

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 output schema exists, return-value documentation is not required; the description still enumerates all four statuses and their follow-up actions. It also covers edge cases (unavailable coverage vs. outside area) and explicitly disclaims appointment availability, so nothing call-critical is missing.

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?

Input schema has 0% description coverage, so the description must compensate. It explains that either a ZIP or a town/city/neighborhood can be used independently, and it maps response states to customer actions. The one minor gap is that the 'state' parameter is never explicitly discussed, though Massachusetts is strongly implied and the parameter is optional.

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 action ('Check a service ZIP, or a Massachusetts town, city or neighborhood name... against the coverage database') and names the exact geographic scope (Norfolk, Suffolk, Plymouth counties). It clearly differentiates this from sibling tools like request_out_of_area_callback by defining the tool's decision role.

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 gives explicit when-to-use instructions: run silently during new-customer intake, use town or ZIP appropriately, and when outside_service_area is returned, offer request_out_of_area_callback and the office number. It also states what this tool does NOT prove (appointment availability), effectively steering the agent away from using it for availability checks.

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