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
Copy file name to clipboardExpand all lines: mcp/release-notes.mdx
+171-9Lines changed: 171 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: MCP release notes
3
3
description: A comparative guide to the major changes in the Model Context Protocol (MCP) across versions.
4
4
---
5
5
6
-
import { Callout } from"@/mdx/components";
6
+
import { Callout, Table } from"@/mdx/components";
7
7
8
8
# MCP release notes
9
9
@@ -25,22 +25,184 @@ Each release of the Model Context Protocol (MCP) introduces changes to how LLM a
25
25
26
26
## MCP version history
27
27
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.
"- 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.
|**[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
+
<Callouttitle="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
+
asyncdefget_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.
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
34
196
35
-
## 2025-03-26 vs 2024-11-05
197
+
## MCP 2025-03-26 vs MCP 2024-11-05
36
198
37
199
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.
38
200
39
201
Key highlights include:
40
202
41
203
-**Structured OAuth-style authorization:** Authorization is now defined explicitly using a consistent schema, making supporting various auth models and token types easier.
42
204
-**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).
44
206
-**Tool annotations:** Tools can now describe their behavior (for example, `read-only`, `destructive`), allowing for safer and more user-aware execution.
45
207
46
208
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:
168
330
169
331
Apart from the improvements to authorization and HTTP streaming transport, MCP **2025-03-26** introduces these changes:
170
332
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)
172
334
-**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.
173
335
-**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.
174
336
-**Audio is a supported content type:** Servers and clients must now handle `audio` in addition to `text` and `image`.
0 commit comments