You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -17,7 +13,13 @@ This repository contains the following crates:
17
13
-[rmcp](crates/rmcp): The core crate providing the RMCP protocol implementation - see [rmcp](crates/rmcp/README.md)
18
14
-[rmcp-macros](crates/rmcp-macros): A procedural macro crate for generating RMCP tool implementations - see [rmcp-macros](crates/rmcp-macros/README.md)
19
15
20
-
For the full MCP specification, see [modelcontextprotocol.io](https://modelcontextprotocol.io/specification/2025-11-25).
16
+
This SDK tracks the MCP **`2026-07-28`** draft (the current development spec)
17
+
while remaining fully compatible with the stable **`2025-11-25`** release and
18
+
earlier versions. New `2026-07-28` features — server discovery & negotiation,
cargo add rmcp --features server --git https://github.com/modelcontextprotocol/rust-sdk --branch main
50
61
```
51
62
### Third Dependencies
52
63
@@ -174,7 +185,7 @@ let quit_reason = server.cancel().await?;
174
185
175
186
Tools let servers expose callable functions to clients. Each tool has a name, description, and a JSON Schema for its parameters. Clients discover tools via `list_tools` and invoke them via `call_tool`.
The generated tool `inputSchema` and `outputSchema` are derived from the fields of `T`. The type name and documentation on `T` are ignored; only field names, field types, and field documentation are used.
212
223
224
+
> **`2026-07-28` (SEP-2106):**`outputSchema` may now be any JSON Schema type
225
+
> (not just `object`), and a tool result's `structuredContent` may be any JSON
226
+
> value (string, array, number, …) rather than only an object. Existing
227
+
> object-typed tools are unaffected.
228
+
213
229
When you need custom server metadata or multiple capabilities (tools + prompts), use explicit `#[tool_handler]`:
214
230
215
231
```rust,ignore
@@ -258,7 +274,7 @@ let result = client.call_tool(CallToolRequestParams::new("add")).await?;
258
274
259
275
Resources let servers expose data (files, database records, API responses) that clients can read. Each resource is identified by a URI and returns content as text or binary (base64-encoded) data. Resource templates allow servers to declare URI patterns with dynamic parameters.
@@ -393,7 +409,7 @@ impl ClientHandler for MyClient {
393
409
394
410
Prompts are reusable message templates that servers expose to clients. They accept typed arguments and return conversation messages. The `#[prompt]` macro handles argument validation and routing automatically.
Sampling flips the usual direction: the server asks the client to run an LLM completion. The server sends a `create_message` request, the client processes it through its LLM, and returns the result.
@@ -579,7 +595,7 @@ impl ClientHandler for MyClient {
579
595
580
596
Roots tell servers which directories or projects the client is working in. A root is a URI (typically `file://`) pointing to a workspace or repository. Servers can query roots to know where to look for files and how to scope their work.
Servers can send structured log messages to clients. The client sets a minimum severity level, and the server sends messages through the peer notification interface.
Completions give auto-completion suggestions for prompt or resource template arguments. As a user fills in arguments, the client can ask the server for suggestions based on what's already been entered.
@@ -799,7 +815,7 @@ let result = client.complete(CompleteRequestParams::new(
799
815
800
816
Notifications are fire-and-forget messages -- no response is expected. They cover progress updates, cancellation, and lifecycle events. Both sides can send and receive them.
Copy file name to clipboardExpand all lines: crates/rmcp/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@
11
11
12
12
</div>
13
13
14
-
The official Rust SDK for the [Model Context Protocol](https://modelcontextprotocol.io/specification/2025-11-25). Build MCP servers that expose tools, resources, and prompts to AI assistants — or build clients that connect to them.
14
+
The official Rust SDK for the [Model Context Protocol](https://modelcontextprotocol.io/specification/draft). Build MCP servers that expose tools, resources, and prompts to AI assistants — or build clients that connect to them.
15
15
16
16
For **getting started**, **usage guides**, and **full MCP feature documentation** (resources, prompts, sampling, roots, logging, completions, subscriptions, etc.), see the [main README](../../README.md).
Copy file name to clipboardExpand all lines: docs/OAUTH_SUPPORT.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Model Context Protocol OAuth Authorization
2
2
3
-
This document describes the OAuth 2.1 authorization implementation for Model Context Protocol (MCP), following the [MCP 2025-11-25 Authorization Specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization/).
3
+
This document describes the OAuth 2.1 authorization implementation for Model Context Protocol (MCP), following the [MCP Authorization Specification](https://modelcontextprotocol.io/specification/draft/basic/authorization/).
4
4
5
5
## Features
6
6
@@ -231,7 +231,7 @@ If you encounter authorization issues, check the following:
0 commit comments