mirror of
https://github.com/openai/codex.git
synced 2026-05-17 17:53:06 +00:00
## Summary This PR removes the synthetic `HashMap<String, ToolInfo>` keys from MCP tool discovery. `McpConnectionManager::list_all_tools()` now returns normalized `Vec<ToolInfo>`, and downstream code derives identity from `ToolInfo::canonical_tool_name()`. The motivation is to keep model-visible tool identity on `ToolName`/`ToolInfo` instead of parallel string map keys, so future namespace changes do not have to preserve otherwise-unused lookup keys. ## Changes - Rename the MCP normalization path from `qualify_tools` to `normalize_tools_for_model` and return tool values directly. - Flow MCP tool lists through connectors, plugin injection, router/spec building, code mode, and tool search as vectors/slices. - Keep direct/deferred subtraction local to `mcp_tool_exposure`, using `ToolName` values. - Update tests to compare `ToolName` instances where MCP identity matters. ## Validation - `cargo test -p codex-mcp test_normalize_tools` - `cargo test -p codex-core mcp_tool_exposure` - `cargo test -p codex-core direct_mcp_tools_register_namespaced_handlers` - `cargo test -p codex-core search_tool_registers_namespaced_mcp_tool_aliases` - `just fix -p codex-mcp` - `just fix -p codex-core`
69 lines
2.5 KiB
Rust
69 lines
2.5 KiB
Rust
pub use connection_manager::McpConnectionManager;
|
|
pub use elicitation::ElicitationReviewRequest;
|
|
pub use elicitation::ElicitationReviewer;
|
|
pub use elicitation::ElicitationReviewerHandle;
|
|
pub use rmcp_client::MCP_SANDBOX_STATE_META_CAPABILITY;
|
|
pub use runtime::McpRuntimeEnvironment;
|
|
pub use runtime::SandboxState;
|
|
pub use tools::ToolInfo;
|
|
|
|
pub use mcp::CODEX_APPS_MCP_SERVER_NAME;
|
|
pub use mcp::McpConfig;
|
|
pub use mcp::ToolPluginProvenance;
|
|
pub use server::EffectiveMcpServer;
|
|
|
|
pub use auth_elicitation::CodexAppsAuthElicitation;
|
|
pub use auth_elicitation::CodexAppsAuthElicitationPlan;
|
|
pub use auth_elicitation::CodexAppsConnectorAuthFailure;
|
|
pub use auth_elicitation::MCP_TOOL_CODEX_APPS_META_KEY;
|
|
pub use auth_elicitation::auth_elicitation_completed_result;
|
|
pub use auth_elicitation::auth_elicitation_id;
|
|
pub use auth_elicitation::build_auth_elicitation;
|
|
pub use auth_elicitation::build_auth_elicitation_plan;
|
|
pub use auth_elicitation::connector_auth_failure_from_tool_result;
|
|
pub use codex_apps::CodexAppsToolsCacheKey;
|
|
pub use codex_apps::codex_apps_tools_cache_key;
|
|
pub use codex_builtin_mcps::BuiltinMcpServer;
|
|
pub use codex_builtin_mcps::BuiltinMcpServerOptions;
|
|
pub use codex_builtin_mcps::MEMORIES_MCP_SERVER_NAME;
|
|
pub use codex_builtin_mcps::enabled_builtin_mcp_servers;
|
|
|
|
pub use mcp::configured_mcp_servers;
|
|
pub use mcp::effective_mcp_servers;
|
|
pub use mcp::effective_mcp_servers_from_configured;
|
|
pub use mcp::host_owned_codex_apps_enabled;
|
|
pub use mcp::tool_plugin_provenance;
|
|
pub use mcp::with_codex_apps_mcp;
|
|
|
|
pub use mcp::McpServerStatusSnapshot;
|
|
pub use mcp::McpSnapshotDetail;
|
|
pub use mcp::collect_mcp_server_status_snapshot_with_detail;
|
|
pub use mcp::read_mcp_resource;
|
|
|
|
pub use mcp::McpAuthStatusEntry;
|
|
pub use mcp::McpOAuthLoginConfig;
|
|
pub use mcp::McpOAuthLoginSupport;
|
|
pub use mcp::McpOAuthScopesSource;
|
|
pub use mcp::ResolvedMcpOAuthScopes;
|
|
pub use mcp::compute_auth_statuses;
|
|
pub use mcp::discover_supported_scopes;
|
|
pub use mcp::oauth_login_support;
|
|
pub use mcp::resolve_oauth_scopes;
|
|
pub use mcp::should_retry_without_scopes;
|
|
|
|
pub use mcp::McpPermissionPromptAutoApproveContext;
|
|
pub use mcp::mcp_permission_prompt_is_auto_approved;
|
|
pub use mcp::qualified_mcp_tool_name_prefix;
|
|
pub use tools::declared_openai_file_input_param_names;
|
|
|
|
pub(crate) mod auth_elicitation;
|
|
pub(crate) mod builtin;
|
|
pub(crate) mod codex_apps;
|
|
pub(crate) mod connection_manager;
|
|
pub(crate) mod elicitation;
|
|
pub(crate) mod mcp;
|
|
pub(crate) mod rmcp_client;
|
|
pub(crate) mod runtime;
|
|
pub(crate) mod server;
|
|
pub(crate) mod tools;
|