Skip to main content
Glama

TestWell Lab Tests

Calculate free testosterone (Vermeulen)

calculate_free_testosterone
Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
shbgYesSHBG in nmol/L
totalTYesTotal testosterone
albuminGdLNoAlbumin in g/dL (default 4.3)
totalTUnitNoDefault ng/dL

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
testsNo
inputsNo
methodNo
toolUrlNo
freePercentNo
freeTestosteroneNo
bioavailableTestosteroneNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "bioavailableTestosterone": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "ngdL": {
      +          "type": "number"
      +        },
      +        "nmolL": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "freePercent": {
      +      "type": "number"
      +    },
      +    "freeTestosterone": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "ngdL": {
      +          "type": "number"
      +        },
      +        "nmolL": {
      +          "type": "number"
      +        },
      +        "pgmL": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "inputs": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "albuminGdL": {
      +          "type": "number"
      +        },
      +        "shbg": {
      +          "type": "number"
      +        },
      +        "totalT": {
      +          "type": "number"
      +        },
      +        "totalTUnit": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "method": {
      +      "type": "string"
      +    },
      +    "tests": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "toolUrl": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already convey read-only, idempotent, non-destructive behavior. The description adds behavioral context beyond annotations by naming the underlying mass-action equation and clarifying the result is educational rather than diagnostic, which helps an agent set expectations without over-promising.

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 with no filler: the first states the calculation and method, the second adds the educational disclaimer. It is front-loaded with the verb and resource and every phrase earns its place.

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 deterministic calculation tool, the description plus annotations and schemas cover the method, purpose, safety profile, input semantics, and output expectations. No critical information an agent would need to invoke it correctly 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 units, defaults, and constraints. The description only names the three inputs (total testosterone, SHBG, albumin) and adds no meaning beyond the schema, which matches the baseline for high coverage.

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: calculate free and bioavailable testosterone from total testosterone, SHBG and albumin. It identifies the exact formula (Vermeulen 1999 mass-action equation) and distinguishes this from generic conversion or reference-range tools among the siblings.

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 states when to use the tool (when calculated free/bioavailable testosterone is needed) and adds an explicit boundary with 'Educational; not a diagnosis'. However, it does not name alternative sibling tools or say when to prefer them.

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.

TDQS

A4.2/5.0
Disambiguation4/5

Each tool has a distinct primary purpose, but compare_prices and compare_provider have overlapping comparison themes that could lead to misselection if an agent is not careful. The descriptions provide enough context to differentiate them, but the boundary between searching for a test and getting its full detail could also cause minor confusion.

Naming Consistency5/5

All tool names follow a clear verb_noun pattern with consistent snake_case formatting (e.g., calculate_free_testosterone, compare_prices, get_test, list_panels). The naming style is uniform and predictable across the entire set.

Tool Count5/5

13 tools is a well-scoped count for a lab test service covering search, details, pricing, reference ranges, interpretation, comparisons, and educational guides. Each tool earns its place without feeling redundant or bloated.

Completeness5/5

The tool set covers the full user journey: searching and viewing tests, panels, pricing and ordering quotes, reference ranges, interpretation, unit conversion, and finding draw sites. There are no obvious dead ends or significant missing operations for the stated purpose of a consumer-facing lab test information and ordering service.

Resources