Skip to main content
Glama

Get ready for my doctor's appointment (no lab values or records needed)

prepare_for_my_appointment
Read-onlyIdempotent

Prepare for an upcoming clinician appointment by generating a personalized checklist of routine checks, questions to ask, what to bring, and a printable visit sheet for chronic conditions.

Instructions

Use this when the person you are helping has an upcoming appointment (primary care, diabetes, kidney, rheumatology, eye, oncology, cardiology, podiatry or pharmacist) for type 2 diabetes, kidney disease, lupus or a cancer history and wants to be ready. One call returns: the routine checks to raise with THAT clinician (each with its guideline source), checks that belong with other doctors, the questions to ask, what to bring, and a one-page printable visit sheet. It needs NO lab values, dates, names or records: only the condition, a few medicine classes, which clinician, and for each routine test whether it was done recently (recent / overdue / never / unsure). The reply includes a job_ref: keep it, and get_job_result returns the same sheet later (for example the day before the visit, or in a new conversation). Every result ends with next_steps. Free. Nothing is stored. Decision support, not a diagnosis.

Input Schema

NameRequiredDescriptionDefault
conditionsYesThe long-term condition(s) the person has. One or more of: type2_diabetes, kidney_disease, lupus, cancer_survivorship.
visit_withYesWho the appointment is with. One of: primary_care, diabetes_clinician, kidney_clinician, rheumatologist, eye_doctor, oncologist, cardiologist, podiatrist, pharmacist.
medicationsNoMedicine classes the person takes, if relevant. Allowed: metformin, insulin, sulfonylurea, ace_inhibitor_or_arb, hydroxychloroquine, glucocorticoids.
test_statusNoFor each routine test you know about: recent, overdue, never, or unsure. Omit tests you do not know. Test ids: a1c, uacr, egfr_creatinine, lipid_panel, dilated_eye_exam, foot_exam, vitamin_b12, liver_fibrosis_screen, cbc, electrolytes_potassium, bone_mineral_labs, urinalysis_urine_protein, lupus_activity_labs, hcq_retinal_screen, blood_pressure_check, vaccines_review, cardiac_function_test, thyroid_tsh, bone_density_scan, survivorship_follow_up, age_appropriate_cancer_screens, distress_screen.
treatment_exposuresNoFor cancer survivorship only: past treatment types. Allowed: anthracycline_or_trastuzumab, chest_radiation, neck_radiation, aromatase_inhibitor_or_androgen_deprivation, immune_checkpoint_inhibitor.

Output Schema

NameRequiredDescriptionDefault
jobYes
resultNo
statusYesdone | invalid_ref
job_refYesKeep this. get_job_result(job_ref) returns the same result later, in any conversation.
next_stepYesThe one next step: read this last and act on it.
next_stepsNoWhat to offer the person next, in order.
what_phi_didYes
not_medical_adviceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare it read-only, idempotent and closed-world, and the description still adds real substance: cost ('Free'), retention ('Nothing is stored'), a stable job_ref retrievable later via get_job_result, and a guaranteed trailing next_steps block. The only soft spot is that 'Nothing is stored' sits in mild tension with a job_ref that reproduces the sheet later in a new conversation.

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

Conciseness4/5

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

Front-loaded with the trigger condition and the payoff, then the input burden, then the job_ref lifecycle, then the disclaimer. It is long and the clinician list in prose duplicates the visit_with enum, but nearly every clause carries genuine signal.

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?

Given a five-parameter tool with a nested status object and an output schema, the description covers the trigger, the inputs required and explicitly not required, the shape of the return, the follow-up retrieval path, cost, retention, and the non-diagnostic framing. Nothing an agent needs in order to call it or to decide to call it is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by telling the agent the call is deliberately low-burden, using only condition, a few medicine classes, which clinician, and per-test status as recent/overdue/never/unsure. It adds intent and framing rather than syntax, which is the right thing to add here.

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

Purpose5/5

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

States a specific verb and resource ('be ready' for an 'upcoming appointment') plus the exact contents of the reply (checks, questions, what to bring, printable visit sheet). The parenthetical 'no lab values or records needed' carves it away from sibling record/lab tools such as get_my_medical_records and explain_my_lab_results.

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

Usage Guidelines4/5

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

Gives a clear triggering condition (a person with an upcoming appointment for one of the listed conditions who wants to be ready) and an explicit negative requirement (no labs, dates, names, or records). It also routes to get_job_result for later retrieval, but never names or contrasts siblings like check_care_gaps, so when this beats the care-gap tool is left to inference.

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