Connect Claude or Codex to Pace, the agentic iPhone alarm. The agent reads your upcoming wakes and queues changes; your iPhone applies them and is the only thing that rings.
MCP endpoint: https://mcp-production-e0af.up.railway.app/mcp (Streamable HTTP, OAuth 2.1).
Open Pace on your iPhone → Settings → Connect an agent. It shows a pairing code (valid 10 minutes). Every connect flow below opens a browser page that asks for that code.
claude plugin marketplace add guzus/pace-plugin
/plugin install pace@pace
/mcp # pick "pace" → Authenticate → enter the pairing codeWithout the plugin:
claude mcp add --transport http pace https://mcp-production-e0af.up.railway.app/mcpThen /pace-morning flight at 9:40 tomorrow.
Settings → Connectors → Add custom connector → URL
https://mcp-production-e0af.up.railway.app/mcp → Connect. Leave client id/secret empty; the
server supports Client ID Metadata Documents and Dynamic Client Registration.
Enter the pairing code on the consent page.
~/.codex/config.toml:
[mcp_servers.pace]
url = "https://mcp-production-e0af.up.railway.app/mcp"Then codex mcp login pace and enter the pairing code.
| Tool | What it does |
|---|---|
get_next_wake |
The next wake that will actually ring |
list_upcoming_wakes(days) |
Every occurrence in the window, incl. skipped and pending |
propose_wake(date, time, reason?) |
Queue a new one-off wake |
move_occurrence(occurrence_id, time) |
Queue a time change for one day |
skip_occurrence(occurrence_id) |
Queue a skip for one day |
set_occurrence_note(occurrence_id, reason) |
Queue a note shown when it rings |
Resource: pace://wakes/upcoming.
Every write is intent. Nothing changes until the Pace app on your iPhone syncs and commits it to AlarmKit.
.claude-plugin/plugin.json plugin manifest
.claude-plugin/marketplace.json lets `claude plugin marketplace add guzus/pace-plugin` work
.mcp.json remote MCP server (single URL constant)
skills/pace-morning/SKILL.md morning review procedure