Skip to main content
Glama

Search the TestWell catalog

search_tests
Read-onlyIdempotent

Search TestWell's public catalog of cash-pay lab tests and panels by keyword, biomarker, CPT code, or category. Returns name, slug, per-lab prices, sample, fasting, turnaround and order URL. Prices are stickers; every order adds one $6 lab processing fee (see quote_order for all-in totals).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoReturn Spanish names/descriptions where a translation exists (default en)
typeNoRestrict to individual tests or bundled panels
limitNoMax results (default 10)
queryYesKeyword, biomarker, CPT code or health goal, e.g. 'vitamin d', 'TSH', '80053', 'cholesterol'
categoryNoCatalog category, e.g. 'Thyroid', 'Heart Health'
orderableOnlyNoExclude items listed as coming soon (default true)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNo
countNo
itemsNo
queryNo
labFeeNoUSD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / items / items / properties / measuredTurnaround
      Added value: +{
      +  "description": "Measured medians from real orders (specimen at lab → results), per lab; published only when n ≥ 30. Empty until enough data exists.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "asOf": {
      +        "type": "string"
      +      },
      +      "lab": {
      +        "type": "string"
      +      },
      +      "medianDays": {
      +        "type": "number"
      +      },
      +      "n": {
      +        "type": "number"
      +      },
      +      "p90Days": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "lab",
      +      "n",
      +      "medianDays",
      +      "asOf"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "count": {
      +      "type": "number"
      +    },
      +    "items": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "aliases": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "biomarkerCount": {
      +            "type": "number"
      +          },
      +          "biomarkers": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "category": {
      +            "type": "string"
      +          },
      +          "cpt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "CPT code when verified"
      +          },
      +          "currency": {
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": "string"
      +          },
      +          "fastingRequired": {
      +            "type": "boolean"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "labFee": {
      +            "description": "Flat per-order lab processing fee (charged once per order)",
      +            "type": "number"
      +          },
      +          "labs": {
      +            "description": "Labs that run it: Quest, Labcorp, BioReference",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "markdownUrl": {
      +            "description": "Absolute https URL on test-well.com",
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "orderUrl": {
      +            "description": "Prefilled cart link",
      +            "type": "string"
      +          },
      +          "orderable": {
      +            "type": "boolean"
      +          },
      +          "popular": {
      +            "type": "boolean"
      +          },
      +          "prepInstructions": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "prices": {
      +            "additionalProperties": {},
      +            "description": "Sticker price per lab; null where the lab does not run the item",
      +            "properties": {
      +              "bioreference": {
      +                "anyOf": [
      +                  {
      +                    "description": "USD",
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "labcorp": {
      +                "anyOf": [
      +                  {
      +                    "description": "USD",
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "quest": {
      +                "anyOf": [
      +                  {
      +                    "description": "USD",
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "resultsIn": {
      +            "description": "Turnaround, e.g. '1-3 business days'",
      +            "type": "string"
      +          },
      +          "reviewedAt": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "sampleType": {
      +            "type": "string"
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "enum": [
      +              "test",
      +              "panel"
      +            ],
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Absolute https URL on test-well.com",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "labFee": {
      +      "description": "USD",
      +      "type": "number"
      +    },
      +    "lang": {
      +      "type": "string"
      +    },
      +    "query": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark this as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond those: the catalog is public, prices are 'stickers,' and each order incurs a $6 processing fee. It also states the output includes specific fields, complementing rather than contradicting the annotations.

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

Conciseness5/5

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

Three sentences with no filler. The core search purpose is front-loaded, the return fields are summarized in one clause, and the pricing caveat plus pointer to quote_order earns its place as essential usage context. Every sentence contributes.

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

Completeness5/5

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

For a 6-parameter search tool with rich annotations and an output schema, the description is complete enough. It explains searchable content, output fields, pricing semantics, and where to go for final totals. The schema handles parameter-level details, so nothing critical is missing.

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 fully documents all six parameters. The description adds some semantic color by mapping query to 'keyword, biomarker, CPT code, or health goal' and mentions category search, but it does not substantially extend what the schema already provides. Baseline 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 opens with a specific verb and resource: 'Search TestWell's public catalog of cash-pay lab tests and panels.' It lists concrete search dimensions (keyword, biomarker, CPT code, category) and the return fields, making it unmistakable what this tool does and how it differs from nearby siblings like list_panels or get_test.

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 clearly establishes when to use the tool: when searching the public catalog by query-like terms. It also points to quote_order for all-in totals, providing one explicit routing cue. It does not enumerate exclusions versus every sibling, but the context is strong enough for correct selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources