---
title: Universal Tool Calling Protocol (UTCP)
community: true
description: Universal Tool Calling Protocol
integrationType: tool
languages: Python
sidebar:
  label: "UTCP"
---


The [Universal Tool Calling Protocol (UTCP)](https://www.utcp.io/) is a lightweight, secure, and scalable standard that enables AI agents to discover and call tools directly using their native protocols - **no wrapper servers required**. UTCP acts as a "manual" that tells agents how to call your tools directly, extending OpenAPI for AI agents while maintaining full backward compatibility.

This community plugin integrates UTCP with Strands Agents SDK, providing standardized tool discovery and execution capabilities.

## Installation

```bash
pip install strands-agents strands-utcp
```

## Usage

```python
from strands import Agent
from strands_utcp import UtcpToolAdapter

# Configure UTCP tool adapter
config = {
    "manual_call_templates": [
        {
            "name": "weather_api",
            "call_template_type": "http",
            "url": "https://api.weather.com/utcp",
            "http_method": "GET"
        }
    ]
}

# Use UTCP tools with Strands agent
async def main():
    async with UtcpToolAdapter(config) as adapter:
        # Get available tools
        tools = adapter.list_tools()
        print(f"Found {len(tools)} UTCP tools")
        
        # Create agent with UTCP tools
        agent = Agent(tools=adapter.to_strands_tools())
        
        # Use the agent
        response = await agent.invoke_async("What's the weather like today?")
        print(response.message)

import asyncio
asyncio.run(main())
```

## Key Features

- **Universal Tool Access**: Connect to any UTCP-compatible tool source
- **OpenAPI/Swagger Support**: Automatic tool discovery from API specifications
- **Multiple Sources**: Connect to multiple tool sources simultaneously
- **Async/Await Support**: Full async support with context managers
- **Type Safe**: Full type hints and validation
- **Easy Integration**: Drop-in tool adapter for Strands agents

## Resources

- **GitHub**: [universal-tool-calling-protocol/python-utcp](https://github.com/universal-tool-calling-protocol/python-utcp)
- **PyPI**: [strands-utcp](https://pypi.org/project/strands-utcp/)