Veterical Vet Clinic
Server Details
See your vet clinic's free slots, vets, service prices, payments and how busy each day is.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
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.
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.
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.
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 toolsget_clinicGet vet clinic detailsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinic | Yes | Administrative clinic metadata only; opening hours, staff, animal, owner and appointment data are not included. Null when not found. |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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 slotsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | 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. |
| status | Yes | |
| slotCount | Yes | |
| slotCountIsLowerBound | Yes | True when more open slots exist beyond the 14-day, 100-slot cap |
TDQS
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.
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.
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.
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.
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.
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 dayARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | No | 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 | |
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters | |
| startTime | No | Start of the range as an ISO 8601 date-time; defaults to now |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | 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. |
| range | Yes | |
| appointmentCount | Yes | |
| appointmentCountIsLowerBound | Yes | True when more than 100 appointments fall in the range |
TDQS
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.
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.
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.
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.
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.
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 timeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Blocks per page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| endTime | No | Only blocks ending before this ISO 8601 date-time | |
| clinicId | No | Only this clinic (24 lowercase hexadecimal characters); every clinic when absent | |
| startTime | No | Only blocks starting at or after this ISO 8601 date-time |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | Yes | Cursor for the next page; null on the last page |
| calendarEvents | Yes | Non-appointment calendar blocks, earliest first. Event identifiers, clinic or staff references, titles, notes, owner or animal linkage and clinical fields are never returned. |
TDQS
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.
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.
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.
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.
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.
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 staffARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| providers | Yes | 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. |
| providerCount | Yes | |
| providerCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 clinicsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Clinics per page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page of this listing; absent for the first page |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinics | Yes | Clinics in the signed-in organization, administrative metadata only. Animal, owner, appointment and clinical records are never returned. |
| nextCursor | Yes | Cursor for the next page; null on the last page |
TDQS
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.
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.
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.
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.
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.
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 receivedARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Payments to summarize in this page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| endTime | No | Only payments dated before this ISO 8601 date-time | |
| clinicId | No | Only this clinic (24 lowercase hexadecimal characters); every clinic when absent | |
| startTime | No | Only payments dated at or after this ISO 8601 date-time |
Output Schema
| Name | Required | Description |
|---|---|---|
| totals | Yes | 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. |
| nextCursor | Yes | Cursor for the next page; null on the last page |
| recordsSummarized | Yes | How many payment records this page summarized |
| moreRecordsAvailable | Yes | True when older payments exist beyond this page |
TDQS
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.
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.
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.
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.
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.
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 pricesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Catalog rows per page, from 1 to 100; defaults to 50 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | Yes | Cursor for the next page; null on the last page |
| procedures | Yes | 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. |
TDQS
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.
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.
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.
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.
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.
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 limitsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Subscriptions per page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page with the same filters; absent for the first page | |
| clinicId | No | Only this clinic (24 lowercase hexadecimal characters); every clinic when absent |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | Yes | Cursor for the next page; null on the last page |
| subscriptions | Yes | Plan entitlements, newest first. Subscription or customer ids, billed amounts, payment methods, invoices and every processor field are excluded. |
TDQS
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.
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.
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.
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.
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.
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 ClinicARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| truncated | Yes |
TDQS
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.
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.
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.
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.
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.
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 overviewARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id: 24 lowercase hexadecimal characters |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinic | Yes | 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. |
| procedures | Yes | |
| scheduleDays | Yes | |
| providerCount | Yes | |
| scheduleRange | Yes | |
| procedureCount | Yes | |
| appointmentCount | Yes | |
| availabilityDays | Yes | |
| availableDayCount | Yes | |
| availableSlotCount | Yes | |
| providerCountIsLowerBound | Yes | |
| procedureCountIsLowerBound | Yes | |
| appointmentCountIsLowerBound | Yes | |
| availableSlotCountIsLowerBound | Yes |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Added
open_veterical
1 tool update
- Changed
list_subscriptions2 fields changed- removed
Output schema / properties / subscriptions / items / properties / limits / properties / remindersRemoved value: -{ - "type": [ - "number", - "null" - ] -} - changed
Output schema / properties / subscriptions / items / properties / limits / requiredPrevious value: -[ - "appointments", - "patients", - "reminders", - "seats", - "users" -]New value: +[ + "appointments", + "patients", + "seats", + "users" +]
1 tool update
- Changed
list_payments2 fields changed- added
Output schema / properties / totals / items / properties / amountMissingCountAdded value: +{ + "minimum": 0, + "type": "integer" +} - changed
Output schema / properties / totals / items / requiredPrevious value: -[ - "currency", - "status", - "paymentCount", - "totalAmount" -]New value: +[ + "currency", + "status", + "paymentCount", + "totalAmount", + "amountMissingCount" +]
10 tool updates
- Changed
get_clinic1 field changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
- Changed
get_clinic_availability1 field changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
- Changed
get_clinic_schedule_summary1 field changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
- Changed
list_calendar_events3 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious 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" - changed
Input schema / properties / cursor / descriptionPrevious 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" - changed
Output schema / properties / nextCursor / descriptionPrevious 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"
- Changed
list_clinic_providers1 field changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
- Changed
list_clinics2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious 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" - changed
Output schema / properties / nextCursor / descriptionPrevious 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"
- Changed
list_payments3 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious 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" - changed
Input schema / properties / cursor / descriptionPrevious 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" - changed
Output schema / properties / nextCursor / descriptionPrevious 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"
- Changed
list_procedures4 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters" - changed
Input schema / properties / cursor / descriptionPrevious 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" - changed
Output schema / properties / nextCursor / descriptionPrevious 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" - changed
Output schema / properties / procedures / items / properties / price / descriptionPrevious value: -"Price in the clinic's currency (see get_clinic)"New value: +"Price in the clinic's currency"
- Changed
list_subscriptions3 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious 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" - changed
Input schema / properties / cursor / descriptionPrevious 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" - changed
Output schema / properties / nextCursor / descriptionPrevious 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"
- Changed
show_clinic_overview1 field changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id from list_clinics: 24 lowercase hexadecimal characters"New value: +"Clinic id: 24 lowercase hexadecimal characters"
10 tool updates
- Changed
get_clinic2 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - added
Output schema / properties / clinic / descriptionAdded value: +"Administrative clinic metadata only; opening hours, staff, animal, owner and appointment data are not included. Null when not found."
- Changed
get_clinic_availability3 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - added
Output schema / properties / days / descriptionAdded 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." - added
Output schema / properties / slotCountIsLowerBound / descriptionAdded value: +"True when more open slots exist beyond the 14-day, 100-slot cap"
- Changed
get_clinic_schedule_summary5 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - changed
Input schema / properties / endTime / descriptionPrevious 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" - changed
Input schema / properties / startTime / descriptionPrevious value: -"Range start as ISO 8601; defaults to now"New value: +"Start of the range as an ISO 8601 date-time; defaults to now" - added
Output schema / properties / appointmentCountIsLowerBound / descriptionAdded value: +"True when more than 100 appointments fall in the range" - added
Output schema / properties / days / descriptionAdded 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."
- Changed
list_calendar_events10 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page" - changed
Input schema / properties / endTime / descriptionPrevious value: -"Only blocks ending before this ISO 8601 time"New value: +"Only blocks ending before this ISO 8601 date-time" - added
Input schema / properties / limit / descriptionAdded value: +"Blocks per page, from 1 to 100; defaults to 20" - changed
Input schema / properties / startTime / descriptionPrevious value: -"Only blocks starting at or after this ISO 8601 time"New value: +"Only blocks starting at or after this ISO 8601 date-time" - added
Output schema / properties / calendarEvents / descriptionAdded 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." - added
Output schema / properties / calendarEvents / items / properties / effect / descriptionAdded value: +"BLOCK removes bookable time; OPEN adds hours on a normally closed time" - added
Output schema / properties / calendarEvents / items / properties / scope / descriptionAdded value: +"CLINIC: the whole clinic; PROVIDER: one or more staff; SEAT: one room" - added
Output schema / properties / calendarEvents / items / properties / type / descriptionAdded value: +"Label such as COURSE, MEETING, VACATION, SICK, HOLIDAY, MAINTENANCE or OTHER" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Pass as cursor to get the next page; null on the last page"
- Changed
list_clinic_providers2 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Clinic id (24-character lowercase hex)"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - added
Output schema / properties / providers / descriptionAdded 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."
- Changed
list_clinics4 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page of this listing; omit for the first page" - added
Input schema / properties / limit / descriptionAdded value: +"Clinics per page, from 1 to 100; defaults to 20" - added
Output schema / properties / clinics / descriptionAdded value: +"Clinics in the signed-in organization, administrative metadata only. Animal, owner, appointment and clinical records are never returned." - added
Output schema / properties / nextCursor / descriptionAdded value: +"Pass as cursor to get the next page; null on the last page"
- Changed
list_payments9 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page" - changed
Input schema / properties / endTime / descriptionPrevious value: -"Only records dated before this ISO 8601 time"New value: +"Only payments dated before this ISO 8601 date-time" - added
Input schema / properties / limit / descriptionAdded value: +"Payments to summarize in this page, from 1 to 100; defaults to 20" - changed
Input schema / properties / startTime / descriptionPrevious value: -"Only records dated at or after this ISO 8601 time"New value: +"Only payments dated at or after this ISO 8601 date-time" - added
Output schema / properties / moreRecordsAvailable / descriptionAdded value: +"True when older payments exist beyond this page" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Pass as cursor to get the next page; null on the last page" - added
Output schema / properties / recordsSummarized / descriptionAdded value: +"How many payment records this page summarized" - added
Output schema / properties / totals / descriptionAdded 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."
- Changed
list_procedures7 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Owned clinic id to inspect"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page" - added
Input schema / properties / limit / descriptionAdded value: +"Catalog rows per page, from 1 to 100; defaults to 50" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Pass as cursor to get the next page; null on the last page" - added
Output schema / properties / procedures / descriptionAdded 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." - added
Output schema / properties / procedures / items / properties / duration / descriptionAdded value: +"Configured duration, or null when none was recorded" - added
Output schema / properties / procedures / items / properties / price / descriptionAdded value: +"Price in the clinic's currency (see get_clinic)"
- Changed
list_subscriptions6 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Filter by owned clinic id"New value: +"Only this clinic (id from list_clinics, 24 lowercase hexadecimal characters); omit for every clinic" - changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque cursor from a prior result"New value: +"nextCursor from the previous page with the same filters; omit for the first page" - added
Input schema / properties / limit / descriptionAdded value: +"Subscriptions per page, from 1 to 100; defaults to 20" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Pass as cursor to get the next page; null on the last page" - added
Output schema / properties / subscriptions / descriptionAdded value: +"Plan entitlements, newest first. Subscription or customer ids, billed amounts, payment methods, invoices and every processor field are excluded." - added
Output schema / properties / subscriptions / items / properties / limits / descriptionAdded value: +"Plan caps, not record counts; null when the subscription carries no cap"
- Changed
show_clinic_overview2 fields changed- changed
Input schema / properties / clinicId / descriptionPrevious value: -"Veterical clinic id to render"New value: +"Clinic id from list_clinics: 24 lowercase hexadecimal characters" - added
Output schema / properties / clinic / descriptionAdded 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."
10 tool updates
- First observed
get_clinic - First observed
get_clinic_availability - First observed
get_clinic_schedule_summary - First observed
list_calendar_events - First observed
list_clinic_providers - First observed
list_clinics - First observed
list_payments - First observed
list_procedures - First observed
list_subscriptions - First observed
show_clinic_overview
Related MCP Connectors
See your clinic's free slots, doctors, rooms, service prices and how busy each day is.
See your dental clinic's free slots, dentists, treatment prices and how busy each day is.
See your gym's open slots, services, how busy each day is and your payment totals.
See your salon's free slots, appointments, stylists, services, clients, quotes and payments.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables querying a veterinary clinic's services, summary, and availability from live data.3-
- AlicenseNot gradedqualityAmaintenanceVeterinary 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
- AlicenseCqualityDmaintenanceEnables AI agents to manage veterinary practice data through ezyVet API, including animals, contacts, appointments, consults, invoices, and products.8MIT
- AlicenseAqualityCmaintenanceEnables 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.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.