mcp tool to let the model call tools on a remote MCP server alongside its
web research. Parallel connects to the server, lists its tools, and calls them when they are
useful for the question. Each call is reported as an mcp_call output item, in the same
shape OpenAI returns it.
Use an mcp tool for a server you run or a provider your organization already licenses. For
Data Connectors Parallel manages, use data_sources
instead.
Add a server
server_description is accepted and ignored. Parallel does not run the OAuth flow for you;
obtain a token separately and pass it as authorization or in headers:
mcp tools, but fewer usually gives better answers. MCP tools
work on every reasoning.effort tier, and can be combined with a
web_search tool and with data_sources.
Restrictions
- Only servers using the Streamable HTTP transport are supported, and only their tools: MCP resources and prompts are not used.
require_approvalmust be"never". There is no approval round trip, so the response never containsmcp_approval_requestitems.connector_id(OpenAI connectors),tunnel_id, anddefer_loadingare not supported and are rejected when set, includingdefer_loading: false.allowed_toolsmust be a list of tool names. An empty list and the filter-object form ({"read_only": true}) are rejected.- Connection and tool-listing errors are not reported yet. If a server can’t be reached or
its tools can’t be listed, the request completes on web research and any other servers,
with no
mcp_callitems for that server.allowed_toolsnames that match no tool on the server are also ignored without an error, so if none match, that server is never called.
400 with the reason; see
OpenAI Responses Compatibility.
Read tool calls
A completed response contains onemcp_call item per tool call the model made, for your
mcp tools and for the connectors you named in data_sources:
The model decides when a tool is useful, so a server may be called several times or not at
all. A failed call does not fail the response. Calls to Index Partners are not reported.
Read
output by item type rather than by position. mcp_call items follow the
web_search_call items and precede the message item in a non-streaming response, but
follow the message item in a streamed one.
mcp tools on tools with credentials removed: headers and
authorization are null, and any query string on server_url is replaced with ***.
With streaming enabled, tool calls are reported
once research finishes, after the answer’s text delta, as response.output_item.added,
response.mcp_call.completed or response.mcp_call.failed, and response.output_item.done
for each call. The response.mcp_call.in_progress, response.mcp_call_arguments.*, and
response.mcp_list_tools.* events are not sent.