Universal Tool Calling Protocol
Modern, flexible, and scalable standard for tool integration
UTCP is a revolutionary protocol that supports HTTP, WebSocket, gRPC, and more, making AI-tool interactions incredibly simple.
Core Features
Scalability
Handle large numbers of tools and providers without performance compromise
Interoperability
Support for HTTP, WebSocket, gRPC, CLI, and more protocols
Ease of Use
Simple and intuitive API design, developer-friendly
High Performance
Direct tool calls with low latency and high efficiency
Security
Complete authentication and permission control
Standards
Follow industry standards for compatibility
Architecture
Understanding UTCP design philosophy and architecture
Design Philosophy
UTCP is a descriptive manual, not a middleman proxy. It tells the agent about the tool's native endpoint and how to call it, then gets out of the way.
{
"name": "weather-api",
"type": "http",
"endpoint": "https://api.weather.com/v1",
"methods": {
"get_weather": {
"method": "GET",
"path": "/weather/{city}",
"parameters": {
"city": {
"type": "string",
"required": true
}
}
}
}
}
Architecture Benefits
- Direct Calls: Eliminate middleware, reduce latency
- Native Integration: No wrapping, use existing APIs directly
- Efficient Transfer: Structured data, reduced overhead
Supported Provider Types
UTCP supports multiple communication protocols for different scenarios
HTTP Provider
Standard REST API calls, the most common protocol type
GET /api/v1/users
Authorization: Bearer token
Content-Type: application/json
WebSocket Provider
Real-time bidirectional communication for streaming data
ws://localhost:8080/stream
{
"type": "subscribe",
"channel": "updates"
}
gRPC Provider
High-performance RPC calls for microservice architecture
service UserService {
rpc GetUser(UserRequest)
returns (UserResponse);
}
CLI Provider
Command-line tool integration for existing CLI programs
$ utcp-cli execute \
--tool "git" \
--args "status --porcelain"
Real-world Examples
See UTCP in action in real projects
AI Assistant Tool Integration
Enable AI assistants to call various external tools and services
- Weather Query Tool
- Calendar Management
- Email Sending
- Data Analytics
Automation Workflows
Build complex automation processes and workflow systems
- CI/CD Pipeline
- Data Processing Pipeline
- Report Generation
- Monitoring & Alerting
API Gateway
Unified management and calling of different API services
- Request Routing
- Load Balancing
- Authentication & Authorization
- Monitoring & Analytics
UTCP vs MCP Comparison
Understanding the different approaches to agent-tool integration
The Middleman vs Manual Philosophies
MCP "Middleman" Approach
Positions itself as the "USB-C for AI Agents" β a universal adapter that all tools must plug into
- Forces all traffic through a new protocol layer
- Requires writing "wrappers" for existing tools
- Needs to reinvent solutions for auth, security, and other infrastructure
- Creates "wrapper tax": additional infrastructure overhead
UTCP "Manual" Approach
Acts as a "manual" that describes how to call tools directly using their native interfaces
- Provides all necessary information to call native APIs directly
- Gets out of the way after tool discovery
- Leverages existing infrastructure for auth, security, etc.
- Eliminates wrapper tax and infrastructure overhead
Feature Comparison
Feature | MCP | UTCP |
---|---|---|
Architecture | Agents β MCP Server β Tool | Agent β Tool (Direct) |
Integration Approach | Wraps existing tools | Describes how to call existing tools |
Network Hops | Double (Agent β MCP β Tool) | Single (Agent β Tool) |
Protocol Support | HTTP Streaming | HTTP, WebSockets, gRPC, CLI, etc. |
Implementation Complexity | High (requires wrapper servers) | Low (simple JSON definitions) |
Performance | Additional overhead due to proxy | Direct, native performance |
When to Choose Each Protocol
Choose MCP When:
- You need strict standardization across all tools
- You're building a closed ecosystem where you control all components
- You're willing to invest in building and maintaining wrapper servers
Choose UTCP When:
- You want to leverage existing APIs without building wrappers
- You need to support diverse communication protocols
- You value direct, efficient communication
- You prioritize low implementation overhead
- You want to minimize infrastructure costs
Quick Start Guide
Get up and running with UTCP in minutes
Step 1: Install SDK
Choose and install the UTCP SDK for your preferred language
Step 2: Tool Discovery
Discover tools from UTCP providers via their discovery endpoints
# Tool discovery via UTCP endpoint
import { UTCPClient } from 'typescript-utcp';
const client = new UTCPClient();
const tools = await client.discover('https://api.example.com/utcp');
console.log('Available tools:', tools);
Step 3: Call Tools Directly
Call tools directly using their native protocols (HTTP, WebSocket, gRPC, etc.)
HTTP Example
# Direct HTTP API call
const result = await client.callTool({
provider: 'https://api.example.com',
tool: 'weather-api',
method: 'getCurrentWeather',
parameters: { city: 'New York' }
});
console.log(result);
WebSocket Example
# Real-time WebSocket communication
const stream = await client.callStreamingTool({
provider: 'wss://api.example.com',
tool: 'chat-service',
method: 'streamChat',
parameters: { message: 'Hello!' }
});
stream.on('data', (data) => console.log(data));
Step 4: Provider Setup (Optional)
Create your own UTCP provider to expose tools to others
# Create UTCP provider configuration
{
"utcp": {
"version": "1.0",
"name": "My Tool Provider",
"description": "A collection of useful tools",
"tools": {
"weather-api": {
"name": "Weather API",
"description": "Get current weather data",
"provider": {
"type": "http",
"base_url": "https://api.weather.com/v1",
"authentication": {
"type": "api_key",
"header": "X-API-Key"
}
},
"methods": {
"getCurrentWeather": {
"method": "GET",
"path": "/current",
"parameters": {
"city": {
"type": "string",
"required": true,
"description": "City name"
}
}
}
}
}
}
}
}
Frequently Asked Questions
Answers to your questions about UTCP
How is UTCP different from other protocols?
+UTCP focuses on tool calling scenarios with simpler integration and better performance.
How do I get started with UTCP?
+Start with our quick start guide and you'll be up and running in minutes.
What programming languages does UTCP support?
+Currently supports JavaScript, Python, Go, and other mainstream languages.