GitHub Stars
160
User Rating
Not Rated
Forks
5
Issues
12
Views
1
Favorites
0
Universal Tool Calling Protocol (UTCP) Specification
This repository contains the official specification documentation for the Universal Tool Calling Protocol (UTCP). UTCP is a modern, flexible, and scalable standard for defining and interacting with tools across various communication protocols.
What is UTCP?
UTCP provides a standardized way for AI systems and other clients to discover and call tools from different providers, regardless of the underlying protocol used (HTTP, WebSocket, CLI, etc.). This specification defines:
- Tool discovery mechanisms
- Tool call formats
- Provider configuration
- Authentication methods
- Response handling
Contributing to the Specification
We welcome contributions to the UTCP specification! Here's how you can contribute:
- Fork the repository: Create your own fork of the specification repository
- Make your changes: Update or add documentation as needed
- Submit a pull request: Open a PR with your changes for review
- Participate in discussions: Join the conversation about proposed changes
When contributing, please follow these guidelines:
- Ensure your changes align with the overall vision and goals of UTCP
- Follow the established documentation structure and formatting
- Include examples when adding new features or concepts
- Update relevant sections to maintain consistency across the documentation
Building the Documentation Locally
Prerequisites
To build and preview the documentation site locally, you'll need:
- Ruby version 2.5.0 or higher
- RubyGems
- Bundler
Setup
Clone the repository:
git clone https://github.com/universal-tool-calling-protocol/utcp-specification.git cd utcp-specification
Install dependencies:
bundle install
Running the Documentation Site
To build and serve the site locally:
bundle exec jekyll serve
This will start a local web server at http://localhost:4000
where you can preview the documentation.
Documentation Structure
The UTCP documentation is organized as follows:
index.md
: Homepage and introduction to UTCPdocs/
introduction.md
: Detailed introduction and core conceptsfor-tool-providers.md
: Guide for implementing tool providersfor-tool-callers.md
: Guide for implementing tool callersproviders/
: Documentation for each provider typehttp.md
: HTTP providerwebsocket.md
: WebSocket providercli.md
: CLI providersse.md
: Server-Sent Events provider- etc.
implementation.md
: Implementation guidelines and best practices
Working with the Specification
Modifying the Documentation
The documentation is written in Markdown format with Jekyll front matter. When making changes:
- Ensure your Markdown follows the established style
- Preview changes locally before submitting PRs
- Keep examples up-to-date with the latest specification
- Update navigation items in
_config.yml
if adding new pages
File Organization
When adding new documentation:
- Place provider-specific documentation in
docs/providers/
- Use consistent front matter with appropriate navigation ordering
- Include tags for improved searchability on GitHub Pages
Version Control
The UTCP specification follows semantic versioning:
- Major versions (1.0, 2.0): Breaking changes to the protocol
- Minor versions (1.1, 1.2): New features added in a backward-compatible manner
- Patch versions (1.0.1, 1.0.2): Backward-compatible bug fixes and clarifications
License
This specification is distributed under the Mozilla Public License 2.0 (MPL-2.0).
Additional Resources
401
Followers
8
Repositories
0
Gists
33
Total Contributions