The 2.0 release contains a breaking change renaming what was previously the orchestrate toolkits import command
as the orchestrate toolkits add command. A new orchestrate toolkits import command was introduced which operates
on files in manner inverse from the orchestrate toolkits export command.
Remote MCP integration lets you connect watsonx Orchestrate to external toolkits hosted on remote servers. Use this setup when your tools live outside your local environment, such as in cloud services or third-party APIs. You can import and manage them using the ADK CLI.
The type of toolkit to import. Only mcp is supported at this time.
--name / -n
string
Yes
The name of the toolkit.
--description
string
Yes
The description for the toolkit.
--url / -u
string
Yes
The URL of the remote MCP server.
--transport
string
Yes
Communication protocol for the remote MCP server. Supported values: sse and streamable_http.
--tools / -t
string
No
A comma-separated list of tools to import, or * to import all available tools (e.g. --tools="tool_1,tool_2").
--app-id / -a
string
No
The app_id to of a connection to associate with this toolkit. Only key_value connections are supported. Each key and value within the connection will be exposed as environment variables to the mcp server. For more information, see Connections.
Examples:
Using SSE
Using streamable HTTP
This example connects watsonx Orchestrate to CoinGecko remote MCP server using SSE. For more information, see CoinGecko MCP Server
This example connects watsonx Orchestrate to GitHub Copilot remote MCP server using streamable HTTP. For more information, see GitHub Copilot.To run this example, you must have a GitHub account and an access token configured as a key-value connection. Use mcpgithub as the connection name.
You can also import an MCP server configuration from a file. The file contains the same configuration options
used by the add command, within a yaml file, but is easier to integrate with import scripts and CI/CD pipelines.
BASH
Copy
Ask AI
orchestrate connections add -a my_connectionfor env in draft live; do orchestrate connections configure -a my_connection --env $env --type team --kind key_value orchestrate connections set-credentials -a my_connection --env $env -e "SECURE_ENVIRONMENT_VARIABLE=value"doneorchestrate toolkits import -f toolkit_name.yaml -a my_connection
During import, ADK connects to the remote MCP server to retrieve and validate available tools.ADK checks only the tool schemas for structural correctness and compatibility with watsonx Orchestrate. It doesn’t test tool execution at this stage.watsonx Orchestrate waits up to 30 seconds for the server to respond with the tool list. If the server responds in time, the import continues. If not, the process fails or times out.ADK doesn’t test individual tools during import, so no execution timeouts apply at this stage.
You must choose the transport protocol explicitly. ADK doesn’t support fallback or automatic switching between protocols.Any MCP server that follows the standard protocol and supports SSE or streamable HTTP works without extra configuration.When you use the ADK CLI, Remote MCP supports multiple authentication methods:
OAuth2 (without Dynamic Client Registration)
API Key
Bearer Token
Basic Auth
Key-value
Note:
When connecting to a remote MCP server that uses an API key with a custom name, use the key–value pair method.
For OAuth authentication, import the toolkit using Team credentials. To use the tool, you can either switch to Member credentials or continue using Team credentials.
For more information about connections, see Connections.
When you use SSE, ADK starts the handshake with a 30-second timeout. This timeout applies during the callback phase of the import.ADK expects only standard SSE headers. The connection setup stays minimal and depends on the server for protocol compliance.ADK doesn’t enforce connection pooling or keep-alive settings. If your server supports them, ADK works with those features.During tool execution testing, you might see End of File (EOF) errors. These usually happen when the server times out or doesn’t respond in time.
When you use streamable HTTP, ADK also starts the handshake with a 30-second timeout.ADK doesn’t expect SSE headers in this case. The setup remains minimal and relies on the server to follow the protocol.
If the server returns an HTTP status code in the 4xx range, the import fails. These errors usually point to invalid requests, authentication issues, or missing resources.Other status codes may trigger warnings, depending on the server’s response.ADK doesn’t distinguish between import-time and runtime execution from the server’s perspective. All responses during import return in JSON format.