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 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 11 tools

Disambiguation4/5

Each tool targets a distinct resource (clinic settings, availability, schedule counts, calendar blocks, providers, payments, procedures, subscriptions). The main overlap is show_clinic_overview, which aggregates the same data as get_clinic, get_clinic_schedule_summary, list_clinic_providers, get_clinic_availability and list_procedures, but its dashboard framing and descriptions clarify the granularity difference.

Naming Consistency5/5

All names follow a consistent verb_noun pattern with predictable prefixes: get_*, list_*, open_* and show_*. The convention is applied uniformly across the whole set.

Tool Count5/5

11 tools is a well-scoped set for a vet clinic reporting surface, with each tool earning its place by covering a distinct aspect of clinic data.

Completeness4/5

The read-only surface covers clinic info, availability, schedule, calendar blocks, providers, payments, procedures and subscriptions. Minor gaps exist (e.g. no lookup of a specific named treatment price or a single appointment), but these are consistent with the intentionally read-only, reporting-focused design.

Available Tools

11 tools
get_clinicGet vet clinic detailsA
Read-onlyIdempotent
Inspect

Use this when someone asks about one vet clinic's basic settings, such as its currency, language or timezone. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

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

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 openWorldHint=false, so safety is covered. The description adds genuinely new behavioral detail: an id outside the organization returns not-found, and it enumerates the returned fields. It does not discuss auth or rate limits, keeping it at 4.

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 tight sentences, front-loaded with the usage trigger, then return fields, then the error case and the exclusion. No filler.

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?

For a one-parameter read tool with full annotation coverage, complete schema and an output schema, nothing an agent needs is missing. The named-field summary is slightly redundant against the output schema but harmless.

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 param (24-char hex pattern) is fully documented there, so the baseline is 3. The description adds only the out-of-organization not-found behavior, not format or syntax beyond the schema.

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+resource (retrieve one vet clinic's basic settings) and names the exact fields returned, which distinguishes it from siblings like get_clinic_availability and show_clinic_overview. An agent can tell it apart 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 Guidelines4/5

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

Gives a clear trigger ('when someone asks about one vet clinic's basic settings') plus an explicit exclusion ('Not for free appointment slots'). It stops short of naming the alternative tool (e.g., get_clinic_availability) for the excluded case, so a 4 rather than 5.

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

get_clinic_availabilityFind free appointment slotsA
Read-onlyIdempotent
Inspect

Use this when someone asks when their vet clinic has free appointment slots or openings. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

ParametersJSON 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.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false. The description adds genuinely new behavioral context beyond those: the 14-day and 100-slot caps, the per-day aggregation shape (count plus first start and last end), and a privacy guarantee that no pet/owner/medical data is 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?

Three tightly packed sentences, zero filler, front-loaded with the usage trigger before the return shape and caps. Every clause earns its place.

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?

For a simple one-parameter read tool with full annotation coverage and an output schema, the description supplies the remaining unknowns: result caps, aggregation granularity, privacy scope, and the non-booking boundary. Nothing an agent needs to call 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?

Only one parameter (clinicId) and schema coverage is 100%, so the schema already documents the 24-hex-char format. The description adds only the framing that the query is scoped to a single clinic, which is the baseline expectation 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+resource (returns open online-booking slots per day for one clinic) with the scope constraint 'one clinic' and explicitly disclaims booking. An agent can distinguish it from list_calendar_events or get_clinic_schedule_summary from the description alone.

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 a clear trigger ('when someone asks when their vet clinic has free appointment slots or openings') and an explicit exclusion ('Not for booking an appointment'). It stops short of naming the sibling tool that handles the excluded case, so the agent must infer the routing.

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 someone asks how busy their vet clinic is or how many appointments fall on each day. 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.

ParametersJSON Schema
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

ParametersJSON 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.5/5.0
Behavior5/5

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

With safety already covered by readOnlyHint/idempotentHint/destructiveHint, the description adds genuinely useful behavioral facts: canceled appointments are included, results are bucketed by UTC day, the default window is 7 days, the maximum is 31 days, and counting truncates at 100. The truncation cap in particular is not derivable from the annotations or 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 tight sentences: triggering condition first, then the returned data and its defaults/limits, then the exclusion. No filler and nothing buried.

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 shape need not be explained. Scope, defaults, hard limits, truncation behavior and the negative case are all covered, leaving no gap an agent would need to guess at before calling it.

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 clinicId format, ISO 8601 date-times and the 31-day constraint are already documented. The description restates the 7-day default and 31-day ceiling but adds no new syntax or format 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?

States a specific verb and resource: returns appointment counts per day for one clinic. It also draws a scope boundary ('Not for seeing individual appointments, pets or owners'), which lets an agent separate it from list_calendar_events and the pet/owner tools without inspecting 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 triggering condition ('when someone asks how busy their vet clinic is or how many appointments fall on each day') plus a clear exclusion. It stops short of naming the alternative tool to call instead, so it is strong but not fully routing.

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 someone asks when their vet clinic is closed or has time blocked for holidays, vacations, sick days, meetings or courses. 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.

ParametersJSON Schema
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

ParametersJSON 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.5/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 closed-world, so the safety profile is covered. The description adds real value beyond that by disclosing what is omitted from results ('without titles, notes or names') and that extra openings are included, though it says nothing about pagination behavior despite a cursor parameter.

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, purpose and scope front-loaded before the exclusion. Every clause earns its place.

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 a full output schema and 100% parameter documentation, the description only needs to supply intent and boundaries, which it does. An agent has everything required to decide and call correctly.

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 every parameter (limit, cursor, startTime, endTime, clinicId) carries its own description, so the baseline is 3. The description adds no filter syntax or semantics beyond the schema.

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

Purpose5/5

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

The description names a specific resource (closures, holidays, blocked time) and enumerates concrete block types (holidays, vacations, sick days, meetings, courses), so an agent can instantly tell this apart from appointment-oriented siblings. The closing exclusion 'Not for appointments' sharpens the scope further.

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?

It gives an explicit trigger ('when someone asks when their vet clinic is closed or has time blocked') plus an explicit when-not ('Not for appointments'), leaving no inference needed about alternative tools.

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 someone asks which vets, nurses or assistants can be booked at their clinic. Returns up to 100 staff display names for one clinic (no contact details, roles or pet data). Not for staff days off or vacations.

ParametersJSON Schema
NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

ParametersJSON 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.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral context: a 100-row result cap and an explicit statement of what is omitted (no contact details, roles or pet data) — useful for an agent predicting the payload.

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: the use case leads, the return shape and exclusions follow. Every clause earns its place with no preamble or repetition of the title.

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 complete annotations and a present output schema, the description only needs to supply the trigger, scope and result boundaries — all of which it does. Nothing an agent needs to select and call this tool 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 the 24-char hex pattern, so the schema carries this dimension. The description only reinforces scoping ('for one clinic') without adding format or validation detail beyond the schema; 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?

The description states a specific verb and resource ('List... vets, nurses or assistants... bookable at their clinic') and bounds the result set ('up to 100 staff display names for one clinic'). It also carves out a clear non-use case ('Not for staff days off or vacations'), which separates it from availability/schedule 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?

It gives a clear triggering condition ('when someone asks which vets, nurses or assistants can be booked') plus an explicit exclusion for days off/vacations. It stops short of naming the alternative tool an agent should call for those excluded cases (e.g. get_clinic_schedule_summary), so routing is implied rather than directed.

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 someone asks which vet clinics they manage in Veterical, or a clinic's id is needed. Returns each clinic's id, name, currency, default language and timezone, 20 per page by default. Not for finding a pet, owner or appointment.

ParametersJSON Schema
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

ParametersJSON 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

A4.3/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 closed-world, so the safety profile is covered. The description adds useful context beyond that: the specific fields returned per clinic and the default page size of 20, which tells the agent what a call yields and that results are paginated.

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 zero filler: the use case and the id-lookup trigger come first, the returned fields and page size follow, and the exclusion closes it out. Nothing is repeated from the title.

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?

For a simple paginated read tool with full schema coverage, an output schema, and annotations covering safety, the description supplies everything needed: trigger, scope, return fields, and pagination default. No gaps remain.

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 both parameters (limit, cursor) are fully documented in the schema, so the baseline is 3. The description only echoes the default of 20 per page and adds no new syntax or paging semantics.

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 ... vet clinics they manage in Veterical') and names what it is not for (pets, owners, appointments), which separates it from siblings like get_clinic and list_clinic_providers. An agent can select it 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 an explicit trigger ('when someone asks which vet clinics they manage... or a clinic's id is needed') plus a clear negative scope. It stops short of naming the sibling alternative (get_clinic) for single-clinic lookups, but the intent boundary is unambiguous.

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

list_paymentsSummarize payments receivedA
Read-onlyIdempotent
Inspect

Use this when someone asks how much their vet clinic has taken in, or how many payments succeeded, failed or were canceled. 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.

ParametersJSON Schema
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

ParametersJSON 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.5/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 closed-world, so the safety profile is covered. The description adds genuinely new behavior: pagination semantics (newest first, 20 by default, cursor for the rest) and an explicit data-exclusion guarantee ('no client, pet or card data') that an agent needs for privacy-sensitive answers.

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, front-loaded with the user-facing trigger, then the return shape, then the exclusion. Every clause carries information and nothing is repeated.

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 and 100% parameter coverage, the description need not explain return values or filters in detail. It still covers usage trigger, aggregation granularity, pagination, and data exclusions, leaving no gap an agent would need to guess at.

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 fully documented in the schema. The description only restates the cursor/default-limit behavior, adding no syntax, format, or filter-combination guidance beyond the schema, 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?

The description states a specific resource and the exact aggregation performed ('totals and counts by currency and status for one page of payments'), which also resolves the tension between the name 'list_payments' and the summary behavior implied by the title. An agent can distinguish this from sibling tools like list_subscriptions or list_procedures 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?

It gives an explicit trigger ('when someone asks how much their vet clinic has taken in, or how many payments succeeded, failed or were canceled') and an explicit exclusion ('Not for refunds or charging a client'). Both when-to-use and when-not-to-use are spelled out rather than implied.

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

list_proceduresReview treatment catalog pricesA
Read-onlyIdempotent
Inspect

Use this when someone asks about the prices set in their vet clinic's treatment and service catalog, such as the lowest, highest or most recently changed price. Returns price, duration where recorded and last edit time per catalog row, without treatment names. Not for the price of a specific named treatment.

ParametersJSON Schema
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

ParametersJSON 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.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful non-obvious behavior: it discloses the returned fields per row (price, duration where recorded, last edit time) and the surprising omission of treatment names, which an agent would otherwise have to learn from 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.

Conciseness5/5

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

Three sentences, front-loaded with the trigger, followed by the return contract and the exclusion. Every sentence carries distinct information and none restates the name, title or schema.

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?

Given an output schema exists, the description needn't spell out return shapes, and it still summarizes them briefly. Combined with the annotations and fully documented parameters, an agent has enough to call this correctly; only pagination behavior (covered in the schema) is left to structured fields.

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 and clinicId all documented in the schema itself, so the baseline is 3. The description adds nothing about parameter formats or constraints beyond the phrase 'per catalog row', which only loosely gestures at pagination.

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 ('prices set in their vet clinic's treatment and service catalog') and pins the scope further by naming the aggregate questions it answers (lowest, highest, most recently changed). It also carves out what it is not ('the price of a specific named treatment'), so an agent can route 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 Guidelines5/5

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

'Use this when someone asks about the prices set in their vet clinic's treatment and service catalog' gives an explicit trigger, and the closing sentence gives an explicit exclusion ('Not for the price of a specific named treatment'). Both when-to-use and when-not-to-use are present, so no inference is required.

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 someone asks which Veterical plan their clinic is on, whether it is active, or how many users, seats, patients or appointments it allows. Returns plan name, status, billing frequency and plan caps per subscription; caps are limits, not usage. Not for invoices or amounts billed.

ParametersJSON Schema
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

ParametersJSON 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.5/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 adds real semantic content beyond that: it enumerates the returned fields and warns that caps are limits rather than usage, which prevents a common misinterpretation. It does not discuss pagination or auth requirements, hence not 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.

Conciseness5/5

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

Two sentences, front-loaded with the usage trigger, followed by the return contract and the exclusion. Every clause carries distinct information with no repetition of the title or name.

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 spelled out, yet the description still summarizes them usefully. Combined with full parameter coverage, an explicit exclusion, and annotations covering the safety profile, 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%, so limit, cursor, and clinicId are fully documented in the schema itself. The description adds no syntax, default, or format detail beyond the schema, which matches the baseline 3 for a schema that 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+resource (list subscriptions) and immediately narrows the intent to plan, status, and plan caps. It also explicitly disambiguates from the closest sibling, list_payments, by ruling out invoices and billed amounts.

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 concrete trigger phrasing ('when someone asks which Veterical plan their clinic is on, whether it is active, or how many users, seats, patients or appointments it allows') and an explicit exclusion that reroutes to the billing sibling. Both when-to-use and when-not-to-use are present.

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

open_vetericalVeterical Vet ClinicA
Read-onlyIdempotent
Inspect

Use this when someone wants to open Veterical and browse their clinics, aggregate schedule counts, booking availability and catalog prices in an interactive sidebar. Returns up to 100 clinics to start from (no pet, owner, appointment or clinical data). Not for booking appointments, editing records or medical decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
truncatedYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, and closed-world. The description adds value beyond them: a hard cap of 100 clinics returned, and an explicit inventory of what is NOT included (no pet, owner, appointment, or clinical data), which prevents an agent over-trusting the payload.

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, both earning their place: the trigger and scope come first, then the return cap and exclusions. No padding or redundancy.

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 no explanation, and the description still clarifies the 100-clinic cap and the deliberate absence of clinical data. The one residue is how this opening tool differs operationally from list_clinics/show_clinic_overview for the same data.

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 the baseline is 4 by rule. The description correctly implies no filtering input is required and that the app opens with a default set of clinics.

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?

States a specific verb and resource: opens Veterical and surfaces clinics with schedule counts, availability, and catalog prices in a sidebar. However, it does not distinguish itself from siblings that also return clinic data (list_clinics, show_clinic_overview), leaving some overlap ambiguity.

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 a clear use trigger (someone wants to open Veterical and browse) plus explicit exclusions ('Not for booking appointments, editing records or medical decisions'). It does not name the sibling tools an agent should prefer for those excluded tasks, but the when/when-not framing is strong.

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 someone wants a quick overview or dashboard of one vet clinic. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
clinicIdYesClinic id: 24 lowercase hexadecimal characters

Output Schema

ParametersJSON 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 the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely useful scope context beyond them: it discloses the capped catalog sampling (up to 12 prices), the fixed 7-day appointment window, and explicitly that no pet, owner or medical data is included. Not a full behavioral spec, but solid added value.

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 tight sentences, front-loaded with the trigger condition, then the return contents, then the exclusion. Every clause carries information; nothing is filler.

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-format exposition is unnecessary; the description still summarizes the payload and its privacy boundary. Combined with complete parameter docs and full annotations, an agent has everything needed to select and invoke it correctly.

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 a regex pattern and format note, so the schema carries the semantics. The description adds nothing about the id format or sourcing, which is the expected baseline-3 outcome 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.

Purpose4/5

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

States a specific verb+resource ('quick overview or dashboard of one vet clinic') and enumerates what the card contains: appointment counts for the next 7 days, bookable staff, open booking slots, up to 12 catalog prices. It distinguishes itself from appointment-level siblings but does not clearly differentiate from get_clinic, which likely also returns clinic details.

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 explicit when-to-use ('when someone wants a quick overview or dashboard of one vet clinic') and one exclusion ('Not for a single appointment'). However, the exclusion names a concept rather than a sibling tool, and it doesn't address when to prefer get_clinic or get_clinic_schedule_summary over this dashboard view.

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
    C
    quality
    D
    maintenance
    Enables AI agents to manage veterinary practice data through ezyVet API, including animals, contacts, appointments, consults, invoices, and products.
    8
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables Claude to manage a service business front desk by searching customers, checking real-time availability, creating and canceling appointments without double-booking, and generating revenue reports from actual data.
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources