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.
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
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
To build and preview the documentation site locally, you'll need:
- Ruby version 2.5.0 or higher
- RubyGems
- Bundler
-
Clone the repository:
git clone https://github.com/universal-tool-calling-protocol/utcp-specification.git cd utcp-specification
-
Install dependencies:
bundle install
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.
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
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
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
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
This specification is distributed under the Mozilla Public License 2.0 (MPL-2.0).