Skip to content

v0.1.0 — Open Routine Protocol 2026-09-16 (first public draft)

Latest

Choose a tag to compare

@neldroid neldroid released this 16 Sep 10:59

First public draft of the Open Routine Protocol and its reference MCP server.

Spec version: 2026-09-16 · Licence: Apache-2.0 · Python: 3.12+ · MCP Python SDK: 2.2.0

Scope

ORP lets any MCP-capable AI client build a personal, location-aware routine that combines physical activity and eating. It is local-first and wellness-only. ORP reuses OpenActive, schema.org, OpenStreetMap and MCP, and adds:

  • a portable profile, including a generic readiness screening (en / es-ES);
  • a plan document: workouts, meals and recovery, with alternatives, declarative adjustment rules and mandatory attribution;
  • a provider manifest at /.well-known/orp.json, pointing to OpenActive RPDE feeds and schema.org menus;
  • an MCP tool contract: 16 tools, 4 resources and 2 prompts (create_weekly_plan, weekly_review, each in en and es-ES).

The reference server ships:

  • adapters for Nominatim, Overpass, OpenActive RPDE (incremental harvesting), ORP manifests, Open Food Facts and Open Wearables (optional);
  • safety guardrails with documented, cited thresholds;
  • opt-in energy estimates (Mifflin–St Jeor, 2024 Adult Compendium);
  • plan_suggest_adjustments, which proposes changes and never saves without approval;
  • orp demo, which runs fully offline.
git clone https://github.com/neldroid/open-routine-protocol.git && cd open-routine-protocol
uv sync && uv run orp demo

Non-goals

  • No medical use. ORP does not diagnose, treat or adapt plans to medical conditions. See DISCLAIMER.md.
  • No booking or payments. Plans link to the provider's own booking page.
  • No server-side plan generation. The model composes plans; ORP validates them.
  • No telemetry, and no user data sent to providers. Only coarse location (≤ 3 decimals) and filters leave the machine.
  • No scraping. Sources are open data or proper APIs only.

Roadmap

  • Booking via the OpenActive Open Booking API
  • Spanish municipal sports centre adapters
  • Kotlin/JVM client SDK
  • An orp.json generator page for small providers
  • Weather-aware alternatives
  • Honouring provider Cache-Control, background RPDE replication, and a conformance test kit

Known limitations

  • Providers are discovered through a local registry file only.
  • opening_hours parsing covers the common subset.
  • OpenActive feeds are read a bounded number of pages per call.
  • The distribution name is open-routine-protocol, because orp is taken on PyPI.

Full changelog: CHANGELOG.md