Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

TestWell Lab Tests

REMOTE · WWW.TEST-WELL.COM · SCANNED SEP 22

Cash-pay lab tests: catalog search, all-in quotes by state, draw sites by ZIP, reviewed ranges.

+4 this week 82 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2384 tokens (~119/item across 20 items; 18 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management53
  • Stability observed for 16 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage90
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 64% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the TestWell Lab Tests MCP server?

TestWell Lab Tests is a hosted endpoint at https://www.test-well.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · www.test-well.com

# add to Claude Code
claude mcp add --transport http com-test-well-testwell 'https://www.test-well.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-test-well-testwell": {
      "url": "https://www.test-well.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-test-well-testwell": {
      "type": "http",
      "url": "https://www.test-well.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-test-well-testwell]
url = "https://www.test-well.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-test-well-testwell": {
      "type": "remote",
      "url": "https://www.test-well.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-test-well-testwell --url 'https://www.test-well.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-test-well-testwell:
    url: "https://www.test-well.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-test-well-testwell": {
      "Transport": "http",
      "Url": "https://www.test-well.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-test-well-testwell -t streamable-http -u 'https://www.test-well.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-test-well-testwell": {
      "type": "http",
      "url": "https://www.test-well.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 0
    • Tool “get_guide” rewrote its description, which is the text the model reads security
    • Schema quality: 1946 → 2384 functional
    • Tool coverage: 81% → 64% functional
    • Schema quality: excellent → good functional
    • Destructive annotations: pass → 100 functional
    • New tool “cancel_checkout” functional
    • New tool “complete_checkout” functional
    • New tool “create_checkout” functional
    • New tool “get_checkout” functional
    • New tool “update_checkout” functional
  • 8 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Sept 2026 · Probed https://www.test-well.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=www.test-well.com CN=YR1,O=Let's Encrypt,C=US 29 Aug 2026 27 Nov 2026 RSA 2048 SHA256-RSA 6ae279823583ecdd3529e14c3fa7ca7eabe
SANs: www.test-well.com
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of www.test-well.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
test-well.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://js.stripe.com https://checkout.stripe.com https://maps.googleapis.com https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://va.vercel-scripts.com https://vercel.live https://bzrcdn.openai.com https://challenges.cloudflare.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https: http:; font-src 'self' https://fonts.gstatic.com; frame-src https://js.stripe.com https://hooks.stripe.com https://checkout.stripe.com https://vercel.live https://td.doubleclick.net https://challenges.cloudflare.com; connect-src 'self' https://api.stripe.com https://checkout.stripe.com https://maps.googleapis.com https://*.supabase.co https://api.tryvital.io https://api.resend.com https://api.openai.com https://www.google-analytics.com https://*.google-analytics.com https://analytics.google.com https://*.analytics.google.com https://stats.g.doubleclick.net https
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(self), interest-cohort=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://www.test-well.com/mcp Verified 200
http (plaintext) http://www.test-well.com/mcp HTTPS enforced 308 https://www.test-well.com/mcp
MCP tools · 18 exposed · ~2,189 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
calculate_free_testosterone ~116

Calculate free and bioavailable testosterone from total testosterone, SHBG and albumin using the Vermeulen (1999) mass-action equation — the method behind lab-reported 'calculated free testosterone'. Educational; not a diagnosis.

NameTypeReqDescription
albuminGdLnumberAlbumin in g/dL (default 4.3)
shbgnumberyesSHBG in nmol/L
totalTnumberyesTotal testosterone
totalTUnitstringDefault ng/dL
NameTypeReqDescription
bioavailableTestosteroneobject
freePercentnumber
freeTestosteroneobject
inputsobject
methodstring
testsarray
toolUrlstring

No examples provided.

cancel_checkout ~42

Cancel an open (unpaid) checkout session. Paid sessions cannot be canceled here — the patient's complete-details email explains refunds.

NameTypeReqDescription
checkout_session_idstringyes
NameTypeReqDescription
idstringyes
statusstringyes

No examples provided.

compare_prices ~146

For one blood test, the all-in single-test price (sticker + per-order fees) at TestWell and at every tracked direct-to-consumer provider with a verified equivalent — JustLabs, Quest, Labcorp OnDemand, Ulta Lab Tests, Walk-In Lab, HealthLabs and more — each with the date it was verified, plus typical hospital self-pay and Quest Direct reference prices. States the multi-test caveat (fees are paid once per order). Source: the TestWell Blood Test Price Index (CC BY 4.0).

NameTypeReqDescription
teststringyesTest slug or name, e.g. 'tsh', 'lipid panel', 'vitamin-d'
NameTypeReqDescription
caveatsarray
cheapestSingleTestAllInobject
datasetstringAbsolute https URL on test-well.com
foundboolean
hintstring
licensestring
methodologystring
providersarraySorted by all-in price, TestWell included
querystring
referenceobject
testobject

No examples provided.

compare_provider ~114

Honest side-by-side of TestWell and another direct-to-consumer lab service (Quest Direct, Labcorp OnDemand, Function Health, JustLabs, Ulta Lab Tests, …): pricing model, per-order fees, labs, turnaround, where each wins, spot prices on common tests as sticker AND all-in, with verification dates and sources. Call with no argument to list the providers covered.

NameTypeReqDescription
providerstringCompetitor slug or name, e.g. 'quest-direct', 'Function Health', 'justlabs'
NameTypeReqDescription
competitorobject
competitorWinsAtarray
foundboolean
providersarrayReturned when no provider was named
sourcesarray
spotPricesarray
testWellNotForarray
testWellWinsAtarray
testwellobject
urlstringAbsolute https URL on test-well.com
verdictstring
verifiedstringDate the competitor's prices were verified

No examples provided.

complete_checkout ~148

Charge the payment credential the platform obtained for a session that is ready_for_payment and create the order. Input follows the ChatGPT payment-sheet contract: checkout_session_id, buyer, payment_data { token, provider: 'stripe', billing_address }. The token is a Stripe shared payment token (spt_…); platforms without one should send the user to pay_online_url from create_checkout. After payment the patient gets an email link to add date of birth, sex, phone and consent — the lab requisition is issued when that is done.

NameTypeReqDescription
buyer
checkout_session_idstringyes
idempotency_keystring
payment_dataobjectyes
NameTypeReqDescription
idstringyes
messagesarrayyes
orderobject
statusstringyes
totalsarrayyes

No examples provided.

convert_units ~130

Convert a lab value between US conventional and SI units for 30 common analytes (glucose, cholesterol, testosterone, vitamin D, …) using published factors; hemoglobin A1c uses the NGSP↔IFCC master equation and also returns estimated average glucose.

NameTypeReqDescription
analytestringyesAnalyte slug or name, e.g. 'glucose', 'total-cholesterol', 'testosterone', 'vitamin-d', 'a1c'
directionstringDefault toSI (US → SI)
valuenumberyesThe numeric value to convert
NameTypeReqDescription
analytestring
biomarkerUrl
errorstring
estimatedAverageGlucoseobject
factornumber
inputobject
methodstring
note
outputobject

No examples provided.

create_checkout ~152

Start a TestWell order for the user: tests/panels, the US state where they will visit the lab (required for pricing and lab routing), and the buyer's name, email and phone. Returns priced line items in cents, the single $6 lab fee, the total, any blocking messages, and pay_online_url — a prefilled cart the user can pay in a browser when the platform has no payment token. Use dry_run to preview without creating a session.

NameTypeReqDescription
buyerobject
dry_runbooleanPrice only; do not create a session
itemsarrayyes
statestringUS state code or name where the blood will be drawn
NameTypeReqDescription
currencystringyes
dry_runboolean
fulfillment_optionsarrayyes
idstringyes
line_itemsarrayyes
linksarrayyes
messagesarrayyes
orderobject
pay_online_urlPrefilled cart for browser payment when the platform has no payment token
statusstringyes
totalsarrayyes

No examples provided.

find_draw_sites ~121

Find Quest Diagnostics, Labcorp and BioReference patient service centers near a US ZIP code, with address, distance, phone and hours. Walk-ins are accepted at most sites; the requisition arrives by email after physician authorization.

NameTypeReqDescription
labstringLimit to one lab
limitintegerMax sites (default 10)
radiusMilesintegerSearch radius in miles (snapped to 10/20/25/50/100; default 25)
zipstringyes5-digit US ZIP code
NameTypeReqDescription
countnumber
mapUrlstringAbsolute https URL on test-well.com
radiusMilesnumber
sitesarray
zipstring

No examples provided.

get_checkout ~40

Current state of a checkout session (status, line items, totals, messages, order once paid). Read-only.

NameTypeReqDescription
checkout_session_idstringyes
NameTypeReqDescription
idstringyes
line_itemsarrayyes
messagesarrayyes
statusstringyes
totalsarrayyes

No examples provided.

get_guide ~118

Return one of TestWell's educational pages as Markdown: guides (/guides/<slug>), condition workups (/conditions/<slug>), biomarker pages (/biomarkers/<slug>), state pages (/lab-locations/<slug>) or comparisons (/compare/<slug>). Call with no path to list the available guides and conditions.

NameTypeReqDescription
langstringSpanish version when one exists (default en)
pathstringSite path, e.g. '/guides/annual-blood-work' or 'conditions/anemia'
NameTypeReqDescription
answersarray
conditionsarray
foundboolean
guidesarrayIndex, returned when no path was given
markdownstringFull page as Markdown
pathstring
titlestring
urlstringAbsolute https URL on test-well.com

No examples provided.

get_test ~107

Full public detail for one TestWell test or panel by slug or id: description, biomarkers, CPT, per-lab prices, labs, fasting/prep, turnaround, included tests (panels), FAQ, related conditions, order URL and a Markdown page URL.

NameTypeReqDescription
langstringSpanish prose where a translation exists (default en)
slugstringyesCatalog slug (from search_tests) or id, e.g. 'tsh', 'general-wellness-panel'
NameTypeReqDescription
foundboolean
itemobject
suggestionsarray

No examples provided.

interpret_results ~176

Flag each pasted lab value as low / normal / high against TestWell's physician-reviewed reference catalog (130+ markers; sex- and age-specific bands where they exist), with the reviewed 'what high/low suggests' copy, retest guidance, cited sources and links to the marker's page and, where one exists, its high/low interpretation page. Stateless — values are not stored or logged. Educational, not a diagnosis; the user's own report range takes precedence.

NameTypeReqDescription
ageinteger
postmenopausalboolean
pregnancyboolean
sexstring
valuesarrayyesResults to explain, e.g. [{marker:'TSH', value:5.2, unit:'mIU/L'}, {marker:'ferritin', value:12}]
NameTypeReqDescription
disclaimerstring
resultsarray
reviewedobject
summaryobject

No examples provided.

list_panels ~90

List TestWell's bundled panels (multi-test packages priced below the sum of their tests), optionally filtered by category or maximum price. Sorted by price.

NameTypeReqDescription
categorystringCatalog category, e.g. 'Hormones', 'General Health'
limitintegerMax results (default 25)
maxPricenumberOnly panels at or under this sticker price (USD)
NameTypeReqDescription
countnumber
labFeenumberUSD
panelsarray

No examples provided.

lookup_reference_range ~130

Physician-reviewed reference range for a blood test marker (130+ markers), filtered by sex and age when they matter, with what high and low values suggest, retest cadence, how to get tested, cited sources and the review date. Educational; the user's own report range takes precedence.

NameTypeReqDescription
ageinteger
markerstringyesMarker name or alias, e.g. 'TSH', 'ferritin', 'HbA1c', 'LDL'
postmenopausalboolean
pregnancyboolean
sexstring
NameTypeReqDescription
aliasesarray
browsestring
categorystring
citationsarray
filteredToQueryboolean
foundboolean
highSuggests
howToTestarray
lowSuggests
markerstring
measuresstring
rangesarray
retest
suggestionsarray
unitsarray

No examples provided.

quote_order ~153

Price a set of tests/panels exactly as TestWell's checkout would: per-lab prices for the user's state (New York and New Jersey route to BioReference; Rhode Island is not served), the single $6 lab processing fee, the total, items that can't be ordered and why, and a prefilled cart URL. Use this before quoting any total to a user.

NameTypeReqDescription
itemsarrayyesCatalog slugs or ids, e.g. ['tsh', 'vitamin-d']
labstringPreferred lab outside NY/NJ (default quest)
statestringUS state code or name where the user will be drawn, e.g. 'FL' or 'Florida'
NameTypeReqDescription
checkoutUrlPrefilled cart on test-well.com — purchases complete there; null when nothing is orderable
currencystring
errorstringPresent when ok=false, e.g. state not served
labstring
labFeenumberUSD
labNamestring
linesarray
notesarray
okboolean
statestring
subtotalnumberUSD
totalnumberAll-in total: subtotal + the single lab processing fee
unavailablearrayRequested items the routed lab cannot run in this state

No examples provided.

recommend_tests ~143

Suggest TestWell panels and tests for stated health goals (e.g. 'annual checkup', 'heart health', 'TRT monitoring') and/or symptoms (e.g. 'fatigue', 'hair loss'). Prefers a curated pre-built panel when one fits; otherwise assembles individual tests within a budget. Educational matching, not a diagnosis.

NameTypeReqDescription
budgetstringBudget band: low ≈ $80, medium ≈ $200, high ≈ $400
goalsarrayHealth goals, e.g. ['energy', 'thyroid']
symptomsarraySymptoms, e.g. ['always cold', 'weight gain']
NameTypeReqDescription
byGoalRecommended panel and alternatives for the stated goals
bySymptomPanels, individual tests and explanations for the stated symptoms
disclaimerstring
goalsarray
labFeenumberUSD
nextstringSuggested next tool call
symptomsarray

No examples provided.

search_tests ~198

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).

NameTypeReqDescription
categorystringCatalog category, e.g. 'Thyroid', 'Heart Health'
langstringReturn Spanish names/descriptions where a translation exists (default en)
limitintegerMax results (default 10)
orderableOnlybooleanExclude items listed as coming soon (default true)
querystringyesKeyword, biomarker, CPT code or health goal, e.g. 'vitamin d', 'TSH', '80053', 'cholesterol'
typestringRestrict to individual tests or bundled panels
NameTypeReqDescription
countnumber
itemsarray
labFeenumberUSD
langstring
querystring

No examples provided.

update_checkout ~65

Change items, state or buyer details on an open checkout session and get it re-priced. Returns the same session object as create_checkout.

NameTypeReqDescription
buyerobject
checkout_session_idstringyes
itemsarray
statestring
NameTypeReqDescription
idstringyes
line_itemsarrayyes
messagesarrayyes
statusstringyes
totalsarrayyes

No examples provided.

Common questions

What is the TestWell Lab Tests MCP server?

TestWell Lab Tests is an MCP server listed in the public MCP registry as com.test-well/testwell. Cash-pay lab tests: catalog search, all-in quotes by state, draw sites by ZIP, reviewed ranges. This page covers its hosted endpoint (https://www.test-well.com/mcp).

Is the TestWell Lab Tests MCP server safe to use?

TestWell Lab Tests scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the TestWell Lab Tests MCP server expose?

TestWell Lab Tests exposes 18 tools: search_tests, get_test, list_panels, recommend_tests, quote_order, and 13 more. Their descriptions and schemas cost roughly 2,189 tokens of context every time the server is loaded.

Does the TestWell Lab Tests MCP server require authentication?

No. We connected to TestWell Lab Tests without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the TestWell Lab Tests MCP server still maintained?

TestWell Lab Tests is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.