Skip to main content
Glama

Field Service Business Platform by Doing Work

visits_arrived

Mark that the worker arrived at a visit. The worker on the visit (or the office) can do this. Any on the way message not yet sent is dropped. When on the way notices are on, the customer gets one arrived text and one arrived email. Text is the main one. The email goes whenever the customer has an email address, even if the text does not. A do-not-email address is not emailed. Once only.

Input Schema

NameRequiredDescriptionDefault
visit_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "customer_notice": {
      -        "description": "Whether a customer notice was queued. On the way, that is the on the way message. Arrived, that is the arrived message when arrival notices are on. It is sent only if the customer can be reached.",
      -        "enum": [
      -          "queued",
      -          "off",
      -          "already"
      -        ],
      -        "type": "string"
      -      },
      -      "eta_at": {
      -        "format": "date-time",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "status": {
      -        "type": "string"
      -      },
      -      "visit_id": {
      -        "format": "uuid",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "visit_id",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "approval_id": {
      -        "format": "uuid",
      -        "type": "string"
      -      },
      -      "approval_required": {
      -        "enum": [
      -          true
      -        ],
      -        "type": "boolean"
      -      },
      -      "expires_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "pending"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "approval_required",
      -      "approval_id",
      -      "status",
      -      "expires_at",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "customer_notice": {
      +        "description": "Whether a customer notice was queued. On the way, that is the on the way message. Arrived, that is the arrived message. Both follow on_my_way_notices. It is sent only if the customer can be reached.",
      +        "enum": [
      +          "queued",
      +          "off",
      +          "already"
      +        ],
      +        "type": "string"
      +      },
      +      "eta_at": {
      +        "format": "date-time",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "visit_id": {
      +        "format": "uuid",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "visit_id",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "approval_id": {
      +        "format": "uuid",
      +        "type": "string"
      +      },
      +      "approval_required": {
      +        "enum": [
      +          true
      +        ],
      +        "type": "boolean"
      +      },
      +      "expires_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "pending"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "approval_required",
      +      "approval_id",
      +      "status",
      +      "expires_at",
      +      "message"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "customer_notice": {
      -        "description": "Whether an on-my-way email to the customer was queued. It is sent only if the customer has an email address.",
      -        "enum": [
      -          "queued",
      -          "off"
      -        ],
      -        "type": "string"
      -      },
      -      "eta_at": {
      -        "format": "date-time",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "status": {
      -        "type": "string"
      -      },
      -      "visit_id": {
      -        "format": "uuid",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "visit_id",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "approval_id": {
      -        "format": "uuid",
      -        "type": "string"
      -      },
      -      "approval_required": {
      -        "enum": [
      -          true
      -        ],
      -        "type": "boolean"
      -      },
      -      "expires_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "pending"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "approval_required",
      -      "approval_id",
      -      "status",
      -      "expires_at",
      -      "message"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "customer_notice": {
      +        "description": "Whether a customer notice was queued. On the way, that is the on the way message. Arrived, that is the arrived message when arrival notices are on. It is sent only if the customer can be reached.",
      +        "enum": [
      +          "queued",
      +          "off",
      +          "already"
      +        ],
      +        "type": "string"
      +      },
      +      "eta_at": {
      +        "format": "date-time",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "visit_id": {
      +        "format": "uuid",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "visit_id",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "approval_id": {
      +        "format": "uuid",
      +        "type": "string"
      +      },
      +      "approval_required": {
      +        "enum": [
      +          true
      +        ],
      +        "type": "boolean"
      +      },
      +      "expires_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "pending"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "approval_required",
      +      "approval_id",
      +      "status",
      +      "expires_at",
      +      "message"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. First observed

TDQS

A3.5/5.0
Behavior4/5

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

With zero annotations, the description carries the full burden and does well: it discloses the destructive side effect of dropping an unsent on-the-way message, the notification fan-out (one text and one email), the email-only-when-address-present and do-not-email suppression rules, and idempotency via 'Once only.' It stops short of saying what happens on a second call or what errors can occur.

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 core action and its side effects are front-loaded, and every sentence carries information (notification rules, suppression, idempotency). The clipped fragments ('Text is the main one.' 'Once only.') read as staccato but are not padded.

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 one-parameter mutation, the description covers permissions, notification side effects, and idempotency, and an output schema exists so return values need not be explained. The remaining gap is disambiguation from the duplicate 'visit_arrived' and adjacent 'visits_start'/'visits_done' tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter, visit_id, and the description never mentions it. The agent must rely entirely on the parameter name and uuid format to infer that it identifies the visit being marked arrived; the description does not compensate for the coverage gap as the rubric requires at low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Mark that the worker arrived at a visit.' An agent immediately knows the operation. It does not, however, distinguish this from the near-identical siblings 'visit_arrived', 'visits_start', or 'visits_done', which appear in the same toolset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states who may call it ('The worker on the visit (or the office) can do this'), which is useful authorization context. It gives no when-to-use guidance relative to the obvious alternatives (visits_start, visits_done, visit_arrived), leaving the agent to infer which arrival/start/complete tool applies.

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