Skip to main content
Glama

Otter Waiver MCP by usefulapi

Server Details

Read waivers, signed participants and check-ins in Otter Waiver.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct resource/action: fetch a participant by id, fetch a waiver by id, list waivers, list recent participants, and list recent check-ins. The participant-listing tools are clearly differentiated by their signer vs check-in focus and explicit descriptions.

Naming Consistency5/5

All tools follow the same otterwaiver_verb_noun pattern: get_participant, get_waiver, list_latest_checkins, list_latest_participants, list_waivers. The convention is predictable throughout.

Tool Count5/5

Five tools are well-scoped for a focused waiver/participant read API. Each tool covers a meaningful query surface without an excessive or suspiciously thin tool count.

Completeness3/5

The surface covers key read operations for waivers, participants, and check-ins, but lacks write/lifecycle operations such as creating or updating waivers, managing participants, or performing check-ins. It is useful for reporting and lookup but incomplete for full waiver management.

Available Tools

5 tools
otterwaiver_get_participantGet participantA
Read-only
Inspect

Get one participant (adult or minor) by id: signer data, waiver id, timestamps, document and certificate links. Get the id from the participant lists or from a waiver. API: GET /participants/{id}.

NameRequiredDescriptionDefault
participant_idYesThe id (UUID) from the list tool.

TDQS

A4.3/5.0
Behavior4/5

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

readOnlyHint=true already establishes this as a safe read, so the description is free to spend its words elsewhere — and it does, disclosing the shape of the returned payload (signer data, waiver id, timestamps, document and certificate links), which matters because there is no output schema. It omits error behavior for an invalid id and any permission/auth notes, keeping it below a 5.

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-loaded with the core action and return contents in one dense sentence, followed by the id-sourcing hint and the endpoint. The trailing 'API: GET /participants/{id}' is marginally redundant with the tool name but cheap and occasionally useful; otherwise there is no filler.

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?

With no output schema, the description carries the burden of describing returns and does so at a useful level of granularity, and it explains where the required id comes from. It stops short of covering failure modes (not found, permissions) or whether minor vs adult records differ in the response, which for a single-record lookup would be the remaining gap.

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 coverage is 100% and the single parameter is already documented as a UUID from the list tool, so the baseline is 3. The description adds one genuinely new fact — that the id can also come from a waiver — which is not in the schema text and helps the agent assemble the call from a second path.

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 ('Get one participant (adult or minor) by id') and enumerates what comes back: signer data, waiver id, timestamps, document and certificate links. That distinguishes it cleanly from the four list/waiver siblings, which return collections rather than a single record.

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?

'Get the id from the participant lists or from a waiver' explicitly routes the agent to otterwaiver_list_latest_participants or otterwaiver_get_waiver as the source of the identifier, so the ordering of calls is clear. There is no explicit when-not or statement about what happens with a stale/unknown id, so it falls short of a 5.

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

otterwaiver_get_waiverGet waiverA
Read-only
Inspect

Get one waiver with its full text, settings, additional fields and signed participants. Get the id from otterwaiver_list_waivers. API: GET /waivers/{id}.

NameRequiredDescriptionDefault
waiver_idYesThe id (UUID) from the list tool.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered; the description adds value by disclosing the response contents and the underlying endpoint (GET /waivers/{id}). It does not discuss error behavior for a missing/invalid id or whether signed participant data is paginated, which would complete the picture.

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?

Three tight sentences with the payload description front-loaded and the prerequisite immediately after. The 'API: GET /waivers/{id}' tail is mildly redundant for an agent but cheap and confirms endpoint identity.

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 single-parameter read tool with no output schema, the description is nearly sufficient because it names the returned fields, which substitutes for a return-value spec. Only the failure mode for an unknown id is unaddressed.

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 coverage is 100% and the parameter description already says 'The id (UUID) from the list tool', so the description's 'Get the id from otterwaiver_list_waivers' largely restates the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('Get one waiver') and enumerates the payload an agent will receive (full text, settings, additional fields, signed participants). This clearly separates it from otterwaiver_list_waivers, which returns many waivers, and from the participant-oriented siblings.

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?

Explicitly routes the agent to otterwaiver_list_waivers as the source of the id, which is the key prerequisite for calling this tool. It stops short of stating when not to use it (e.g. bulk retrieval), so it is clear context without full alternatives coverage.

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

otterwaiver_list_latest_checkinsList latest check-insA
Read-only
Inspect

List the 50 most recent participant check-ins, with the same fields as otterwaiver_list_latest_participants (the checkedIn timestamp is set). API: GET /participants/latest/checkins.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds real context: a hard cap of 50 results, the fact that the checkedIn timestamp is populated, and the underlying endpoint. It does not explain ordering ties or whether the cap can be paged past, but the key behavioral constraint is disclosed.

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?

One sentence plus an endpoint reference, with the result cap and timestamp discriminator front-loaded and nothing redundant. Every clause carries information.

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?

With no output schema, the description usefully delegates return shape to the named sibling and identifies the discriminating field. Minor gap: it doesn't say what happens if fewer than 50 check-ins exist or how results are ordered on ties.

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?

Zero parameters, so there is no parameter semantics to explain; the baseline for a no-arg tool applies. The description correctly signals that filtering (e.g., by participant) is not possible.

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 ('List the 50 most recent participant check-ins') and anchors it to a sibling so the agent knows exactly which dataset is returned. The distinction from otterwaiver_list_latest_participants is made explicit via the checkedIn timestamp note.

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 implies when to use it (when you want check-ins rather than participants) but never states the selection condition directly or names alternatives. The sibling reference is about field shape, not about choosing between the two tools.

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

otterwaiver_list_latest_participantsList latest participantsA
Read-only
Inspect

List the 50 most recent participants who signed a waiver: signer contact data, emergency contact, answers to extra questions, timestamps and document links. The data is personal data of the signers. API: GET /participants/latest.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real value beyond that: it discloses the hard cap of 50 records (implying no pagination), enumerates the returned fields, and flags that the payload is personal data of signers — a meaningful handling caveat an agent should know.

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-loaded with the action and scope, then the return payload, then the PII note. Every sentence carries information; the trailing 'API: GET /participants/latest' is mildly redundant for an agent but harmless and brief.

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?

There is no output schema, and the description compensates by enumerating the returned fields and the 50-record cap. The one remaining ambiguity — ordering semantics beyond 'most recent' and whether timestamps are included per the field list — is minor for a zero-parameter read tool.

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?

Zero parameters, so the baseline is 4. The description correctly implies a no-argument call by describing fixed 'most recent 50' behavior rather than any filtering options.

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 ('List the 50 most recent participants who signed a waiver') plus the exact payload contents (contact data, emergency contact, answers, timestamps, document links). This clearly separates it from otterwaiver_list_waivers and otterwaiver_get_participant without opening any schema.

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 '50 most recent' framing implies the tool is for recent-signer views, and the read-only nature is clear, but there is no explicit guidance on when to prefer it over otterwaiver_list_waivers or otterwaiver_get_participant for a single signer. Usage is inferable rather than stated.

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

otterwaiver_list_waiversList waiversA
Read-only
Inspect

List the waivers of the account (title, event, status draft/active/inactive, activities, response counts). Page numbers are required by the API; the defaults are page 1 with 20 records. Filter by event name (waiver folder title) or waiver title. API: GET /waivers.

NameRequiredDescriptionDefault
titleNoFilter by waiver title.
pageSizeNoRecords per page (default 20).
eventNameNoFilter by event name (the waiver folder title).
pageIndexNoPage number, starting at 1 (default 1).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine context beyond that: the API endpoint (GET /waivers), the fact that page numbers are API-required with defaults of page 1 / 20 records, and the shape of each record. It stops short of describing result ordering or what happens when filters match nothing.

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?

Four compact sentences, front-loaded with purpose and followed by pagination, filtering, and endpoint. The telegraphic style ('status draft/active/inactive') is dense but every clause carries information; nothing is 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?

With no output schema, the description compensates by naming the fields returned, and it covers pagination defaults and filter semantics. For a read-only list tool with full schema coverage this is close to sufficient; result ordering and empty-result behavior are the only notable omissions.

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 coverage is 100%, so all four parameters are already documented and the baseline is 3. The description does add one non-obvious fact the schema cannot convey — that pagination is effectively mandatory at the API level despite zero required parameters — plus the default values, but it adds nothing further on the two filter fields.

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+resource ('List the waivers of the account') and enumerates the returned fields (title, event, status, activities, response counts), so an agent knows exactly what comes back. It does not name the sibling get_waiver or explain the list-vs-get split, so it stops short of full sibling differentiation.

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 filtering guidance ('Filter by event name (waiver folder title) or waiver title') implies when this tool is the right choice, but the description never says when to prefer it over otterwaiver_get_waiver or the latest_* list tools. Usage is inferred rather than stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedotterwaiver_get_participant
    • First observedotterwaiver_get_waiver
    • First observedotterwaiver_list_latest_checkins
    • First observedotterwaiver_list_latest_participants
    • First observedotterwaiver_list_waivers

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides read-only access to a therapy practice's client portal, letting users view upcoming appointments, paperwork requests, standing forms, balances, receipts and secure message threads, and download completed documents and payment receipts as PDFs. It authenticates either with server-side credentials or by relaying requests through the user's already signed-in browser tab, and never sends messages, signs forms, uploads files, or makes payments.
    16
    558 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to read exported WhatsApp school-group chats, surface events and doubtful amounts, dates, or times, check conflicts, and export confirmed events to an .ics calendar with reminders.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Lets Claude, ChatGPT and other MCP clients read a Bookwhen account's public booking data, including events (classes, courses, workshops), ticket types with availability and cost, locations, class passes, leaders and attachments. It is read-only, so it can never modify data or expose attendee or booking records.
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.