Eric Ning and GitHub
769c231aa1
fix(app-server): expose remote MCP servers in plugin read ( #26453 )
...
## 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`
2026-06-04 22:10:24 +00:00
..
2026-05-18 10:32:33 -07:00
2026-05-19 17:54:41 -07:00
2026-05-26 20:59:47 -07:00
2026-05-07 15:44:17 -07:00
2026-04-28 12:35:00 -07:00
2026-06-04 11:24:12 -07:00
2026-05-07 15:44:17 -07:00
2026-06-04 22:10:24 +00:00
2026-06-02 13:18:59 -07:00
2026-05-25 09:41:12 -07:00
2026-06-04 13:36:24 -07:00
2026-05-28 14:54:39 -07:00
2026-06-02 17:01:02 -07:00
2026-06-01 18:45:07 +00:00
2026-06-03 19:08:19 -07:00
2026-05-07 15:44:17 -07:00
2026-05-08 04:07:59 +00:00
2026-06-04 01:25:11 +05:30
2026-05-05 22:22:01 -07:00
2026-06-01 11:04:21 -07:00
2026-06-04 12:20:32 -05:00
2026-06-02 16:41:48 -07:00
2026-05-07 15:44:17 -07:00
2026-05-07 15:44:17 -07:00
2026-05-07 15:44:17 -07:00
2026-06-04 09:39:20 -07:00
2026-06-04 13:15:50 -07:00
2026-06-01 21:25:42 -07:00
2026-05-26 20:59:47 -07:00
2026-05-07 15:44:17 -07:00
2026-06-02 17:04:11 +02:00
2026-05-07 15:44:17 -07:00
2026-06-04 18:40:18 +00:00
2026-05-28 22:08:05 -07:00
2026-06-03 13:32:55 +02:00
2026-06-04 15:08:52 -07:00
2026-06-04 12:43:07 -07:00
2026-06-04 22:10:24 +00:00
2026-06-04 15:28:06 +02:00
2026-06-04 13:36:24 -07:00
2026-06-04 13:36:24 -07:00
2026-06-01 11:53:31 -07:00
2026-05-07 15:44:17 -07:00
2026-05-07 15:44:17 -07:00
2026-06-04 09:39:20 -07:00
2026-06-04 14:16:03 -04:00
2026-06-04 13:13:05 -04:00
2026-06-04 13:15:50 -07:00
2026-05-26 15:59:25 -07:00
2026-05-07 15:44:17 -07:00
2026-06-01 11:53:31 -07:00
2026-05-28 23:09:55 -07:00
2026-05-18 10:53:49 -07:00
2026-06-02 13:18:59 -07:00
2026-06-03 19:08:19 -07:00
2026-05-07 15:44:17 -07:00
2026-05-28 15:26:55 -07:00
2026-05-07 15:44:17 -07:00
2026-05-28 05:40:17 -07:00
2026-06-01 04:33:20 +00:00
2026-06-04 13:36:24 -07:00
2026-06-04 09:53:08 -04:00
2026-05-30 11:54:58 -07:00
2026-05-28 10:29:06 -07:00
2026-06-02 12:10:14 +02:00
2026-06-01 23:23:59 +00:00
2026-06-04 09:53:08 -04:00
2026-06-04 13:36:24 -07:00
2026-05-21 16:11:59 -07:00
2026-05-25 17:26:10 -03:00
2026-06-03 13:32:55 +02:00
2026-06-04 14:01:14 -07:00
2026-05-07 15:44:17 -07:00
2026-05-07 15:44:17 -07:00
2026-06-04 09:53:08 -04:00
2026-06-02 13:05:20 +02:00
2026-06-01 19:57:11 +02:00
2026-06-03 10:41:41 -07:00
2026-05-26 20:59:47 -07:00
2026-05-07 15:44:17 -07:00
2026-05-29 03:00:35 +00:00
2026-05-07 15:44:17 -07:00
2026-05-28 15:11:11 +00:00
2026-06-04 13:36:24 -07:00
2026-05-07 15:44:17 -07:00
2026-05-13 21:23:19 +00:00
2026-05-07 15:44:17 -07:00
2026-06-04 18:40:18 +00:00
2026-06-04 13:36:24 -07:00
2026-06-02 12:00:04 -07:00
2026-06-04 14:01:14 -07:00
2026-05-07 15:44:17 -07:00
2026-06-04 13:36:24 -07:00
2026-05-18 21:33:05 -07:00
2026-05-06 18:10:30 +00:00
2026-06-04 13:03:47 -07:00
2026-06-04 09:39:20 -07:00
2026-06-04 20:07:53 +00:00
2026-05-13 03:08:01 +00:00
2026-06-04 09:16:03 -07:00
2026-05-26 20:59:47 -07:00