openai / openai/codex-plugin-cc
Connector (codex_apps) MCP tool calls are auto-rejected: app-server client stubs all server→client requests with -32601
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 33.3k
- Forks
- 2.3k
- PR merge metrics
- No merged PRs in 30d
Description
Summary
When a Codex session run through this plugin calls a ChatGPT connector tool (the codex_apps MCP server — DainOS, GitHub, Slack, etc.), the call is refused before it runs. The root cause is that the plugin's app-server JSON-RPC client stubs every inbound server→client request with a -32601 error, so the approval/elicitation request that connector tool calls depend on is never answered.
Where
scripts/lib/app-server.mjs (plugin v1.0.6):
handleServerRequest(message) {
this.sendMessage({
id: message.id,
error: buildJsonRpcError(-32601, `Unsupported server request: ${message.method}`)
});
}
Inbound messages that carry both an id and a method (server→client requests, including approval elicitations) are routed here and unconditionally rejected. Only notifications (method, no id) are handled, via notificationHandler.
Impact
Sol/Codex cannot use any ChatGPT connector through the plugin's runners:
- The background rescue agent (
codex:rescue) returnsuser rejected MCP tool callinstantly. codex mcp-server(driven from Claude Code) and plaincodex exechang on the unanswered elicitation (observed ~20+ min at 0% CPU).
Repro
- Sign in to Codex with a ChatGPT account that has at least one connector/app enabled.
- From the plugin (or
codex exec), ask the model to call any connector tool (a read-only one is enough). - Observe
user rejected MCP tool call(rescue agent) or an indefinite hang (codex exec/codex mcp-server).
Workaround
codex exec --dangerously-bypass-approvals-and-sandbox bypasses the approval handshake entirely and the connector call succeeds. Note: approval_policy = "never" in ~/.codex/config.toml alone is not sufficient — the connector elicitation still blocks. The interactive codex TUI works because it answers the elicitation itself.
Suggested fix
Implement handleServerRequest to respond to approval / elicitation requests (auto-approve per the session's approval_policy, or surface them to the caller) instead of blanket-rejecting with -32601.
Environment
- Plugin:
codex@openai-codexv1.0.6 (marketplaceopenai/codex-plugin-cc) - codex-cli 0.144.4
- Claude Code on macOS
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in scripts/lib/app-server.mjs by reading handleServerRequest and notificationHandler, then reproduce the connector call using the steps in the issue. Done means approval or elicitation requests are handled according to the session's approval_policy instead of being blanket-rejected, and connector calls no longer immediately fail or hang.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100