Doop

Doop

Provides read-only MCP tools for independently decoded WHOOP 4.0 health data, with confidence gates and minimum-disclosure safety for coaching agents.

Category
Visit Server

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.py and tests/test_proprietary_protocol.py: framing, CRCs, HR/RR and four-slot RR behavior;
  • src/whoop_local/capture/history_sync.py and tests/test_history_sync.py: RTC-first, commit-before-ACK, replay-safe history recovery;
  • src/whoop_local/compute/ and tests/test_metrics.py: independent metrics;
  • src/whoop_local/mcp_server/queries.py and tests/test_training_insights.py: D39 confidence gates and minimized relays;
  • src/whoop_local/integrations/openclaw_acceptance.py and 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured