Model Context Protocol (MCP) - gRPC Transport Protobuf Definitions
This repository contains the Protocol Buffer definitions (.proto) and generated Python bindings for implementing the Model Context Protocol (MCP) over gRPC.
The definitions are currently in sync with the MCP schema version 2026-07-28.
For additional context, see: gRPC as a Native Transport for MCP.
Repository Structure
proto/: Contains the raw Protocol Buffer definitions.- mcp.proto: Defines the
McpgRPC service. - mcp_messages.proto: Defines the request/response payloads.
- mcp.proto: Defines the
src/mcp_grpc_transport_proto/: The Python package. The compiled Protobuf and gRPC code is generated into this directory at build/install time and is not checked into git.generate.py: A utility script to compile the.protofiles into the Python package.examples/: Contains example Python code demonstrating how to construct and use these messages.
Getting Started (Python)
Prerequisites
- Python 3.9+
uv(recommended) orpip
Installation
To install the package in editable mode:
uv sync
# or
pip install .
Running Examples
See the examples/README.md for details on running the basic usage example:
uv run python examples/basic_usage.py
Generating Protos
The compiled Python bindings are generated automatically whenever the package is built or installed (e.g. via uv sync, pip install ., or uv build) — they're not checked into git. If you modify the .proto files and want to regenerate them without a full install, run:
uv run python generate.py
Usage in Other Languages
Because these are standard Protocol Buffers, you can generate client and server stubs for any gRPC-supported language (Go, Java, Rust, C++, Node.js, etc.) using protoc with the appropriate plugins.
Evolution and Compatibility
This schema is designed to evolve alongside the official MCP specification.
- Only non-breaking changes (such as adding optional fields) will be made.
- The schema avoids protobuf
oneoffields to ensure forward compatibility when new message types are added.
Release files for mcp-grpc-transport-proto 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_grpc_transport_proto-0.2.0.tar.gz | 24.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_grpc_transport_proto-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.9 kB
Release files / mcp_grpc_transport_proto-0.2.0.tar.gz
| Download URL | mcp_grpc_transport_proto-0.2.0.tar.gz |
|---|---|
| Size | 24.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
682ac65e15fe4a3eed57c69c523bf8534c625618d67180cdf5756ff4f1166b00
|
|
BLAKE2b-256 checksum How to use checksums |
7e934b83d64b8d067d9950ae596aac6a628b5a50c2048f44e6fa39b7eb1e8e09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux rodete","version":null,"id":"rodete","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mcp_grpc_transport_proto-0.2.0-py3-none-any.whl
| Download URL | mcp_grpc_transport_proto-0.2.0-py3-none-any.whl |
|---|---|
| Size | 19.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2cfe01a9b7f0c16c2fdb10195672818ff1636e7bcea7b3afe179558011e207dd
|
|
BLAKE2b-256 checksum How to use checksums |
bd61e01b61a7d802010df9e3a078070af5118af11d9c5a5ba4698c574dfc73b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux rodete","version":null,"id":"rodete","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|