python-utcp  by universal-tool-calling-protocol

Protocol for defining and interacting with tools across diverse communication protocols

created 1 month ago
359 stars

Top 79.1% on sourcepulse

GitHubView on GitHub
Project Summary

The Universal Tool Calling Protocol (UTCP) provides a flexible, scalable standard for defining and interacting with tools across various communication protocols. It aims to simplify the integration of diverse services, including HTTP APIs, CLI tools, and more, into AI-driven workflows. The Python implementation offers a client for discovering, selecting, and executing these tools, with built-in support for LLM integration.

How It Works

UTCP defines tools and their providers through Pydantic models, enabling easy integration and extensibility. Clients discover available tools via a UtcpManual, which can be served by the tool provider itself or a registry. The Python client supports multiple provider types (HTTP, SSE, CLI, WebSocket, gRPC, etc.) and authentication methods (API Key, Basic Auth, OAuth2). It automatically converts OpenAPI v3 specifications into UTCP tools, simplifying the integration of existing web services.

Quick Start & Requirements

  • Install using pip install -r requirements.txt followed by pip install dist/utcp-<version>.tar.gz.
  • Requires Python 3.10+.
  • For LLM integration examples, an OpenAI API key is needed.
  • Official examples are available in the examples/ directory.

Highlighted Details

  • Supports automatic conversion of OpenAPI v3 specifications to UTCP tools.
  • Offers a comprehensive set of provider types, including HTTP, SSE, CLI, and experimental support for gRPC, WebSockets, and more.
  • Provides robust LLM integration capabilities, including dynamic tool discovery and search.
  • Implements various authentication mechanisms for secure tool access.

Maintenance & Community

No specific contributors, sponsorships, or community links (Discord/Slack) are mentioned in the README.

Licensing & Compatibility

The license is not explicitly stated in the provided README.

Limitations & Caveats

Several provider types (WebSocket, gRPC, GraphQL, TCP, UDP, WebRTC) are marked as "work in progress," indicating potential instability or incomplete implementation. The README does not detail specific limitations regarding performance, scalability benchmarks, or unsupported features for the stable provider types.

Health Check
Last commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
25
Issues (30d)
11
Star History
366 stars in the last 90 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), Travis Fischer Travis Fischer(Founder of Agentic), and
1 more.

fastmcp by punkpeye

3.7%
2k
TypeScript framework for building MCP servers handling client sessions
created 7 months ago
updated 3 days ago
Starred by Peter Norvig Peter Norvig(Author of Artificial Intelligence: A Modern Approach; Research Director at Google), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
2 more.

aisuite by andrewyng

0.2%
12k
Unified interface for multiple generative AI providers
created 1 year ago
updated 4 days ago
Feedback? Help us improve.