Skip to main content
Glama
Diabetes:M MCP Server

Diabetes:M MCP Server

by sedoglia

Diabetes:M MCP Server

TypeScript Node.js MCP Licenza: MIT SBOM: CycloneDX

PayPal

🇬🇧 English Version

Server MCP (Model Context Protocol) per integrare i dati di Diabetes:M con Claude Desktop. Accedi alle tue letture glicemiche, dati insulina, diario alimentare e metriche di salute attraverso conversazioni in linguaggio naturale.

✨ Funzionalità

  • 11 Strumenti MCP per accesso completo ai dati del diabete

  • Sicurezza multi-livello con crittografia AES-256-GCM

  • Integrazione keyring di sistema per archiviazione sicura della chiave master (Windows Credential Vault, macOS Keychain, Linux Secret Service)

  • Credenziali criptate nel profilo utente (mai nei file di configurazione)

  • Autenticazione basata su cookie (reverse-engineered da analytics.diabetes-m.com)

  • Ricerca cibi intelligente dalle voci del tuo diario

  • Logging di audit completo

Related MCP server: dexcom-mcp

🔧 Strumenti Disponibili

Gestione Credenziali

Strumento

Descrizione

setup_credentials

Configura il login Diabetes:M in modo sicuro

check_credentials

Verifica se le credenziali sono configurate

clear_credentials

Rimuovi le credenziali memorizzate

Strumenti Dati Salute

Strumento

Descrizione

get_logbook_entries

Recupera voci del diario (glicemia, insulina, carboidrati, note)

get_glucose_statistics

Ottieni distribuzione glucosio, media, HbA1c stimata

get_insulin_analysis

Analizza utilizzo insulina e rapporti carboidrati

get_iob

Calcola l'Insulina Attiva (IOB) - insulina ancora in azione nel corpo

get_ic_ratios

Ottieni i rapporti IC (insulina/carboidrati) e ISF configurati per fascia oraria

get_personal_metrics

Ottieni peso, BMI, pressione sanguigna, HbA1c

search_foods

Cerca nel database cibi (include i tuoi cibi personalizzati dal diario)

generate_health_report

Genera report salute completo


Prerequisiti

  • Node.js 18.0 o superiore

  • npm 8.0 o superiore

  • Claude Desktop installato

  • Account Diabetes-M Connect con credenziali valide

🚀 Installazione Rapida (Bundle Precompilato)

Passaggi:

1. Installa Keytar (Raccomandato per sicurezza massima)

Per utilizzare il vault nativo del sistema operativo (Windows Credential Manager, macOS Keychain, Linux Secret Service), installa keytar:

npm install keytar

Nota: Se keytar non può essere installato, il sistema userà automaticamente un file criptato come fallback.

2. Scarica il bundle

Usa il browser oppure:

wget https://github.com/sedoglia/diabetes-m-mcp/releases/download/v1.1.0/diabetes-m-mcp.mcpb

3. Verifica l'integrità

Verifica l'integrità (opzionale ma consigliato):

wget https://github.com/sedoglia/diabetes-m-mcp/releases/download/v1.1.0/diabetes-m-mcp.mcpb.sha256
sha256sum -c diabetes-m-mcp.mcpb.sha256

Ogni release pubblica anche la distinta dei componenti software (SBOM) del bundle in formato CycloneDX: vedi 📋 SBOM per sapere cosa contiene e come usarla.

4. Installa l'estensione in Claude Desktop (Metodo Consigliato)

Installazione tramite Custom Desktop Extensions:

  1. Apri Claude Desktop

  2. Vai su Impostazioni (Settings)

  3. Seleziona la scheda Estensioni (Extensions)

  4. Clicca su Impostazioni Avanzate (Advanced settings) e trova la sezione Extension Developer

  5. Clicca su "Installa Estensione..." (Install Extension…)

  6. Seleziona il file .mcpb (diabetes-m-mcp.mcpb scaricato al passaggio 2)

  7. Segui le indicazioni a schermo per completare l'installazione

Nota: Questo è il metodo più semplice e consigliato. L'estensione sarà automaticamente integrata in Claude Desktop senza necessità di configurazione manuale.


5. Configura le Credenziali Diabetes-M (Metodo Sicuro - Raccomandato)

Apri una nuova chat su Claude Desktop e scrivi il seguente prompt:

Configura le credenziali di accesso per Diabetes-M

Rispondi al messaggio fornendo:

  • Utente: la tua email Diabetes-M

  • Password: la tua password Diabetes-M

L'estensione provvederà automaticamente a criptare e salvare le credenziali in modo sicuro nel vault nativo del sistema operativo (Windows Credential Manager, macOS Keychain, Linux Secret Service).

Nota: Le credenziali NON verranno salvate in file di testo. Saranno sempre crittografate e gestite dal vault nativo del SO.

6. Riavvia Claude Desktop

  • Chiudi completamente l'applicazione

  • Riapri Claude Desktop

  • Verifica in Impostazioni → Sviluppatore lo stato della connessione ✅

🚀 Installazione (clonando il repository con GIT)

1. Clona il Repository

git clone https://github.com/sedoglia/diabetes-m-mcp
cd diabetes-m-mcp

2. Installa le Dipendenze

npm install

3. Installa Keytar (Raccomandato per sicurezza massima)

Per utilizzare il vault nativo del sistema operativo (Windows Credential Manager, macOS Keychain, Linux Secret Service), installa keytar:

npm install keytar

Nota: Se keytar non può essere installato, il sistema userà automaticamente un file criptato come fallback.

4. Compila il Progetto

npm run build

5. Configura le Credenziali Diabetes-M (Metodo Sicuro - Raccomandato)

Esegui lo script di setup per configurare le credenziali in modo sicuro:

npm run setup-encryption

Questo script:

  1. Crea una directory sicura nella home dell'utente

  2. Genera una chiave di encryption e la salva nel vault nativo del SO

  3. Chiede email e password Diabetes-M

  4. Cripta e salva le credenziali in modo sicuro

Per verificare la configurazione:

npm run check-encryption

Nota sulla Sicurezza: Non commitare mai il file .env nel controllo versione. È già incluso in .gitignore. Si consiglia di usare il metodo sicuro sopra descritto.

6. Configurazione di Claude Desktop

Posizione del File di Configurazione

Il file di configurazione di Claude Desktop si trova in:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Esempio di Configurazione

Aggiungi il server MCP Diabetes-M al tuo claude_desktop_config.json:

{
  "mcpServers": {
    "Diabetes-M": {
      "command": "node",
      "args": ["C:\\percorso\\a\\diabetes-M-mcp\\dist\\index.js"]
    }
  }
}

Per macOS/Linux:

{
  "mcpServers": {
    "Diabetes-M": {
      "command": "node",
      "args": ["/percorso/a/diabetes-m-mcp/dist/index.js"]
    }
  }
}

Verifica della Configurazione

  1. Riavvia Claude Desktop dopo aver salvato la configurazione

  2. Cerca gli strumenti Diabetes-M tra quelli disponibili (icona martello)

  3. Prova a chiedere: "Quali sono le mie attività recenti su Diabetes-M?"

💬 Esempi d'Uso

Configurazione Credenziali

"Configura le mie credenziali Diabetes:M con username mioutente e password miapassword"

Verifica Stato Credenziali

"Verifica lo stato delle mie credenziali Diabetes:M"

Ottieni Voci Diario

"Mostrami le voci del diario degli ultimi 7 giorni"
"Quali erano le mie letture glicemiche ieri?"

Ottieni Statistiche Glucosio

"Mostrami le statistiche glucosio degli ultimi 30 giorni"
"Qual è la mia HbA1c stimata?"
"Com'è il mio tempo nel range questo mese?"

Analizza Uso Insulina

"Analizza il mio uso di insulina nelle ultime 2 settimane"
"Qual è la mia dose media giornaliera di insulina?"

Ottieni Insulina Attiva (IOB)

"Quanta insulina attiva ho in questo momento?"
"Calcola il mio IOB con DIA di 4 ore"
"Mostrami l'insulina on board attuale"

Ottieni Rapporti IC e ISF

"Quali sono i miei rapporti insulina/carboidrati?"
"Mostrami i rapporti IC per colazione, pranzo e cena"
"Qual è il mio fattore di sensibilità insulinica?"

Ottieni Metriche Personali

"Quali sono le mie metriche di salute attuali?"
"Mostrami la cronologia di peso e pressione sanguigna"

Cerca Cibi

"Cerca 'polenta' nel database cibi"
"Trova le info nutrizionali per la pasta"

Genera Report Salute

"Genera un report dettagliato sulla salute per gli ultimi 90 giorni"

🔒 Architettura di Sicurezza

Protezione Multi-Livello

┌─────────────────────────────────────────────────────┐
│               Livello 1: OS Keyring                 │
│  Chiave master in Windows Vault / macOS Keychain /  │
│  Linux Secret Service                               │
├─────────────────────────────────────────────────────┤
│           Livello 2: Crittografia a Riposo          │
│  AES-256-GCM • IV/Salt casuali • PBKDF2 (100K iter) │
├─────────────────────────────────────────────────────┤
│            Livello 3: Storage Sicuro                │
│  %LOCALAPPDATA%/diabetes-m-mcp/ (Win)               │
│  ~/Library/Application Support/diabetes-m-mcp/ (Mac)│
│  ~/.config/diabetes-m-mcp/ (Linux)                  │
├─────────────────────────────────────────────────────┤
│           Livello 4: Validazione Input              │
│  Schemi Zod • Prevenzione SQL injection             │
│  Rate limiting (1 req/sec)                          │
├─────────────────────────────────────────────────────┤
│             Livello 5: Audit Logging                │
│  Identificatori hashati • Log sensibili separati    │
│  Retention configurabile (default: 90 giorni)       │
└─────────────────────────────────────────────────────┘

Posizioni di Storage

I file di configurazione sono salvati in percorsi specifici per ogni sistema operativo:

Sistema Operativo

Percorso

Windows

%LOCALAPPDATA%\diabetes-m-mcp\

macOS

~/Library/Application Support/diabetes-m-mcp/

Linux

~/.config/diabetes-m-mcp/

File

Scopo

diabetesm-credentials.enc

Credenziali criptate

diabetesm-tokens.enc

Token sessione criptati

diabetesm-audit.log

Log audit (dati hashati)

Nota: La chiave di crittografia master è sempre salvata nel keyring nativo del sistema operativo (Windows Credential Vault, macOS Keychain, Linux Secret Service), non in questi file.

📋 SBOM (Software Bill of Materials)

Il progetto pubblica una SBOM in formato CycloneDX 1.6 (JSON): l'inventario completo dei pacchetti che compongono il server, con versione, licenza, PURL e hash SHA-512 del tarball scaricato dal registry npm. Permette di verificare cosa contiene esattamente il bundle installato e di controllarlo contro i database delle vulnerabilità note (CVE).

Dove

Cosa

sbom.cdx.json

SBOM della versione corrente, versionata nel repository

diabetes-m-mcp-vX.Y.Z.cdx.json

Allegata a ogni release accanto al bundle .mcpb

sbom.cdx.json dentro il bundle

Copia inclusa nell'archivio .mcpb

Cosa include: esattamente i pacchetti distribuiti nel bundle .mcpb, cioè le sole dipendenze runtime (dependencies + optionalDependencies, keytar con scope: optional) risolte dal package-lock.json. Le dipendenze di sviluppo (TypeScript, archiver, il generatore SBOM stesso) non vengono spedite e non compaiono. Il componente principale è diabetes-m-mcp (metadata.component); i pacchetti installati in modo annidato (node_modules/a/node_modules/b) sono rappresentati come componenti annidati. In fase di bundle lo script verifica che l'elenco della SBOM coincida uno a uno con l'albero installato con npm ci --omit=dev.

Verificare le vulnerabilità con uno scanner che accetta CycloneDX, ad esempio Grype:

grype sbom:sbom.cdx.json

oppure caricando il file in OWASP Dependency-Track.

Rigenerare la SBOM (richiede npm install completo):

npm run sbom

Il comando usa @cyclonedx/cyclonedx-npm con --omit dev e in modalità riproducibile (nessun timestamp o numero seriale), quindi il file cambia solo quando cambiano le dipendenze runtime o la versione. Viene rigenerato automaticamente da npm run bundle ad ogni release.

🏗️ Struttura Progetto

diabetes-m-mcp/
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # Setup server MCP
│   ├── api/
│   │   ├── auth.ts           # Autenticazione (con gestione cookie)
│   │   ├── client.ts         # Client HTTP
│   │   └── endpoints.ts      # Endpoint API (reverse-engineered)
│   ├── security/
│   │   ├── audit.ts          # Logging audit
│   │   ├── credentials.ts    # Gestione credenziali
│   │   ├── encryption.ts     # Crittografia AES-256-GCM
│   │   └── keyring.ts        # Integrazione keyring sistema
│   ├── cache/
│   │   └── encrypted-cache.ts # Cache criptata
│   ├── tools/
│   │   ├── setup-credentials.ts
│   │   ├── get-logbook-entries.ts
│   │   ├── get-glucose-statistics.ts
│   │   ├── get-insulin-analysis.ts
│   │   ├── get-iob.ts         # Calcolo IOB (Insulin on Board)
│   │   ├── get-ic-ratios.ts   # Rapporti IC e ISF per fascia oraria
│   │   ├── get-personal-metrics.ts
│   │   ├── search-foods.ts    # Cerca in API + voci diario
│   │   └── generate-health-report.ts
│   └── types/
│       ├── api.ts            # Tipi API
│       ├── security.ts       # Tipi sicurezza
│       └── tools.ts          # Schemi strumenti
├── package.json
├── sbom.cdx.json             # SBOM CycloneDX (npm run sbom)
├── tsconfig.json
└── README.md

🧪 Test

Il progetto include una suite di test completa per verificare il funzionamento di tutti gli strumenti MCP con dati reali.

Eseguire i Test

npm test

Prerequisiti

  • Le credenziali devono essere configurate (npm run setup-encryption)

  • Il progetto deve essere compilato (npm run build)

Strumenti Testati

Test

Descrizione

check_credentials

Verifica configurazione credenziali

get_logbook_entries (today)

Voci diario di oggi

get_logbook_entries (7days)

Voci diario ultimi 7 giorni

get_logbook_entries (date)

Voci diario per data specifica

get_glucose_statistics (7 days)

Statistiche glicemia 7 giorni

get_glucose_statistics (30 days)

Statistiche glicemia 30 giorni

get_insulin_analysis

Analisi insulina e rapporti

get_iob

Calcolo Insulina Attiva (IOB)

get_ic_ratios

Rapporti IC e ISF per fascia oraria

get_personal_metrics

Metriche personali

search_foods

Ricerca cibi (database + diario)

generate_health_report

Generazione report salute

Output Esempio

═══════════════════════════════════════════════════════════
  Diabetes:M MCP Server - Test Suite
═══════════════════════════════════════════════════════════

▸ Prerequisites
  ✓ Credentials configured

▸ Credential Tools
  ✓ check_credentials (5ms)

▸ Data Tools
  ✓ get_logbook_entries (today) (2279ms)
  ✓ get_logbook_entries (7days) (147ms)
  ✓ get_glucose_statistics (7 days) (175ms)
  ✓ get_insulin_analysis (7 days) (1116ms)
  ✓ get_personal_metrics (105ms)
  ✓ search_foods ("pasta") (1265ms)
  ✓ generate_health_report (7 days) (1083ms)

═══════════════════════════════════════════════════════════
  Test Summary
═══════════════════════════════════════════════════════════

  Passed:  13
  Failed:  0

All tests passed! ✓

🔍 Risoluzione Problemi

Errore "No credentials configured"

Esegui lo strumento setup_credentials:

"Configura le mie credenziali Diabetes:M"

Autenticazione Fallita

  1. Verifica che email/username e password siano corretti

  2. Prova ad accedere manualmente a analytics.diabetes-m.com

  3. Riesegui setup_credentials con le credenziali corrette

Problemi Keyring

Se il keyring di sistema non è disponibile:

  • Il server usa automaticamente lo storage file criptato come fallback

  • Le chiavi sono memorizzate in <config-dir>/master.key.enc

  • La sicurezza è mantenuta attraverso crittografia specifica per macchina

Rate Limiting

Il server implementa rate limiting (1 richiesta/secondo). Se vedi errori di rate limit:

  • Attendi qualche secondo e riprova

  • Evita chiamate successive rapide

Ricerca Cibi Non Trova Risultati

La ricerca cibi dell'API Diabetes:M restituisce solo cibi dal database pubblico. Se cerchi i tuoi cibi personalizzati:

  • Lo strumento cerca automaticamente nelle voci del tuo diario per i cibi personalizzati

  • Assicurati di aver usato il cibo in una voce pasto negli ultimi 90 giorni

🔏 Privacy Policy

Raccolta Dati

Questo server MCP raccoglie e tratta i seguenti dati:

  • Credenziali Diabetes:M (username/password): Memorizzate localmente solo in forma criptata

  • Dati salute: Letture glucosio, dosi insulina, log alimentari e metriche personali recuperate dal tuo account Diabetes:M

  • Log audit: Log operazioni hashati per monitoraggio sicurezza (nessun dato salute grezzo)

Archiviazione Dati

  • Tutti i dati sono memorizzati localmente sul tuo dispositivo nella directory specifica del SO:

    • Windows: %LOCALAPPDATA%\diabetes-m-mcp\

    • macOS: ~/Library/Application Support/diabetes-m-mcp/

    • Linux: ~/.config/diabetes-m-mcp/

  • Le credenziali sono criptate con crittografia AES-256-GCM

  • La chiave master di crittografia è memorizzata nel tuo keyring del SO (Windows Credential Vault, macOS Keychain, o Linux Secret Service)

  • Nessun dato memorizzato in file di configurazione o testo semplice

Trasmissione Dati

  • I dati sono trasmessi solo ai server Diabetes:M (analytics.diabetes-m.com)

  • Tutte le connessioni usano crittografia HTTPS/TLS

  • Nessun dato inviato ad Anthropic, terze parti o altri server

Conservazione Dati

  • I dati in cache scadono automaticamente (TTL 5 minuti per dati sensibili)

  • I log audit sono conservati per 90 giorni di default

  • Puoi eliminare tutti i dati memorizzati in qualsiasi momento usando lo strumento clear_credentials

I Tuoi Diritti

  • Hai pieno controllo sui tuoi dati

  • Usa clear_credentials per rimuovere tutte le credenziali e token memorizzati

  • Elimina la directory di configurazione del SO per rimuovere tutti i dati locali

Servizi di Terze Parti

Questo server interagisce solo con:

  • Diabetes:M (analytics.diabetes-m.com): Il tuo fornitore dati salute

📜 Licenza

MIT License - Vedi file LICENSE

⚠️ Disclaimer

Questo strumento è solo per gestione personale della salute e scopi informativi. Non fornisce consigli medici. Consulta sempre il tuo medico per decisioni mediche.

Non affiliato, approvato o connesso a Diabetes:M o Sirma Medical Systems.

🙏 Crediti

☕ Supporto

Se trovi questo progetto utile, considera di supportare lo sviluppo:

PayPal

Available Tools

11 tools
check_credentialsA
Read-onlyIdempotent

Check if Diabetes:M credentials are configured and show security status. Does not reveal any credential information.

Inputs: no named parameters.

clear_credentialsA
DestructiveIdempotent

Remove all stored Diabetes:M credentials and tokens from secure storage.

Inputs: confirm (required).

generate_health_reportA
Read-onlyIdempotent

Generate a comprehensive health report suitable for medical professionals. Includes HbA1c analysis, glucose trends, insulin/carb analysis, and warnings.

Inputs: format (required), period (required).

get_glucose_statisticsA
Read-onlyIdempotent

Get glucose statistics including distribution (hypo/low/normal/high/hyper), average, min/max values, and estimated HbA1c for a specified period.

Inputs: period (required).

get_ic_ratiosA
Read-onlyIdempotent

Get the configured Insulin-to-Carb (IC) ratios and Insulin Sensitivity Factors (ISF) from your Diabetes:M profile. Returns values organized by meal time (breakfast, lunch, dinner, night). IC ratio indicates how many grams of carbs are covered by 1 unit of insulin. ISF indicates how much 1 unit of insulin lowers blood glucose (in mg/dL).

Inputs: includeRawData.

get_insulin_analysisA
Read-onlyIdempotent

Analyze insulin usage including daily totals (bolus/basal/correction), carbohydrate totals, and insulin-to-carb ratio analysis.

Inputs: period (required).

get_iobA
Read-onlyIdempotent

Calculate the current Insulin on Board (IOB) - the amount of active insulin still working in the body. Uses recent insulin doses from the logbook and calculates decay based on Duration of Insulin Action (DIA). Useful for dosing decisions and understanding current insulin activity.

Inputs: dia, includeBasal.

get_logbook_entriesA
Read-onlyIdempotent

Retrieve logbook entries from Diabetes:M including glucose readings, insulin doses, carbs, and notes. You can specify either a predefined date range OR a specific date OR a custom date range with startDate and endDate. Returns data grouped by day with summaries optimized for analysis.

Inputs: date, endDate, category, dateRange, +1 more.

get_personal_metricsA
Read-onlyIdempotent

Retrieve personal health metrics including weight, BMI, BMR, daily calorie needs, insulin sensitivity, blood pressure, and latest HbA1c. This tool accesses sensitive personal health data.

Inputs: no named parameters.

search_foodsA
Read-onlyIdempotent

Search the Diabetes:M food database for nutritional information. Returns foods with nutrition per 100g, serving sizes, and source.

Inputs: query (required), filter, language.

setup_credentialsA
DestructiveIdempotent

Configure Diabetes:M login credentials. Credentials are encrypted and stored securely in your user profile - never in plain text or config files.

Inputs: email (required), password (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool targets a distinct function: credential management, various data retrieval (glucose, insulin, IOB, logbook, metrics, food search), and report generation. There is no overlap in purpose.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., get_glucose_statistics, setup_credentials, search_foods), making them predictable and easy for an agent to navigate.

    Tool Count5/5

    With 11 tools, the server covers the key aspects of diabetes management (credentials, glucose, insulin, food, reports) without being overloaded or too sparse.

    Completeness4/5

    The tool surface provides comprehensive read access and report generation, but lacks write operations for logging new entries (e.g., adding glucose readings or insulin doses), which may be a minor gap for some workflows.

    Maintenance

    ActivityActive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables reading real-time continuous glucose monitor data from Dexcom sensors via the Share API, allowing Claude to access glucose levels, trends, and statistics.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables Claude Desktop to securely access FreeStyle LibreLink continuous glucose monitoring data, providing real-time readings, historical analysis, and health insights through natural language queries.
      8
      15
      MIT