Skip to main content
Glama
jamesrosing

tebra-mcp-server

by jamesrosing

Get Appointment Reasons

tebra_get_appointment_reasons
Read-only

Retrieve all configured appointment reasons, including IDs, names, durations, and color codes, to prepare for creating appointments with valid reason details.

Instructions

Get all appointment reasons configured in the practice. Returns reason IDs, names, default durations, and color codes. Needed to create appointments with a reason.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
practiceIdNoPractice ID (defaults to the account's first practice)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.0
    • addedInput schema / properties / practiceId
      Added value: +{
      +  "description": "Practice ID (defaults to the account's first practice)",
      +  "type": "string"
      +}
  2. First observedv0.2.5

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful behavioral context by stating that it returns all reasons and listing what those returns contain, going beyond the schema 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.

Conciseness5/5

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

The description is three short sentences with no filler. The core action is front-loaded, the return values are listed immediately after, and the practical dependency on appointments is stated last. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with one optional parameter and no output schema, the description is complete: it tells the agent what the tool returns, why it is needed, and the only decision point (which practice). No critical information is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the sole parameter practiceId already described as defaulting to the account's first practice. The description adds no new parameter-level meaning, so the baseline score of 3 is appropriate given that the schema handles semantic documentation.

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

Purpose5/5

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

The description clearly identifies a specific resource (appointment reasons configured in the practice) and a specific action (Get all), then enumerates the returned fields (IDs, names, default durations, color codes). This fully distinguishes the tool from its siblings, such as create_appointment_reason and get_appointments, without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description explicitly states that this tool is 'Needed to create appointments with a reason,' giving an agent a clear context for when to invoke it. It does not list alternatives or exclusions, but for a simple read-only lookup this is sufficient practical guidance.

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