Remote synced plugin should skip MCP startup when required runtime is missing

Open 💬 2 comments Opened Jun 20, 2026 by cossio
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

A remote-synced Codex plugin can be enabled on a machine that does not have the runtime required by its MCP server. In this case, the Data Analytics plugin syncs to a remote Linux host and Codex tries to start its datascienceWidgets MCP server, but the machine does not have Node.js installed.

What happened

The plugin is synced as:

  • data-analytics@openai-curated-remote
  • installed: true
  • enabled: true

Its MCP config runs:

node ./mcp/server.cjs --stdio

On the remote Linux host, node, npm, npx, and bun are not available on PATH.

Codex startup reports:

MCP client for `datascienceWidgets` failed to start: MCP startup failed: No such file or directory (os error 2)

MCP startup incomplete (failed: datascienceWidgets)

Expected behavior

Codex or the plugin should detect missing runtime requirements before attempting MCP startup and either:

  • skip/disable the MCP server for this machine,
  • show an actionable message like "Data Analytics Widgets require Node.js", or
  • mark the plugin incompatible on this host while keeping it enabled on other devices.

Actual behavior

The plugin remains enabled through remote sync and Codex attempts to start the MCP server every session, producing a low-level startup error.

Why this matters

Plugin install state appears to sync across devices. A plugin enabled from a desktop Codex app may not be runnable on a remote Linux machine with a different runtime environment. Per-account plugin sync should not assume every connected host has the same local dependencies.

Environment

  • Remote Linux Codex session
  • Plugin: data-analytics@openai-curated-remote
  • MCP server: datascienceWidgets
  • Missing runtime: Node.js not installed/on PATH

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #29119

Powered by Codex Action

Necmttn · 2 months ago

Remote plugin sync needs host capability checks before MCP admission. The plugin manifest can declare runtime requirements such as command, Node semver, OS/arch support, and optional install hint.

On a host that lacks the runtime, mark that MCP server incompatible_on_host with reason missing_runtime:node, skip startup, and keep the plugin enabled elsewhere. The thread should start with a diagnostic, not a failed MCP process. Cache the compatibility result per host and plugin version.

---

_Generated with ax._