Tool Shed Service
DEPRECATED: The Tool Shed service (
client.tools) is deprecated and will be removed in a future release. The Docker Compose-based Tool Shed is being replaced by Kubernetes CRD-based extensions. Use the Extensions API (client.extensions) instead.Migration guide:
Legacy (Tool Shed) New (Extensions API) client.tools.list_deployments()client.extensions.list_extensions()client.tools.deploy_from_template(template_name=..., ...)client.extensions.create_extension(request)client.tools.get_deployment(deployment_id)client.extensions.get_extension(name)client.tools.stop_deployment(deployment_id)client.extensions.delete_extension(name)See the Extensions Service documentation for full details.
The Tool Shed service enables deployment and management of MCP (Model Context Protocol) servers that provide tools and capabilities to AI assistants. These Tool servers can integrate with external services, APIs, and systems to extend AI functionality.
Overview
The Tool Shed allows you to:
- Deploy MCP-compatible Tool servers
- Manage Tool server lifecycle
- Discover available tools and their capabilities
- Monitor Tool server health
- Use pre-built Tool templates for common integrations
Authentication
Important: Tool Shed endpoints require authentication. You must provide valid credentials to access these services.
from kamiwaza_sdk import KamiwazaClient as kz
from kamiwaza_sdk.authentication import UserPasswordAuthenticator
# Create authenticated client
client = kz("http://localhost:7777/api/")
authenticator = UserPasswordAuthenticator(
username="your_username",
password="your_password",
auth_service=client.auth
)
client = kz(
"http://localhost:7777/api/",
authenticator=authenticator
)
Quick Start
# List available Tool templates
templates = client.tools.list_available_templates()
for template in templates:
print(f"{template['name']} - {template['description']}")
# Deploy a Tool server from template
tool = client.tools.deploy_from_template(
template_name="tool-websearch",
name="my-search-tool",
env_vars={"TAVILY_API_KEY": "your_api_key"}
)
print(f"Tool deployed at: {tool.url}")
print(f"Status: {tool.status}")
Available Methods
Deployment Management
deploy(image, name, port, env_vars=None)
Deploy a custom Tool server from a Docker image.
Parameters:
image(str): Docker image for the Tool servername(str): Name for your deploymentport(int): Port the Tool server listens onenv_vars(dict, optional): Environment variables
Returns: ToolDeployment object
deploy_from_template(template_name, name, env_vars=None)
Deploy a Tool server from a pre-built template.
Parameters:
template_name(str): Name of the template (e.g., "tool-websearch")name(str): Name for your deployment instanceenv_vars(dict, optional): Environment variables (e.g., API keys)
Returns: ToolDeployment object
list_deployments()
List all active Tool server deployments.
Returns: List of ToolDeployment objects
get_deployment(deployment_id)
Get details of a specific Tool deployment.
Parameters:
deployment_id(UUID): The deployment ID
Returns: ToolDeployment object
stop_deployment(deployment_id)
Stop and remove a Tool server deployment.
Parameters:
deployment_id(UUID): The deployment ID
Returns: Success message
Discovery and Health
discover_servers()
Discover all Tool servers and their capabilities.
Returns: ToolDiscovery object containing:
total: Total number of serversservers: List of servers with their capabilities
check_health(deployment_id)
Check the health status of a Tool server.
Parameters:
deployment_id(UUID): The deployment ID
Returns: ToolHealthCheck object with status and protocol information
Template Management
list_available_templates()
List all available Tool server templates.
Returns: List of template dictionaries with:
name: Template identifierdescription: What the Tool doescategory: Tool categorycapabilities: List of capabilitiesrequired_env_vars: Required environment variables
Common Use Cases
Deploy a Web Search Tool
# Deploy Tavily search Tool
tool = client.tools.deploy_from_template(
template_name="tool-websearch",
name="search-assistant",
env_vars={
"TAVILY_API_KEY": "your_tavily_api_key"
}
)
print(f"Search Tool available at: {tool.url}")