Skip to content

Commit ae7801a

Browse files
committed
Sync open source content 🐝 (from b96cd652635deca50236d002f64a8af256f43a6d)
1 parent 6c0282b commit ae7801a

File tree

1 file changed

+171
-9
lines changed

1 file changed

+171
-9
lines changed

mcp/release-notes.mdx

Lines changed: 171 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: MCP release notes
33
description: A comparative guide to the major changes in the Model Context Protocol (MCP) across versions.
44
---
55

6-
import { Callout } from "@/mdx/components";
6+
import { Callout, Table } from "@/mdx/components";
77

88
# MCP release notes
99

@@ -25,22 +25,184 @@ Each release of the Model Context Protocol (MCP) introduces changes to how LLM a
2525

2626
## MCP version history
2727

28-
This section summarizes the significant differences between the **2025-03-26** release and the previous **2024-11-05** specification. The following table summarizes major changes between MCP versions.
28+
This section summarizes the significant differences between MCP versions. The following table summarizes major changes between MCP versions.
29+
30+
<Table
31+
data={[
32+
{
33+
fieldName:
34+
"**[2025-06-18](https://github.com/modelcontextprotocol/modelcontextprotocol/releases/tag/2025-06-18)**",
35+
type: "`Jun 18, 2025`",
36+
required: "`Yes`",
37+
description:
38+
"- Removes [JSON-RPC batching](https://www.jsonrpc.org/specification#batch) (reversal from 2025-03-26)\n" +
39+
"- Adds [structured tool output](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content)\n" +
40+
"- Classifies MCP servers as [OAuth Resource Servers](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#authorization-server-discovery)\n" +
41+
"- Requires [Resource Indicators](https://www.rfc-editor.org/rfc/rfc8707.html) for enhanced security\n" +
42+
"- Adds [elicitation](https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation) for server-initiated user requests\n" +
43+
"- Adds [resource links](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#resource-links) in tool results\n" +
44+
"- Requires MCP-Protocol-Version header for HTTP requests",
45+
},
46+
{
47+
fieldName:
48+
"**[2025-03-26](https://github.com/modelcontextprotocol/modelcontextprotocol/releases/tag/2025-03-26)**",
49+
type: "`Mar 26, 2025`",
50+
required: "`Yes`",
51+
description:
52+
"- Adds structured [OAuth 2.1-style authorization](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization)\n" +
53+
"- Replaces SSE with [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)\n" +
54+
"- Adds [JSON-RPC batching](https://www.jsonrpc.org/specification#batch) (later removed in 2025-06-18)\n" +
55+
"- Introduces tool annotations (for example, read-only, destructive)\n" +
56+
"- Adds support for audio content, progress messages, and completions capability",
57+
},
58+
{
59+
fieldName:
60+
"**[2024-11-05](https://github.com/modelcontextprotocol/modelcontextprotocol/releases/tag/2024-11-05)**",
61+
type: "`Jan 17, 2025`",
62+
required: "`—`",
63+
description:
64+
"- Initial schema stabilization\n" +
65+
"- Defines core architecture and message format\n" +
66+
"- Introduces tool, resource, and prompt concepts\n" +
67+
"- Adds ProgressNotification and sampling features\n" +
68+
"- Uses HTTP with SSE for streaming transport",
69+
},
70+
]}
71+
columns={[
72+
{ key: "fieldName", header: "Version" },
73+
{ key: "type", header: "Release date" },
74+
{ key: "description", header: "Changes" },
75+
{ key: "required", header: "Breaking changes" },
76+
]}
77+
/>
78+
79+
## MCP 2025-06-18 vs MCP 2025-03-26
80+
81+
The **2025-06-18** MCP release represents a significant refinement of the Model Context Protocol, introducing structured tool outputs, enhanced OAuth security, and server-initiated user interactions. However, it also removes JSON-RPC batching from the previous version, simplifying protocol implementation while adding new capabilities for better security and data handling.
2982

30-
| **Version** | **Release date** | **Changes** | **Breaking changes** |
31-
| ------------------------------------------------------------------------------------------------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
32-
| **[2025-03-26](https://github.com/modelcontextprotocol/modelcontextprotocol/releases/tag/2025-03-26)** | Mar 26, 2025 | - Adds structured [OAuth 2.1-style authorization](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization)<br/>- Replaces SSE with [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)<br/>- Adds [JSON-RPC batching](https://www.jsonrpc.org/specification#batch)<br/>- Introduces tool annotations (for example, `read-only`, `destructive`)<br/>- Adds support for audio content, progress messages, and completions capability | Yes |
33-
| **[2024-11-05](https://github.com/modelcontextprotocol/modelcontextprotocol/releases/tag/2024-11-05)** | Jan 17, 2025 | - Initial schema stabilization<br/>- Defines core architecture and message format<br/>- Introduces tool, resource, and prompt concepts<br/>- Adds `ProgressNotification` and sampling features<br/>- Uses HTTP with SSE for streaming transport ||
83+
Key highlights include:
84+
85+
- **Removal of JSON-RPC batching:** The batching feature introduced in 2025-03-26 has been removed, simplifying the protocol implementation
86+
- **Structured tool output:** Tools can now return structured, predictable data formats for better integration
87+
- **Enhanced OAuth security:** MCP servers are now classified as OAuth Resource Servers with additional security requirements
88+
- **Elicitation capability:** Servers can now request additional information from users during interactions
89+
- **Resource links:** Tool results can now reference MCP resources, creating better integration between tools and data
90+
91+
You may choose to remain on the **2025-03-26** version if you need:
92+
93+
- **JSON-RPC batching support:** If your implementation relies on batching multiple requests
94+
- **Simpler OAuth implementation:** The earlier version has less stringent OAuth requirements
95+
96+
## What's new in MCP 2025-06-18?
97+
98+
MCP **2025-06-18** introduces structured tool outputs, removes JSON-RPC batching, enhances OAuth security with Resource Server requirements, and adds elicitation for server-initiated user requests. Here's a detailed breakdown of the major updates:
99+
100+
### Removal of JSON-RPC Batching
101+
102+
One of the most significant changes is the **removal of JSON-RPC batching** support, which was introduced in 2025-03-26. This decision simplifies the protocol implementation and reduces complexity for both clients and servers. The maintainers mentioned that there was ['no compelling use case for batching'](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/416), but not all users agreed.
103+
104+
<Callout title="Note" type="info">
105+
If you were using batching in your 2025-03-26 implementation, you'll need to
106+
refactor to send individual requests instead of batched ones.
107+
</Callout>
108+
109+
### Structured Tool Output
110+
111+
The new [structured tool output](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content) capability allows tools to return data in predictable, structured formats rather than just plain text responses.
112+
113+
```python
114+
@app.tool("get_user_info", description="Get structured user information")
115+
async def get_user_info(user_id: str):
116+
return {
117+
"content": [{
118+
"type": "structured",
119+
"data": {
120+
"user": {
121+
"id": user_id,
122+
"name": "John Doe",
123+
"email": "john@example.com",
124+
"status": "active"
125+
}
126+
},
127+
"schema": {
128+
"type": "object",
129+
"properties": {
130+
"user": {
131+
"type": "object",
132+
"properties": {
133+
"id": {"type": "string"},
134+
"name": {"type": "string"},
135+
"email": {"type": "string"},
136+
"status": {"type": "string"}
137+
}
138+
}
139+
}
140+
}
141+
}]
142+
}
143+
```
144+
145+
### Enhanced OAuth Security
146+
147+
MCP servers are now classified as [OAuth Resource Servers](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#authorization-server-discovery):
148+
149+
1. **Resource Server Discovery:** Servers must provide metadata to help clients discover the corresponding Authorization Server
150+
2. **Resource Indicators:** Clients must implement [RFC 8707](https://www.rfc-editor.org/rfc/rfc8707.html) Resource Indicators to prevent malicious servers from obtaining inappropriate access tokens
151+
3. **Enhanced Security Guidelines:** New [security best practices](https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices) documentation
152+
153+
### MCP Elicitation Support
154+
155+
The new [elicitation](https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation) capability enables servers to request additional information from users during interactions, making conversations more dynamic and context-aware.
156+
157+
```python
158+
async def handle_complex_query(query: str, context):
159+
if missing_context(query):
160+
# Request additional information from user
161+
additional_info = await context.elicit_user_input(
162+
prompt="I need more details about your requirements. What specific format would you like the output in?",
163+
options=["JSON", "CSV", "Plain text"]
164+
)
165+
# Process with additional context
166+
return process_with_context(query, additional_info)
167+
```
168+
169+
### Resource Links in Tool Results
170+
171+
Tools can now return [resource links](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#resource-links) that reference MCP resources, creating better integration between tool outputs and available data sources.
172+
173+
### MCP Protocol Version Headers
174+
175+
HTTP requests now require the `MCP-Protocol-Version` header to enable [version negotiation](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#protocol-version-header):
176+
177+
```http
178+
POST /mcp HTTP/1.1
179+
Host: example.com
180+
Content-Type: application/json
181+
MCP-Protocol-Version: 2025-06-18
182+
183+
{
184+
"jsonrpc": "2.0",
185+
"method": "tools/call",
186+
"params": { ... }
187+
}
188+
```
189+
190+
### Other Notable Changes in MCP 2025-06-18
191+
192+
- **Lifecycle Operations:** Changed from **SHOULD** to **MUST** for certain [lifecycle operations](https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle#operation)
193+
- **Meta Fields:** Added `_meta` field to additional interface types for better extensibility
194+
- **Completion Context:** Added `context` field to `CompletionRequest` for LLM-based autocompletion support
195+
- **Title Fields:** Added `title` field for human-friendly display names while keeping `name` as programmatic identifier
34196

35-
## 2025-03-26 vs 2024-11-05
197+
## MCP 2025-03-26 vs MCP 2024-11-05
36198

37199
The **2025-03-26** release of the Model Context Protocol introduces a more mature and standardized approach to authorization, transport, and tool metadata. It brings significant improvements in security, flexibility, and client compatibility, but it also includes breaking changes that may require updates in existing implementations if you are moving from the **2024-11-05** version.
38200

39201
Key highlights include:
40202

41203
- **Structured OAuth-style authorization:** Authorization is now defined explicitly using a consistent schema, making supporting various auth models and token types easier.
42204
- **Streamable HTTP transport:** The previous HTTP with SSE model has been replaced with a more robust, proxy-friendly HTTP streaming format.
43-
- **JSON-RPC batching:** Developers can now bundle multiple requests in a single call, improving efficiency in complex workflows.
205+
- **JSON-RPC batching:** Developers can now bundle multiple requests in a single call, improving efficiency in complex workflows (note: this was later removed in 2025-06-18).
44206
- **Tool annotations:** Tools can now describe their behavior (for example, `read-only`, `destructive`), allowing for safer and more user-aware execution.
45207

46208
You may choose to remain on the **2024-11-05** version if you need:
@@ -168,7 +330,7 @@ Here are some reasons you should consider switching to Streamable HTTP:
168330

169331
Apart from the improvements to authorization and HTTP streaming transport, MCP **2025-03-26** introduces these changes:
170332

171-
- **Tool calls can now be batched:** Clients may send multiple tool invocations in a single JSON-RPC request. Servers that assume one call per request must handle arrays and concurrent execution.
333+
- **Tool calls can now be batched:** Clients may send multiple tool invocations in a single JSON-RPC request. Servers that assume one call per request must handle arrays and concurrent execution. (Note: This feature was removed in 2025-06-18)
172334
- **Tool behavior must now be declared explicitly:** Tools can define attributes like `readOnly` or `destructive`, which clients are expected to respect. This may impact how tools are displayed or gated in UIs.
173335
- **Progress updates are now more descriptive:** The `ProgressNotification` object includes an optional `message` field. Clients that display progress may want to surface these descriptions to users.
174336
- **Audio is a supported content type:** Servers and clients must now handle `audio` in addition to `text` and `image`.

0 commit comments

Comments
 (0)