Skip to main content
Glama

Pump settings history

get_settings_history
Read-only

Retrieve chronological pump settings (basal schedules, targets, ISF, carb ratios) to identify which were active at any time or track changes over a period.

Instructions

Every pump setting change that was in effect during the window, in chronological order: DIA, max basal rate, the programmed basal-rate schedule, and the time-segmented target, ISF and carb-ratio profiles.

THIS IS THE ANSWER for "what's my basal rate" — basalRateSchedule is the PROGRAMMED baseline (what the pump would run in manual mode), archived per settings snapshot. On a closed-loop account (CamAPS FX, Control-IQ, etc.) the algorithm overrides this continuously, so compare it against get_daily_insulin's actual delivered basal rather than expecting them to match, the gap between scheduledDailyBasalUnits and the real delivered total is itself a meaningful figure (how hard the algorithm is working relative to the programmed baseline).

Use it to establish which settings were active at a given time (essential before judging a bolus or an excursion), or to see how settings have been adjusted over a long span.

Glucose-based values (target, ISF) are in the configured unit. Basal-rate values are in units/hour, never unit-converted (not a glucose value). Effective timestamps are plain wall clock time (device-local), not UTC; the per-segment "from" times are pump-schedule clock-hours.

Returns: a settings array, each entry with its effective timestamp, DIA_hours, maxBasalRate (or null, some accounts never populate this key even though they do populate activeBasalProgram, they are independent, not a fallback pair), activeBasalProgram (the name of the currently active basal program/profile, or null if unavailable), basalRateSchedule (a list of {from, unitsPerHour} time segments, or null if this device/account has never shown it), scheduledDailyBasalUnits (or null), the targetBg, isf and carbRatio profiles (each a list of {from, value} time segments; a targetBg segment may also carry valueLow/valueHigh alongside value when the device reports a range rather than a single point — present only when the source data actually has them, no assumed relationship between value and the low/high pair), bgCorrectionThreshold (same shape, or null if this device/account has never shown it) — a separate correction-trigger level distinct from the ordinary target range, where the device populates it — plus bgGoal ({low, high}, a single overall goal range distinct from the time-segmented targetBg profile) and cgmAlerts ({lowGlucose, highGlucose, fallRate, riseRate}, each {enabled, limit}, or the whole object null if unavailable) — the DEVICE'S OWN configured alarm thresholds, a different concept from this extension's own configured low/high boundaries used for time-in-range. HONESTY CAVEAT: fallRate/riseRate read like rate-of-change alerts, not plain glucose levels — not independently confirmed against a real value sample, treat as a best-effort reading of Glooko's field naming.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endYesRequired. Window end as an ISO 8601 timestamp, e.g. 2026-06-20T00:00:00.000Z — plain wall clock time, same caveat as start (the "Z" is a format artifact, not a UTC claim). Treated as inclusive and must be after start. All timestamps returned by this API are likewise plain wall clock time, unconverted.
startYesRequired. Window start as an ISO 8601 timestamp, e.g. 2026-06-19T00:00:00.000Z. IMPORTANT: despite the trailing "Z", this is plain WALL CLOCK time, not true UTC — Glooko records only the literal date/time the patient's device showed, with no timezone attached. Use the patient's own wall-clock digits directly (no conversion): resolve "yesterday" or "last 3 weeks" straight into the matching wall-clock date and time. Treated as inclusive.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Though annotations only provide readOnlyHint=true, the description adds extensive behavioral context: chronological ordering, wall-clock timestamps vs UTC, units (units/hour), null behavior for several fields, independence of maxBasalRate and activeBasalProgram, range vs single-point representation, and a prominent honesty caveat about fallRate/riseRate being unconfirmed. This far exceeds what the annotation alone conveys and is essential for correct interpretation.

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 it is organized into clear sections: core purpose, usage guidance, and field-by-field return details. Every caveat (nulls, units, timezones, honesty warning) serves a real need given the complex return shape and absence of an output schema. It is front-loaded with the primary answer. It slightly loses a point for being overlong, but no sentence is wasted.

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?

Given there is no output schema, the description carries the full burden of explaining the return value. It covers every field with null semantics, units, shape, and even an explicit honesty caveat about unverified fields. It also explains relationships (e.g., scheduled vs delivered basal, targetBg vs bgGoal) and provides usage context. An agent has everything needed to call the tool and interpret results correctly.

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?

The input schema already provides 100% coverage of both parameters with detailed descriptions covering wall-clock semantics, inclusivity, ordering, and formatting. The tool description mainly reinforces the timestamp caveat but does not add new parameter-level meaning beyond what the schema documents, so the baseline of 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 precise verb and resource: 'Every pump setting change that was in effect during the window, in chronological order' followed by an explicit enumeration of the contained fields (DIA, max basal rate, basal schedule, target/ISF/carb profiles). It also differentiates itself from siblings like get_daily_insulin by clarifying that basalRateSchedule is the programmed baseline, not the actual delivered amount, making the tool's scope unambiguous.

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 declares this tool the answer for 'what's my basal rate', explains the key use case (establishing which settings were active at a given time, or reviewing long-span adjustments), and names the sibling tool get_daily_insulin for comparison, even describing how to interpret the gap between scheduled and delivered basal. This gives clear when-to-use and when-to-look-elsewhere guidance.

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