Repository navigation
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 demoNon-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.jsongenerator 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_hoursparsing covers the common subset.- OpenActive feeds are read a bounded number of pages per call.
- The distribution name is
open-routine-protocol, becauseorpis taken on PyPI.
Full changelog: CHANGELOG.md