Skip to main content
Glama

Sergio by Serviche

Subscribe to events

events_subscribe
Idempotent

Create or update this seat's one event subscription. inputs: which arrivals (omit for all: text_in, text_out, email_in, email_out, call_answered, call_missed, voicemail, booking_created, booking_changed, booking_cancelled, staff_clocked_in, staff_not_clocked_in, job_finished, visit_unconfirmed). contact_types: only arrivals for these contact types. A field you omit keeps its current value, so {paused:true} pauses without touching the filter; pass inputs:null or contact_types:null to go back to all. paused: true stops delivery without losing the cursor, paused: false resumes. restart: true moves your position to now and clears your ack (the resync after cursor_expired, once you have re-read current state). Delivery starts at the moment you first subscribe. Repeating the same call changes nothing.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "events_subscribe"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputsNo
pausedNo
restartNo
contact_typesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well past the annotations by explaining patch semantics (omitted field keeps current value), explicit reset semantics (inputs:null), that pausing preserves the cursor, and that restart clears the ack and moves position to now. The 'repeating the same call changes nothing' line reinforces idempotentHint with concrete meaning.

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?

Front-loads the core purpose, then walks parameters in a sensible order with no filler sentences. It is dense but slightly bloated by enumerating all 14 input values that the schema already lists.

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?

No output schema exists, and the description covers the important state transitions (initial position, pause/resume, restart) an agent needs to call it safely. It stops short of saying what the subscription call returns or how cursor_expired is surfaced, which would fully close the loop.

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?

Schema description coverage is 0%, so the description carries the full burden and largely does: it defines inputs and contact_types scopes, the null-vs-omit distinction, paused true/false effects, and restart's cursor/ack behavior. It would be a 5 if the contact_types field list were also stated here rather than only in the schema enum.

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?

States a specific verb and resource ('Create or update this seat's one event subscription') and pins the scope ('one', 'this seat's'), which distinguishes it from events_list and events_ack. An agent can place it correctly without opening the schema.

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?

Gives concrete conditions: omit inputs for all, use restart after cursor_expired once state is re-read, paused to stop delivery. It never explicitly routes to sibling tools like events_list for reading or events_ack for advancing the cursor, so sibling-level guidance is implied rather than stated.

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