HealthNote (NIP-101h)
FreeNot checkedIntegrates with Nostr decentralized protocol to enable discovery, preparation, and publishing of standardized health and fitness data events while maintaining u
About
Integrates with Nostr decentralized protocol to enable discovery, preparation, and publishing of standardized health and fitness data events while maintaining user privacy and control over sensitive information.
README
Overview
NIP-101h is a modular, privacy-first standard for publishing health and fitness metrics on Nostr. Each metric is its own micro-specification with a dedicated event kind, so apps implement only what they need. Values are encrypted with NIP-44 by default — plaintext never reaches a relay or server — and the data lives in open Nostr events the user controls with their own keys.
This repository holds the protocol specs, developer tooling, and supporting material for the Health Note Labs stack built on top of NIP-101h.
Key Features
- Modular metrics: Each metric (weight, steps, pace, etc.) is a separate, standardized Nostr event kind. 14 metrics are defined today.
- Private by default: Metric values are encrypted with NIP-44 unless the user opts out. Tags stay unencrypted for timeline and analytics use.
- Portable: Export tools validate, decrypt, and write data to CSV, SQLite, or JSON — always client-side, never exposing plaintext to relays or servers.
- Zero lock-in: Work directly with Nostr events, or use local CSV/SQL for analysis and migration.
- Extensible: New metrics are added through the NIP-101h.X process.
How It Works
1. Event Structure
Each health metric is a Nostr event with:
- A unique
kind(see the metric table below) - Encrypted
content(the metric value) - Standardized
tags(unit, metric type, timestamp, etc.)
Example:
{
"kind": 1351,
"content": "70", // Encrypted with NIP-44 by default
"tags": [
["unit", "kg"],
["t", "health"],
["t", "weight"],
["timestamp", "2025-05-01T10:00:00Z"],
["encryption_algo", "nip44"],
["p", "<receiver_pubkey>"]
],
"created_at": 1672531200,
"pubkey": "<pubkey>",
"sig": "<sig>"
}
2. Privacy & Encryption
- NIP-44 encryption is the default for all metric values; the keys stay with the user.
- Tags remain unencrypted for search and analytics.
- Users selectively share or keep private each metric.
3. Data Export
Tools in tools/export load raw Nostr events, validate them against the metric schemas, decrypt locally (never server-side), and write to CSV, SQLite, or JSON.
Supported Metrics & Event Kinds
| Kind | Metric | Spec |
|---|---|---|
| 1351 | Weight | NIP-101h.1 |
| 1352 | Height | NIP-101h.2 |
| 1353 | Age | NIP-101h.3 |
| 1354 | Gender | NIP-101h.4 |
| 1355 | Fitness Level | NIP-101h.5 |
| 1356 | Workout Intensity | NIP-101h.6 |
| 1357 | Calories Expended | NIP-101h.7 |
| 2357 | Calories Consumed | NIP-101h.7 |
| 1358 | Activity Duration | NIP-101h.8 |
| 1359 | Step Count | NIP-101h.9 |
| 1360 | Elevation | NIP-101h.10 |
| 1361 | Splits | NIP-101h.11 |
| 1362 | Pace | NIP-101h.12 |
| 1363 | Distance | NIP-101h.13 |
| 1364 | Speed | NIP-101h.14 |
See the NIP-101h Metric Directory for the canonical list, and the main specification for the framework.
Repository Layout
| Path | What it is |
|---|---|
| NIP101h | Main NIP-101h framework specification |
| NIP101h-Directory.md | Index of all 14 metric specs and their kinds |
| NIP101h.1.md – NIP101h.14.md | Individual metric micro-specifications |
| NIP101h-User-Guide.md | Constructing, encrypting, publishing, and reading events |
| packages/healthnote-api | HealthNote MCP Server — tools for AI agents to discover kinds, build events, and fetch health data over NIP-101h |
| packages/analytics-sdk | TypeScript SDK for loading and computing trends over exported metrics |
| tools/export | CLI to validate, decrypt, and export events to CSV/SQLite/JSON |
| docs/ARCHITECTURE.md | Technical architecture of the full stack, layer by layer |
| brand/BRAND-KIT.md | Brand voice, naming, and visual direction |
| brand/WHITEPAPER.md | Whitepaper: the case for an open, user-owned health-data standard |
| website/index.html | Health Note Labs landing page |
Getting Started
- Explore the metrics — start with the Metric Directory.
- Implement — the User & Implementation Guide covers constructing, encrypting, publishing, and reading events, plus privacy and consent practices.
- Connect an agent — the HealthNote MCP Server exposes NIP-101h to AI agents under the same consent and encryption guarantees.
- Export & analyze — use tools/export and the analytics SDK to validate, transform, and analyze data client-side.
Design Principles
- User control: The user holds the keys and decides what to share, with whom.
- Privacy by default: Encryption is on unless the user turns it off — enforced by NIP-44, not by policy.
- Interoperability: Apps mix and match metrics on a shared open standard.
- Extensibility: Anyone can propose a new metric via NIP-101h.X.
Contributing
- Propose new metrics by following the extension guidelines.
- Discuss and suggest improvements via issues or pull requests.
- See the User Guide for implementation details.
Resources
Installing HealthNote (NIP-101h)
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/healthnotelabs/modular-health-nipsFAQ
Is HealthNote (NIP-101h) MCP free?
Yes, HealthNote (NIP-101h) MCP is free — one-click install via Unyly at no cost.
Does HealthNote (NIP-101h) need an API key?
No, HealthNote (NIP-101h) runs without API keys or environment variables.
Is HealthNote (NIP-101h) hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install HealthNote (NIP-101h) in Claude Desktop, Claude Code or Cursor?
Open HealthNote (NIP-101h) on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare HealthNote (NIP-101h) with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
