Regular workspaces lack the unified request tools (create_request/list_inbox) — npm mcp-server isn't wired into ordinary workspace boxes #2606

Open
opened 2026-06-11 20:42:20 +00:00 by core-devops · 0 comments
Member

Surfaced while shipping the core#2573 fix chain (CTO architecture question, 2026-06-11).

Intent (SSOT): the platform agent is a normal workspace differing only in image + config overlay (core#2495), and registerRequestTools (mcp-server requests.ts) registers create_request/list_inbox/check_requests/respond_request in BOTH workspace and management modes from one function. So every workspace should be able to raise a task/approval to the user.

Reality: ordinary workspace boxes never load the npm @molecule-ai/mcp-server at all:

  • the base workspace-template-claude-code image does not install it (only Dockerfile.platform-agent does);
  • the template config.yaml has no mcp_servers: block;
  • tenant workspace agents get their agent-facing tools from the runtime wheel's python a2a bridge (delegate_task, send_message_to_user, commit_memory, …), which has no request tools;
  • external runtimes go through their adapters — same story.

So today only the concierge (management mode, as of mcp-server 1.6.1) and management/canvas-side consumers have create_request/create_approval. A regular workspace asked to "request user approval" has no tool for it — the same improvisation hazard class as core#2573.

Options (pick via RFC/design review):

  1. Bake @molecule-ai/mcp-server (workspace mode) into the base template image + add an mcp_servers: overlay fragment (mirror of the concierge's mcp_servers.yaml mechanism, default mode instead of management).
  2. Port the request tools into the runtime wheel's a2a bridge (single wheel delivery, but duplicates the tool surface — weakens the npm SSOT).
  3. Hybrid: bridge proxies to the unified /workspaces/:id/requests endpoint (thin client, SSOT stays server-side).

Option 1 keeps the SSOT story cleanest; needs the PATH-collision care from the pilot RCA (molecule-mcp vs molecule-platform-mcp symlink).

Refs: core#2573, mcp-server#61/#62/#63, template#111/#112/#113.

Surfaced while shipping the core#2573 fix chain (CTO architecture question, 2026-06-11). **Intent (SSOT):** the platform agent is a normal workspace differing only in image + config overlay (core#2495), and `registerRequestTools` (mcp-server requests.ts) registers `create_request`/`list_inbox`/`check_requests`/`respond_request` in BOTH workspace and management modes from one function. So *every* workspace should be able to raise a task/approval to the user. **Reality:** ordinary workspace boxes never load the npm `@molecule-ai/mcp-server` at all: - the base `workspace-template-claude-code` image does not install it (only `Dockerfile.platform-agent` does); - the template `config.yaml` has no `mcp_servers:` block; - tenant workspace agents get their agent-facing tools from the runtime wheel's python a2a bridge (`delegate_task`, `send_message_to_user`, `commit_memory`, …), which has no request tools; - external runtimes go through their adapters — same story. So today only the concierge (management mode, as of mcp-server 1.6.1) and management/canvas-side consumers have `create_request`/`create_approval`. A regular workspace asked to "request user approval" has no tool for it — the same improvisation hazard class as core#2573. **Options (pick via RFC/design review):** 1. Bake `@molecule-ai/mcp-server` (workspace mode) into the base template image + add an `mcp_servers:` overlay fragment (mirror of the concierge's `mcp_servers.yaml` mechanism, default mode instead of management). 2. Port the request tools into the runtime wheel's a2a bridge (single wheel delivery, but duplicates the tool surface — weakens the npm SSOT). 3. Hybrid: bridge proxies to the unified `/workspaces/:id/requests` endpoint (thin client, SSOT stays server-side). Option 1 keeps the SSOT story cleanest; needs the PATH-collision care from the pilot RCA (molecule-mcp vs molecule-platform-mcp symlink). Refs: core#2573, mcp-server#61/#62/#63, template#111/#112/#113.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2606