#json-schema #mcp #protocols #model #context #generated-bindings

mcp-types

Generated bindings from the Model Context Protocol (MCP) JSON Schema(s)

2 releases

new 0.1.1 Feb 20, 2025
0.1.0 Feb 20, 2025

#770 in Web programming

25 downloads per month

MIT/Apache

235KB
3K SLoC

mcp-types

Rust type bindings for the Model Context Protocol (MCP) specification, automatically generated from the protocol's JSON schema using the typify crate.

Overview

This crate provides strongly-typed Rust structs and enums that represent the Model Context Protocol, a JSON-RPC based protocol for communication between LLM clients and servers. The types are automatically generated at build time from the official MCP JSON schema specification.

Motivation

To provide auto-generated and correct bindings for the MCP spec in a crate separate from any client/server implementation code.

Features

  • Complete type definitions for the MCP protocol
  • Serde serialization/deserialization support
  • Generated from the latest MCP schema specification
  • Type-safe interaction with MCP messages
  • Schema validation test coverage

Usage

Add this to your Cargo.toml:

mcp-types = "0.1.0"

or run this from inside your crate directory tree:

cargo add mcp-types

Contributing

Contributions are welcome! Please note that this crate's types are automatically generated from the MCP schema, so most changes will have to do with how the bindings are generated, how types are re-exported, documentation, and other things of that nature. Please do not manually edit generated code.

To contribute, please fork the mcp repo, make a new branch off of main, and make a PR from your fork to main again.

Dependencies

~0.8–2MB
~43K SLoC