Universal Tool Calling Protocol (UTCP)
The Universal Tool Calling Protocol (UTCP) 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
Section titled “Installation”pip install strands-agents strands-utcpUsage
Section titled “Usage”from strands import Agentfrom strands_utcp import UtcpToolAdapter
# Configure UTCP tool adapterconfig = { "manual_call_templates": [ { "name": "weather_api", "call_template_type": "http", "url": "https://api.weather.com/utcp", "http_method": "GET" } ]}
# Use UTCP tools with Strands agentasync 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 asyncioasyncio.run(main())Key Features
Section titled “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
Section titled “Resources”- GitHub: universal-tool-calling-protocol/python-utcp
- PyPI: strands-utcp