Skip to main content
Glama

Server Details

Chia Health MCP – let AI agents guide patients from medication browsing to prescription delivery. 30 tools covering eligibility checks, medical intake, consent signing, provider review, Stripe ACP checkout, and ongoing care management. Covers GLP-1 weight loss (semaglutide, tirzepatide) and longevity treatments. HIPAA-compliant. All prescriptions evaluated by US-licensed providers across 50 states

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 34 of 34 tools scored. Lowest: 3.3/5.

Server CoherenceA
Disambiguation5/5

Every tool targets a distinct resource and action within the telehealth workflow: auth, consent, eligibility, intake, medications, checkout, order, portal, and provider communication. Even the multiple medication tools (list, details, availability, pricing) have clearly separated purposes, and there is no overlap among the 34 tools.

Naming Consistency5/5

All tool names follow a consistent `domain_verb` or `domain_noun` snake_case pattern, prefixed by their domain (auth_, checkout_, consent_, intake_, medications_, order_, portal_, provider_). There are no mixed conventions or vague verbs, making the API predictable and easy to navigate.

Tool Count2/5

With 34 tools, the server exceeds the 25+ threshold for 'too many' and feels fragmented. Many tools could be consolidated (e.g., medication pricing and availability could fold into details, and consent list/status could be combined). While the scope is broad, the count is excessive for a well-scoped MCP server.

Completeness4/5

The tool surface covers the full patient lifecycle from authentication and consent through eligibility, intake, checkout, order management, and post-order portal features. Minor gaps include lack of order cancellation or order listing, and no explicit intake update mechanism, but these are workable and do not block core workflows.

Available Tools

34 tools
auth_check_paymentCheck Payment StatusA
Read-only
Inspect

Check if the patient has completed payment and upgrade the token to full scope. Call this after sharing the checkout payment link with the patient.

Poll every 10-15 seconds. When payment is detected, the token is automatically upgraded to full scope, unlocking portal tools (care plan, refills, messaging, weight logs, etc.).

Requires the guest token from auth_verify_otp as bearer_token.

ParametersJSON Schema
NameRequiredDescriptionDefault
bearer_tokenNoGuest token from auth_verify_otp

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The annotation declares readOnlyHint=true, but the description states the tool 'upgrade the token to full scope' and 'the token is automatically upgraded to full scope', which is a state-changing side effect. This directly contradicts the read-only annotation, making the description misleading.

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 concise sentences. The first sentence states the core purpose, the second gives timing/polling guidance, and the third states the prerequisite. Every sentence earns its place with no redundant text.

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

Completeness4/5

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

The description covers the core purpose, when to call, polling interval, prerequisite token, and the effect on token scope. Given the output schema exists, return values need not be described. However, the contradiction with annotations reduces overall reliability, though that is already captured in behavioral transparency.

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?

The schema already fully documents the only parameter (bearer_token) with a description 'Guest token from auth_verify_otp' at 100% coverage. The description repeats the same source, adding no meaningful new information. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states 'Check if the patient has completed payment and upgrade the token to full scope', which is a specific verb+resource and includes the unique token-upgrade side effect that distinguishes it from sibling tools like checkout_status. Adding 'Call this after sharing the checkout payment link' reinforces the intended flow.

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 tells when to use the tool ('Call this after sharing the checkout payment link') and how often to poll ('every 10-15 seconds'). It also names the prerequisite token source. It does not explicitly mention when not to use it or list alternatives, so it misses the full 'when-not/alternatives' bar for a 5.

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

auth_resend_otpResend OTP CodeA
Destructive
Inspect

Resend the verification code to the patient's email. Use this if the original code expired (5-minute window) or was not received.

Requires the session_id from auth_start — no email needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from auth_start

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, so the description adds some context about the 5-minute expiration window and the need for session_id. However, it doesn't disclose any side effects (e.g., invalidating the previous code) or rate limits. It does not contradict annotations, so a mid-range score is appropriate.

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 extremely concise: two short sentences. The first sentence states the purpose, and the second provides usage conditions and prerequisite. Every word earns its place with no redundancy or fluff.

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

Completeness4/5

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

Given the tool's simplicity (1 parameter, output schema present), the description covers purpose, usage conditions, and the required input. It doesn't explain error scenarios or what happens to the previous code, but for a straightforward resend operation with an output schema, it is sufficiently complete.

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 a clear description of session_id as 'Session ID from auth_start.' The description reinforces this by stating 'Requires the session_id from auth_start — no email needed,' but it adds no new meaning beyond the schema. Baseline of 3 is suitable.

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 states the action: 'Resend the verification code to the patient's email.' It includes a specific verb ('resend') and resource ('verification code'), and distinguishes itself from siblings by specifying the resend use case and prerequisite session_id from auth_start.

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 gives explicit conditions for use: 'Use this if the original code expired (5-minute window) or was not received.' It also clarifies that only session_id is needed, not an email, which helps the agent understand when to invoke this tool in the auth flow. It lacks explicit alternatives, but the context is clear.

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

auth_startStart SessionA
Destructive
Inspect

Start a patient session by providing their contact information. Sends a 6-digit verification code to the patient's email.

Returns a session_id (NOT a token). The session_id is used with auth_verify_otp to prove email ownership and get a bearer token.

The code is in the email subject line: 'Chia Health: Your code is XXXXXX'. If you have access to the patient's email (e.g. Gmail MCP), search for this subject.

No authentication required. Call this when the patient is ready to proceed with their medical intake — after browsing medications and checking eligibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesPatient's email address
phoneYesPatient's phone number (US format)
last_nameNoPatient's last name
first_nameYesPatient's first name

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate destructive/read-only hints, and the description adds important behavioral context: it sends an email, returns a session_id (not a token), and discloses the exact email subject line for retrieving the code. This is valuable and does not contradict 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 five sentences, each earning its place: purpose, return value distinction, email subject info, and usage timing. It is well-structured and front-loaded with the primary action.

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 the tool's complexity and the presence of an output schema, the description is complete: it explains what happens, what is returned, how to retrieve the verification code, and when to call it. It fully supports the agent in selecting and using the tool effectively.

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?

The input schema has 100% parameter description coverage, so the schema already documents each field. The description only says 'providing their contact information' and does not add new parameter-level details. Baseline 3 is appropriate since the schema carries the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Start a patient session by providing their contact information. Sends a 6-digit verification code.' It specifies the action (start), the resource (patient session), and the side effect (sending a code). It also distinguishes itself from siblings by explaining the session_id flow and that it is not a token.

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

Usage Guidelines5/5

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

Explicit usage guidance is provided: 'Call this when the patient is ready to proceed with their medical intake — after browsing medications and checking eligibility.' It also states 'No authentication required' and describes the next step (use with auth_verify_otp), making the usage context clear.

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

auth_verify_otpVerify OTP CodeA
Destructive
Inspect

Verify the 6-digit code sent to the patient's email. Returns a guest-scope bearer token for intake, consent, order, and checkout tools.

Requires the session_id from auth_start — no email needed.

After checkout and payment, call auth_check_payment to upgrade the token to full scope for portal access.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit verification code from the email
session_idYesSession ID from auth_start

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Beyond the annotations (destructiveHint=true), the description adds valuable behavioral context: it specifies the returned token's scope, the tools it enables, and the upgrade path via auth_check_payment. It does not elaborate on why the operation is marked destructive (e.g., consuming the OTP), but the annotation already conveys the safety concern, so the description adds meaningful context without contradicting the annotation.

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 sentences, each with a distinct purpose: the action and result, the prerequisite, and the follow-up action. Every sentence earns its place, with no redundant or filler content.

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 the output schema and the clear workflow, the description is complete: it explains the token scope, the required precursor, and the next step for full access. It is well-integrated with the sibling tools and leaves no critical gaps for the agent to guess.

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% with clear descriptions for both parameters (code and session_id). The description adds extra meaning by stating that only session_id is needed and email is not, reinforcing the schema's session_id description and clarifying the login flow. It also reiterates the code format.

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 states the specific action (verify a 6-digit OTP), the input (code from email), and the outcome (a guest-scope bearer token for intake, consent, order, and checkout tools). It distinguishes itself from siblings like auth_resend_otp and auth_check_payment by focusing on verification and the exact scope of the returned token.

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

Usage Guidelines5/5

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

The description provides explicit usage context: it requires the session_id from auth_start, clarifies that email is not needed, and tells the agent to call auth_check_payment after checkout/payment to upgrade the token scope. This gives clear when-to-use guidance and names a relevant alternative tool.

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

checkout_cancelCancel CheckoutA
DestructiveIdempotent
Inspect

Cancel an in-progress checkout session. Releases any held inventory and cancels the associated Stripe PaymentIntent if not yet captured. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesCheckout session ID to cancel
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already label the tool as destructive, but the description adds valuable specifics: it releases held inventory, cancels the Stripe PaymentIntent if not yet captured, and requires authentication. These details are not in the annotations and help the agent understand the full impact. 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.

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the primary action, and contains no irrelevant information. Every sentence contributes meaningful detail.

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

Completeness4/5

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

Given the destructive nature and the existence of an output schema, the description covers the essential aspects: what it does, its side effects, and authentication requirements. It lacks explicit caveats (e.g., cannot be used on completed sessions), but overall is quite complete for a cancellation tool.

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?

The input schema already provides clear descriptions for both parameters (checkout_id and bearer_token) with 100% coverage. The tool description adds no additional parameter semantics, 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.

Purpose5/5

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

The description uses a specific verb ('Cancel') and resource ('in-progress checkout session'), clearly distinguishing it from sibling tools like checkout_complete and checkout_create. It also explains the key side effects, leaving no ambiguity about its function.

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 provides clear context for when to use the tool: canceling an in-progress checkout that has held inventory and a pending PaymentIntent. However, it does not explicitly mention alternatives or situations where this tool should not be used, so it falls short of a 5.

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

checkout_completeComplete CheckoutA
DestructiveIdempotent
Inspect

Complete payment using Stripe ACP (Shared Payment Token). Only use this if your platform supports Stripe Agentic Commerce Protocol and can provision an SPT. If your platform does NOT support ACP, use the payment_url from checkout_create instead, then poll checkout_status. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesCheckout session ID to complete payment for
bearer_tokenNoAuthentication token for the patient session
shared_payment_tokenYesStripe ACP Shared Payment Token (SPT) provisioned by the client platform

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare destructive and idempotent behavior. The description adds valuable context: 'Requires authentication', ACP/SPT prerequisite, and the fallback path. It does not contradict annotations and goes beyond what annotations say about when this tool is appropriate.

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

Conciseness5/5

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

Three sentences with no filler: purpose, condition, alternative/auth. Front-loaded and efficiently structured.

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

Completeness5/5

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

With output schema, annotations, and a clear usage policy, the description covers when to use, when not to use, authentication, and a fallback. It is complete for an agent to decide and invoke without additional ambiguity.

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 covers all 3 parameters with descriptions (100% coverage), so baseline is 3. The description reinforces the SPT requirement and authentication need but does not add significant detail beyond the schema.

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

Purpose5/5

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

The description starts with 'Complete payment using Stripe ACP (Shared Payment Token)', which clearly states the action, method, and resource. It distinguishes from sibling tools like checkout_create, checkout_status, and checkout_cancel by specifying the completion step.

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

Usage Guidelines5/5

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

Explicitly provides conditions for use: 'Only use this if your platform supports Stripe Agentic Commerce Protocol' and names an alternative path ('use the payment_url from checkout_create instead, then poll checkout_status') when the condition is not met. This is strong guidance.

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

checkout_createCreate CheckoutA
DestructiveIdempotent
Inspect

Initiate a checkout session for a medication order. Returns checkout details including line items, total, and payment options.

TWO PAYMENT PATHS are supported:

  1. Stripe ACP (preferred): If your platform supports Stripe Agentic Commerce Protocol, provision a Shared Payment Token (SPT) and call checkout_complete to pay instantly.

  2. Payment link (fallback): If ACP/SPT is not available, present the returned payment_url to the patient. This is a Stripe-hosted checkout page where the patient can enter their card and pay directly. After sending the link, call checkout_status to poll for payment completion.

Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID to create checkout for
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description explains what the tool returns (checkout details including line items, total, payment options) and the payment_url behavior, going beyond the annotations. It does not contradict the annotations and adds context about the preferred vs fallback workflows.

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 well-structured with a clear purpose sentence and two labeled payment paths, making it easy to scan without being overly verbose. Every sentence adds value.

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

Completeness4/5

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

The description covers the initiation purpose, return contents, authentication requirement, and both follow-up paths. With an output schema present, it sufficiently addresses the complexity of the tool.

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 descriptions cover both parameters fully (100%), so the baseline is 3. The description adds that authentication is required, but no additional parameter details beyond the schema.

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

Purpose5/5

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

The description clearly states 'Initiate a checkout session for a medication order' with a specific verb and resource, and it differentiates from sibling tools by explaining the two payment paths and referring to checkout_complete and checkout_status.

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

Usage Guidelines4/5

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

It explicitly describes the two payment paths (Stripe ACP preferred, payment link fallback) and instructs to call checkout_complete or checkout_status. It also notes the need for authentication, providing clear usage context, though it doesn't explicitly state when not to use this tool.

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

checkout_statusGet Checkout StatusB
Read-only
Inspect

Check the payment status of a checkout session. Use this to poll for completion after sending the patient a payment link (the payment_url from checkout_create). When the patient pays via the link, this tool detects the payment, triggers order fulfillment, and returns the confirmation. Poll every 5-10 seconds while waiting. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkout_idYesCheckout session ID to check payment status for
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior1/5

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

The description contradicts the annotations: readOnlyHint=true but the description states the tool 'triggers order fulfillment', implying a write/side effect. This is a serious inconsistency. The description also adds useful context like polling interval and authentication, but the contradiction overrides any positive contribution.

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?

The description is three sentences and each sentence provides meaningful information without fluff. It is front-loaded with the core purpose and includes necessary polling and authentication details.

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

Completeness2/5

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

Despite having an output schema and good schema coverage, the description misleads about the tool's side effects by claiming it triggers order fulfillment while annotations say read-only. This fundamental inconsistency makes the description incomplete and unreliable for an agent, even though it covers how to use the tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds some value by mentioning authentication and referencing checkout_create for payment_url, but it doesn't substantially enhance parameter understanding beyond what the schema already provides.

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 states the tool checks the payment status of a checkout session, using the specific verb 'check' and resource 'payment status'. It distinguishes itself from siblings by referencing polling after checkout_create and the payment_url.

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 says to use this tool for polling after sending a payment link and even provides the polling interval (every 5-10 seconds). It lacks explicit when-not-to-use or alternative tools, but the context is clear enough.

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

checkout_updateUpdate CheckoutA
DestructiveIdempotent
Inspect

Update an existing checkout session. Can modify shipping method, apply promo codes, or update customer details before payment is completed. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesUpdates to apply: shipping method, promo code, or customer details
checkout_idYesCheckout session ID to update
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare destructiveHint and idempotentHint, and the description adds valuable context: authentication requirement, timing constraint, and the scope of modifications. It does not contradict any annotation and provides beyond what the annotations alone would convey.

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 exactly two sentences, front-loaded with the primary action, and every phrase earns its place. It avoids redundancy and effectively communicates the tool's purpose and key constraints.

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 the presence of an output schema, the description does not need to explain return values. It covers the core action, prerequisites (authentication), timing ('before payment is completed'), and update scope, making it complete for a checkout update tool.

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

Parameters4/5

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

The schema descriptions are comprehensive (100% coverage), but the tool description enriches the 'updates' parameter with concrete examples (shipping method, promo code, customer details), giving semantic meaning beyond the generic schema description.

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 uses a specific verb 'Update' and resource 'existing checkout session,' clearly distinguishing it from siblings like checkout_create, checkout_cancel, or checkout_status. It also lists concrete capabilities (modify shipping method, apply promo codes, update customer details) and adds a temporal constraint ('before payment is completed').

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 provides clear context for when to use the tool: 'before payment is completed' and requires authentication. It does not explicitly name alternatives or state when not to use it, but the context strongly implies it is for updating existing sessions rather than creating or canceling.

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

eligibility_checkCheck EligibilityA
Read-only
Inspect

Pre-screen a patient's basic eligibility for telehealth prescription services. Required: age (18+) and state (where the patient resides). Optional: BMI (20+ required for GLP-1 / weight-loss products), biological sex, pregnancy status, and diagnosed conditions.

Only pass parameters that apply to this patient. pregnancy_status applies ONLY when biological sex is female — omit it entirely for males. Don't invent values to satisfy the schema; if you don't know, leave the parameter out and the server will return what is or isn't checkable.

If you already know the patient's age, sex, state, height/weight from prior conversation context, you may pre-fill — but read the values back to the patient and get explicit confirmation before calling this tool. Returns eligibility status, available medications, and any disqualifying reasons (MTC/MEN2 history, pregnancy, out-of-coverage state, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYesPatient's age in years (must be 18+). Confirm with the patient before submitting.
bmiNoPatient's Body Mass Index. Required for GLP-1 / weight-loss eligibility (must be 20+). Omit for longevity products. Compute from confirmed height + weight; don't ask the patient to compute it themselves.
sexNoPatient's biological sex. Pass 'female' when you'll also pass `pregnancy_status` (so the server knows pregnancy screening was considered). Pass 'male' to make it explicit that pregnancy screening doesn't apply. Omit if the patient hasn't been asked yet and the product doesn't require sex for eligibility.
stateYesUS state abbreviation (e.g. 'CA', 'NY') where the patient resides. Confirm before submitting.
client_ipNoClient IP address for rate limiting
conditionsNoList of diagnosed medical conditions the patient confirms they have. Disqualifiers include medullary thyroid carcinoma (MTC) and MEN2 syndrome. Omit if the patient has no diagnosed conditions or hasn't been asked yet.
pregnancy_statusNoPregnancy status. Use one of these exact values: 'not pregnant', 'currently pregnant', 'planning pregnancy', 'breastfeeding'. ONLY applies when sex == 'female'. OMIT this parameter entirely for biological males — do NOT ask males about pregnancy.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses important server behavior: 'if you don't know, leave the parameter out and the server will return what is or isn't checkable.' It also details return content and lists specific disqualifying reasons, adding valuable transparency without contradicting any annotations.

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?

The description is organized into three clear paragraphs: purpose and parameter summary, parameter selection rules, and pre-fill/return behavior. Every sentence carries essential information, with no filler. It's concise for the number of parameters covered, though slightly longer than absolutely necessary, making it a 4 rather than a 5.

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 the tool's complexity (7 parameters, 2 required, conditional logic), the description is thorough: it covers required vs optional parameters, conditional use of pregnancy_status, handling of missing values, pre-fill confirmation, return values, and disqualifying conditions. The output schema exists, so return value details aren't required, but the description still provides a high-level summary, making it complete.

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

Parameters4/5

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

The schema already has 100% parameter description coverage, so the baseline is 3. The description adds meaningful meta-guidance beyond the schema: 'Only pass parameters that apply to this patient,' how to handle uncertainty, and when pre-filling is acceptable. This lifts it above baseline, but it doesn't significantly alter the meaning of individual parameters, so a 4 is appropriate.

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 opens with a specific verb 'Pre-screen' and identifies the resource 'a patient's basic eligibility for telehealth prescription services,' clearly distinguishing it from sibling tools like medications_availability or intake_submit. The title 'Check Eligibility' is reinforced with concrete operational context, making the tool's purpose unmistakable.

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 provides explicit guidance on when to call: pre-screen a patient's eligibility, pre-fill only with confirmation from prior context, and omit parameters you don't know rather than inventing values. It clearly states the rule for pregnancy_status based on biological sex. However, it doesn't explicitly name alternative tools or list exclusion scenarios, which prevents a 5.

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

intake_questionsGet Intake QuestionsA
Read-only
Inspect

Get the medical intake questionnaire for the chosen medication(s). The questionnaire is product-aware: GLP-1 / weight-loss medications return weight-loss goals, GLP-1 history, and MTC/MEN2 screening; NAD+ and other longevity peptides return energy/sleep/stress/cognitive/delivery-method questions instead. If the patient wants more than one medication, pass the additional slugs in additional_medications — the server returns the UNION of section sets deduped by section key, so you ask each shared question exactly once.

How to present this to the patient

  1. PROGRESSIVE DISCLOSURE: walk through ONE section at a time. Wait for the patient's reply before moving to the next section. Do not paste the whole questionnaire in a single message.

  2. HONOR CONDITIONALS: each section and each question may carry a conditional_on predicate (e.g. {sex_assigned_at_birth: Female} on the Pregnancy section). SKIP any section/question whose predicate isn't satisfied. Don't ask males about pregnancy or perimenopause.

  3. QUIZ FORMAT: present every select / multi_select question as a short pick-list using the options array verbatim. The patient should be able to reply with a single choice, not a sentence. Reserve free text for *_details follow-ups.

  4. EASY FIRST: order sections from low-friction (goals, lifestyle, preferences) to high-friction (clinical history, MTC/MEN2, prior therapies). The provider sees all answers regardless of order asked.

  5. USE-AND-VERIFY: if you know answers from prior conversation context, pre-fill them in your draft, but read them back to the patient and get explicit OK before calling intake_submit. Never silently submit assumed values.

Returns two phases: (1) pre_checkout — eligibility / screening questions, collected and submitted BEFORE payment; (2) post_checkout — detailed clinical history, collected and submitted AFTER payment. Do not submit post_checkout answers before the patient has paid. A licensed US healthcare provider reviews both phases and makes all prescribing decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_ipNoClient IP address for rate limiting
medicationYesPrimary medication slug (e.g. 'semaglutide', 'nad-injection', 'nad-nasal-spray')
additional_medicationsNoOptional list of additional medication slugs the patient also wants. Use this when the patient is ordering more than one product in the same visit (e.g. GLP-1 + NAD+) so the questionnaire is deduped.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior5/5

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

Annotations only state readOnlyHint and openWorldHint, but the description discloses extensive behavioral traits: product-aware question selection, conditional predicates, union dedup, progressive disclosure requirements, and pre/post-checkout phases. It adds far beyond the annotations without contradicting them.

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 long but every section serves a purpose. It is front-loaded with the core purpose, followed by behavioral specifics and a well-structured numbered list of presentation guidelines. No filler or redundancy.

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 the tool's complexity (product-aware, multi-medication, two-phase, conditional questions) and the presence of an output schema, the description fully covers what the agent needs: when to call, how to handle responses, and what to avoid. It leaves no critical gap.

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 already covers all parameters with descriptions. The description adds meaning to 'additional_medications' by explaining the union/dedup behavior, and clarifies that 'medication' drives product-aware content. The 'client_ip' parameter is only in the schema, but since coverage is 100%, the baseline is honored with added context for the key parameters.

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 opens with 'Get the medical intake questionnaire for the chosen medication(s)', a specific verb+resource statement. It further distinguishes itself from siblings by describing product-aware behavior and the union/dedup logic for multiple medications, clearly separating it from intake_submit or intake_status.

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 provides rich usage context: when to use additional_medications, the two-phase submission timing, and detailed presentation instructions. However, it does not explicitly name alternative tools or state when not to use this tool, leaving a slight gap in exclusionary guidance.

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

intake_statusGet Intake StatusA
Read-only
Inspect

Check the current status of a previously submitted intake questionnaire. Returns whether the intake is under review, approved, or denied by a licensed healthcare provider. Use this to poll for provider review completion before proceeding to order placement. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
intake_idYesIntake ID returned from intake_submit
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description adds behavioral context beyond the readOnlyHint annotation by specifying the possible return statuses and noting that it requires authentication. It frames the tool as a polling mechanism, which implies it can be called repeatedly without side effects.

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 four sentences of direct, functional prose with no redundant filler. It front-loads the primary action and outcome, then adds usage context and an auth requirement.

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

Completeness4/5

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

Given the presence of an output schema and high schema coverage, the description sufficiently covers purpose, usage context, and prerequisites. It does not detail error handling, but that is not required given the output schema exists.

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?

The input schema already provides full descriptions for both parameters (intake_id and bearer_token), including where intake_id comes from. The tool description adds no additional parameter-specific information, so baseline 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Check') with a clear resource ('current status of a previously submitted intake questionnaire') and enumerates possible outcomes (under review, approved, denied). It clearly differentiates from sibling tools like intake_submit and intake_questions.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'Use this to poll for provider review completion before proceeding to order placement.' This provides clear context for the use case, though it doesn't explicitly mention alternatives or 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.

intake_submitSubmit IntakeA
Destructive
Inspect

Submit a completed medical intake questionnaire for provider review. All fields from intake_questions must be completed. Returns an intake ID and estimated provider review time. The intake is reviewed by a licensed US healthcare provider who makes all prescribing decisions. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
bearer_tokenNoAuthentication token for the patient session
patient_nameYesPatient's full legal name
patient_emailYesPatient's email address
intake_answersYesCompleted intake questionnaire answers from intake_questions

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate destructiveHint=true (a write operation), and the description adds meaningful context beyond that: authentication requirements, that a licensed US healthcare provider reviews the intake and makes prescribing decisions, and that it returns an intake ID and estimated review time. 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.

Conciseness4/5

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

The description is front-loaded with the main action and then provides prerequisite, return value, and human review context in three additional sentences. Each sentence earns its place; it is slightly dense but not verbose.

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

Completeness4/5

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

Given the tool's complexity (submission, auth, validation) and that an output schema exists (so return format doesn't need explanation), the description covers the essential context: prerequisite, authentication, human review process, and return info. It could optionally mention error handling, but is sufficiently complete.

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% (all parameters described), so baseline is 3. The description adds value by clarifying that intake_answers must contain 'all fields from intake_questions', which is a critical constraint not fully expressed in the schema. It also reinforces that bearer_token is for authentication.

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 uses a specific verb ('Submit') and resource ('completed medical intake questionnaire'), clearly distinguishing this from sibling tools like intake_questions (which fetches questions) and intake_status (which checks status). The scope is precise: submission for provider review.

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 implies the usage workflow: 'All fields from intake_questions must be completed' signals the prerequisite to fetch questions first. It does not explicitly name alternatives or exclusions, but the context of submission is clear relative to siblings. The 'Requires authentication' line further clarifies when the tool is appropriate.

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

medications_availabilityCheck Medication AvailabilityA
Read-only
Inspect

Check if a specific medication is available for shipping to the patient's state. Some compounded medications have state-specific restrictions based on pharmacy licensing. Returns availability status and reason if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYesUS state abbreviation (e.g. 'CA', 'NY', 'TX')
client_ipNoClient IP address for rate limiting
medicationYesMedication name to check availability for

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

While annotations already declare readOnlyHint and openWorldHint, the description adds valuable behavioral context: it returns availability status and reason if unavailable, and explains the licensing-based state restrictions. This goes beyond the annotations by specifying the output shape and domain logic without contradicting the read-only nature.

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 sentences with no redundant content. The first sentence states the primary action, the second provides necessary background on why restrictions exist, and the third outlines the return behavior. Every sentence earns its place, and the main purpose is front-loaded.

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?

The tool has an output schema and annotations, and the description adds the necessary context: purpose, return value (status and reason), and the state-specific shipping nuance. Given the simplicity of the operation and the structured schema, the description is 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.

Parameters3/5

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

The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds some context by linking medication and state to the shipping availability check, but it doesn't elaborate on client_ip or parameter syntax beyond what the schema already provides.

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 states the tool's function: 'Check if a specific medication is available for shipping to the patient's state.' It uses a specific verb ('check') and identifies the resource (medication availability for shipping), and it distinguishes itself from sibling tools like medications_list or medications_details by focusing on state-specific restrictions.

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 provides clear context on when to use the tool: when needing to verify whether a medication can be shipped to a patient's state, especially for compounded medications with state-specific restrictions. It doesn't explicitly name alternative tools or exclusions, but the purpose is evident from the phrasing 'to the patient's state' and the mention of shipping restrictions.

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

medications_categoriesList CategoriesA
Read-only
Inspect

List all medication categories available through the telehealth platform: Weight Loss (GLP-1 medications), Peptide Therapy (sermorelin, growth hormone peptides), Anti-Aging & Longevity (NAD+, glutathione), and other treatment categories. Each category includes a description and count of available medications.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_ipNoClient IP address for rate limiting

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description only needs to add context. It adds value by specifying the return structure (description and count per category) and enumerating example categories, which goes beyond the annotations. No contradiction exists.

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 a single, information-dense sentence that front-loads the main action and then provides specific examples and output details. Every word contributes to understanding the tool's purpose and return value, with no redundant language.

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 the tool's simplicity (one optional parameter, read-only operation, output schema exists), the description fully covers what the tool does and what it returns. It states the scope (all categories), provides concrete examples, and mentions the included fields, making it self-sufficient for an agent to invoke correctly.

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

Parameters3/5

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

The input schema has only one optional parameter (client_ip) with a complete description ('Client IP address for rate limiting'), giving 100% schema coverage. The tool description does not add any extra meaning for this parameter, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool lists all medication categories with specific examples (Weight Loss, Peptide Therapy, Anti-Aging & Longevity) and mentions the included fields (description, count). This distinguishes it from sibling tools like medications_list and medications_details, which focus on medications themselves rather than categories.

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 implies when to use this tool (when category-level information is needed) but does not explicitly mention alternatives or when not to use it. It provides clear context but lacks explicit exclusionary guidance, so it falls short of a 5.

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

medications_detailsGet Medication DetailsA
Read-only
Inspect

Get detailed information about a specific medication including: all available dosage strengths and titration schedules, available forms (injectable vials, pre-filled syringes, oral dissolving tablets, sublingual drops), all active plan options with pricing for each, what's included (provider consultation, medication, shipping, ongoing support), contraindications, and common side effects. Supports queries by medication name (e.g. 'semaglutide', 'tirzepatide', 'sermorelin', 'NAD+', 'glutathione') or by category (e.g. 'weight loss', 'peptides', 'anti-aging'). Use this to look up exact plan durations and pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category (e.g. 'weight loss', 'peptides', 'anti-aging')
client_ipNoClient IP address for rate limiting
medicationYesMedication name (e.g. 'semaglutide', 'tirzepatide', 'sermorelin', 'NAD+', 'glutathione')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already signal readOnlyHint and openWorldHint. The description adds meaningful behavioral context by enumerating exactly what data is returned (forms, plan options, included services, side effects) and supporting both name and category queries. It does not contradict annotations and provides extra value beyond the hints.

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?

The description is longer than typical but front-loads the main purpose and then delivers dense, useful enumeration. Each clause adds specifics (forms, pricing, included services, contraindications, side effects) without fluff, though it could be slightly more structured.

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

Completeness5/5

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

With the output schema present and annotations covering safety, the description provides a thorough overview of what can be queried and what the response will include. It covers the full query space (name/category), supported medication examples, and the practical use case, making it complete for an agent to invoke correctly.

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

Parameters4/5

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

The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds value by giving concrete examples for both medication names and categories, clarifying how the parameters are meant to be used together. This goes beyond the schema's basic descriptions.

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 uses a specific verb ('Get') and resource ('detailed information about a specific medication'), listing concrete content (dosage strengths, titration schedules, forms, pricing, contraindications, side effects). It clearly distinguishes itself from sibling tools like medications_list and medications_pricing by emphasizing detailed per-medication data.

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 states when to use the tool: 'Use this to look up exact plan durations and pricing.' It gives query patterns (by medication name or category) but does not explicitly mention when not to use it or name an alternative sibling, though the context is clear.

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

medications_listList MedicationsA
Read-only
Inspect

List all available prescription medications including GLP-1 weight loss drugs (compounded semaglutide, compounded tirzepatide), peptide therapies (sermorelin for growth hormone support, NAD+ for cellular energy and anti-aging, glutathione for antioxidant support), and other compounded wellness treatments. Returns medication names, categories, available forms (injectable, oral tablet, sublingual drops, nasal spray), and starting prices. All medications are compounded by US-licensed 503A pharmacies and require evaluation by a licensed US healthcare provider before prescribing.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_ipNoClient IP address for rate limiting

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is established. The description adds meaningful context about the medication domain (compounded by US-licensed 503A pharmacies, requiring healthcare provider evaluation) and clarifies the content of the response. It does not mention rate limiting or pagination, but with annotations covering the safety profile, this adds sufficient value beyond annotations.

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?

The description is two sentences and front-loaded with the action 'List all available...'. It includes detailed examples (GLP-1 drugs, peptide therapies) that are useful for understanding the domain but adds some length. Each element contributes to understanding the tool's scope, so it remains appropriately concise.

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?

The tool has an output schema (so return values are structured separately) and annotations for read-only behavior. The description fully covers the purpose, the content domain, and key regulatory constraints. For a simple list tool, this is complete and sufficient, with no major gaps in context.

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?

The schema has one optional parameter (client_ip) with full description coverage (100%), so the schema already provides complete parameter semantics. The description adds no extra parameter information, which is fine because the baseline is 3 when schema coverage is high. No compensation needed.

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 states 'List all available prescription medications' with a specific action and resource, and enumerates the return fields (names, categories, forms, starting prices). It distinguishes from sibling tools by emphasizing the complete list scope ('all available') rather than specific categories, details, or pricing, aligning with the tool's purpose.

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 provides clear context by stating the tool returns a comprehensive list of all medications, making it evident when to use it for an overview. However, it does not explicitly mention alternatives or exclusions (e.g., 'for specific details use medications_details'), though sibling names are visible. This meets the 'clear context, no exclusions' criterion.

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

medications_pricingGet PricingA
Read-only
Inspect

Get detailed pricing for a specific medication, form, and plan duration. Returns price breakdown including medication cost, provider consultation fee, shipping, and any applicable discounts for longer plans. Plan durations vary by medication — use medications_details first to see available plan_months values. Supports semaglutide, tirzepatide, sermorelin, NAD+, glutathione and all other available medications.

ParametersJSON Schema
NameRequiredDescriptionDefault
formYesMedication form: 'injectable', 'tablet', or 'drops'
client_ipNoClient IP address for rate limiting
medicationYesMedication name
plan_monthsYesPlan duration in months (1, 4, or 6)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description discloses that the tool returns a price breakdown including cost, consultation fee, shipping, and discounts, and notes that plan durations vary by medication. Since annotations already declare readOnlyHint, the description adds context about response content and dependencies, but doesn't mention rate limiting or error behavior.

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 compact at three sentences, front-loaded with the main action, then return value, then usage note. No unnecessary words or repetition.

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 the presence of an output schema and readOnlyHint annotation, the description covers the essential input caveat (plan duration variation) and lists supported medications. It is complete and self-sufficient for the tool's purpose.

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 already includes descriptions for all four parameters, so baseline is 3. The description adds the important nuance that plan_months values vary by medication and that medications_details should be consulted first, which is semantic information not fully captured in the schema's simple '1, 4, or 6' description.

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 states 'Get detailed pricing for a specific medication, form, and plan duration' with a specific verb and resource. It distinguishes itself from sibling tools like medications_details and medications_availability by focusing on pricing and specifying the return breakdown.

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

Usage Guidelines5/5

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

It explicitly directs users to 'use medications_details first to see available plan_months values,' providing a concrete workflow. It also clarifies scope by listing supported medications, effectively guiding when to use this tool.

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

order_createCreate OrderA
Destructive
Inspect

Create a new prescription medication order. The patient must have completed intake questionnaire and consent before ordering. Required: medication name, selected form (injectable, tablet, drops), plan duration (1, 4, or 6 months), shipping address. The order is reviewed by a licensed US healthcare provider who makes the final prescribing decision. If approved, medication is compounded at a US-licensed 503A pharmacy and shipped directly to the patient. Returns order ID, estimated provider review time, and expected delivery window. Payment is processed via Stripe Agentic Commerce Protocol (ACP). Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
formYesMedication form: 'injectable', 'tablet', or 'drops'
intake_idYesApproved intake ID from intake_submit
medicationYesMedication name to order
plan_monthsYesPlan duration in months (1, 4, or 6)
bearer_tokenNoAuthentication token for the patient session
shipping_addressYesShipping address with keys: line1, city, state, zip, and optional line2

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=true, but the description adds substantial context: provider review, pharmacy compounding, shipping, payment via Stripe ACP, and authentication requirements. This goes beyond the structured hints. It does not elaborate on possible destructive effects (e.g., irreversible charges), but it doesn't contradict 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.

Conciseness4/5

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

The description is about 140 words and logically flows from action and prerequisites to required fields, process, return values, and payment/auth. Each sentence adds value, though slightly long, it remains informative without redundancy.

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

Completeness4/5

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

Given the tool's complexity (6 params, nested shipping address, auth, payment, provider review), the description covers prerequisites, required inputs, the review process, return values, and financial handling. It doesn't mention failure modes or denial scenarios, but that is not critical given the output schema and overall detail.

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 adds meaningful semantics by specifying valid values for form and plan_months, describing shipping_address keys, and noting that intake_id comes from intake_submit. This helps the agent construct valid arguments.

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 states 'Create a new prescription medication order' with a specific verb and resource. It distinguishes from sibling tools like order_status and order_upload by focusing on the initial creation step. The mention of prescription medication also differentiates it from checkout tools.

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

Usage Guidelines4/5

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

It explicitly states the prerequisite: 'The patient must have completed intake questionnaire and consent before ordering.' This tells the agent when the tool is appropriate. It does not explicitly name alternative tools, but the context strongly implies that if prerequisites are unmet, other tools (e.g., intake_submit, consent_submit) should be used first.

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

order_documentsGet Required DocumentsA
Read-only
Inspect

Get the list of documents a patient needs to upload for their order. Returns required documents (photo ID, selfie for verification) with upload status and accepted file formats. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID to check required documents for
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

With readOnlyHint already providing safety information, the description adds valuable behavioral context by noting that authentication is required and that the response includes upload status and accepted file formats. This goes beyond the annotation without contradicting it.

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 compact and front-loaded, with two sentences that directly convey purpose, return content, and authentication. No unnecessary words or repetition.

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 the tool's simplicity, presence of an output schema, and readOnly annotation, the description sufficiently covers purpose, key return elements, and auth. It provides enough context for an agent to invoke the tool correctly without needing further explanation.

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?

The input schema already provides full descriptions for both parameters (order_id and bearer_token), so the baseline is 3. The description does not add further parameter-specific details beyond what the schema already covers.

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?

Description clearly states the tool retrieves the list of documents a patient must upload for an order, using the specific verb 'Get' and the resource 'list of documents'. It distinguishes from siblings like order_upload by focusing on fetching requirements rather than performing the upload.

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 establishes clear context: it is used to check required documents for a specific order, with no exclusions or alternatives mentioned. While it doesn't explicitly name sibling tools or state when not to use it, the context is unambiguous enough for selection.

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

order_statusGet Order StatusA
Read-only
Inspect

Get the current status of a medication order. Returns status (pending_review, provider_reviewing, approved, needs_info, denied, compounding, shipped, delivered), tracking information, and delivery estimate. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID from order_create
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The annotation readOnlyHint=true already declares this as a safe read operation. The description adds useful context beyond that: the list of possible statuses, the return of tracking info and delivery estimate, and the authentication requirement. There is no contradiction, and the description supplements the annotation without over-explaining.

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 two sentences, front-loaded with the primary purpose in the first sentence. The second sentence efficiently lists return data and a final note on authentication. There is no redundant filler; every sentence carries meaningful information.

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 that an output schema exists (indicated by context), the description does not need to detail return structure. It covers all necessary aspects for a status-check tool: action, resource, statuses, additional outputs, and authentication. For a simple read-only operation, this is complete relative to its complexity and schema richness.

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

Parameters3/5

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

Schema description coverage is 100% (both order_id and bearer_token have descriptions). The tool description itself does not add new meaning beyond the schema; it simply lists return fields. Since the schema fully documents parameters, baseline 3 is appropriate, and there is no extra value added by the description.

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 states the tool's action ('Get the current status of a medication order') and the specific resource (medication order). It also enumerates the possible statuses and return data (tracking, delivery estimate), making it distinguishable from sibling tools like checkout_status or order_documents. This is a specific verb+resource with clear scope.

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

Usage Guidelines3/5

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

The description implies usage when one needs order status, but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. It mentions 'Requires authentication' as a prerequisite, which is mildly helpful, but lacks direct comparison to sibling tools or clear guidance on 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.

order_uploadUpload DocumentA
DestructiveIdempotent
Inspect

Upload a verification document for a medication order. Accepts photo ID and selfie as base64-encoded files. Supported formats: PDF, JPEG, PNG. Maximum size: 10MB. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID to upload document for
file_nameYesOriginal filename with extension (e.g. 'license.jpg')
file_base64YesBase64-encoded file content (PDF, JPEG, or PNG, max 10MB)
bearer_tokenNoAuthentication token for the patient session
document_typeYesDocument type: 'photo_id' or 'selfie'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate a non-read-only, idempotent, and destructive operation. The description adds useful behavioral constraints (base64 encoding, supported formats, 10MB limit, authentication requirement). It does not address the destructiveHint (e.g., possible overwriting), but given annotation availability, the description still adds value.

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

Conciseness5/5

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

Three concise sentences with no redundancy. The first sentence states the purpose, the second covers file requirements, and the third gives the auth requirement. Every word earns its place.

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

Completeness4/5

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

The tool has 5 parameters and an output schema, plus annotations. The description covers purpose, file formats, size, and authentication. It does not explicitly explain the destructive behavior or what happens after upload, but the output schema and annotations fill some gaps. Overall, it is complete for an upload tool.

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% for all parameters, so the baseline is 3. The description reinforces parameter semantics by mentioning photo ID/selfie (matching document_type), supported formats and max size (matching file_base64 constraints), and authentication (matching bearer_token). This adds synergy beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Upload'), the resource ('a verification document for a medication order'), and the specific document types (photo ID, selfie). This distinguishes it from siblings like order_documents, which likely lists documents.

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 conveys a clear purpose and prerequisites (authentication), and the context of a medication order makes the intended use obvious. It does not explicitly name alternatives or exclusions, but the clarity of the upload scenario is sufficient for most cases.

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

portal_care_planGet Care PlanA
Read-only
Inspect

Get the patient's current care plan including: current medication, current dosage, titration schedule, next dose adjustment date, upcoming refill date, provider notes, and weight progress summary. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesPatient ID
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The annotations provide readOnlyHint: true, and the description aligns by using 'Get' and listing informational content. The description adds the behavioral requirement of authentication and details what data is included, which is useful context beyond the annotation.

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 a single sentence that front-loads the purpose and lists the included data elements without redundant wording. It efficiently conveys the essential information.

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?

The description is comprehensive for a read-only retrieval tool: it specifies the scope ('current'), lists the contents, and mentions authentication. An output schema exists, so return value details are not needed in the description.

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?

The input schema already provides full descriptions for both patient_id and bearer_token, achieving 100% coverage. The tool description does not add any additional parameter-specific guidance, so the baseline score of 3 applies.

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

Purpose5/5

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

The description begins with 'Get the patient's current care plan' which clearly identifies the action and resource. It enumerates specific data elements (medication, dosage, titration schedule, etc.), distinguishing it from other portal tools that handle unrelated actions.

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 establishes a clear context for when to use the tool: to retrieve the patient's current care plan. It notes the authentication requirement, which is a prerequisite. However, it does not explicitly contrast with alternative tools or state 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.

portal_log_side_effectsLog Side EffectsA
Destructive
Inspect

Log side effects a patient is experiencing. If severity is 'severe', the case is auto-flagged for immediate provider review and returns urgent guidance. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
effectsYesList of side effects being experienced (e.g. ['nausea', 'headache'])
severityYesSeverity level: 'mild', 'moderate', or 'severe'
patient_idYesPatient ID
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already indicate destructiveHint:true and readOnlyHint:false. The description goes beyond by disclosing that severe side effects trigger auto-flagging for immediate provider review and return urgent guidance, and that authentication is required. This adds meaningful behavioral context not present in 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 concise sentences, front-loaded with the primary purpose. Every sentence adds distinct information: what it does, the severe-case behavior, and the auth requirement. No waste or redundancy.

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

Completeness4/5

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

For a tool with an output schema and full parameter descriptions, the description covers the core behavior, edge-case behavior (severe), and auth context. It does not elaborate on non-severe outcomes or prerequisites, but these are not critical given the schema and output schema richness. Slightly more detail on the default workflow could push it to 5.

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 baseline is 3. The description adds semantic value by explaining the consequence of the severity parameter ('severe' causes auto-flagging and urgent guidance) and reinforcing the auth requirement for bearer_token. This goes beyond simple parameter type definitions.

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 starts with a specific verb and resource ('Log side effects a patient is experiencing'), clearly distinguishing it from siblings like portal_log_weight. The additional detail about severe cases being auto-flagged further specifies the tool's unique behavior.

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

Usage Guidelines3/5

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

The purpose implies when to use the tool (when a patient reports side effects), but it does not explicitly mention alternatives or exclusions. It lacks the specific 'use this instead of X' guidance present in high-quality examples, though the intended use is reasonably clear from the verb and resource.

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

portal_log_weightLog WeightB
Destructive
Inspect

Log a patient's weight for tracking progress on their treatment plan. Requires patient_id, weight in pounds, and date (ISO 8601). Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate of weight measurement in ISO 8601 format (YYYY-MM-DD)
patient_idYesPatient ID
weight_lbsYesWeight in pounds
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a write with potential destructive impact. The description adds the 'requires authentication' requirement and the purpose context, but does not disclose any additional behavioral traits like append vs. override behavior.

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 two sentences long with no filler. It communicates the core action, required parameters, and authentication need efficiently.

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

Completeness4/5

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

Given the presence of an output schema and annotations, the description sufficiently covers the tool's purpose and requirements. It does not explain edge cases like duplicate logging or side effects, but the annotated destructive hint and output schema reduce the burden on the description.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented. The description repeats parameter names and units but adds no new semantic information beyond what the schema provides. Baseline 3 applies because the schema carries the full burden.

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

Purpose4/5

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

The description clearly states the tool's function with a specific verb ('Log') and resource ('a patient's weight'), and adds context ('for tracking progress on their treatment plan'). It distinguishes from sibling tools by the unique resource, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It only lists required parameters and authentication, but does not mention exclusions or conditions under which to choose a different tool.

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

portal_messageMessage ProviderA
Destructive
Inspect

Send a message to the patient's healthcare provider. Returns sent confirmation and estimated response time. Urgent messages (containing keywords like 'emergency', 'chest pain', 'difficulty breathing') are flagged for priority response. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text to send to the healthcare provider
patient_idYesPatient ID
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Adds meaningful context beyond annotations: returns confirmation and estimated response time, urgent messages are prioritized, and authentication is required. This complements the annotation hints, though it does not explain the unusual destructiveHint=true, but no contradiction exists.

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

Conciseness5/5

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

Three concise, front-loaded sentences. Each sentence adds distinct value: purpose, outputs/priority behavior, and authentication. No fluff or repetition.

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

Completeness4/5

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

With an output schema present and good annotations, the description covers the core purpose, return info, priority logic, and auth. It does not detail edge cases or side effects, but those are not essential for a message-sending tool.

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 covers all 3 parameters with descriptions, so baseline is 3. The description does not add new parameter-level detail beyond the schema; it mentions urgent keywords but not as a parameter syntax explanation.

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 starts with a specific verb 'Send' and identifies the resource ('message to the patient's healthcare provider'), making the action unmistakable. It also differentiates from siblings by focusing on provider messaging, and adds useful outcomes (confirmation, response time).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like provider_respond or portal_support. The description implies use for patient-provider communication but does not state exclusions or when to prefer another tool.

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

portal_refillRequest RefillA
Destructive
Inspect

Request a medication refill for the patient's current prescription. Creates a refill order that will be reviewed by a provider within 24-48 hours. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesPatient ID
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description adds context beyond annotations: it reveals the 24-48 hour review delay and the need for authentication, complementing the destructiveHint annotation by explaining the workflow. It avoids contradicting the annotations, though it doesn't detail what destructive effects (if any) occur. This is sufficient given annotation coverage.

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 two sentences long, each with a clear purpose: the first states the action, the second explains the workflow and authentication. No unnecessary words.

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

Completeness4/5

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

For a simple tool with 2 parameters and an output schema, the description covers the essential action and outcome. It lacks explicit preconditions (e.g., must have a current prescription) and doesn't clarify the output shape, but the schema fills that gap. Slightly more context could be added, but it's largely complete.

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% for both parameters, and the descriptions are minimal but present. The tool description itself adds no additional detail about parameter semantics, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the specific action ('Request a medication refill') and the resource ('the patient's current prescription'). It distinguishes itself from sibling tools like medications_list or order_create by focusing on the refill workflow, making it unique.

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 gives clear context: it creates a refill order reviewed within 24-48 hours, indicating this is for refills of existing prescriptions. However, it does not explicitly exclude alternatives (e.g., when to use order_create instead), so it falls short of a 5.

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

portal_supportContact SupportA
Destructive
Inspect

Contact customer support with a question or issue. Creates a support ticket and returns the ticket ID and estimated response time. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesDetailed description of the question or issue
subjectYesSupport ticket subject line
patient_idYesPatient ID
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The description adds behavioral context beyond the annotations: it creates a ticket, returns a ticket ID and estimated response time, and requires authentication. Since annotations already indicate a non-read-only, non-idempotent, potentially destructive operation, the description adds useful specifics without contradiction. The destructiveHint is somewhat incongruent with the benign create action but not a direct contradiction.

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 concise sentences with no unnecessary words. It front-loads the primary purpose, states the 'Creates' action and return values, and ends with the authentication requirement. Every sentence earns its place.

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

Completeness4/5

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

The description covers the essential aspects: purpose, action, return values, and authentication. Given the tool's simplicity and the presence of an output schema, the description is reasonably complete. It does not mention edge cases or prerequisites beyond authentication, but these are not critical for a support-ticket creation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The tool description does not add any parameter-specific semantics beyond what the schema provides, so the baseline of 3 is appropriate.

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 states the tool's purpose: contacting customer support with a question or issue. It specifies the action (creates a support ticket) and the output (ticket ID and estimated response time), and it is distinct from sibling tools like portal_message (provider messaging) and portal_refill (prescription refills).

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 provides clear context for when to use the tool: when the user has a question or issue for customer support. It does not explicitly mention alternatives or when not to use it, but the context is strong and unambiguous, earning a 4 rather than a 5.

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

provider_questionsGet Provider QuestionsA
Read-only
Inspect

Get follow-up questions from the healthcare provider for a specific order. The provider may request additional information before making a prescribing decision. Returns the questions if the order status is 'needs_info', or a message that no questions are pending. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesOrder ID to get provider questions for
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds value by disclosing that the tool returns different messages depending on the order status ('needs_info' vs. no pending questions) and that authentication is required. This goes beyond the annotation to explain real behavior.

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?

The description is concise and front-loaded with the primary purpose. The second sentence about prescribing decisions adds useful context, though it could be merged with the first to reduce redundancy. Overall, it is appropriately sized for a tool with conditional behavior.

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?

The description covers the essential context: what the tool does, when it returns questions vs. a message, and authentication requirements. Since an output schema exists, it need not explain return values. This is complete for the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, with both order_id and bearer_token already described. The tool description does not add extra parameter context, but the baseline of 3 is appropriate since the schema carries the full burden and the parameters are straightforward.

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 the tool's purpose: retrieving follow-up questions from a healthcare provider for a specific order. It distinguishes this from sibling tools like intake_questions (patient intake) and provider_respond (responding to questions) by specifying the resource and context.

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 provides clear context—use this when you need provider questions for an order—and even explains the conditional behavior based on order status. However, it does not explicitly mention alternatives or when not to use the tool, though the context strongly implies the appropriate use case.

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

provider_respondSubmit Provider ResponseA
DestructiveIdempotent
Inspect

Submit answers to provider follow-up questions for a specific order. The responses are sent to the provider for review. Returns confirmation and updated order status. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
answersYesAnswers to the provider's follow-up questions keyed by question ID
order_idYesOrder ID to submit responses for
bearer_tokenNoAuthentication token for the patient session

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=true. The description adds value by disclosing that responses are sent to the provider for review, that it returns confirmation and updated order status, and that authentication is required. These go beyond the annotation hints and provide practical expectations for the agent.

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 two sentences, front-loaded with the primary action, and includes essential outcomes in the second sentence. Every word contributes: no repetition of schema fields, no vague filler. It is concise and well-structured for quick agent comprehension.

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

Completeness4/5

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

Given the tool's moderate complexity (nested answers object, 3 parameters, output schema exists), the description sufficiently covers purpose, outcome, and authentication. It does not explain prerequisites like needing to call provider_questions first, but the output schema and schema descriptions fill in many details. The description is complete enough 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.

Parameters3/5

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

Schema description coverage is 100%, so all parameters have descriptive text. The tool description does not add additional meaning beyond the schema: no formatting constraints, examples, or behavioral notes for parameters. It only mentions 'Requires authentication' which aligns with the bearer_token parameter, but does not enrich parameter understanding. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states the verb and resource: 'Submit answers to provider follow-up questions for a specific order.' It distinguishes from siblings like provider_questions (which likely requests questions) by specifying the submission action and intended recipient. The additional outcome 'sent to the provider for review' further clarifies the tool's unique role.

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 implies clear use context: use when you have answers to provider follow-up questions for an order. It does not explicitly exclude alternatives or provide when-not-to-use guidance, but the context is specific enough that an agent can infer when this tool is appropriate. No explicit alternative tools are named, but the sibling 'provider_questions' suggests the complementary flow.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    11
    111
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources