feat(Canvas): add molecule-mcp version check to external workspace OpenClaw snippet #1139

Open
opened 2026-05-15 06:05:52 +00:00 by hongming · 1 comment
Owner

Problem

The Canvas-generated OpenClaw snippet for external workspaces uses "command": "molecule-mcp" in the MCP config. However, the molecule-mcp console script was only added in molecule-ai-workspace-runtime v0.1.999. Users with older versions (e.g., v0.1.17) will have the MCP server start but not heartbeat, causing the workspace to show OFFLINE in the Canvas within 60-90s even though tools appear to work.

Root Cause

The snippet instructs users to run:

pip install molecule-ai-workspace-runtime

Without a version pin, users with an existing older installation keep the old version. The molecule-mcp command is missing, but the error is silent — OpenClaw just fails to spawn the process.

Evidence

  • v0.1.17: Only provides molecule-runtime console script
  • v0.1.999+: Adds molecule-mcp console script with register + heartbeat + MCP stdio loop
  • The a2a_mcp_server.py module (used as fallback) exposes tools but does NOT heartbeat

Proposed Fix

Add a version check step to the Canvas-generated snippet:

# After pip install:
pip install molecule-ai-workspace-runtime

# Verify molecule-mcp is available (added in v0.1.999)
molecule-mcp --version || {
  echo "ERROR: molecule-mcp not found. Upgrading..."
  pip install --upgrade "molecule-ai-workspace-runtime>=0.1.999"
}

Alternative: Version Pin

pip install "molecule-ai-workspace-runtime>=0.1.999"

Location

File: workspace-server/internal/handlers/external_connection.go
Template: externalOpenClawTemplate

Severity

Medium — affects new external workspace setups on machines with older runtime versions installed.

## Problem The Canvas-generated OpenClaw snippet for external workspaces uses `"command": "molecule-mcp"` in the MCP config. However, the `molecule-mcp` console script was only added in `molecule-ai-workspace-runtime` v0.1.999. Users with older versions (e.g., v0.1.17) will have the MCP server start but **not heartbeat**, causing the workspace to show OFFLINE in the Canvas within 60-90s even though tools appear to work. ## Root Cause The snippet instructs users to run: ```bash pip install molecule-ai-workspace-runtime ``` Without a version pin, users with an existing older installation keep the old version. The `molecule-mcp` command is missing, but the error is silent — OpenClaw just fails to spawn the process. ## Evidence - v0.1.17: Only provides `molecule-runtime` console script - v0.1.999+: Adds `molecule-mcp` console script with register + heartbeat + MCP stdio loop - The `a2a_mcp_server.py` module (used as fallback) exposes tools but does NOT heartbeat ## Proposed Fix Add a version check step to the Canvas-generated snippet: ```bash # After pip install: pip install molecule-ai-workspace-runtime # Verify molecule-mcp is available (added in v0.1.999) molecule-mcp --version || { echo "ERROR: molecule-mcp not found. Upgrading..." pip install --upgrade "molecule-ai-workspace-runtime>=0.1.999" } ``` ## Alternative: Version Pin ```bash pip install "molecule-ai-workspace-runtime>=0.1.999" ``` ## Location File: `workspace-server/internal/handlers/external_connection.go` Template: `externalOpenClawTemplate` ## Severity Medium — affects new external workspace setups on machines with older runtime versions installed.
app-fe self-assigned this 2026-05-15 06:21:25 +00:00
triage-operator added the tier:low label 2026-05-15 06:32:02 +00:00
Member

triage-operator Gate I-1..I-6

I-1 duplicate check: Issues #1140 and #1141 are duplicates of this — same problem statement. Keeping #1139 as canonical.

I-2 labels: tier:low applied. No security/auth/billing/data-deletion/migration concern — UI feature gap.

I-3 owner: canvas team. @hongming FYI — PR #1143 (app-fe) pins molecule-ai-workspace-runtime to address the version compatibility gap.

I-4 scope: Affects external workspace users with older runtime. Low blast radius.

I-5 design: Standard feature request, no escalation needed.

I-6 priority: tier:low. Standard backlog.

## triage-operator Gate I-1..I-6 **I-1 duplicate check:** Issues #1140 and #1141 are duplicates of this — same problem statement. Keeping #1139 as canonical. **I-2 labels:** tier:low applied. No security/auth/billing/data-deletion/migration concern — UI feature gap. **I-3 owner:** canvas team. @hongming FYI — PR #1143 (app-fe) pins molecule-ai-workspace-runtime to address the version compatibility gap. **I-4 scope:** Affects external workspace users with older runtime. Low blast radius. **I-5 design:** Standard feature request, no escalation needed. **I-6 priority:** tier:low. Standard backlog.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#1139