Skip to main content
Glama

Server Details

See your vet clinic's free slots, vets, service prices, payments and how busy each day is.

Ownership verified
Status
Healthy
Uptime
100.0% over 42 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target clearly distinct resources and actions, with explicit 'not for' clauses that reduce overlap. The only potential confusion is between get_clinic and show_clinic_overview, which both return clinic-level details, though the latter is a broader aggregate card.

Naming Consistency5/5

All tool names use consistent snake_case with a verb-first pattern (get_, list_, open_, show_). The verbs match the operation type, and noun phrases are predictable and readable.

Tool Count5/5

The set contains 11 tools, which is well within the typical 3-15 range for a focused server. Each tool covers a distinct administrative read or UI action without obvious redundancy.

Completeness3/5

The server is explicitly read-only, but within that scope there are notable gaps: no individual appointment retrieval (only daily counts), no pet/owner access, and no treatment names in procedures. Core administrative aggregates are covered, but agents needing detailed clinical or write operations will hit dead ends.

Available Tools

11 tools
get_clinicGet vet clinic detailsA
Read-onlyIdempotent
Inspect

Use this when the user wants to read the name, currency, language, timezone and edit time of one Veterical clinic selected by its identifier. Returns the clinic's name, currency, default language, timezone and last edit time; an id outside the organization returns not-found. Not for free appointment slots.

NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

NameRequiredDescription
clinicYesAdministrative clinic metadata only; opening hours, staff, animal, owner and appointment data are not included. Null when not found.
statusYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: the id must belong to the caller's organization, and an out-of-organization id returns not-found rather than an error or empty result.

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?

Two sentences, front-loaded with the trigger condition, then the return/error behavior. The field list ('name, currency, language, timezone and edit time') is effectively repeated across both sentences, a minor redundancy that costs one point.

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?

An output schema exists, so return values need not be enumerated, and annotations carry the safety profile; the description still adds the not-found case. It is close to complete, with the only gap being no mention of other read alternatives for a clinic.

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?

There is a single required parameter and schema description coverage is 100%, including the 24-hex-character pattern, so the schema fully documents it. The description only restates it as 'selected by its identifier' and adds no format or constraint detail beyond the schema, making the baseline 3 appropriate.

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?

Names a specific verb+resource ('read ... one Veterical clinic') plus the exact fields returned, and scopes it to a single clinic selected by identifier, which separates it from list_clinics. It also explicitly excludes the availability sibling, so an agent can route correctly without opening schemas.

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 an explicit trigger ('Use this when the user wants to read ... of one clinic') and one clear exclusion ('Not for free appointment slots'). It does not name other plausible alternatives such as show_clinic_overview or list_clinics, so it stops short of a full when/when-not map.

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

get_clinic_availabilitySummarize clinic booking capacityA
Read-onlyIdempotent
Inspect

Use this when the user wants to summarize unassigned online-booking capacity for one Veterical clinic as daily slot counts and first/last slot times. Returns the open online-booking slots per day for one clinic: how many, plus the first start and last end time. Covers the next days that have openings, up to 14 days and 100 slots (no pet, owner or medical data). Not for booking an appointment.

NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

NameRequiredDescription
daysYesOne row per day that has open online-booking slots, in date order. Unassigned capacity only; appointments, animals, owners, staff and clinical data are never included.
statusYes
slotCountYes
slotCountIsLowerBoundYesTrue when more open slots exist beyond the 14-day, 100-slot cap

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description adds genuinely useful context beyond them: the result is bounded to the next 14 days and 100 slots, covers only 'unassigned online-booking' slots, and explicitly excludes pet, owner and medical data.

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, front-loaded with the trigger condition, then output shape, then the bounds and exclusion. Every sentence earns its place, though the second sentence slightly restates the first's output framing.

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?

An output schema exists so return values need not be explained, yet the description still summarizes the payload (per-day counts plus first start/last end). Scope, limits, and the negative boundary are all covered – nothing needed to call this correctly is missing.

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% for the single clinicId parameter, including its pattern, so the schema does the heavy lifting and baseline 3 applies. The description adds no further semantics about the identifier beyond what the schema states.

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 (summarize) and resource (unassigned online-booking capacity for one clinic) with the precise output shape (daily slot counts, first/last slot times). This is distinguishable from siblings like get_clinic_schedule_summary and show_clinic_overview, which the agent can tell apart without opening schemas.

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?

Opens with an explicit trigger condition ('when the user wants to summarize unassigned online-booking capacity') and closes with a clear exclusion ('Not for booking an appointment'). It does not name the specific sibling tool to use instead for booking or for schedule details, so it stops short of the full when/when-not/alternative set.

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

get_clinic_schedule_summaryCount appointments per dayA
Read-onlyIdempotent
Inspect

Use this when the user wants to count scheduled records by UTC day for one Veterical clinic and a bounded date range, including canceled records. Returns appointment counts per UTC day for one clinic, canceled ones included, for the next 7 days by default and at most 31 days; counting stops at 100. Not for seeing individual appointments, pets or owners.

NameRequiredDescriptionDefault
endTimeNoEnd of the range as an ISO 8601 date-time, after startTime and at most 31 days later; defaults to 7 days after the start
clinicIdYesClinic id: 24 lowercase hexadecimal characters
startTimeNoStart of the range as an ISO 8601 date-time; defaults to now

Output Schema

NameRequiredDescription
daysYesOne row per UTC day that has appointments, canceled ones included. Aggregate counts only: appointment identifiers and times, animals, owners, diagnoses, treatments, reminders and notes are never returned.
rangeYes
appointmentCountYes
appointmentCountIsLowerBoundYesTrue when more than 100 appointments fall in the range

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world, but the description goes well beyond them: it discloses that canceled records are included in the counts, the default window (7 days) and hard ceiling (31 days), the counting cap of 100, and UTC-day bucketing. Those are exactly the operational facts an agent cannot infer from the annotations.

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?

Two sentences, zero filler, and the trigger condition is front-loaded before the exclusion and the behavioral limits. Every clause (canceled inclusion, defaults, max range, cap, exclusions) carries distinct information.

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?

Despite an output schema existing, the description independently covers purpose, trigger, exclusions, result semantics, defaults, and limits. There is nothing an agent needs in order to call this correctly that 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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema omits: the UTC day alignment that governs how startTime/endTime are bucketed, and the 31-day bound combined with a 100-count cutoff on results. This directly informs how an agent should choose the range.

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 (count), resource (scheduled records / appointment counts), and scope (one Veterical clinic, UTC day, bounded range, canceled included). The closing exclusion ('Not for seeing individual appointments, pets or owners') separates it from list_calendar_events and similar siblings without the agent needing to open their schemas.

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?

Opens with an explicit trigger ('Use this when the user wants to count scheduled records by UTC day') and adds a clear when-not clause ruling out per-appointment, pet, and owner lookups. It stops short of naming the alternative tool to use for those cases, so it is not quite a 5.

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

list_calendar_eventsList closures, holidays and blocked timeA
Read-onlyIdempotent
Inspect

Use this when the user wants to list non-appointment calendar blocks and additional opening periods for a Veterical clinic. Returns each block or extra opening with start, end, all-day flag, scope (clinic, staff or room) and type, without titles, notes or names. Not for appointments.

NameRequiredDescriptionDefault
limitNoBlocks per page, from 1 to 100; defaults to 20
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
endTimeNoOnly blocks ending before this ISO 8601 date-time
clinicIdNoOnly this clinic (24 lowercase hexadecimal characters); every clinic when absent
startTimeNoOnly blocks starting at or after this ISO 8601 date-time

Output Schema

NameRequiredDescription
nextCursorYesCursor for the next page; null on the last page
calendarEventsYesNon-appointment calendar blocks, earliest first. Event identifiers, clinic or staff references, titles, notes, owner or animal linkage and clinical fields are never returned.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description still earns credit by disclosing the actual payload shape (start, end, all-day flag, scope, type) and, importantly, what is deliberately omitted ('without titles, notes or names') — a non-obvious output constraint the agent cannot infer from the schema.

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?

Three short sentences, front-loaded with the usage condition, then the returned fields, then the exclusion. Every sentence carries distinct information with no repetition.

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?

Covers when to call, what is returned, what is omitted, and what the tool is not for. An output schema exists so return values need not be elaborated, yet the description still summarizes them usefully. Nothing needed to invoke this correctly is missing.

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%, with limit, cursor, startTime, endTime and clinicId all documented in the schema itself, so the baseline is 3. The description mentions scope values (clinic, staff, room) but adds no filtering syntax or format detail beyond what the schema already provides.

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 ('list') and a precisely scoped resource ('non-appointment calendar blocks and additional opening periods'), and explicitly carves out what it is not ('Not for appointments'). An agent can distinguish this from appointment-related siblings without reading 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?

The opening clause gives a clear triggering condition ('when the user wants to list non-appointment calendar blocks') and the closing sentence provides an explicit exclusion ('Not for appointments'). It stops short of naming which sibling to use instead for appointments or availability, so it is strong context rather than full routing guidance.

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

list_clinic_providersList bookable vets and staffA
Read-onlyIdempotent
Inspect

Use this when the user wants to list the display names of staff offered by one Veterical clinic for online booking. Returns up to 100 staff display names for one clinic (no contact details, roles or pet data). Not for staff days off or vacations.

NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

NameRequiredDescription
statusYes
providersYesDisplay names of staff with a doctor, nurse or assistant role. Staff identifiers, contact details, roles, colors, avatars and all animal or clinical data are excluded.
providerCountYes
providerCountIsLowerBoundYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real context: a 100-item cap and an explicit statement that no contact details, roles or pet data are returned.

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?

Two tight sentences, front-loaded with the trigger and immediately followed by scope and an exclusion. 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 an output schema present, return-field explanation is unnecessary, and the description still covers scope, cap and exclusions. It omits error behavior for an invalid or unknown clinicId, which keeps it short of fully 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% and the single clinicId parameter is fully documented (24-char hex pattern). The description only restates 'one clinic' and adds no format or syntax detail beyond the schema, so the baseline of 3 applies.

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 (list) and resource (staff display names) scoped to one Veterical clinic for online booking. An agent can distinguish it from siblings like get_clinic_schedule_summary or list_clinic_payments 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?

Opens with an explicit trigger ('Use this when the user wants to list the display names of staff...') and adds a negative boundary ('Not for staff days off or vacations'). It does not name a specific alternative tool for those excluded cases, 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.

list_clinicsList your vet clinicsA
Read-onlyIdempotent
Inspect

Use this when the user wants to list veterinary clinics accessible to the connected Veterical account and retrieve their identifiers for subsequent administrative reads. Returns each clinic's id, name, currency, default language and timezone, 20 per page by default. Not for finding a pet, owner or appointment.

NameRequiredDescriptionDefault
limitNoClinics per page, from 1 to 100; defaults to 20
cursorNoThe nextCursor of the previous page of this listing; absent for the first page

Output Schema

NameRequiredDescription
clinicsYesClinics in the signed-in organization, administrative metadata only. Animal, owner, appointment and clinical records are never returned.
nextCursorYesCursor for the next page; null on the last page

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is fully covered. The description adds pagination behavior ('20 per page by default'), which is genuine added context, but its enumeration of returned fields largely duplicates what the existing output schema provides.

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 sentences with the trigger front-loaded and the negative scoping last where it is most useful. The middle sentence restating return fields is partly redundant with the output schema, which is the only waste.

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?

A read-only, two-parameter listing tool with full schema coverage, an output schema, and rich annotations needs little more, and the description covers trigger, scope, exclusions and page size. Nothing essential is missing, though there is no explicit guidance on chaining the returned identifiers into the administrative reads it mentions.

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%: limit (1-100, default 20) and cursor are fully documented in the schema. The description's '20 per page by default' mirrors the limit schema text without adding new meaning, so the baseline 3 applies.

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?

Names a specific verb+resource ('list veterinary clinics accessible to the connected Veterical account') and adds the downstream purpose (retrieving identifiers for subsequent administrative reads). The closing 'Not for finding a pet, owner or appointment' separates it from the rest of the sibling set at a glance.

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 an explicit trigger ('Use this when the user wants to list veterinary clinics...') and rules out off-target intents (pet, owner, appointment). It never names the natural sibling alternative, e.g. get_clinic for a single clinic, so an agent must infer that boundary itself.

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

list_paymentsSummarize a page of payment totalsA
Read-onlyIdempotent
Inspect

Use this when the user wants to aggregate one bounded page of recorded Veterical payments by currency and status; this is not a full revenue or settlement report. Returns totals and counts by currency and status for one page of payments, newest first (20 by default), with a cursor for the rest (no client, pet or card data). Not for refunds or charging a client.

NameRequiredDescriptionDefault
limitNoPayments to summarize in this page, from 1 to 100; defaults to 20
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
endTimeNoOnly payments dated before this ISO 8601 date-time
clinicIdNoOnly this clinic (24 lowercase hexadecimal characters); every clinic when absent
startTimeNoOnly payments dated at or after this ISO 8601 date-time

Output Schema

NameRequiredDescription
totalsYesOne row per currency and status within this page only. Transaction identifiers and dates, animal or owner linkage, line items, discounts, payment methods, card or bank data and processor identifiers are never returned.
nextCursorYesCursor for the next page; null on the last page
recordsSummarizedYesHow many payment records this page summarized
moreRecordsAvailableYesTrue when older payments exist beyond this page

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context — and it does: results are newest-first, 20 per page by default, a cursor fetches the rest, and no client/pet/card data is returned. Only the exact shape of the totals/counts is left unspecified, and that is largely carried by the output schema.

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 sentences, each load-bearing: scope, return/ordering/pagination behavior, and exclusions. The middle sentence is denser than ideal with its parenthetical, but nothing is redundant and the critical scoping constraint is front-loaded.

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?

With an output schema present, the description need not enumerate return fields, and it still covers pagination, ordering, default page size, data exclusions, and filter semantics for a tool whose parameters are all optional. Nothing an agent needs in order to call this correctly is missing.

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%, so all five parameters (limit, cursor, startTime, endTime, clinicId) are already documented in the schema, which sets the baseline at 3. The description adds only the default page size of 20 and the newest-first ordering, not new per-parameter meaning.

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 ('aggregate ... recorded Veterical payments by currency and status') and explicitly bounds the scope as 'one bounded page', distinguishing it from a full revenue or settlement report. An agent can tell this apart from siblings like list_subscriptions or show_clinic_overview without opening a schema.

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?

Gives both when-to-use ('when the user wants to aggregate one bounded page') and explicit when-not ('this is not a full revenue or settlement report', 'Not for refunds or charging a client'). The exclusions actively route the agent away from misuse rather than leaving it to inference.

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

list_proceduresList numeric clinic catalog rowsA
Read-onlyIdempotent
Inspect

Use this when the user wants to read anonymous numeric catalog rows from a Veterical clinic to inspect configured prices, durations and edit times. Returns price, duration where recorded and last edit time per catalog row, without treatment names. Not for the price of a specific named treatment.

NameRequiredDescriptionDefault
limitNoCatalog rows per page, from 1 to 100; defaults to 50
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

NameRequiredDescription
nextCursorYesCursor for the next page; null on the last page
proceduresYesNumeric catalog rows, most recently edited first. Names, descriptions, identifiers, patient-linked treatments, diagnoses, notes, reminders and every other free-text or clinical field are excluded.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: results are anonymous, omit treatment names, and only include duration 'where recorded', which tells the agent to expect sparse fields.

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?

Two sentences, front-loaded with the use case and the returned fields. The second sentence is dense but each clause carries information; nothing is redundant with the schema or annotations.

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 an output schema present and annotations covering read-only/idempotent behavior, the description only needs to supply usage context and quirks, which it does. It could be slightly stronger by naming the sibling tool for named-treatment pricing, but nothing needed to invoke it correctly is missing.

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%, so limit, cursor and clinicId are fully documented in the schema, including ranges and the cursor pagination contract. The description adds no parameter-level detail beyond that, so baseline 3 applies.

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?

Specific verb (read/list) plus resource (numeric catalog rows from a Veterical clinic) and the exact fields exposed (price, duration, edit times). It also carves out what it is not ('Not for the price of a specific named treatment'), which separates it from the clinic-detail 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?

States when to use it ('when the user wants to read anonymous numeric catalog rows... to inspect configured prices, durations and edit times') and gives an explicit exclusion for named-treatment pricing. It stops short of naming the alternative tool to use for that excluded case, so the routing is implied rather than complete.

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

list_subscriptionsCheck Veterical plan and limitsA
Read-onlyIdempotent
Inspect

Use this when the user wants to read the subscription plan, status, billing frequency and configured capacity limits for a Veterical clinic. Returns plan name, status, billing frequency and plan caps per subscription; caps are limits, not usage. Not for invoices or amounts billed.

NameRequiredDescriptionDefault
limitNoSubscriptions per page, from 1 to 100; defaults to 20
cursorNoThe nextCursor of the previous page with the same filters; absent for the first page
clinicIdNoOnly this clinic (24 lowercase hexadecimal characters); every clinic when absent

Output Schema

NameRequiredDescription
nextCursorYesCursor for the next page; null on the last page
subscriptionsYesPlan entitlements, newest first. Subscription or customer ids, billed amounts, payment methods, invoices and every processor field are excluded.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds real value by clarifying that returned caps are limits rather than usage and by scoping out billing amounts.

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?

Two sentences with no filler: scope and trigger first, exclusions last. Every clause earns its place and nothing is repeated from the schema.

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?

An output schema exists and the schema documents pagination, so the description only needs to establish purpose, usage and the meaning of 'caps' — which it does. An agent has everything required to select and invoke this read-only list tool.

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?

All three parameters (limit, cursor, clinicId) are fully documented in the schema, including pagination semantics and the 24-hex clinic ID pattern. The description adds no parameter-level guidance beyond that, so the baseline 3 applies.

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?

Specific verb ('read') plus resource ('subscription plan, status, billing frequency and configured capacity limits for a Veterical clinic') and an explicit enumeration of returned fields. It is clearly distinguishable from siblings such as list_payments or get_clinic.

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?

Opens with an explicit when-to-use trigger ('when the user wants to read the subscription plan...') and adds a when-not ('Not for invoices or amounts billed'), which steers agents away from billing tools. It stops short of naming the alternative tool explicitly.

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

open_vetericalVeterical Veterinary SoftwareA
Read-onlyIdempotent
Inspect

Use this when the user wants to open the Veterical clinic-selection sidebar when the user requests an interactive clinic browser. Returns up to 100 clinics to start from (no pet, owner, appointment or clinical data). Not for booking appointments, editing records or medical decisions.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
itemsYes
truncatedYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, and the description usefully adds the payload scope: up to 100 clinics and explicitly no pet, owner, appointment, or clinical data. That is meaningful added context beyond the structured fields, though it says nothing about failure modes or auth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening clause is redundant, restating the same trigger twice ('when the user wants to open ... when the user requests an interactive clinic browser'), which hurts front-loading. The trailing exclusions are tight and earn their place, but the lead sentence should be compressed.

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 an output schema present and rich annotations, the description only needs to add scoping and routing information, which it largely does via the 100-clinic cap and the data-exclusion statement. It is complete enough to invoke correctly, missing only a pointer to which sibling handles the excluded actions.

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?

The tool takes zero parameters, so there is no parameter semantics to explain; the 4 baseline for parameterless tools applies.

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?

The description pairs a specific verb ('open') with a specific resource ('Veterical clinic-selection sidebar') and frames it as an interactive clinic browser, which distinguishes it from data-returning siblings like list_clinics. It stops short of naming an actual sibling to contrast against, so it is clear but not fully differentiated within the toolset.

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?

It gives explicit when-to-use ('when the user requests an interactive clinic browser') plus explicit exclusions ('Not for booking appointments, editing records or medical decisions'). No alternative tool is named for the excluded cases, which keeps it from a 5.

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

show_clinic_overviewShow vet clinic overviewA
Read-onlyIdempotent
Inspect

Use this when the user wants to render a read-only administrative overview for one Veterical clinic selected by its identifier. Returns an overview card with the clinic's details, appointment counts for the next 7 days, how many staff can be booked, open online-booking slots and up to 12 catalog prices (no pet, owner or medical data). Not for a single appointment.

NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

NameRequiredDescription
clinicYesAdministrative clinic metadata; null when the clinic was not found. The overview never includes individual appointments, animal or owner records, diagnoses, treatments, reminders, notes, transaction details or other clinical or personal data.
proceduresYes
scheduleDaysYes
providerCountYes
scheduleRangeYes
procedureCountYes
appointmentCountYes
availabilityDaysYes
availableDayCountYes
availableSlotCountYes
providerCountIsLowerBoundYes
procedureCountIsLowerBoundYes
appointmentCountIsLowerBoundYes
availableSlotCountIsLowerBoundYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is free. The description adds genuinely new context beyond them: the exact shape of the returned card and an explicit data-scope guarantee ('no pet, owner or medical data'), which tells the agent this call is privacy-safe and non-medical. It stops short of stating permissions or error behavior.

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?

Two sentences, front-loaded with the trigger condition and tightly packed. The contents enumeration is long but each element disambiguates the tool from its siblings, so little is wasted; still slightly denser than necessary.

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 an output schema present the description need not explain return values, yet it does so at a useful level of abstraction, and it closes off the main misuse ('not for a single appointment'). For a one-parameter read-only tool whose annotations carry the safety profile, this is nearly complete; only permission/error expectations are 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?

There is a single parameter and schema description coverage is 100% (the schema itself documents the 24-char lowercase hex pattern). The description only says 'selected by its identifier', which adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

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: 'render a read-only administrative overview for one Veterical clinic'. It further enumerates what the overview contains (appointment counts, bookable staff, open slots, catalog prices), which is enough to distinguish it from get_clinic and get_clinic_schedule_summary without opening their schemas.

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 an explicit trigger ('when the user wants to render a read-only administrative overview for one clinic') and one exclusion ('Not for a single appointment'). However it does not name the obvious siblings (get_clinic, get_clinic_schedule_summary, get_clinic_availability) that an agent would otherwise weigh, so the routing guidance is clear but not exhaustive.

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. 1 tool update
    • Addedopen_veterical
  2. 1 tool update
    • Changedlist_subscriptions2 fields changed
      • removedOutput schema / properties / subscriptions / items / properties / limits / properties / reminders
        Removed value: -{
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • changedOutput schema / properties / subscriptions / items / properties / limits / required
        Previous value: -[
        -  "appointments",
        -  "patients",
        -  "reminders",
        -  "seats",
        -  "users"
        -]New value: +[
        +  "appointments",
        +  "patients",
        +  "seats",
        +  "users"
        +]
  3. 1 tool update
    • Changedlist_payments2 fields changed
      • addedOutput schema / properties / totals / items / properties / amountMissingCount
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / totals / items / required
        Previous value: -[
        -  "currency",
        -  "status",
        -  "paymentCount",
        -  "totalAmount"
        -]New value: +[
        +  "currency",
        +  "status",
        +  "paymentCount",
        +  "totalAmount",
        +  "amountMissingCount"
        +]
  4. 10 tool updates
    • Changedget_clinic1 field changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
    • Changedget_clinic_availability1 field changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
    • Changedget_clinic_schedule_summary1 field changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
    • Changedlist_calendar_events3 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"New value: +"Only this clinic (24 lowercase hexadecimal characters); every clinic when absent"
      • changedInput schema / properties / cursor / description
        Previous value: -"nextCursor from the previous page with the same filters; omit for the first page"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedOutput schema / properties / nextCursor / description
        Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
    • Changedlist_clinic_providers1 field changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
    • Changedlist_clinics2 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"nextCursor from the previous page of this listing; omit for the first page"New value: +"The nextCursor of the previous page of this listing; absent for the first page"
      • changedOutput schema / properties / nextCursor / description
        Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
    • Changedlist_payments3 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"New value: +"Only this clinic (24 lowercase hexadecimal characters); every clinic when absent"
      • changedInput schema / properties / cursor / description
        Previous value: -"nextCursor from the previous page with the same filters; omit for the first page"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedOutput schema / properties / nextCursor / description
        Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
    • Changedlist_procedures4 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
      • changedInput schema / properties / cursor / description
        Previous value: -"nextCursor from the previous page with the same filters; omit for the first page"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedOutput schema / properties / nextCursor / description
        Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
      • changedOutput schema / properties / procedures / items / properties / price / description
        Previous value: -"Price in the clinic's currency (see get_clinic)"New value: +"Price in the clinic's currency"
    • Changedlist_subscriptions3 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"New value: +"Only this clinic (24 lowercase hexadecimal characters); every clinic when absent"
      • changedInput schema / properties / cursor / description
        Previous value: -"nextCursor from the previous page with the same filters; omit for the first page"New value: +"The nextCursor of the previous page with the same filters; absent for the first page"
      • changedOutput schema / properties / nextCursor / description
        Previous value: -"Pass as cursor to get the next page; null on the last page"New value: +"Cursor for the next page; null on the last page"
    • Changedshow_clinic_overview1 field changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
  5. 10 tool updates
    • Changedget_clinic2 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • addedOutput schema / properties / clinic / description
        Added value: +"Administrative clinic metadata only; opening hours, staff, animal, owner and appointment data are not included. Null when not found."
    • Changedget_clinic_availability3 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • addedOutput schema / properties / days / description
        Added value: +"One row per day that has open online-booking slots, in date order. Unassigned capacity only; appointments, animals, owners, staff and clinical data are never included."
      • addedOutput schema / properties / slotCountIsLowerBound / description
        Added value: +"True when more open slots exist beyond the 14-day, 100-slot cap"
    • Changedget_clinic_schedule_summary5 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • changedInput schema / properties / endTime / description
        Previous value: -"Range end as ISO 8601; defaults to seven days later"New value: +"End of the range as an ISO 8601 date-time, after startTime and at most 31 days later; defaults to 7 days after the start"
      • changedInput schema / properties / startTime / description
        Previous value: -"Range start as ISO 8601; defaults to now"New value: +"Start of the range as an ISO 8601 date-time; defaults to now"
      • addedOutput schema / properties / appointmentCountIsLowerBound / description
        Added value: +"True when more than 100 appointments fall in the range"
      • addedOutput schema / properties / days / description
        Added value: +"One row per UTC day that has appointments, canceled ones included. Aggregate counts only: appointment identifiers and times, animals, owners, diagnoses, treatments, reminders and notes are never returned."
    • Changedlist_calendar_events10 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page"
      • changedInput schema / properties / endTime / description
        Previous value: -"Only blocks ending before this ISO 8601 time"New value: +"Only blocks ending before this ISO 8601 date-time"
      • addedInput schema / properties / limit / description
        Added value: +"Blocks per page, from 1 to 100; defaults to 20"
      • changedInput schema / properties / startTime / description
        Previous value: -"Only blocks starting at or after this ISO 8601 time"New value: +"Only blocks starting at or after this ISO 8601 date-time"
      • addedOutput schema / properties / calendarEvents / description
        Added value: +"Non-appointment calendar blocks, earliest first. Event identifiers, clinic or staff references, titles, notes, owner or animal linkage and clinical fields are never returned."
      • addedOutput schema / properties / calendarEvents / items / properties / effect / description
        Added value: +"BLOCK removes bookable time; OPEN adds hours on a normally closed time"
      • addedOutput schema / properties / calendarEvents / items / properties / scope / description
        Added value: +"CLINIC: the whole clinic; PROVIDER: one or more staff; SEAT: one room"
      • addedOutput schema / properties / calendarEvents / items / properties / type / description
        Added value: +"Label such as COURSE, MEETING, VACATION, SICK, HOLIDAY, MAINTENANCE or OTHER"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Pass as cursor to get the next page; null on the last page"
    • Changedlist_clinic_providers2 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • addedOutput schema / properties / providers / description
        Added value: +"Display names of staff with a doctor, nurse or assistant role. Staff identifiers, contact details, roles, colors, avatars and all animal or clinical data are excluded."
    • Changedlist_clinics4 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page of this listing; omit for the first page"
      • addedInput schema / properties / limit / description
        Added value: +"Clinics per page, from 1 to 100; defaults to 20"
      • addedOutput schema / properties / clinics / description
        Added value: +"Clinics in the signed-in organization, administrative metadata only. Animal, owner, appointment and clinical records are never returned."
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Pass as cursor to get the next page; null on the last page"
    • Changedlist_payments9 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page"
      • changedInput schema / properties / endTime / description
        Previous value: -"Only records dated before this ISO 8601 time"New value: +"Only payments dated before this ISO 8601 date-time"
      • addedInput schema / properties / limit / description
        Added value: +"Payments to summarize in this page, from 1 to 100; defaults to 20"
      • changedInput schema / properties / startTime / description
        Previous value: -"Only records dated at or after this ISO 8601 time"New value: +"Only payments dated at or after this ISO 8601 date-time"
      • addedOutput schema / properties / moreRecordsAvailable / description
        Added value: +"True when older payments exist beyond this page"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Pass as cursor to get the next page; null on the last page"
      • addedOutput schema / properties / recordsSummarized / description
        Added value: +"How many payment records this page summarized"
      • addedOutput schema / properties / totals / description
        Added value: +"One row per currency and status within this page only. Transaction identifiers and dates, animal or owner linkage, line items, discounts, payment methods, card or bank data and processor identifiers are never returned."
    • Changedlist_procedures7 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Owned clinic id to inspect"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page"
      • addedInput schema / properties / limit / description
        Added value: +"Catalog rows per page, from 1 to 100; defaults to 50"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Pass as cursor to get the next page; null on the last page"
      • addedOutput schema / properties / procedures / description
        Added value: +"Numeric catalog rows, most recently edited first. Names, descriptions, identifiers, patient-linked treatments, diagnoses, notes, reminders and every other free-text or clinical field are excluded."
      • addedOutput schema / properties / procedures / items / properties / duration / description
        Added value: +"Configured duration, or null when none was recorded"
      • addedOutput schema / properties / procedures / items / properties / price / description
        Added value: +"Price in the clinic's currency (see get_clinic)"
    • Changedlist_subscriptions6 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic"
      • changedInput schema / properties / cursor / description
        Previous value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page"
      • addedInput schema / properties / limit / description
        Added value: +"Subscriptions per page, from 1 to 100; defaults to 20"
      • addedOutput schema / properties / nextCursor / description
        Added value: +"Pass as cursor to get the next page; null on the last page"
      • addedOutput schema / properties / subscriptions / description
        Added value: +"Plan entitlements, newest first. Subscription or customer ids, billed amounts, payment methods, invoices and every processor field are excluded."
      • addedOutput schema / properties / subscriptions / items / properties / limits / description
        Added value: +"Plan caps, not record counts; null when the subscription carries no cap"
    • Changedshow_clinic_overview2 fields changed
      • changedInput schema / properties / clinicId / description
        Previous value: -"Veterical clinic id to render"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters"
      • addedOutput schema / properties / clinic / description
        Added value: +"Administrative clinic metadata; null when the clinic was not found. The overview never includes individual appointments, animal or owner records, diagnoses, treatments, reminders, notes, transaction details or other clinical or personal data."
  6. 10 tool updates
    • First observedget_clinic
    • First observedget_clinic_availability
    • First observedget_clinic_schedule_summary
    • First observedlist_calendar_events
    • First observedlist_clinic_providers
    • First observedlist_clinics
    • First observedlist_payments
    • First observedlist_procedures
    • First observedlist_subscriptions
    • First observedshow_clinic_overview

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Veterinary clinic network in Moscow (20 clinics, open 24/7). Find a clinic with live ratings, check live prices for 900+ services, see open appointment slots, book a real visit, run a vet-approved symptom triage, check pet food safety, and query a knowledge base of 3,700+ vet-reviewed Q&As. Remote Streamable HTTP server at https://bio.vet/mcp, no auth required. Tools operate in Russian.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables authenticated management of salon and clinic scheduling data, including appointments, customers, professionals, services, products, finances, loyalty, commissions, and subscription clubs across multiple business units.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables small businesses to manage appointments through natural-language voice commands, including listing services, checking free times, booking, canceling, rescheduling, and viewing daily summaries with structured data and spoken responses.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources