doctofam
Server Details
Review safe clinic capacity, catalogs and aggregate schedules without clinical records.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Most tools are clearly distinct, and the safety/redaction framing is consistent. The main ambiguity is between show_clinic_overview and the individual getters/listers, since the overview intentionally aggregates much of the same data, and get_clinic_availability vs get_clinic_schedule_summary could occasionally be conflated.
All tools follow a consistent snake_case verb_noun pattern: get_ for single/derived resources, list_ for collections, and show_ for the composite overview. The pattern is predictable and easy for an agent to generalize across the set.
Ten tools is right-sized for this read-only administrative clinic domain. Each tool covers a distinct resource or summary need, and none feel redundant or padding.
The read-only scope is well covered: clinics, availability, schedule counts, subscription, calendar blocks, procedures, providers, rooms, and an overview. Minor gaps exist, such as no per-resource detail getters for providers, rooms, or calendar events, but they are largely consistent with the server's redaction-focused design.
Available Tools
10 toolsget_clinicGet clinicARead-onlyIdempotentInspect
Fetch safe metadata for one tenant-owned DoctoFam clinic. Only non-clinical clinic metadata is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id (24-character hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinic | Yes | |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds meaningful behavioral context: the result is tenant-scoped, safe, and restricted to non-clinical metadata. This goes beyond the annotations without contradicting them, even though it does not discuss error/not-found behavior.
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 short sentences, both earning their place: the first names the operation and scope, the second sets response expectations. There is no filler, redundancy, or restatement of the tool 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?
For a simple single-parameter read-only getter with an output schema and complete annotations, the description provides sufficient context to invoke the tool correctly. The only minor gap is that it does not explicitly contrast itself with similar-looking siblings such as show_clinic_overview.
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 only parameter, clinicId, is already fully documented in the schema with type and format ('24-character hex'), giving 100% schema description coverage. The description adds no extra parameter details, so the baseline score of 3 is appropriate.
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 clearly identifies the operation: fetch metadata for a single clinic. It adds useful scoping with 'tenant-owned' and 'non-clinical,' which helps distinguish the tool from clinical or scheduling siblings. It does not explicitly name a sibling alternative, so it stops short of a 5.
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?
The phrase 'safe metadata' and 'Only non-clinical clinic metadata is returned' gives an agent a clear sense of when to use this tool: for basic, read-only clinic metadata rather than availability or schedule details. However, it never explicitly names an alternative or states when not to use it, so the routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clinic_availabilityGet clinic availabilityARead-onlyIdempotentInspect
List bookable appointment slots for one tenant-owned DoctoFam clinic. Only day, slot start, and slot end are returned—never patient, provider, or clinical data.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id (24-character hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable context beyond annotations by explicitly stating that only day, slot start, and slot end are returned and never patient, provider, or clinical data.
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?
The description is two short sentences with no redundant filler. The primary purpose is front-loaded, and the second sentence adds a useful functional constraint without repeating schema or annotation information.
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?
The tool is simple: one required parameter, no nested objects, a full output schema, and comprehensive annotations. The description supplies the key non-obvious behavioral constraint about returned fields, making it complete enough for an agent to select and invoke the tool 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?
The single parameter clinicId is already fully described in the input schema with type and format (24-character hex), and schema description coverage is 100%. The description adds no additional parameter meaning, so the baseline score of 3 is appropriate.
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 ('List') and resource ('bookable appointment slots') with a clear scope ('one tenant-owned DoctoFam clinic'). It is clear enough to be distinguished from siblings, though it does not explicitly contrast itself with get_clinic_schedule_summary or other related tools.
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?
The intended use is implied: call this tool when you need bookable appointment slots for a clinic. However, there is no explicit when-to-use vs alternatives guidance, nor any mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clinic_schedule_summaryGet clinic schedule summaryARead-onlyIdempotentInspect
Count scheduled records by UTC day for one tenant-owned DoctoFam clinic over a range of at most 31 days. Returns aggregate administrative counts only—never appointment identifiers or times, patient information, procedures, diagnoses, notes, or other clinical data.
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | No | Range end as an ISO 8601 value; defaults to seven days later | |
| clinicId | Yes | Clinic id (24-character hex) | |
| startTime | No | Range start as an ISO 8601 value; defaults to now |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | Yes | |
| range | Yes | |
| appointmentCount | Yes | |
| appointmentCountIsLowerBound | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive hints, so the safety profile is covered. The description adds meaningful behavioral context beyond that: UTC-day grouping, a 31-day range cap, and a strong confidentiality boundary that no clinical data or identifiable appointment details are ever returned. There is no contradiction with annotations.
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 no filler. The first sentence front-loads the action, scope, and range constraint; the second sentence adds the critical exclusion of clinical data. 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?
The tool is a read-only aggregate operation with a complete input schema, a present output schema, and safety covered by annotations. The description provides the remaining important context: the aggregation unit, range cap, tenant scope, and privacy boundary. Nothing needed for correct invocation 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 coverage is 100%, so the parameter descriptions already document clinicId, startTime, and endTime defaults. The description adds useful semantic context by specifying a maximum 31-day range and UTC-day grouping, which helps an agent reason about valid ranges and timezone handling 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 states a specific verb and resource: it counts scheduled records by UTC day for one tenant-owned clinic. It also distinguishes itself from detailed calendar/clinical tools by explicitly saying it returns aggregate administrative counts only, never appointment identifiers, times, patient information, or clinical data.
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?
The purpose is clear and the 'aggregate administrative counts only' clause implies this is not the tool for record-level or clinical detail. However, it never names sibling alternatives like list_calendar_events or get_clinic_availability, nor does it give an explicit when-to-use versus when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subscription_statusGet subscription statusARead-onlyIdempotentInspect
Get administrative plan status and entitlement limits for one tenant-owned DoctoFam clinic. Billing identifiers, payment-provider data, amounts, currencies, patient records, and clinical data are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id (24-character hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscription | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds useful context about what is excluded from the response, helping the agent set expectations about the data scope without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The core purpose is front-loaded, and the exclusions are stated in a compact second sentence with no redundant wording.
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?
The tool has a single parameter fully described by the schema, an output schema to define return values, and robust annotations covering safety and idempotency. The description sufficiently clarifies the resource scope and exclusions, making it complete for an agent to select and invoke 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%, so the schema already documents clinicId and its 24-character hex pattern. The description adds that the clinic must be a tenant-owned DoctoFam clinic, providing useful semantic context beyond the raw 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 clearly identifies the verb 'get' and the specific resource: administrative plan status and entitlement limits for a tenant-owned clinic. It also distinguishes the tool from siblings by explicitly excluding billing, payment, patient, and clinical data, making its scope unambiguous.
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?
The context is clear: this tool is for administrative plan status and entitlement limits, not for billing or clinical details. However, it does not explicitly name alternative tools or state when not to use this tool in favor of a sibling, so it stops short of full usage 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 calendar eventsARead-onlyIdempotentInspect
List tenant-scoped non-appointment calendar blocks (courses, meetings, days off, closures) with bounded pagination. Event identifiers, staff references, titles, and notes are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Opaque cursor from a prior result | |
| endTime | No | Only events ending before this ISO 8601 time | |
| clinicId | No | Filter by clinic id | |
| startTime | No | Only events starting at or after this ISO 8601 time |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | Yes | |
| calendarEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds genuine value beyond annotations by disclosing that 'Event identifiers, staff references, titles, and notes are never returned' — a critical expectation-setting behavior an agent needs to know before relying on the output. 'Bounded pagination' is also useful context. No contradiction with annotations.
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 core purpose and scope are front-loaded in the first clause, and the critical data-withholding caveat is stated second. Every phrase 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 rich annotation set (readOnly, idempotent, non-destructive) and an output schema present, the description does not need to explain return values or safety. It covers scope, exclusions, and the notable never-returned fields, making it sufficiently complete for a filtered-list tool.
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 80%, so the schema already documents four of five parameters. The description's 'bounded pagination' hint maps to limit/cursor semantics and the scope qualifiers echo startTime/endTime/clinicId filtering, but the description does not add syntax or format details beyond what the schema provides. Baseline 3 is appropriate given the schema carries the semantic load.
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 uses a specific verb-resource pair ('List ... calendar blocks') with explicit scoping ('tenant-scoped non-appointment') and enumerates the block types (courses, meetings, days off, closures). It distinguishes itself from appointment-related tools via 'non-appointment', though it does not explicitly name a differentiating sibling such as get_clinic_availability or get_clinic_schedule_summary.
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?
The 'non-appointment' qualifier implicitly tells the agent this tool excludes appointments and thereby steers away from appointment-centric flows, but there is no explicit when-to-use/when-not-to-use guidance or named alternatives. Given the sibling list includes conceptually overlapping tools (get_clinic_availability, get_clinic_schedule_summary), the routing guidance is only implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_clinicsList clinicsARead-onlyIdempotentInspect
List the authenticated user's DoctoFam clinics with bounded, cursor-based pagination. Only non-clinical clinic metadata is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Opaque cursor from a prior result |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinics | Yes | |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value beyond the annotations by disclosing bounded cursor-based pagination and clarifying that the response contains only non-clinical metadata, which helps set expectations about data scope.
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 short sentences with no filler. The primary action and scope are front-loaded, and the pagination and data-scope constraints are stated efficiently.
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 two-parameter list tool with full annotations and an output schema, the description covers the essential behavioral facts: whose clinics, what kind of data, and how pagination works. Nothing critical is missing for an agent to 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 only 50%, since limit has no description. The description compensates by framing the pagination model: 'bounded, cursor-based pagination' indicates that limit controls page size and cursor is the opaque continuation token, adding meaning beyond the raw 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 uses a specific verb and resource ('List the authenticated user's DoctoFam clinics') and adds a scope boundary ('Only non-clinical clinic metadata is returned'). This makes it clearly distinct from single-clinic siblings like get_clinic and from clinical detail tools like get_clinic_availability.
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?
The phrase 'authenticated user's... clinics' implies this is for retrieving the caller's own clinics, which gives some usage context. However, it never explicitly says when to choose this over siblings such as get_clinic or show_clinic_overview, nor does it state any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proceduresList procedure catalogARead-onlyIdempotentInspect
List the authenticated user's DoctoFam procedure catalog with bounded pagination. Only catalog names, prices, durations, and edit times are returned; patient treatment data and record identifiers are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Opaque cursor from a prior result | |
| clinicId | No | Filter by clinic id |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextCursor | Yes | |
| procedures | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that only catalog names, prices, durations, and edit times are returned, and explicitly excludes patient treatment data and record identifiers. It also mentions bounded pagination. This goes beyond annotations by specifying the exact data scope and pagination behavior, giving the agent essential context.
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?
The description is two sentences with no wasted words. It leads with the primary function, then clarifies what is included and excluded. Each sentence adds value.
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?
The description covers the resource, pagination, and data scope. Since an output schema exists, return format is defined. It doesn't describe authentication or error cases, but those are not necessary for a read-only list operation. It is sufficient for an agent to call 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?
The input schema documents cursor and clinicId with descriptions, but limit lacks a description. The description does not elaborate on parameter usage beyond mentioning bounded pagination, which implicitly relates to limit and cursor. With 67% schema coverage, the description does not compensate for the missing limit description, so it stays at the baseline.
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 clearly states the tool lists the authenticated user's procedure catalog, specifying the resource and operation. It distinguishes from siblings by focusing on procedures, not clinics or events. The verb 'list' is precise and the scope is unambiguous.
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?
The description provides clear context that this tool retrieves the procedure catalog, which is distinct from sibling tools like get_clinic or list_clinics. However, it does not explicitly exclude other tools or state when not to use it, so it lacks explicit alternative routing. Thus a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_providersList clinic providersARead-onlyIdempotentInspect
List display names for the bookable providers of one tenant-owned DoctoFam clinic. Contact details, role records, identifiers, and clinical data are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | Clinic id (24-character hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| providers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context by defining the response boundary: only names, with contact details, role records, identifiers, and clinical data explicitly excluded.
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 no filler: the first states the core purpose, the second states the critical exclusion. The information is front-loaded and 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?
This is a simple one-parameter, read-only tool with a complete input schema, an output schema, and safety annotations. The description adds the missing piece—what will not be returned—so an agent has everything needed to 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 coverage is 100%, and the single parameter clinicId is already documented with its type and pattern. The description adds no additional parameter-specific meaning, which is acceptable because the schema fully carries this information.
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 clearly states the action (list) and resource (display names of bookable providers), and scopes it to one tenant-owned clinic. It also explicitly distinguishes itself from related tools by saying only display names are returned and never contact details, role records, identifiers, or clinical data.
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?
The description gives clear context: use this to get provider display names for a single clinic. It does not explicitly name an alternative for richer provider data, but the 'never returned' clause strongly signals that this tool is not for contact, role, or clinical information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_roomsList clinic roomsARead-onlyIdempotentInspect
List administrative room names for one tenant-owned DoctoFam clinic with bounded pagination. Record identifiers, appointment links, patient information, and clinical content are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | Opaque cursor from a prior result | |
| clinicId | Yes | Clinic id (24-character hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| rooms | Yes | |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive, so the description adds relevant context over and above that: bounded pagination and the explicit exclusion of records, appointments, patient data, and clinical content. This gives a safety/privacy boundary beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the action and scope, then list exclusions. Every clause earns its place and there is no repetition of schema or annotation content.
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 rich output schema and annotations covering safety/idempotency, the description covers the remaining decision points: scope, pagination, and content exclusions. It could be more explicit about default pagination behavior, but nothing essential is missing for selecting and invoking the tool.
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 schema already documents clinicId and cursor adequately, and the description's 'bounded pagination' adds some meaning to the limit parameter. It does not, however, describe default limit behavior or how cursor pagination is initiated beyond what the schema says, so the added value is moderate.
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 concrete resource (administrative room names), a specific scope (one tenant-owned DoctoFam clinic), and a mode (bounded pagination). It also states clear exclusions, which distinguishes it from sibling list tools such as list_clinics and list_providers.
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?
The description clearly sets the context: use this when you need administrative room names for a single clinic. It does not name an alternative tool like some sibling definitions do, but the exclusion of patient/appointment/clinical content gives an agent enough boundary to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_clinic_overviewShow DoctoFam clinic overviewARead-onlyIdempotentInspect
Render a bounded administrative overview for a known DoctoFam clinic. It combines safe clinic metadata, aggregate seven-day schedule counts, provider, room and availability counts, procedure-catalog previews, and plan entitlements. It never returns individual appointment records, patient information, diagnoses, treatment details, notes, or other clinical data.
| Name | Required | Description | Default |
|---|---|---|---|
| clinicId | Yes | DoctoFam clinic id to render |
Output Schema
| Name | Required | Description |
|---|---|---|
| clinic | Yes | |
| roomCount | Yes | |
| procedures | Yes | |
| scheduleDays | Yes | |
| subscription | Yes | |
| providerCount | Yes | |
| scheduleRange | Yes | |
| procedureCount | Yes | |
| appointmentCount | Yes | |
| availabilityDays | Yes | |
| availableDayCount | Yes | |
| availableSlotCount | Yes | |
| roomCountIsLowerBound | Yes | |
| providerCountIsLowerBound | Yes | |
| procedureCountIsLowerBound | Yes | |
| appointmentCountIsLowerBound | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description focuses on data scope: safe metadata, aggregates, and entitlement previews. The explicit 'never returns' clause adds a useful privacy boundary beyond the annotations. No contradiction with the provided annotations.
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-load the purpose, then list included data and explicit non-goals. The lists are long but each item clarifies scope; there is no filler or repetition.
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 one required parameter, an output schema, and strong read-only annotations, the description has enough information to invoke the tool correctly. The only minor gap is not telling the agent how to resolve a 'known' clinicId, e.g., via list_clinics, though that is inferable from siblings.
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 schema already fully documents clinicId with type, pattern, and description (100% coverage). The main description adds only the notion that the clinic must be 'known' (existing), which is mildly useful but not a major semantic expansion.
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 opens with a specific verb ('render') and a bounded resource ('administrative overview for a known DoctoFam clinic'), then enumerates the exact aggregate components included. This makes it easy to distinguish from granular sibling tools like list_providers or get_clinic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames the tool as a high-level administrative overview and explicitly lists what it never returns, ruling out use cases needing clinical details. However, it does not name sibling alternatives or state a direct routing rule such as 'for detailed lists, use list_*.'
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.
10 tool updates
- First observed
get_clinic - First observed
get_clinic_availability - First observed
get_clinic_schedule_summary - First observed
get_subscription_status - First observed
list_calendar_events - First observed
list_clinics - First observed
list_procedures - First observed
list_providers - First observed
list_rooms - First observed
show_clinic_overview
Related MCP Connectors
Review PHI-free clinic availability, providers, procedure catalogs and aggregate schedules.
81Review safe clinic capacity, payment aggregates, numeric catalog data and plan entitlements.
101Review tenant-scoped gym configuration, capacity, catalogs, schedules, and payment aggregates.
71Review schedules, symptoms, mood, and explicitly confirmed CareClinic check-ins.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables read-only clinic operations oversight through coordinated aggregate checks for queue flow, blood-pressure follow-up, outreach workload, and access-review workload, without exposing patient data.MIT
- AlicenseBqualityCmaintenanceEnables generating capacity-safe, risk-weighted scan schedules, identifying coverage blind spots, and comparing sealed scan plans.3MIT
- AlicenseBqualityCmaintenanceEnables read-only operational audits of schedulers, recurring job health, delivery failures, overdue runs, gateway/MCP health, and lock-file inventory without modifying inspected systems.11MIT
- FlicenseNot gradedqualityBmaintenanceEnables read-only access to public U.S. healthcare market-intelligence datasets, including catalogs, schemas, metadata, checksums, and artifact URLs. It supports CMOs, analysts, researchers, and AI agents in discovering and consuming governed market observations without patient-level data.-
Glama MCP Gateway
Add one secure layer between your agents and this server.