Data Analytics plugin tools appear in remote Codex CLI without local install/config

Open 💬 1 comment Opened Jun 4, 2026 by sun-binwen

Summary

After installing the Data Science / Data Analytics plugin on another device (my laptop), a separate remote Codex CLI session started exposing Data Analytics-related capabilities, including the datascienceWidgets MCP/widget tools, even though that remote host does not show the plugin as locally installed or configured.

This was unexpected because the remote CLI host's local config does not contain a datascienceWidgets MCP server or a data-analytics plugin entry.

Environment

  • Codex CLI: codex-cli 0.136.0
  • Surface affected: Codex CLI on a remote Linux host over SSH
  • Plugin involved: Data Analytics / Data Science plugin
  • Separately installed on: another device (laptop)

Observed behavior

In the remote Codex CLI session, Data Analytics capabilities were available to the agent/tool layer, including the datascienceWidgets MCP namespace and Data Analytics skills.

However, on that same remote host:

$ codex plugin list | rg 'data-analytics|github@openai-curated|hugging-face@openai-curated'
16:hugging-face@openai-curated  installed, enabled  ...
24:github@openai-curated        installed, enabled  ...

No data-analytics plugin appears as installed/enabled.

$ codex mcp list | rg 'datascience|arxiv|context7|semantic_scholar|serena|github'
# lists arxiv, context7, semantic_scholar, serena, github
# does not list datascienceWidgets

The local ~/.codex/config.toml on the remote host contains explicit entries for GitHub and Hugging Face plugins only:

[plugins."github@openai-curated"]
enabled = true

[plugins."hugging-face@openai-curated"]
enabled = true

It also has no [mcp_servers.datascienceWidgets] entry.

The remote host did have a cached plugin bundle at a path like:

~/.codex/plugins/cache/openai-curated-remote/data-analytics/<version>/

and that cached bundle contains:

{
  "mcpServers": {
    "datascienceWidgets": {
      "title": "Data Analytics Widgets",
      "command": "node",
      "args": ["./mcp/server.cjs", "--stdio"]
    }
  }
}

Expected behavior

One of these should be true:

  1. Plugin installs are local/per-host, and a plugin installed on one device should not expose tools in another host's CLI unless installed/enabled there.
  2. Plugin installs are account/workspace-global, but the CLI should make that sync explicit in codex plugin list, config/state diagnostics, and the plugin browser.
  3. There should be a clear per-host override to disable a plugin-provided MCP server, such as data-analytics / datascienceWidgets, without uninstalling it everywhere.

Why this matters

This changes the tool surface of a remote development session unexpectedly. It can affect agent routing, available MCP tools, and prompt behavior in a repo where the user did not intend to enable Data Analytics.

Requested improvement

Please clarify and/or fix the plugin scoping behavior for Codex CLI:

  • If plugin availability is synced across devices, expose that state clearly in codex plugin list and codex doctor.
  • Provide a documented CLI/config way to disable a synced plugin or its plugin-provided MCP server on just one host.
  • Avoid exposing plugin-provided MCP tools in a CLI session when the local host does not show the plugin as installed/enabled.

I can provide more diagnostics if there is a specific state file or command that would help distinguish local cache, account-synced plugin state, and current-session tool injection.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗