Skip to content

fix(app-server): expose remote MCP servers in plugin read#26453

Merged
ericning-o merged 5 commits into
mainfrom
codex/plugin-read-mcp-details
Jun 4, 2026
Merged

fix(app-server): expose remote MCP servers in plugin read#26453
ericning-o merged 5 commits into
mainfrom
codex/plugin-read-mcp-details

Conversation

@ericning-o

@ericning-o ericning-o commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Why

Remote plugin detail responses include MCP server metadata under release.mcp_servers, but Codex did not deserialize or propagate that field. As a result, plugin/read always returned an empty mcpServers list for remote plugins, so the plugin details pane omitted the MCP Servers section even when the remote plugin declares one.

This affects uninstalled plugins as well: the remote detail API is the source of truth and returns MCP server keys without requiring a local plugin bundle.

What changed

  • Deserialize MCP server entries from remote plugin detail responses.
  • Normalize their keys into a sorted, deduplicated list on RemotePluginDetail.
  • Return those keys from app-server plugin/read instead of hardcoding an empty list.
  • Add regression coverage proving an uninstalled remote plugin returns its MCP server names.

Test plan

  • just test -p codex-core-plugins
  • just test -p codex-app-server plugin_read

@ericning-o ericning-o changed the title Codex/plugin read mcp details fix(app-server): expose curated MCP servers in plugin read Jun 4, 2026
@ericning-o ericning-o marked this pull request as ready for review June 4, 2026 20:40

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6600b2eb04

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +29 to +34
&& remote_detail
.release_version
.as_deref()
.is_none_or(|version| {
plugin.local_version.as_deref() == Some(version)
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require a release version before hydrating MCP names

When the remote detail response omits release.version (the deserializer defaults it to None), this is_none_or branch accepts any local curated plugin with the same name, even if the synced bundle is a newer/different version. In that scenario plugin/read can advertise MCP servers that do not belong to the remote plugin version the user is viewing, despite the API docs saying these are hydrated from a same-version bundle.

Useful? React with 👍 / 👎.

Comment thread codex-rs/app-server/README.md Outdated
Comment thread codex-rs/app-server/src/request_processors/plugins/remote_plugin_detail.rs Outdated
@ericning-o ericning-o changed the title fix(app-server): expose curated MCP servers in plugin read fix(app-server): expose remote MCP servers in plugin read Jun 4, 2026
hooks: Vec::new(),
apps,
mcp_servers: Vec::new(),
mcp_servers: detail.mcp_server_names,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for consistency should we call it mcp_servers as well?

@ericning-o ericning-o enabled auto-merge (squash) June 4, 2026 21:50
@ericning-o ericning-o merged commit 769c231 into main Jun 4, 2026
31 checks passed
@ericning-o ericning-o deleted the codex/plugin-read-mcp-details branch June 4, 2026 22:10
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants