Skip to content

Run MCP setup without requiring Node - #298

Merged
Eli Pinkerton (wallstop) merged 1 commit into
fix/compact-object-rowsfrom
refactor/python-mcp-configurator
Oct 19, 2026
Merged

Eli Pinkerton (wallstop) merged 1 commit into
fix/compact-object-rowsfrom
refactor/python-mcp-configurator

Conversation

@wallstop

@wallstop Eli Pinkerton (wallstop) commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

DISCLOSURE: LLM-GENERATED TEXT

Why: MCP configuration still depends on Node after persistence moved to Python.

What:

  • Move configuration orchestration to typed Python.
  • Run the Python sync wrapper without Node.
  • Keep legacy Node commands as compatibility launchers.
  • Preserve frontend formats, dry runs, and independent failure reporting.

Refs #171.

Type of Change

  • Refactor (code change that neither fixes a bug nor adds a feature)

Checklist

  • I have added tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • My changes do not introduce breaking changes, or breaking changes are documented

Note

Medium Risk
Refactor touches how all agent frontend MCP configs are generated, but behavior is preserved via contract tests; residual risk is launcher/path edge cases on hosts without uv or Python 3.9+.

Overview
MCP configuration no longer depends on Node for orchestration. The universal configurator logic that lived in configure.mjs is now implemented in scripts/mcp_configure.py, which drives the existing Python helpers (mcp_aliases, mcp_catalog, mcp_json_config, mcp_codex_config) and keeps the same multi-frontend write plan, --check dry runs, per-frontend success/failure reporting, and status output (Unity bridge URL, credential alias divergence, optional uv/uvx servers).

sync_mcp.py invokes the Python configurator directly instead of spawning Node. configure.mjs remains as a thin compatibility launcher that forwards to uv run or Python 3.9+.

Contract tests were updated so sync/credential cases run without Node (including a new case that sync --check succeeds with an empty PATH), and the MCP README documents the Python entry point.

Reviewed by Cursor Bugbot for commit a5ae7d2. Bugbot is set up for automated code reviews on this repo. Configure here.

The universal configurator still owns orchestration in Node after its persistence adapters moved to Python. Move orchestration to typed Python and let the Python sync wrapper work without Node. Retain the old Node command as a launcher with validated Python 3.9 fallback.

All ten generated files match the former Node implementation byte for byte for open and authenticated bridge cases, including quoted URLs and non-ASCII workspaces. Dry runs, independent writer failures, logical paths, missing uv, and credential aliases pass their contracts. The sync suite passes on actual Python 3.9.25; strict pyright reports zero errors. The 17-step gate passes the full harness suite. The unchanged C# state passed 395 EditMode and 15 PlayMode tests in the preceding stack layer.

Refs #171. The Unity HTTP host remains for a separate migration layer.
@wallstop
Eli Pinkerton (wallstop) added this pull request to stack #297 October 18, 2026 20:46
@wallstop
Eli Pinkerton (wallstop) merged commit 9320f3c into main Oct 19, 2026
3 checks passed
@wallstop
Eli Pinkerton (wallstop) deleted the refactor/python-mcp-configurator branch October 19, 2026 02:16
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.

1 participant