Picardo
Server Details
Find Picardo's clinician-designed blood test panels and Labcorp tests, and get an order link.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: listing panels, fetching one panel, searching individual tests, and preparing an external order link. There is no overlap in purpose, and the descriptions make the boundaries between browsing panels, browsing tests, and ordering explicit.
All four tools use a consistent snake_case verb_noun pattern: get_lab_panel, list_lab_panels, prepare_order_link, search_lab_tests. The naming is predictable and directly reflects each tool's action and resource.
Four tools are well-scoped for a read-and-prepare-link domain: two for panel browsing, one for test search, and one for order-link creation. No tool feels redundant, and the set is appropriately small without being trivially thin.
The surface covers the key workflow: discover panels, inspect a panel's contents, search individual tests, and generate an order-review link. A minor gap is the absence of a direct get_lab_test-by-code tool beyond search, but search handles that use case adequately.
Available Tools
4 toolsget_lab_panelGet a lab panelARead-onlyIdempotentInspect
Get one Picardo panel: every test it includes, marking any for men only or women only, why the tests were chosen, preparation such as fasting, and the subtotal.
| Name | Required | Description | Default |
|---|---|---|---|
| panel_id | Yes | A panel ID from list_lab_panels. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| summary | Yes | |
| audience | Yes | |
| testCount | Yes | Tests everyone gets; checkout adds any for one sex only. |
| preparation | Yes | |
| subtotalUsd | Yes | Price in US dollars of the tests everyone gets, before any blood draw fee. Checkout adds PSA for men and a pregnancy test (hCG) for women. Null when a test is temporarily unavailable. |
| whyItMatters | Yes | |
| atHomeDrawUsd | Yes | At-home blood draw fee for this panel; a Labcorp location is free. |
| includedTests | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, closed-world, and non-destructive behavior, so the safety profile is covered. The description adds useful content about what is returned (gender flags, selection rationale, prep requirements, subtotal), but says nothing about failure behavior for an unknown or expired panel_id, or about any access constraints. With annotations carrying the operational profile, a 3 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, zero filler, front-loaded with the verb and resource followed by a compact enumeration of the returned fields. Nothing in it is redundant or misplaced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter read tool with full schema coverage and an output schema, so return-value explanation is not required, yet the description still summarizes the payload helpfully. The only shortfall is the absence of any note on what happens with an invalid panel ID or how this differs from the sibling lookup tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema already states panel_id is "A panel ID from list_lab_panels." The description adds no format, length, or validity information beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get one Picardo panel") and enumerates exactly what the response contains: included tests, gender restrictions, selection rationale, preparation like fasting, and subtotal. The singular "one ... panel" implicitly separates it from list_lab_panels, but the description never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers it should call this when it already has a panel ID (which the schema confirms comes from list_lab_panels). There is no explicit when-to-use or when-not-to-use statement, and no guidance on choosing between this and search_lab_tests for test-level lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lab_panelsList lab panelsARead-onlyIdempotentInspect
List Picardo’s blood test panels. Each has an ID for get_lab_panel and prepare_order_link, a summary, who it is for, how many tests everyone gets and their subtotal.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| panels | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so safety is fully covered. The description adds that entries carry an ID, a summary, an audience, a test count, and a subtotal, but since an output schema exists this content is largely redundant rather than new behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core purpose front-loaded and no filler. The phrasing "how many tests everyone gets" is slightly informal for a field description, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, an output schema, and no parameters, the description only needs to establish the entry-point role and the ID's downstream use, which it does. A brief pointer to search_lab_tests as the alternative would have made it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; nothing in the schema needs semantic elaboration and the description correctly does not invent any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List Picardo's blood test panels") and previews the returned fields. It also distinguishes itself from siblings by positioning the returned ID as the input to get_lab_panel and prepare_order_link, though it never explicitly contrasts with search_lab_tests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the mention that each panel has an ID "for get_lab_panel and prepare_order_link" suggests this is the entry point before those tools, but no explicit when-to-use or when-not guidance, and no alternative is named as a substitute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_order_linkPrepare an order linkARead-onlyIdempotentInspect
Create a link to review a lab order on picardo.health for the chosen panels and tests. Nothing is ordered or saved here: the user reviews the order, enters their details and pays on the site. Returns the link, what it contains and anything that could not be included. Orders are for adults 18 and over and are not available to people who live in New York, New Jersey, Rhode Island, Pennsylvania, Maryland, Massachusetts, Hawaii, Maine. picardo.health checks the date of birth and address at checkout and refuses an order from anyone else.
| Name | Required | Description | Default |
|---|---|---|---|
| panel_ids | No | Panel IDs from list_lab_panels. | |
| test_codes | No | Six-digit Labcorp codes from search_lab_tests. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| tests | Yes | |
| panels | Yes | |
| nextSteps | Yes | |
| notIncluded | Yes | Requested IDs or codes that could not be included. |
| subtotalUsd | Yes | Price in US dollars of the tests everyone gets, before any blood draw fee. Checkout adds PSA for men and a pregnancy test (hCG) for women. Null when a test is temporarily unavailable. |
| atHomeDrawUsd | Yes | At-home blood draw fee for the tests everyone gets: one fee per requisition of up to 40 tests. A Labcorp location is free. |
| atHomeDrawUsdForMen | Yes | Set only when a man’s PSA takes the order into another requisition; otherwise null. |
| atHomeDrawUsdForWomen | Yes | Set only when a woman’s pregnancy test takes the order into another requisition; otherwise null. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), it explains what the link is for, that the user completes details and payment externally, that the response includes the link plus what could not be included, and it discloses hard eligibility limits (18+, eight excluded states, verified at checkout). This is behavior an agent cannot infer from the structured fields and prevents wasted or invalid calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by the 'nothing is ordered' caveat, return contents, and eligibility rules. Every sentence is substantive, though the long state enumeration and the closing checkout-restatement are slightly repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter link-generation tool with an output schema, the description covers the action, side effects, return contents, and eligibility gating, so an agent has everything needed to call it correctly and to warn the user about age/state limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both parameters, including their source tools and limits. The description adds only that the chosen panels and tests are packed into the link and that exclusions are reported back, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a link to review a lab order') plus the destination ('on picardo.health'), and scopes it to 'the chosen panels and tests', which cleanly separates it from the catalog-browsing siblings (list_lab_panels, search_lab_tests, get_lab_panel).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: it is the hand-off step after selecting panels/tests, and nothing is ordered or saved, so the agent knows this is a pre-checkout link, not a purchase. It does not explicitly name the sibling tools or state exclusions, 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.
search_lab_testsSearch lab testsARead-onlyIdempotentInspect
Search Picardo’s orderable Labcorp tests by test name, six-digit Labcorp code or topic word, for example "ferritin", "vitamin D" or "thyroid". Returns each test’s code for prepare_order_link, a short description, price, preparation and the panels that already order it for everyone.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tests | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world behavior, so the description only needs to add what they can't. It does add real context: which fields are matched, and that each result carries code, description, price, preparation and ordering panels. It omits result-count behaviour and the meaning of the limit ceiling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource, then packs searchable fields, examples, and return shape with zero filler. Nothing is wasted and nothing is redundant with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return-field recap is bonus rather than obligation, and the description is already sufficient to call the tool correctly. The remaining gaps (limit semantics, behaviour on zero results) are minor for a two-parameter search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It adds genuine semantics for 'query' (name, six-digit code, topic word, with examples) but says nothing about 'limit', which has a default of 5 and a maximum of 10 that an agent cannot infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search ... orderable Labcorp tests') and enumerates the searchable fields (test name, six-digit Labcorp code, topic word) with concrete example queries. The distinction from get_lab_panel and list_lab_panels is only implicit through the verb 'search', not stated explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the mention that results carry the code 'for prepare_order_link' sketches a search-then-order workflow, but there is no explicit when-to-use versus get_lab_panel or list_lab_panels, and no guidance on what to do when nothing matches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_lab_panel - First observed
list_lab_panels - First observed
prepare_order_link - First observed
search_lab_tests
Related MCP Connectors
Find public biomarker education, available blood tests, panels, and budget-aware starting points.
Find and compare published Irish blood-test listings, prices, locations and panel markers.
Cash-pay lab tests: catalog search, all-in quotes by state, draw sites by ZIP, reviewed ranges.
Physicians for the agentic era. Book a US-licensed doctor: orders, prescribes, 90-day plan.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA comprehensive health coaching system that combines blood test analysis with evidence-based nutritional therapy recommendations, powered by Retrieval-Augmented Generation (RAG).3-
- AlicenseAqualityCmaintenanceEnables searching fictional lab tests, comparing prices, quoting and booking sample collections, and escalating to a human agent via natural language.7MIT
- AlicenseAqualityBmaintenanceEnables AI agents to analyze synthetic biomarker panels via Phi Longevity's PRISM clinical recommendation engine, providing tiered, guideline-cited recommendations. Also offers tools to list supported biomarkers and retrieve methodology.3187 npmApache 2.0
- AlicenseAqualityDmaintenanceConverts clinical blood-test results between conventional and SI units and resolves lab-marker names to canonical analytes.34 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.