Skip to main content
Glama
turnnoblindeye

Wellness Project MCP

log_lab_results

Log blood test and biomarker results from lab reports, PDFs, or photos. Captures values, flags, and reference ranges for a single lab visit in one submission.

Instructions

Log one or more blood test or biomarker results. Use when the user shares lab values — copy-pasted from a Quest/LabCorp PDF, typed from a paper report, or described from a photo of their results.

GLUCOSE ROUTING: use this tool for glucose only when it is an actual lab/blood-draw result or part of a reported lab panel. Finger-stick, CGM, home meter, wearable, Apple Health, or Health Connect glucose — including a manual correction to daily glucose — belongs in log_wearable as blood_glucose_mg_dl, not here.

REQUIRED WORKFLOW: 1) call list_lab_markers for canonical names and LOINC codes. 2) for each marker the user provides, find the best match and use its canonical marker_name and loinc_code. 3) if no match exists, use the name as stated and omit loinc_code.

If the user says they have lab results but hasn't shared them, prompt: "You can paste the text from your lab report PDF, or upload a photo of the results page — I'll parse all the values at once."

INFER — do not ask: date (look for a collection/drawn date in the pasted text, default today), panel_name (from list_lab_markers for matched markers, infer for unmatched), flag (extract from the report if present: "H", "L", "HH", "LL", "A"), ref_range_low/high (parse from the report if shown), lab_name (from the report header, same for all markers in a visit).

Submit all markers from a single lab visit in one call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYesArray of individual lab marker results. Required — submit all markers from the visit in a single call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYesHuman-readable result text returned by the tool.

Schema Changelog

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

  1. First observedv1.2.1

TDQS

A4.8/5.0
Behavior5/5

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

Even though annotations mark this as readOnly=false, the description adds substantial behavioral context: the required list_lab_markers workflow, the infer-not-ask policy for date/panel_name/flag/reference ranges/lab_name, and the requirement to submit all markers from one visit in a single call. 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 long but densely informative and well organized with clear sections (glucose routing, workflow, inference policy). It front-loads the purpose and gives the most critical routing distinction early. Minor redundancy exists between the workflow section and schema field descriptions, but every sentence 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 lab-logging tool with nested result items and several inferable fields, this description is complete: it covers when to use it, how to prepare parameters, how to disambiguate from related tools, what to infer, and how to batch submissions. The output schema exists, so return-value details do not need to be repeated.

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 schema already documents each field well. The description adds extra parameter-level guidance: use canonical marker_name and loinc_code for matches, omit loinc_code when no match exists, infer defaults for several fields, and batch all markers from a visit into one results array.

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?

States a specific verb and resource: "Log one or more blood test or biomarker results." It also distinguishes from log_wearable by explicitly routing glucose measurements to that sibling, so an agent can tell them apart.

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 explicitly says when to use this tool (lab/blood-draw results from a PDF, paper report, or photo) and when not to use it (finger-stick, CGM, home meter, wearable glucose belongs in log_wearable). It also defines a required workflow with list_lab_markers and tells the agent what to do if results are mentioned but not shared.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/turnnoblindeye/wellness-project-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server