Doop
Provides read-only MCP tools for independently decoded WHOOP 4.0 health data, with confidence gates and minimum-disclosure safety for coaching agents.
README
Doop: method and evidence
Doop is a local-first engineering case study and experimental reference implementation built from an independently validated and extended reverse-engineered WHOOP 4.0 BLE pipeline. The source shows raw-first packet capture, HR/RR decoding, RTC-aware buffered-history recovery, independent proxy metrics, confidence-gated MCP tools, confirmed workout/plan boundaries, and BROC's minimum-disclosure safety-gated agent path.
View the evidence-first project overview at doop-showcase.vercel.app.
This is not a turnkey or production health product. The narrow, owner-controlled Gen4 workflow is documented in Using this code, including configuration, hardware cautions, supported boundaries, and a no-hardware smoke path. The repository contains no owner database, exports, captured health packets, device identifiers, credentials, personal athlete profile, or private Git history. Test packets, plans, preferences, and health inputs are synthetic.
Start with the reverse-engineering case study. Its one-page static trace follows a generated packet through parsing, daily computation, MCP JSON, and BROC's visible answer. The hardware results ledger separates recorded owned-device evidence from checks reproducible in this data-free repository.
If you have ten minutes, use the claim → evidence → command checklist. It points each headline claim to one file and one focused verification command.
The evidence manifest is the release index: it ties headline claims and résumé language to the corresponding evidence and checks.
Architecture
flowchart LR
W[Owned WHOOP 4.0] -->|BLE notifications| C[Capture + CRC validation]
C --> R[(Raw packets)]
C --> T[(Typed HR / RR)]
R -. re-derive .-> T
T --> M[Independent daily metrics]
M --> G{D39 actionable?}
G -->|yes| Q[Read-only MCP queries]
G -->|no: withhold + reasons| Q
Q --> L[Minimum-disclosure today / week relays]
S[Pre-model safety + offline gate] --> B[BROC via OpenClaw]
L --> B
P[Plan + canonical logbook] --> Q
D[D47 prepare → review → confirm] -->|explicit local write| P
Capture preserves evidence before interpretation. Compute retains audit values; D39 decides whether they may influence coaching. The accepted agent sees two preformatted relays, while safety/offline handling occurs before model inference. Canonical writes remain outside MCP behind explicit local review.
What this does and does not claim
- It demonstrates empirical protocol investigation, negative results, raw-first storage, replay-safe decoding, and testable domain-agent controls.
- Recovery, strain, and sleep are independent proxies. They are not WHOOP parity, medical outputs, or ground truth.
- OpenClaw supplies generic agent runtime and Telegram transport. Doop supplies the domain data model, bounded tools, confidence/confirmation policy, minimum-disclosure relays, deterministic safety handling, and evaluator.
- The protocol work extends cited prior art and independently verifies the shipped wire facts; it was not invented from nothing.
Verify the evidence
Requires Python 3.11+ and uv.
uv sync --all-extras --locked
python3 tools/privacy_check.py
uv run pytest -q
node --test integrations/openclaw/plugins/doop-safety-gate/test/*.test.js
The sanitized suite contains Python and OpenClaw safety-plugin tests that run
without a database, band, credentials, or private runtime. Exact release-gate
counts are recorded in RELEASE_NOTES.md after the final clean-clone run.
For demonstration-video recording only, create the isolated minimal seed. It refuses to overwrite an existing file, stores synthetic raw packets, and computes derived metrics through the production path:
uv run python -m tools.create_film_seed \
--output tmp/film-seed.db --film-date 2037-07-06
Focused entry points:
src/whoop_local/capture/proprietary_protocol.pyandtests/test_proprietary_protocol.py: framing, CRCs, HR/RR and four-slot RR behavior;src/whoop_local/capture/history_sync.pyandtests/test_history_sync.py: RTC-first, commit-before-ACK, replay-safe history recovery;src/whoop_local/compute/andtests/test_metrics.py: independent metrics;src/whoop_local/mcp_server/queries.pyandtests/test_training_insights.py: D39 confidence gates and minimized relays;src/whoop_local/integrations/openclaw_acceptance.pyand the OpenClaw safety plugin tests: strict outputs, offline refusal, and pre-model safety handling.
The sanitized agent acceptance record publishes the scenario matrix, visible outputs, and both promotion revocations. The separate D47 confirmation record shows why draft preparation and review cannot silently become a logged workout.
The demonstration storyboard defines the four required agent beats, exact narration, Mac recording setup, and frame-by-frame privacy review for the v1.0 video.
Privacy and licensing
tools/privacy_check.py checks the working tree and every reachable Git blob,
path, commit identity/message, and annotated-tag identity/message for generic
private-artifact, PII-shape, captured-frame, and secret patterns. It reports
only safe identifiers and categories, never matched content. Third-party
contributions and their status are recorded in THIRD_PARTY_NOTICES.md. The
project is released under Apache-2.0; see LICENSE.
Release evidence and traceable résumé language are recorded in
EVIDENCE_MANIFEST.md, RELEASE_NOTES.md, and RESUME_BULLETS.md.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.