https://github.com/universal-tool-calling-protocol/utcp-specification
The specification for the Universal Tool Calling Protocol
https://github.com/universal-tool-calling-protocol/utcp-specification
ai ai-agent-tools documentation mcp protocol specification utcp
Last synced: 3 months ago
JSON representation
The specification for the Universal Tool Calling Protocol
- Host: GitHub
- URL: https://github.com/universal-tool-calling-protocol/utcp-specification
- Owner: universal-tool-calling-protocol
- License: apache-2.0
- Created: 2025-07-02T17:37:41.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-08-04T15:17:53.000Z (3 months ago)
- Last Synced: 2025-08-04T18:14:38.764Z (3 months ago)
- Topics: ai, ai-agent-tools, documentation, mcp, protocol, specification, utcp
- Language: TypeScript
- Homepage:
- Size: 878 KB
- Stars: 179
- Watchers: 1
- Forks: 7
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: docs/security.md
Awesome Lists containing this project
- awesome - universal-tool-calling-protocol/utcp-specification - The specification for the Universal Tool Calling Protocol (TypeScript)
README
# 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:
1. **Fork the repository**: Create your own fork of the specification repository
2. **Make your changes**: Update or add documentation as needed
3. **Submit a pull request**: Open a PR with your changes for review
4. **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
1. Clone the repository:
```bash
git clone https://github.com/universal-tool-calling-protocol/utcp-specification.git
cd utcp-specification
```
2. Install dependencies:
```bash
bundle install
```
### Running the Documentation Site
To build and serve the site locally:
```bash
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 UTCP
- `docs/`
- `introduction.md`: Detailed introduction and core concepts
- `for-tool-providers.md`: Guide for implementing tool providers
- `for-tool-callers.md`: Guide for implementing tool callers
- `providers/`: Documentation for each provider type
- `http.md`: HTTP provider
- `websocket.md`: WebSocket provider
- `cli.md`: CLI provider
- `sse.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:
1. Ensure your Markdown follows the established style
2. Preview changes locally before submitting PRs
3. Keep examples up-to-date with the latest specification
4. 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
- [UTCP GitHub Organization](https://github.com/universal-tool-calling-protocol)
- [UTCP Website](https://utcp.io)
- [Reference Implementations](https://github.com/universal-tool-calling-protocol/python-utcp)
- [Community Discussions](https://github.com/universal-tool-calling-protocol/utcp-specification/discussions)