Repository navigation
LifeOps MCP v0: bounded ChatGPT Business cockpit over Inbox - #67
jwalin-shah wants to merge 3 commits into
Conversation
PEV-AUT-BPB-20260903T0325-INBOX-GOOGLE-REHYDRATEMaterial runtime blocker found (2026-09-03): the LifeOps/Inbox control plane is reachable, but every Google provider currently reports This directly blocks this PR's v0 acceptance test ( Current repo anchors:
Code inspection narrows the recovery path. Executor sequence (local Mac only; no write actions to Gmail/Calendar/Tasks are required): cd ~/projects/inbox
git fetch origin
git switch main
git reset --hard be61619275150bbb0a608dfb62021bc2859488d0
# 1. Read-only diagnosis. This checks /health and
# /accounts/auth-status?check_refresh=true.
# It requires INBOX_SERVER_TOKEN (or ~/.config/inbox/server.env) and
# credentials.json, but does not start OAuth unless --start is supplied.
./scripts/restore_google_oauth.sh | tee /tmp/inbox-google-auth-before.txt
# 2. If every token is already_valid or refresh_status=ok with no
# missing_required_scopes, restart/rehydrate the Inbox server first.
# A clean startup must invoke google_auth_all() automatically.
# Use the machine's existing service supervisor if one owns :9849;
# otherwise for the PR-67 acceptance harness:
git switch lifeops-mcp-v0
export INBOX_SERVER_TOKEN="$(grep '^INBOX_SERVER_TOKEN=' "$HOME/.config/inbox/server.env" | cut -d= -f2-)"
bash scripts/run_lifeops_mcp_v0.sh
# 3. Read back provider state from a second shell.
curl -fsS -H "Authorization: Bearer ${INBOX_SERVER_TOKEN}" \
http://127.0.0.1:9849/status/providers | python3 -m json.tool
curl -fsS -H "Authorization: Bearer ${INBOX_SERVER_TOKEN}" \
http://127.0.0.1:9849/capture/health | python3 -m json.tool
# 4. Only if auth-status shows a specific account with refresh_status=failed,
# unreadable_token, missing_required_scopes, or revoked refresh credentials,
# re-auth that account explicitly rather than re-consenting all accounts:
curl -fsS -X POST \
-H "Authorization: Bearer ${INBOX_SERVER_TOKEN}" \
-H 'Content-Type: application/json' \
-d '{"email":"<affected-account>"}' \
http://127.0.0.1:9849/accounts/reauth | python3 -m json.toolAcceptance: all expected Google provider rows lose Kill/escalate: stop before OAuth mutation if the dry run shows all tokens valid yet a clean server startup still produces empty service maps—capture the This packet is executor-ready; no local process, OAuth browser flow, Work/Codex run, or scarce inference was launched here. |
Purpose
Prove the smallest useful ChatGPT Business -> LifeOps MCP -> Inbox/Mac vertical slice without exposing the full Inbox REST API or weakening existing approval invariants.
Adds
lifeops_mcp.py: tool-only FastMCP adapterscripts/run_lifeops_mcp_v0.sh: local Inbox + MCP launcherdocs/lifeops-mcp-v0.md: Secure MCP Tunnel / ngrok dev guidance and acceptance testV0 tools
Read:
search/fetchBounded writes:
The adapter allowlists only task creation and calendar updates for approval/execution. It does not expose arbitrary REST, shell/filesystem, messaging writes, or deletes.
First acceptance test
Use the existing Street play practice case to prove:
message evidence -> calendar correlation -> travel calculation -> proposed event enrichment -> explicit approval -> execution -> read-back verification -> departure time.
Validation so far
lifeops_mcp.pyin an isolated container.ToolAnnotationssnake_case names.main, 0 behind.mcpdependency or access to the local Inbox data stores.Keep draft until the Mac runtime + ChatGPT Developer Mode acceptance test passes.