Skip to main content
Toolkits group related tools so you can import or remove them in one action. You use toolkits to organize and manage tools efficiently in watsonx Orchestrate. watsonx Orchestrate supports two toolkit types:
  • MCP toolkits: Group MCP server tools (Python or Node.js) for local or remote execution
  • Python toolkits: Group Python tools to run together in a single process for better performance
Choosing between toolkits and standalone tools:Toolkits offer performance benefits but require specific considerations. For help deciding between standalone Python tools, Python toolkits, local MCP toolkits, remote MCP toolkits, and OpenAPI tools, see Choosing a tool type.

MCP toolkits

Use MCP toolkits to integrate tools built with the Model Context Protocol (MCP). MCP toolkits support both local and remote execution: Local MCP toolkits:
  • Run inside the watsonx Orchestrate runtime using stdio transport
  • Support Python and Node.js implementations
  • Can be imported from npm, PyPI, or local filesystem
  • Behave like standalone Python tools with process-per-invocation model
  • Suitable for tools that need MCP protocol features or Node.js runtime
Remote MCP toolkits:
  • Connect to external MCP servers via HTTP (SSE or streamable HTTP)
  • Run on your infrastructure or third-party services
  • Support multiple authentication methods
  • Add network latency but enable centralized tool management
For detailed guidance on when to use local vs remote MCP toolkits, see Choosing a tool type.

Python toolkits

Use Python toolkits to bundle multiple related Python tools that run together in a single Python process. This approach eliminates process startup overhead and provides better performance for frequently called tools. Key characteristics:
  • Tools share the same Python process and dependencies
  • No process overhead after initial startup (saves 100-300ms per call)
  • Requires all tools to be thread-safe and reentrant
  • In live premium environments, each toolkit gets dedicated resources (2 vCPUs, 2 GB memory)
  • Supports up to 10 concurrent requests per toolkit
When to use Python toolkits:
  • You have multiple related Python tools
  • Tools are called frequently (>10 times per minute)
  • All tools are thread-safe
  • You want to minimize execution overhead
When to use standalone Python tools instead:
  • Tools use non-thread-safe operations
  • Tools are called infrequently
  • You need process isolation between calls
For migration guidance from standalone tools to toolkits, see Migrating to Python toolkits.

Tool naming convention

When you import a toolkit, watsonx Orchestrate exposes each tool within it individually using the naming format:
toolkit_name:tool_name
Example:
# Toolkit name: customer_service
# Tools in toolkit: get_customer, update_customer, create_ticket

# Exposed tool names:
customer_service:get_customer
customer_service:update_customer
customer_service:create_ticket
This naming convention ensures tools from different toolkits don’t conflict, even if they have the same base name. When migrating from standalone tools to toolkits, you must update agent configurations to use the new toolkit_name:tool_name format.

Next steps