Skip to content

feat(studio): Heady Studio MCP host + headymcp.com gateway (skeleton)#225

Open
HeadyMe wants to merge 2 commits into
rebuildfrom
claude/heady-mcp-app-skeleton-fjaln8
Open

feat(studio): Heady Studio MCP host + headymcp.com gateway (skeleton)#225
HeadyMe wants to merge 2 commits into
rebuildfrom
claude/heady-mcp-app-skeleton-fjaln8

Conversation

@HeadyMe

@HeadyMe HeadyMe commented Jun 19, 2026

Copy link
Copy Markdown
Member

What & why

A functional, extensible skeleton for Heady Studio — a Claude-Code-style app that fronts Heady's MCP services. Built on the architectural decision (confirmed with the owner) that Heady Studio is a thin MCP host: all capability lives behind MCP servers, Heady's own ride a single multiplexed gateway at headymcp.com/mcp, and external servers connect by their Streamable-HTTP /mcp endpoint. The UI is a registry-driven renderer over the official @modelcontextprotocol/sdk, so new options drop in with zero UI changes.

This collapses several requirements into one abstraction: "toggle a Heady feature" and "connect an external MCP server" become the same operation on one registry → one toggle UI, one billing meter.

Components

Path Role
packages/studio-registry Source of truth. zod-validated manifest of models, modes, effort tiers, execution modes, skills, workflows, Heady services, external MCP presets + φ-scaled billing meter + recommendation engine.
apps/heady-mcp-gateway headymcp.com/mcp — Express + MCP server on Cloud Run. Firebase-authed (fail-closed), structured logging, /health + /metrics. Tools: heady_recommend, heady_governance_check, heady_memory_search (honest bound:false when Neon pgvector is unbound — zero fabricated data).
apps/heady-studio The app. Vite + vanilla Web Components SPA.

Features wired (v1 skeleton)

  • Login + persistent memory (Firebase → gateway heady_memory_search)
  • Repo connectors (GitHub / Heady-ecosystem / local FS via MCP servers)
  • Model switcher · effort selector · modes (understanding / recommendation / deep-research)
  • Execution toggle: auto / testing-review / sandbox
  • Services panel: Heady services (permanent ones locked-on) + external MCP toggles that adjust the per-message billing meter
  • Skills & workflows pickers
  • Composer that auto-grows to 6 lines then scrolls, with Send + Attach
  • Live recommendation strip (local instant + gateway heady_recommend reconcile)

Verification

  • @heady/studio-registry unit tests: 6/6 pass
  • @heady-ai/heady-mcp-gateway HTTP smoke tests: 4/4 pass (health open, metrics, MCP fail-closed without bearer, manifest auth-gated)
  • SPA Vite production build: green (235 modules)
  • All new modules pass node --check
  • AGENTS hard-rules clean on new files: no localhost/require()/TODO/console.log

Note: repo-wide eslint currently fails to load due to a pre-existing missing globals dependency in eslint.config.mjs — unrelated to this PR.

How to extend

  • New model/skill/service/MCP preset → add a row in @heady/studio-registry; topbar, Services panel, and billing meter pick it up automatically.
  • New Heady capability → one registerTool(...) in the gateway.
  • Model-backed chat → inject the selected model's provider key into the gateway; MCP tools are already live.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E59siYZobUyLBWjKFRNyVQ


Generated by Claude Code

claude added 2 commits June 19, 2026 14:20
Add a Claude-Code-style MCP host (apps/heady-studio) that fronts Heady
services as MCP servers, plus the single multiplexed gateway it talks to
(apps/heady-mcp-gateway → headymcp.com/mcp). All capability lives behind
MCP servers; the UI is a registry-driven renderer over the official
@modelcontextprotocol/sdk, so new options drop in without UI changes.

- packages/studio-registry: source-of-truth catalog (models, modes, effort,
  execution modes, skills, workflows, Heady services, external MCP presets)
  + zod-validated manifest, phi-scaled billing meter, recommendation engine.
- apps/heady-mcp-gateway: Express + MCP server on Cloud Run. Firebase-authed
  (fail-closed), structured logging, /health + /metrics, tools for recommend,
  governance, and persistent-memory search (honest bound:false when Neon
  pgvector is unbound — zero fabricated data).
- apps/heady-studio: Vite + vanilla Web Components SPA. Login + persistent
  memory, repo connectors, model switcher, Services panel (Heady + external
  MCP toggles that adjust billing), skills/workflows pickers, effort selector,
  modes (understanding/recommendation/deep-research), auto/testing-review/
  sandbox execution toggle, auto-growing composer (6 lines then scroll) with
  Send + Attach, and a live recommendation strip.

Verified: studio-registry 6/6, gateway 4/4, SPA Vite build green, all
modules parse, AGENTS hard-rules clean (no localhost/require/TODO/console.log).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E59siYZobUyLBWjKFRNyVQ
Dependency layers L0→L8 (Mermaid), beachhead ship-order with per-phase
Definition of Done, cross-cutting components built in from Phase 0, and the
branch strategy. Maps this PR to beachheads 2+4 plus the billing-meter half
of 6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E59siYZobUyLBWjKFRNyVQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants