Skip to content

codex-tools: extract MCP schema adapters#15928

Merged
bolinfest merged 1 commit intomainfrom
pr15928
Mar 27, 2026
Merged

codex-tools: extract MCP schema adapters#15928
bolinfest merged 1 commit intomainfrom
pr15928

Conversation

@bolinfest
Copy link
Copy Markdown
Collaborator

@bolinfest bolinfest commented Mar 27, 2026

Why

codex-tools already owns the shared tool input schema model and parser from the first extraction step, but core/src/tools/spec.rs still owned the MCP-specific adapter that normalizes rmcp::model::Tool schemas and wraps structuredContent into the call result output schema.

Keeping that adapter in codex-core means the reusable MCP schema path is still split across crates, and the unit tests for that logic stay anchored in codex-core even though the runtime orchestration does not need to move yet.

This change takes the next small step by moving the reusable MCP schema adapter into codex-tools while leaving ResponsesApiTool assembly in codex-core.

What changed

  • added tools/src/mcp_tool.rs and sibling tools/src/mcp_tool_tests.rs
  • introduced ParsedMcpTool, parse_mcp_tool(), and mcp_call_tool_result_output_schema() in codex-tools
  • updated core/src/tools/spec.rs to consume parsed MCP tool parts from codex-tools
  • removed the now-redundant MCP schema unit tests from core/src/tools/spec_tests.rs
  • expanded codex-rs/tools/README.md to describe this second migration step

Test plan

  • cargo test -p codex-tools
  • cargo test -p codex-core --lib tools::spec::
@bolinfest bolinfest merged commit be5afc6 into main Mar 27, 2026
36 checks passed
@bolinfest bolinfest deleted the pr15928 branch March 27, 2026 02:57
@github-actions github-actions bot locked and limited conversation to collaborators Mar 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

2 participants