Skip to main content
Glama
adminpb

Nightscout MCP Server

by adminpb

What is this?

Nightscout MCP is a Model Context Protocol server that bridges your Nightscout CGM instance with AI assistants. Ask questions about your glucose data in natural language — the AI gets structured access to your readings, treatments, profiles, statistics, and pattern analysis.

"What's my TIR for the past week?" "How did that pizza affect my glucose?" "Detect patterns in my overnight readings" "Compare training days vs rest days"

Works with any MCP-compatible client.


Related MCP server: MCP Nightscout

⚡ Quick Start

# 1. Clone and install
git clone https://github.com/adminpb/Nightscout-MCP.git
cd Nightscout-MCP
npm install

# 2. Build
npm run build

# 3. Configure your MCP client (see below)

MCP Client Configuration

Add to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "nightscout": {
      "command": "node",
      "args": ["C:\\Magic\\Nightscout-MCP\\dist\\index.js"],
      "env": {
        "NIGHTSCOUT_URL": "https://your-nightscout.example.com",
        "NIGHTSCOUT_TOKEN": "your-read-token",
        "NIGHTSCOUT_UNITS": "mmol/L",
        "NIGHTSCOUT_LOCALE": "en"
      }
    }
  }
}

🔧 Tools

Reading Data

Tool

Description

get_current_glucose

Latest glucose with trend arrow ↗, delta, age, and status

get_glucose_history

SGV entries for any time period — hours lookback or exact date range

get_treatments

Insulin boluses, carb entries, notes, exercise — with summaries

get_profile

Active profile: ISF, ICR, basal rates, target ranges, DIA

get_device_status

Pump/sensor/loop status, IOB, COB, battery, predictions

glucose_at_time

Glucose at a specific moment: "what was my BG at 3 AM?"

find_events

Search treatments/notes by text or type: "when did I change my sensor?"

Analytics

Tool

Description

get_statistics

TIR, average glucose, estimated HbA1c, GMI, SD, CV, time-in-ranges

get_daily_report

Full day summary: glucose stats + treatments + notable events

detect_patterns

Automatic pattern recognition: overnight lows, dawn phenomenon, post-meal spikes, variability

compare_periods

Side-by-side comparison of two periods: training vs rest, this week vs last

analyze_meal

Automatic post-meal analysis: peak, time-to-peak, rise, recovery, bolus assessment

overnight_analysis

Detailed overnight report: stability, drift, dawn phenomenon, basal adequacy

a1c_estimator

Project future HbA1c based on CGM trends and optional last lab result

weekly_comparison

One-call this week vs last week with improvement indicators

insulin_sensitivity_check

Real-world ISF analysis from correction boluses vs profile

carb_ratio_check

Real-world ICR analysis from meal boluses vs profile

compression_low_analysis

Detect false lows from sensor compression during sleep

export_csv

Export glucose + treatments as CSV for doctors or spreadsheets

Writing Data

Tool

Description

add_treatment

Add insulin, carbs, exercise, site change, or any treatment entry

add_note

Quick timestamped note — meals, symptoms, activities

Write tools require NIGHTSCOUT_READONLY=false.

📋 Prompts

Pre-built prompt templates for common workflows:

Prompt

What it does

daily_review

Comprehensive analysis of today's glucose patterns

meal_analysis

Post-meal glucose response assessment

weekly_summary

7-day report with TIR trends and recommendations

optimization_advice

Data-driven suggestions for basal/ISF/ICR adjustments

📦 Resources

URI

Description

nightscout://status

Server status, API permissions, version

nightscout://profile/current

Full active profile as context


⚙️ Configuration

Variable

Required

Default

Description

NIGHTSCOUT_URL

Your Nightscout instance URL

NIGHTSCOUT_TOKEN

✅*

Read token (recommended)

NIGHTSCOUT_API_SECRET

✅*

Or API secret (hashed automatically)

NIGHTSCOUT_UNITS

mmol/L

Glucose units: mmol/L or mg/dL

NIGHTSCOUT_READONLY

true

Set false to enable write operations

NIGHTSCOUT_LOCALE

en

Language: en, uk

* Either NIGHTSCOUT_TOKEN or NIGHTSCOUT_API_SECRET is required.


🌍 Localization

Nightscout MCP supports multiple languages. All tool names and MCP interface remain in English for compatibility. Locale affects status labels, messages, and report strings in tool responses.

Locale

Language

en

English (default)

uk

Українська (Ukrainian)

Adding a new locale: create a translation object in src/i18n/index.ts following the TranslationStrings interface. PRs welcome!


🔒 Security

  • Tokens never reach the AI — only processed data is returned via MCP

  • Read-only by default — write operations require explicit opt-in

  • Input validation — all parameters validated with Zod schemas

  • SHA1 hashing — API secrets are hashed before transmission


🛠 Development

npm run dev      # TypeScript watch mode
npm run build    # Production build
npm start        # Run the server

Project Structure

src/
├── index.ts              # MCP server — tools, resources, prompts
├── config.ts             # Environment variable configuration
├── client.ts             # Nightscout REST API v1 client
├── i18n/
│   └── index.ts          # Internationalization (en, uk)
└── tools/
    ├── get_current_glucose.ts
    ├── get_glucose_history.ts
    ├── get_statistics.ts
    ├── get_treatments.ts
    ├── get_profile.ts
    ├── get_device_status.ts
    ├── get_daily_report.ts
    ├── detect_patterns.ts
    ├── compare_periods.ts
    ├── analyze_meal.ts
    ├── overnight_analysis.ts
    ├── find_events.ts
    ├── glucose_at_time.ts
    ├── a1c_estimator.ts
    ├── export_csv.ts
    ├── weekly_comparison.ts
    ├── insulin_sensitivity_check.ts
    ├── carb_ratio_check.ts
    ├── compression_low_analysis.ts
    ├── add_treatment.ts
    └── add_note.ts

📊 Example Queries

Once connected, you can ask your AI assistant:

"What's my glucose right now?"
"Show my TIR for the past 7 days"
"Analyze how coffee with kefir spiked my glucose"
"Give me a daily report for yesterday"
"What were my lows this week?"
"Do I have a dawn phenomenon?"
"Detect patterns in my last 14 days"
"Compare my glucose on workout days vs rest days"
"Are my basal rates set correctly based on overnight patterns?"
"Is my ISF accurate? Check correction bolus data"
"Am I bolusing enough for meals? Check my carb ratios"
"How am I doing this week compared to last?"
"Are my nighttime lows real or compression artifacts?"
"Estimate my HbA1c for my lab appointment on March 16"
"Export my last 2 weeks as CSV for my doctor"
"Log 45g carbs and 4U insulin for lunch"

Roadmap

  • Core tools: glucose, treatments, statistics, profiles, device status

  • Daily reports with notable events

  • Localization (EN / UK)

  • detect_patterns — overnight lows, dawn phenomenon, post-meal spikes, variability

  • add_treatment / add_note — write operations

  • compare_periods — side-by-side period comparison

  • analyze_meal / overnight_analysis — deep analytics

  • find_events / glucose_at_time — search and lookup

  • a1c_estimator — future HbA1c projection

  • export_csv — data export for doctors

  • API response caching with TTL

  • weekly_comparison — auto this-week vs last-week

  • insulin_sensitivity_check — real ISF from correction data

  • carb_ratio_check — real ICR from meal data

  • compression_low_analysis — false low detection

  • npm package publishing

  • Docker image

  • More locales (ES, DE, PL, ...)


📄 License

GPL v3 with additional terms under Section 7:

  • Attribution required — original author adminpb <adminpb@ukr.net> must be credited in all copies and derivatives

  • 🇷🇺 Russia restriction — use of this software within the Russian Federation, by RF citizens, or by RF-registered entities is expressly prohibited

Free and open source for everyone else. See LICENSE for full details.


Що це?

Nightscout MCP — це сервер Model Context Protocol, який з'єднує ваш Nightscout з AI-асистентами. Запитуйте про глюкозу природною мовою — AI отримує структурований доступ до показників, лікування, профілів, статистики та аналізу патернів.

«Який у мене TIR за останній тиждень?» «Як піца вплинула на глюкозу?» «Знайди патерни в нічних показниках» «Порівняй дні з тренуванням і без»

Швидкий старт

git clone https://github.com/adminpb/Nightscout-MCP.git
cd Nightscout-MCP
npm install
npm run build

Додайте в конфігурацію вашого MCP-клієнта:

{
  "mcpServers": {
    "nightscout": {
      "command": "node",
      "args": ["C:\\Magic\\Nightscout-MCP\\dist\\index.js"],
      "env": {
        "NIGHTSCOUT_URL": "https://ваш-nightscout.example.com",
        "NIGHTSCOUT_TOKEN": "ваш-токен",
        "NIGHTSCOUT_UNITS": "mmol/L",
        "NIGHTSCOUT_LOCALE": "uk"
      }
    }
  }
}

Інструменти

Читання даних

Інструмент

Опис

get_current_glucose

Поточна глюкоза + тренд ↗, дельта, вік показника

get_glucose_history

Історія SGV за будь-який період

get_treatments

Болюси, вуглеводи, нотатки, вправи

get_profile

Профіль: ISF, ICR, базальні рати, цільові діапазони

get_device_status

Помпа, сенсор, IOB, COB, батарея

glucose_at_time

Глюкоза в конкретний момент: «яка була о 3 ночі?»

find_events

Пошук по записах: «коли міняв сенсор?», «знайди всі записи про каву»

Аналітика

Інструмент

Опис

get_statistics

TIR, середня, HbA1c, GMI, SD, CV, час у діапазонах

get_daily_report

Повний звіт за день

detect_patterns

Патерни: нічні гіпо, феномен світанку, постпрандіальні піки, варіабельність

compare_periods

Порівняння двох періодів: тренування vs відпочинок, цей тиждень vs минулий

analyze_meal

Аналіз після їжі: пік, час до піку, підйом, відновлення, оцінка болюсу

overnight_analysis

Нічний звіт: стабільність, дрейф, феномен світанку, оцінка базалу

a1c_estimator

Прогноз HbA1c на дату аналізу на основі CGM трендів

weekly_comparison

Цей тиждень vs минулий з індикаторами покращення

insulin_sensitivity_check

Реальна ISF з корекційних болюсів vs профіль

carb_ratio_check

Реальний ICR з їжі vs профіль

compression_low_analysis

Виявлення хибних лоу від компресії сенсора під час сну

export_csv

Експорт глюкози + лікування в CSV для лікаря або Excel

Запис даних

Інструмент

Опис

add_treatment

Додати інсулін, вуглеводи, вправу, заміну катетера

add_note

Швидка нотатка з відміткою часу

Запис потребує NIGHTSCOUT_READONLY=false.

Шаблони запитів (Prompts)

Шаблон

Що робить

daily_review

Аналіз глюкози за сьогодні

meal_analysis

Вплив їжі на глюкозу

weekly_summary

Тижневий звіт з трендами

optimization_advice

Рекомендації по налаштуваннях

Змінні середовища

Змінна

Обов'язкова

Опис

NIGHTSCOUT_URL

URL Nightscout інстансу

NIGHTSCOUT_TOKEN

✅*

Токен доступу (рекомендовано)

NIGHTSCOUT_API_SECRET

✅*

Або API secret

NIGHTSCOUT_UNITS

mmol/L або mg/dL

NIGHTSCOUT_READONLY

true (за замовч.) або false

NIGHTSCOUT_LOCALE

en (за замовч.) або uk

Безпека

  • Токени ніколи не передаються в AI — тільки оброблені дані

  • Read-only за замовчуванням — запис вимагає явного увімкнення

  • Валідація входу — Zod-схеми для всіх параметрів

Локалізація

Встановіть NIGHTSCOUT_LOCALE=uk для українських статусів та повідомлень. Назви інструментів залишаються англійською для сумісності.

Хочете додати свою мову? Створіть об'єкт перекладу в src/i18n/index.ts за інтерфейсом TranslationStrings.

Ліцензія

GPL v3 з додатковими умовами (Секція 7):

  • Обов'язкове зазначення автора — оригінальний автор adminpb <adminpb@ukr.net> має бути вказаний у всіх копіях та похідних роботах

  • 🇷🇺 Обмеження для РФ — використання цього ПЗ на території Російської Федерації, громадянами РФ або юридичними особами, зареєстрованими в РФ, суворо заборонено

Безкоштовний відкритий код для всіх інших. Деталі в LICENSE.


Available Tools

21 tools
a1c_estimatorA

Estimate future HbA1c based on current CGM data and optional last lab result. Uses GMI from recent data weighted with historical HbA1c decay. Useful before lab visits to set expectations.

ParametersJSON Schema
NameRequiredDescriptionDefault
last_a1cNoLast measured HbA1c (%). Used for weighted projection.
target_dateNoDate of next lab test (YYYY-MM-DD). If omitted, estimates for 30 days from now.
last_a1c_dateNoDate of last HbA1c test (YYYY-MM-DD).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the computation method ('GMI from recent data weighted with historical HbA1c decay') and indicates reliance on existing CGM data. It does not mention edge cases or accuracy caveats, but there are no destructive or auth-related behaviors to disclose.

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 short sentences, each with a distinct role: action, method, and use case. Front-loaded with the operative verb and contains no filler.

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

Completeness4/5

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

For a three-optional-parameter estimator with no output schema, the description conveys the return concept (estimated future HbA1c) and a practical context (pre-lab visit). It leaves minor gaps around parameter pairing and exact return format, but the core calling context is adequately covered.

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 description coverage is 100%, so the baseline is 3. The description adds value by clarifying that the lab result is optional and by explaining the weighting logic behind the historical parameters. It does not explicitly state that last_a1c and last_a1c_date should be supplied together, which would have strengthened it.

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 object ('Estimate future HbA1c') and names the inputs ('current CGM data and optional last lab result'). No sibling tool performs prediction, so this clearly distinguishes a1c_estimator from the surrounding read/analysis tools.

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 provides a clear use case: 'Useful before lab visits to set expectations.' It does not name alternative tools or exclusion conditions, but no sibling offers A1c estimation, so the context is sufficiently clear.

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

add_noteA

Quickly add a timestamped note to Nightscout. Useful for logging meals, activities, symptoms, or any context. Requires NIGHTSCOUT_READONLY=false.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNote text
created_atNoTimestamp (ISO 8601). Defaults to now.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses a genuinely useful operational precondition ('Requires NIGHTSCOUT_READONLY=false') and the timestamping behavior, both of which help an agent decide whether and how to invoke it. It does not disclose success/failure behavior, return value, or side effects, which prevents a higher score.

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 short sentences, each earning its place: the action is front-loaded, the use cases follow, and the prerequisite closes. There is no filler or redundancy, and the critical NIGHTSCOUT_READONLY requirement is included without bloating the text.

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

Completeness4/5

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

For a flat two-parameter write tool with full schema coverage, the description covers the essentials: what it does, when to use it, and a configuration precondition. The notable gaps are the absence of return-value information (no output schema) and explicit routing against the closely related add_treatment sibling, but these are minor given the tool's low complexity.

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% — the schema already documents text ('Note text') and created_at ('Timestamp (ISO 8601). Defaults to now.'). The description's 'timestamped' wording only echoes the schema's created_at default rather than adding new semantic meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('add a timestamped note to Nightscout') and reinforces it with concrete use cases (meals, activities, symptoms). It implicitly distinguishes itself from the sibling add_treatment by framing this as general context logging, but it never names the alternative explicitly, which keeps it from a 5.

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?

The use-case list ('logging meals, activities, symptoms, or any context') provides clear context for when this tool is appropriate, and the broad 'any context' signals general-purpose logging rather than treatment entry. However, it does not say when not to use it or direct the agent to add_treatment for treatment entries, leaving that routing decision to inference.

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

add_treatmentA

Add a treatment entry to Nightscout: insulin bolus, carbs, note, exercise, site change, etc. Requires NIGHTSCOUT_READONLY=false. Returns the created entry for confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
carbsNoCarbs in grams
notesNoFree text note
insulinNoInsulin amount in units
durationNoDuration in minutes (for exercise, temp basal)
eventTypeYesTreatment type: 'Note', 'Meal Bolus', 'Correction Bolus', 'Carb Correction', 'Exercise', 'Temp Basal', 'Site Change', 'Sensor Start'
created_atNoTimestamp (ISO 8601). Defaults to now.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description must carry the behavioral disclosure burden. It explicitly states that the tool creates a treatment entry and that the created entry is returned for confirmation, which is the core behavioral contract. It does not go into error cases or side effects, but the main write behavior and response behavior are transparent.

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 compact and front-loaded: core action first, then requirement, then return behavior. The phrase 'etc.' is slightly vague but does not derail clarity. The sentence order makes it easy for an agent to parse quickly.

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

Completeness4/5

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

Given that the schema fully documents all parameters and the description covers action, prerequisite, and return value, the tool is reasonably complete for an agent to invoke correctly. Minor gaps are the lack of guidance on when to use add_note versus add_treatment and no explicit mention of validation failures, but these are not blocking.

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 schema description coverage is 100%, so all six parameters already have descriptive meaning in the schema. The description lists some example entry types that map to eventType, but it adds little parameter-level information beyond what the schema already says, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Add a treatment entry to Nightscout') and enumerates the kinds of entries it supports, from insulin bolus to site change. It is clear about what the tool does, though it does not explicitly differentiate itself from the nearby sibling add_note, which appears to overlap with the 'note' entry type.

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?

The description gives a clear operational prerequisite: NIGHTSCOUT_READONLY must be false. This tells an agent when the tool is permitted to be used. However, it does not mention alternatives or explicitly describe when not to use this tool, such as preferring add_note for simple notes.

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

analyze_mealA

Automatically analyze post-meal glucose response. Finds the meal bolus/carbs entry, tracks glucose before, during, and after the meal. Calculates: pre-meal glucose, peak value, time to peak, rise amount, time to return to range. Assesses bolus adequacy.

ParametersJSON Schema
NameRequiredDescriptionDefault
meal_timeNoMeal time (ISO 8601 or 'YYYY-MM-DD HH:mm'). If omitted, finds the most recent meal bolus.
hours_afterNoHours to analyze after the meal (default 3)

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full behavioral burden. It clearly discloses the analysis workflow: locating the meal/carbs entry, tracking glucose before/during/after, computing specific metrics, and assessing bolus adequacy. It does not explicitly state that the operation is read-only or describe no-meal-found behavior, but it is far more transparent than a minimal description.

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 four tight sentences with no filler. The core purpose is front-loaded, the workflow is summarized clearly, and the metric list is compressed into an efficient enumeration. Every sentence contributes functional information.

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

Completeness4/5

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

With no output schema and no annotations, the description does a good job of explaining the workflow and the main computed outputs. It lacks explicit details about return format and edge cases like missing meal entries, but for a tool with two optional parameters it is largely complete.

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%, and the schema already documents both meal_time and hours_after with defaults, formats, and bounds. The description adds no parameter-specific detail, but it does not need to because the schema handles parameter semantics adequately.

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 states a specific verb ('analyze') and a specific resource ('post-meal glucose response'), then enumerates the exact workflow and calculated metrics. This makes it easy to distinguish from related siblings such as glucose_at_time or overnight_analysis without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The post-meal framing implies when the tool should be used, and the mention of bolus adequacy gives some context. However, it does not explicitly direct the agent away from alternatives or provide exclusions, leaving tool selection partially to inference.

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

carb_ratio_checkA

Analyze real-world carb ratios by evaluating meal boluses and their post-meal glucose impact. Compares actual ICR effectiveness vs profile settings. Identifies if you're under- or over-bolusing for meals.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays to analyze (default 7)
target_rise_maxNoMax acceptable post-meal rise in mg/dL (default 60)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose meaningful behavior: it evaluates post-meal glucose impact, compares against profile settings, and classifies under-/over-bolusing. However, it does not state whether the operation is read-only, what data is required, or any limitations of the analysis.

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 wasted words. The primary action and object are front-loaded, and the second sentence adds valuable interpretive context about what the analysis identifies.

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

Completeness4/5

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

For a lightweight analysis tool with only two optional parameters and a fully documented schema, the description covers purpose, behavior, and expected interpretative output. It does not describe result formatting, but it does not have an output schema and still gives enough outcome context to guide invocation. It lacks sibling differentiation, but that gap is more about usage guidance than completeness.

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 baseline is 3. The description does not add any parameter-specific meaning beyond the schema, but it also does not need to since days and target_rise_max are already documented in the input schema.

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 states a specific verb-resource pair: 'Analyze real-world carb ratios' and 'Compares actual ICR effectiveness vs profile settings.' It also clarifies the outcome ('Identifies if you're under- or over-bolusing for meals'), making the tool's role distinct from generic statistics or glucose history tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than explicit: the description is clear that this tool is for evaluating meal boluses and carb ratios, but it does not state when to prefer it over siblings like analyze_meal or insulin_sensitivity_check, nor does it give exclusions or when-not-to-use guidance.

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

compare_periodsA

Compare glucose statistics between two time periods side by side. Use for: training vs rest days, this week vs last week, before vs after medication changes, weekdays vs weekends. Returns TIR, average, SD, CV, HbA1c, and time-in-ranges for both periods with deltas.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelANoLabel for period A (e.g., 'Training days')
labelBNoLabel for period B (e.g., 'Rest days')
periodA_toYesPeriod A end date (ISO 8601 or YYYY-MM-DD)
periodB_toYesPeriod B end date (ISO 8601 or YYYY-MM-DD)
periodA_fromYesPeriod A start date (ISO 8601 or YYYY-MM-DD)
periodB_fromYesPeriod B start date (ISO 8601 or YYYY-MM-DD)

TDQS

A3.8/5.0
Behavior3/5

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

The description states what the call returns (TIR, average, SD, CV, HbA1c, time-in-ranges, deltas), which is behaviorally useful. However, with no annotations, it omits any statement about side effects (even read-only), period handling, or data requirements, leaving some behavioral aspects to inference.

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?

Two sentences, front-loaded with the core action, then usage contexts, then return values. No repetition or filler; every segment adds information and the structure is easy to scan.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description covers the core purpose, when to use it, and what will be returned. It leaves minor gaps like date inclusivity and overlapping periods, but the schema covers parameter formats and the return list is explicit.

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 describes all six parameters with 100% coverage, so the baseline is 3. The description does not add parameter-level detail beyond the schema, though it does set expectations for what the parameters are used for by describing the comparison output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Compare') and resource ('glucose statistics between two time periods side by side'), making the tool's function immediately clear. It does not explicitly name a sibling tool such as weekly_comparison to differentiate from, though the use-case list helps distinguish it from single-period tools like get_statistics.

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?

The 'Use for:' clause gives concrete scenarios (training vs rest days, this week vs last week, medication changes, weekdays vs weekends), providing clear context for when the tool is appropriate. It does not mention when not to use it or point to alternatives, so exclusion guidance is missing.

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

compression_low_analysisA

Detect probable compression lows (false low readings caused by lying on the CGM sensor). Identifies characteristic patterns: sudden drop during sleep hours, quick V-shaped recovery without treatment, readings that seem too low for the context. Helps distinguish real lows from sensor artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays to analyze (default 7)

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly conveys a non-mutating analysis behavior, discloses the heuristic nature ('probable'), and explains the pattern criteria used. It does not describe the output shape or limitations, but there are no destructive or auth-related traits suggested.

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?

Two sentences with no filler. The core action and definition are front-loaded, and each listed pattern contributes meaningful detail without redundancy.

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

Completeness4/5

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

For a tool with a single optional, well-documented parameter, the description provides enough for an agent to select and invoke it correctly. The main gap is the lack of explicit return-format information, but this is minor given the low complexity and clear detection purpose.

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 only parameter, days, is already fully documented in the schema with type, range, and default. The description adds no parameter-level semantics beyond what the schema provides, so the baseline score of 3 applies.

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 action ('Detect probable compression lows') and defines what that means: false low readings caused by lying on the CGM sensor. It lists characteristic identifying patterns and explicitly distinguishes the tool's purpose from real lows, making it clearly distinct from generic siblings like detect_patterns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case: investigating suspicious low readings, especially during sleep, with quick recovery and no treatment. However, it gives no explicit when-to-use or when-not-to-use guidance and does not reference alternatives like overnight_analysis or detect_patterns.

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

detect_patternsA

Analyze glucose data over multiple days to detect recurring patterns: overnight lows, dawn phenomenon, post-meal spikes, time-of-day trends, and day-to-day variability. Requires at least 3 days of data.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to analyze (default 7, min 3, max 30)
targetLowNoLow target in mg/dL (default 70)
targetHighNoHigh target in mg/dL (default 180)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. It discloses the analysis scope and the minimum-data requirement, implying a non-mutating read/analysis operation. However, it does not explicitly confirm that no data is written, nor does it describe handling of missing data or the exact form of the returned result.

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 a single, well-structured sentence that front-loads the action and resource, then lists the pattern categories and the data requirement. Every phrase earns its place, with no repetition of schema details or filler.

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

Completeness4/5

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

For a moderately complex analysis tool with no output schema or annotations, the description gives enough directional completeness by enumerating the detected pattern types and the 3-day minimum. It omits explicit output-format details and does not differentiate from sibling tools, but the named patterns are sufficient for an agent to select and invoke the tool 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?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the days minimum but adds no additional meaning for targetLow or targetHigh beyond what the schema already provides (mg/dL units and defaults).

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 states a specific verb ('Analyze'), a specific resource ('glucose data over multiple days'), and a concrete goal ('detect recurring patterns') with enumerated pattern categories. This clearly distinguishes it from single-point tools like get_current_glucose or get_glucose_history and from summary-oriented tools like get_statistics.

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?

The description provides clear usage context: use this tool when you need multi-day recurring-pattern detection across several named categories. It also states an explicit prerequisite ('Requires at least 3 days of data'), which helps an agent decide whether the tool is applicable. It does not name alternative tools or exclusion cases, so it does not reach a 5.

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

export_csvA

Export glucose data (and optionally treatments) as CSV text. Useful for sharing with healthcare providers, importing into spreadsheets, or further analysis. Returns CSV as text content.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoHours to export (default 24, max 720 = 30 days)
dateToNoEnd date (ISO 8601)
dateFromNoStart date (ISO 8601)
include_treatmentsNoInclude treatments in export (default false)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that the return value is 'CSV as text content' and that treatments are optionally included. However, it does not mention defaults, timezone handling, result limits, or whether the operation has any side effects. For a read-style export tool this is adequate, but not rich.

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 three sentences with no wasted words. The main action is front-loaded, the use cases are a useful second sentence, and the explicit return type in the third sentence is essential given the lack of an output schema. Every sentence earns its place.

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

Completeness4/5

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

The tool is simple with four optional parameters and no output schema, so the description covers the essential context: what is exported, the output format, and when to use it. It does not explain the exact CSV structure or default behavior, but those are not required for correct invocation and are partially covered by the schema descriptions.

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 baseline is 3. The description adds minimal parameter meaning: it mentions the optional treatments inclusion, which maps to include_treatments, but it does not elaborate on hours or date range parameters. The schema already documents those adequately.

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: 'Export glucose data (and optionally treatments) as CSV text.' This leaves no doubt about what the tool does, and the CSV output format immediately distinguishes it from sibling tools that return JSON or analytics summaries. It clearly states what is produced and for whom.

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?

The description provides clear context for when this tool is appropriate: 'sharing with healthcare providers, importing into spreadsheets, or further analysis.' It does not explicitly name alternative tools or state when not to use it, but the use cases are specific enough to guide an agent.

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

find_eventsA

Search treatment entries by text in notes or by event type. Use to answer: 'when did I last change my sensor?', 'show all coffee entries', 'find exercise logs this week'. Searches up to 30 days of history.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoHours to look back (default 168 = 7 days)
queryNoText to search in notes (case-insensitive)
dateToNoEnd date (ISO 8601)
dateFromNoStart date (ISO 8601)
eventTypeNoFilter by event type: 'Note', 'Meal Bolus', 'Site Change', 'Sensor Start', 'Exercise', etc.

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds a meaningful constraint—'Searches up to 30 days of history'—and makes clear this is a search/read-style operation rather than a mutation. It does not mention result ordering, result count, or how query and eventType interact, but it covers the most operationally relevant behavior.

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 three tight sentences with no filler. It front-loads the core operation, gives practical examples, and ends with the key temporal limitation. Every sentence earns its place.

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

Completeness4/5

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

For a search tool with no output schema, the description covers the essential context: what is searched, how it is searched, when to use it, and the history limit. All parameters are documented in the schema. A small gap remains around whether query and eventType can be combined or how the optional date ranges interact with the 30-day cap, but overall the description is sufficient for correct selection and invocation.

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 schema has 100% description coverage for all five parameters, so the baseline is 3 even without additional description-level parameter detail. The description's mention of searching by 'notes text' and 'event type' aligns with the query and eventType parameters, and '30 days' matches the hours maximum, but it adds no parameter semantics beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource ('Search treatment entries') and names two search dimensions: text in notes and event type. It also gives concrete example queries that clarify the tool's intent. It does not explicitly contrast the tool with siblings like get_treatments, so it stops just short of full differentiation.

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?

The description provides explicit natural-language use cases, such as 'when did I last change my sensor?' and 'show all coffee entries', which tells an agent when this tool is appropriate. It also communicates the 30-day search window as an important boundary. It does not say when not to use it or name alternatives, so it misses the top score.

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

get_current_glucoseA

Get the current (latest) glucose value with trend direction, delta from previous reading, and how old the reading is. Always call this first to understand the current state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It transparently states what the tool returns, including how old the reading is, which is useful staleness information. It does not mention edge cases like missing or expired glucose data, but for a simple read-only getter this is a minor gap.

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 compact sentences with no filler. The first sentence states the operation and output fields, and the second gives a crisp usage directive. Every sentence earns its place.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description explains the return contents and provides an invocation-order hint. It is sufficient for an agent to know what this tool does and roughly what to expect, though specifying units or behavior for unavailable readings would make it fully complete.

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?

The tool has zero parameters, so the description naturally cannot add parameter-level meaning. The baseline of 4 applies here; no further documentation is needed.

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 clearly specifies a concrete operation: get the current/latest glucose value. It also enumerates the key returned components (trend direction, delta, reading age), which distinguishes it from sibling tools like get_glucose_history and glucose_at_time.

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?

The instruction 'Always call this first to understand the current state' gives explicit ordering guidance and establishes its role as the entry point. It does not name alternatives or explicitly say when not to use it, but the 'current' qualifier makes the intended usage clear.

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

get_daily_reportA

Generate a comprehensive daily report: glucose stats (min/max/avg/TIR), all treatments (insulin, carbs, notes), time in ranges, and notable events. Perfect for daily review.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate to report on (YYYY-MM-DD). Defaults to today.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description itself must convey behavior. It clearly indicates a read-only aggregation/reporting action and spells out the report contents, including the notable-events component. It could add details about output format or data availability, but the core behavioral profile is transparent.

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?

Every sentence earns its place: one sentence specifies the tool's output components and a second gives a clear use case. The core action and contents are front-loaded with no filler.

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

Completeness4/5

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

For a one-optional-parameter tool with no output schema, the description provides enough to decide and invoke correctly: it names the date scope (daily) and lists the expected contents. It stops short of stating return formatting or clarifying edge cases like empty days, but these are minor given the tool's simplicity.

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 date parameter is already fully documented. The description only reinforces 'daily' without adding format, default behavior, or edge-case guidance beyond the schema.

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 'Generate' and a clear resource 'daily report', then enumerates its contents (glucose min/max/avg/TIR, treatments, time-in-ranges, notable events). This distinguishes it from siblings like get_statistics or get_treatments by positioning it as the consolidated daily view.

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?

The phrase 'Perfect for daily review' gives a clear use context. The description conveys this is the aggregate daily overview, which implicitly differentiates it from narrower siblings, but it does not explicitly name alternatives or state when not to use it.

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

get_device_statusA

Get device status: pump reservoir/battery, sensor info, loop status, active IOB (insulin on board), COB (carbs on board), and predictions. Shows the current state of the diabetes management system.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of recent statuses (default 1)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the safety/behavior burden. It signals a non-mutating read via 'Get' and 'Shows' and describes the returned status categories. It does not mention staleness, data source caveats, or response structure, but for a getter of this scope the disclosure is adequate.

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?

Two sentences with no filler; the main result is front-loaded and the items are a compact list. Every phrase adds information.

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

Completeness4/5

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

The tool is simple (one optional parameter) and the schema documents that parameter. The description covers the purpose and the categories returned. It leaves output formatting details unspecified, but no output schema exists and the itemized list is enough for an agent to decide whether to call it.

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 coverage is 100%: the only parameter, count, has a description, min/max, and default in the schema. The tool description adds nothing about count beyond calling them 'recent statuses', so a 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 uses a specific verb ('Get') and resource ('device status') and enumerates the concrete contents (reservoir/battery, sensor info, loop status, IOB, COB, predictions). This distinguishes it from siblings like get_current_glucose or get_glucose_history even without naming them.

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 frames the tool as a current-state snapshot ('Shows the current state of the diabetes management system'), which tells an agent when to choose it over history/statistics tools. It does not explicitly list exclusions or alternative tool names.

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

get_glucose_historyA

Get glucose reading history for a specified time period. Returns SGV values with timestamps and trend directions. Use 'hours' for simple lookback or 'dateFrom'/'dateTo' for precise ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax number of entries to return (default: auto based on period)
hoursNoNumber of hours to look back (1-168, default 24)
dateToNoEnd date (ISO 8601). Defaults to now.
dateFromNoStart date (ISO 8601). Overrides hours if set.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the return content (SGV values, timestamps, trend directions) and parameter precedence, which is helpful. However, it does not mention ordering, default count behavior, timezone handling, error cases, or access requirements, leaving some behavioral gaps.

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?

Two tight sentences with no filler. The core purpose and return value are front-loaded, and the parameter usage guidance is placed second. Every sentence contributes useful information.

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

Completeness4/5

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

For a simple read-only history tool with no output schema, the description covers the main invocation concerns: what data is returned and how to specify the time window. Minor gaps like default count and ordering do not prevent correct usage.

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 baseline is 3. The description adds meaningful selection guidance by framing 'hours' as a simple lookback and 'dateFrom'/'dateTo' as precise range control, which helps an agent choose the right parameter combination beyond what the schema states.

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 uses a specific verb ('Get'), names a concrete resource ('glucose reading history'), and specifies what is returned ('SGV values with timestamps and trend directions'). This clearly distinguishes it from siblings like get_current_glucose and glucose_at_time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful parameter-level guidance ('Use 'hours' for simple lookback or 'dateFrom'/'dateTo' for precise ranges'), but it does not explicitly contrast this tool with alternatives or state when not to use it. Usage context is implied by the tool name and description rather than made explicit.

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

get_profileA

Get the active Nightscout profile: insulin sensitivity factor (ISF), insulin-to-carb ratio (ICR), basal rates, target glucose ranges, and DIA. Useful for understanding pump/loop settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Get' clearly implies a read-only operation and the field list indicates what data is returned, but the description does not explain how 'active' is determined, what happens if no profile exists, or any access requirements. It is adequate but minimal.

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 redundant wording. The core action and result fields are front-loaded, and the use-case sentence earns its place by giving operational context.

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

Completeness4/5

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

For a zero-parameter read-only tool with no output schema, the description provides the essential information: what the profile contains and why it is useful. It could be more explicit about the output format or the meaning of 'active', but nothing critical is missing for calling the tool.

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?

The tool has zero parameters, making parameter-level guidance unnecessary. The description adds value by explaining what the returned profile contains, which is the relevant semantic context for a parameterless call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and resource ('active Nightscout profile'), and enumerates the contained fields (ISF, ICR, basal rates, target ranges, DIA). It is clear about what the tool returns, though it does not explicitly differentiate itself from sibling tools like insulin_sensitivity_check or carb_ratio_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Useful for understanding pump/loop settings' provides an implied use case, but there is no explicit guidance on when to choose this tool over alternatives, nor any mention of when it should not be used. The usage context is suggestive rather than directive.

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

get_statisticsA

Calculate glucose statistics: Time in Range (TIR), average glucose, estimated HbA1c, standard deviation (SD), coefficient of variation (CV), and time in various ranges. Essential for understanding overall glucose control quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoHours to analyze (default 24, max 720 = 30 days)
dateToNoEnd date (ISO 8601)
dateFromNoStart date (ISO 8601)
targetLowNoLow target in mg/dL (default 70)
targetHighNoHigh target in mg/dL (default 180)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden and does convey that this is a non-mutating calculation tool that derives aggregate statistics from glucose data. It does not disclose how the hours window interacts with dateFrom/dateTo when both are supplied, how insufficient data is handled, or that the configurable targetLow/targetHigh parameters directly affect the TIR calculation.

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?

Two sentences with no filler: the first front-loads the verb and the complete list of computed outputs, and the second justifies the tool's value in assessing control quality. Every sentence earns its place.

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

Completeness3/5

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

The tool has moderate complexity (five optional parameters with overlapping window semantics) and no output schema or annotations; the description covers expected outputs well by listing the statistics, and the schema covers defaults. But the parameter interplay question (hours vs. date range precedence) and the influence of configurable targets on TIR are left unaddressed, which is a meaningful gap for an agent choosing how to invoke it.

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 already documents every parameter (hours, dateTo, dateFrom, targetLow, targetHigh) along with defaults and bounds. The description only implicitly references targets via 'time in various ranges' and adds no new parameter meaning beyond the schema baseline.

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 uses a specific verb and resource ('Calculate glucose statistics') and enumerates the exact statistics computed (TIR, average glucose, eA1c, SD, CV, time in ranges), making the tool's purpose unmistakable. This scope distinguishes it from siblings like get_current_glucose, get_glucose_history, and weekly_comparison, none of which compute aggregate statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence ('Essential for understanding overall glucose control quality') implies this tool is for aggregate control assessment, giving the agent a usage context. However, it never states when not to use it or names alternatives such as weekly_comparison, compare_periods, or detect_patterns for other analysis needs, leaving routing decisions to inference.

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

get_treatmentsA

Get treatment records: insulin boluses, carb entries, notes, exercise logs, temp basals, and more. Use to understand insulin and carb history for analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMax entries (default 50)
hoursNoHours to look back (default 24)
dateToNoEnd date (ISO 8601)
dateFromNoStart date (ISO 8601)
eventTypeNoFilter by event type: Meal Bolus, Correction Bolus, Carb Correction, Note, Exercise, etc.

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden of behavioral disclosure. It clearly implies a read operation via 'Get' and enumerates the record types returned. However, it does not describe output format, ordering, pagination behavior, or any limitations beyond what the schema already provides.

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?

Two sentences, front-loaded with the core action and resource, followed by a purpose statement. There is no filler or repetition; every phrase contributes to selection and invocation.

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

Completeness4/5

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

For a read-only retrieval tool with no required parameters and a fully described schema, the description covers what the tool returns and why it would be used. The absence of an output schema is partially mitigated because the return values are obvious from the listed treatment record types, though some output details remain unspecified.

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 already documents all five parameters. The description adds useful context by listing record types that map to the eventType filter, but it does not add meaning to count, hours, dateFrom, or dateTo beyond what the schema states.

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 uses a specific verb ('Get') and names a concrete resource ('treatment records') with explicit examples: insulin boluses, carb entries, notes, exercise logs, temp basals. This clearly differentiates it from siblings like get_glucose_history, which focuses on glucose readings rather than treatments.

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?

The phrase 'Use to understand insulin and carb history for analysis' gives a clear contextual purpose. However, it does not explicitly name alternatives or state when not to use the tool, so it stops short of full exclusion/alternative guidance.

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

glucose_at_timeA

Get the glucose reading closest to a specific point in time. Returns the nearest reading within a configurable window, plus surrounding context (readings before and after). Use for: 'what was my glucose at 3 AM?', 'glucose when I woke up yesterday'.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYesTarget time (ISO 8601 or 'YYYY-MM-DD HH:mm'). E.g., '2026-02-23T03:00:00' or '2026-02-23 15:30'
windowNoSearch window in minutes around target time (default 15, max 60)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses that the tool returns the nearest reading and surrounding context, which is useful. However, it does not mention behavior when no reading exists within the window, timezone handling, or whether the operation is read-only, leaving some behavioral uncertainty.

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 compact and front-loaded. The first sentence states the core behavior, the second clarifies return content, and the examples illustrate real-world usage. Every sentence earns its place, with no fluff or redundancy.

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

Completeness4/5

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

For a relatively simple read tool with two documented parameters and no output schema, the description covers the essential return behavior (nearest reading plus before/after context) and gives practical query examples. It could be more complete by describing edge cases like no reading in range, but it is sufficient for correct invocation in common scenarios.

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 full descriptions for both parameters, including the time format and window default/max. The description's mention of a 'configurable window' loosely maps to the window parameter but adds no new semantic detail beyond the schema, so the baseline 3 applies.

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 clearly identifies the operation: getting the glucose reading closest to a specific point in time. It also adds distinctive details—'nearest reading within a configurable window' and 'surrounding context'—that set it apart from siblings like get_current_glucose and get_glucose_history, making the tool's purpose unambiguous.

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?

The description provides concrete example queries ('what was my glucose at 3 AM?', 'glucose when I woke up yesterday') that clearly signal when this tool is appropriate. It does not explicitly mention alternatives or when not to use it, but the intended usage context is clear.

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

insulin_sensitivity_checkA

Analyze real-world insulin sensitivity by tracking correction boluses and their glucose impact. Compares actual ISF from data with profile ISF to detect if settings need adjustment. Requires at least 3 days with correction events.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays to analyze (default 7)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the analytical behavior and data requirement, but does not explicitly state that the tool is read-only or describe what the output looks like. The wording implies a diagnostic check, yet an agent might still wonder whether the tool modifies settings.

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 tight sentences that front-load the purpose, then explain the comparison logic, and end with the key prerequisite. Every sentence earns its place with no redundant or vague wording.

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

Completeness3/5

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

With no output schema and no annotations, the description should clarify the return value and safety profile. It covers the core purpose and constraint, but an agent is left without explicit information on what the tool returns (e.g., a recommendation, numeric values) or whether it is purely read-only, so completeness is moderate.

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%, with the only parameter 'days' already documenting range and default. The description adds no additional parameter-level meaning beyond reaffirming the 3-day minimum, so the baseline score 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 uses specific verbs ('Analyze', 'Compares') and identifies the resource (real-world insulin sensitivity) and method (tracking correction boluses, comparing actual ISF with profile ISF). This clearly distinguishes it from siblings like carb_ratio_check or get_statistics, making the tool's purpose unambiguous.

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?

Provides a clear prerequisite ('Requires at least 3 days with correction events') and an implied use case (detecting if ISF settings need adjustment). However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of full routing guidance.

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

overnight_analysisA

Detailed overnight glucose analysis: stability, trend direction, min/max with timestamps, dawn phenomenon detection, time in range, and basal adequacy assessment. Analyzes from evening to morning.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoNight to analyze (YYYY-MM-DD, refers to the evening start). Defaults to last night.
night_endNoNight end hour (default 7)
night_startNoNight start hour (default 22)

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavior disclosure. It does this well by listing the specific outputs and analyses performed: stability, trend direction, timed min/max, dawn phenomenon detection, time in range, and basal adequacy. It does not discuss edge cases or return format, but for a read-only analysis tool the computed dimensions are the key behavioral surface.

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 compact and front-loaded with the most important information. There is minor redundancy between 'overnight glucose analysis' and 'Analyzes from evening to morning,' but every listed analysis earns its place and no filler is present.

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

Completeness4/5

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

For a tool with three optional, fully documented parameters and no output schema, the description provides enough context about scope and analytical content for an agent to select and invoke it correctly. It could be slightly more complete by clarifying expected output format or explicitly distinguishing it from daily/period analyses, but it is adequate overall.

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 three optional parameters (date, night_start, night_end) are already fully documented in the input schema. The description adds no parameter-specific semantics, but none is needed because the schema already provides the meaning and defaults.

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 names a specific resource (overnight glucose) and a concrete set of analyses: stability, trend direction, min/max with timestamps, dawn phenomenon, time in range, and basal adequacy. This clearly differentiates the tool from siblings like get_daily_report or analyze_meal by narrowing scope to overnight data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates the context — 'Analyzes from evening to morning' — so an agent can infer it is for overnight assessment. However, it gives no explicit guidance on when to prefer this tool over related siblings such as get_daily_report, detect_patterns, or compare_periods, and it names no alternatives.

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

weekly_comparisonA

One-call comparison of this week vs last week. Automatically calculates both periods and returns side-by-side stats: TIR, average, CV, HbA1c, time-in-ranges with improvement indicators. No parameters needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool automatically calculates both periods and returns improvement indicators, which is useful. However, it does not mention that the operation is read-only, whether historical data is required, or how incomplete weeks are handled. These are notable gaps but not misleading omissions.

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 zero filler. The core purpose is front-loaded in the first sentence, followed by the concrete output list and a note about parameters. Every piece of text earns its place.

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

Completeness4/5

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

For a zero-parameter tool, the description is quite complete: it names the output fields, improvement indicators, and the automatic period calculation. The absence of an output schema is compensated by listing the stats. It could be improved by noting prerequisites like data availability for the previous week, but overall it provides sufficient context for an agent to call it correctly.

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?

There are zero parameters, and the input schema has no properties, so the description's statement 'No parameters needed' accurately reflects and reinforces the schema. Per the rubric, a zero-parameter tool receives a baseline of 4, and the description adds no unnecessary parameter detail.

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 clearly states the tool's function with a specific scope: comparison of this week vs last week, followed by the exact stats returned (TIR, average, CV, HbA1c, time-in-ranges). It distinguishes itself from sibling tools like compare_periods by emphasizing no parameters and an automated, fixed period calculation.

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?

The description implies when to use the tool: when a week-over-week comparison is needed in one call, with 'No parameters needed' signaling a zero-config shortcut. It provides clear context but does not explicitly name alternatives or state exclusions such as custom date ranges, which would route agents to compare_periods.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 21 tool updatesv0.4.0
    • First observeda1c_estimator
    • First observedadd_note
    • First observedadd_treatment
    • First observedanalyze_meal
    • First observedcarb_ratio_check
    • First observedcompare_periods
    • First observedcompression_low_analysis
    • First observeddetect_patterns
    • First observedexport_csv
    • First observedfind_events
    • First observedget_current_glucose
    • First observedget_daily_report
    • First observedget_device_status
    • First observedget_glucose_history
    • First observedget_profile
    • First observedget_statistics
    • First observedget_treatments
    • First observedglucose_at_time
    • First observedinsulin_sensitivity_check
    • First observedovernight_analysis
    • First observedweekly_comparison

TDQS

A3.8/5.0
Disambiguation3/5

Most tools have a distinct resource type (glucose, treatments, profile, device), but the analytics cluster overlaps: weekly_comparison vs compare_periods, get_statstics vs get_daaily_report, and detect_paterns vs overnight_analysis cover similar ground. Descriptions reduce ambiguity, but an agent could still misselect between comparison/statistics tools.

Naming Consistency4/5

The majority of names follow a readable snake_case get_/analyze_/compare_ verb pattern, with clear nouns. Minor deviations like weekly_comparison, glucose_at_time, and a1c_estimator omit a verb, but the overall naming is predictable and easy to scan.

Tool Count3/5

21 tool is on the heavy side for an MCP server, especially with many single-purpose analysis tools such as carb_ratio_check, insulin_sensitivity_check, and compression_low_analysis. It is not wildly bloated, but several routines could has been consolidated without hurting the server's utility.

Completeness4/5

The set covers current glucose, history, treatments, profile/device status, reporting, pattern detection, meal/overnight analysis, CSV export, and adding treatments/notes, so the main Nightscout workflows have no dead ends. Minor gaps include no update/delete for treatments/notes and no dedicated event-type filtering beyond find_events.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/adminpb/Nightscout-MCP'

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