Fill the belt: providers_search → Oracle; first installed tool = Tea MCP #2

Open
opened 2026-10-29 00:11:46 +00:00 by teahubxyz · 1 comment
Owner

State on 2026-10-28: Phast 0.2.0 is live and healthy (phast-app, volume, Teahub OAuth, matcha+chai), exactly one Phast exists (matcha.phast.app), tools.installed is always empty, connections is always empty, and providers_search returns {"source": "oracle", "status": "adapter-next"}. Zero traffic beyond health checks. Phast is a beautifully authenticated way to own an empty belt.

The thing that fills the belt is Oracle (teahubxyz/oracle, docs/PLAN.md step 4).

  • providers_search(query) queries Oracle's static projection (capability shards + overview); returns provider, capability, evidence state, MCP endpoint. No new backend; fetch the published JSON.
  • tools_install(slug, capability_id) appends to tools.installed with a reference to the Oracle node and a Persimmons authority reference (never a secret).
  • the personal /mcp proxies installed tools to their upstream MCP with per-connection OAuth — this is the real engineering in Phast and should be designed with Oracle #3 (the doorway) so both share one proxy.
  • every proxied call writes an observation back to Oracle (#2 there).
  • first real belt: Tea MCP itself on matcha.phast.app.

Also worth a look before anyone beyond matcha/chai leans on it: every personal MCP uses my.phast.app as OAuth base with the slug host as resource — fine for two users, check the resource binding before opening up.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FAqjv1sLfUad2bMcsmPbRT

State on 2026-10-28: Phast 0.2.0 is live and healthy (`phast-app`, volume, Teahub OAuth, matcha+chai), exactly one Phast exists (`matcha.phast.app`), `tools.installed` is always empty, `connections` is always empty, and `providers_search` returns `{"source": "oracle", "status": "adapter-next"}`. Zero traffic beyond health checks. Phast is a beautifully authenticated way to own an empty belt. The thing that fills the belt is Oracle (`teahubxyz/oracle`, `docs/PLAN.md` step 4). - [ ] `providers_search(query)` queries Oracle's static projection (capability shards + overview); returns provider, capability, evidence state, MCP endpoint. No new backend; fetch the published JSON. - [ ] `tools_install(slug, capability_id)` appends to `tools.installed` with a reference to the Oracle node and a Persimmons authority reference (never a secret). - [ ] the personal `/mcp` proxies installed tools to their upstream MCP with per-connection OAuth — this is the real engineering in Phast and should be designed with Oracle #3 (the doorway) so both share one proxy. - [ ] every proxied call writes an observation back to Oracle (#2 there). - [ ] first real belt: Tea MCP itself on `matcha.phast.app`. Also worth a look before anyone beyond matcha/chai leans on it: every personal MCP uses `my.phast.app` as OAuth base with the slug host as resource — fine for two users, check the resource binding before opening up. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01FAqjv1sLfUad2bMcsmPbRT
Author
Owner

Shipped 2026-10-28 (5bec2c0, deployed, /healthz reports it).

  • providers_search(query, limit, connectable_only) searches Oracle's search.json (52,131 capabilities, fetched hourly, last good copy kept on the volume). Every term must match; results rank by evidence rung → has endpoint → name match → Teahub's own declaration, ties A→Z. Each result carries its evidence state, so a registry listing shows as a claim.
  • tools_install(slug, capability_id) puts a capability on the belt as a reference (id, endpoint, evidence, sources) — never a credential. tools_list, tools_remove alongside. The personal home and Prefab app render the belt above the widgets.
  • First real belt: Tea MCP on matcha.phast.app — Oracle id mcp-server-1f5416b6227946c7, from Teahub's overlay in Oracle (teahubxyz/oracle oracle/overlay.json, source teahub, state claimed). Installed as an operator action on the box through the same functions, because the tool path needs matcha's OAuth session; it is marked installed_by: operator in the manifest. matcha can redo it from chat any time.
  • the personal /mcp proxies installed tools upstream with per-connection OAuth — not started; shared design with teahubxyz/oracle#3.
  • observations written back to Oracle — waits on teahubxyz/oracle#2.

What the belt shows today is exactly the state of the world: Tea MCP is CLAIMED, by us, about ourselves. The first proxied call through it is what earns reachable.

Shipped 2026-10-28 (`5bec2c0`, deployed, `/healthz` reports it). - [x] `providers_search(query, limit, connectable_only)` searches Oracle's `search.json` (52,131 capabilities, fetched hourly, last good copy kept on the volume). Every term must match; results rank by evidence rung → has endpoint → name match → Teahub's own declaration, ties A→Z. Each result carries its evidence state, so a registry listing shows as a claim. - [x] `tools_install(slug, capability_id)` puts a capability on the belt as a reference (id, endpoint, evidence, sources) — never a credential. `tools_list`, `tools_remove` alongside. The personal home and Prefab app render the belt above the widgets. - [x] First real belt: **Tea MCP on matcha.phast.app** — Oracle id `mcp-server-1f5416b6227946c7`, from Teahub's overlay in Oracle (`teahubxyz/oracle` `oracle/overlay.json`, source `teahub`, state `claimed`). Installed as an operator action on the box through the same functions, because the tool path needs matcha's OAuth session; it is marked `installed_by: operator` in the manifest. matcha can redo it from chat any time. - [ ] the personal `/mcp` proxies installed tools upstream with per-connection OAuth — not started; shared design with `teahubxyz/oracle#3`. - [ ] observations written back to Oracle — waits on `teahubxyz/oracle#2`. What the belt shows today is exactly the state of the world: Tea MCP is `CLAIMED`, by us, about ourselves. The first proxied call through it is what earns `reachable`.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: phast/app#2