Skip to content

Commit fa3ba18

Browse files
committed
Merge branch 'main' into pr/239
2 parents cbf19ca + 35ff8d9 commit fa3ba18

File tree

8 files changed

+45
-25
lines changed

8 files changed

+45
-25
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
This repo contains the specification and protocol schema for the Model Context Protocol.
44

5-
The schema is [defined in TypeScript](schema/2024-11-05/schema.ts) first, but
6-
[made available as JSON Schema](schema/2024-11-05/schema.json) as well, for wider
5+
The schema is [defined in TypeScript](schema/2025-03-26/schema.ts) first, but
6+
[made available as JSON Schema](schema/2025-03-26/schema.json) as well, for wider
77
compatibility.
88

99
## Contributing

docs/specification/2024-11-05/server/utilities/pagination.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ data sets.
1717
Pagination in MCP uses an opaque cursor-based approach, instead of numbered pages.
1818

1919
- The **cursor** is an opaque string token, representing a position in the result set
20-
- **Page size** is determined by the server, and **MAY NOT** be fixed
20+
- **Page size** is determined by the server, and clients **MUST NOT** assume a fixed page
21+
size
2122

2223
## Response Format
2324

docs/specification/2025-03-26/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ they need.
1919

2020
This specification defines the authoritative protocol requirements, based on the
2121
TypeScript schema in
22-
[schema.ts](https://github.com/modelcontextprotocol/specification/blob/main/schema/draft/schema.ts).
22+
[schema.ts](https://github.com/modelcontextprotocol/specification/blob/main/schema/2025-03-26/schema.ts).
2323

2424
For implementation guides and examples, visit
2525
[modelcontextprotocol.io](https://modelcontextprotocol.io).

docs/specification/2025-03-26/basic/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@ to help shape the future of the protocol!
119119
## Schema
120120

121121
The full specification of the protocol is defined as a
122-
[TypeScript schema](http://github.com/modelcontextprotocol/specification/tree/main/schema/draft/schema.ts).
122+
[TypeScript schema](https://github.com/modelcontextprotocol/specification/blob/main/schema/2025-03-26/schema.ts).
123123
This is the source of truth for all protocol messages and structures.
124124

125125
There is also a
126-
[JSON Schema](http://github.com/modelcontextprotocol/specification/tree/main/schema/draft/schema.json),
126+
[JSON Schema](https://github.com/modelcontextprotocol/specification/blob/main/schema/2025-03-26/schema.json),
127127
which is automatically generated from the TypeScript source of truth, for use with
128128
various automated tooling.

docs/specification/2025-03-26/basic/authorization.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ Clients **MUST** first attempt to discover endpoints via the metadata document b
155155
falling back to default paths. When using default paths, all other protocol requirements
156156
remain unchanged.
157157

158-
### 2.3 Dynamic Client Registration
158+
### 2.4 Dynamic Client Registration
159159

160160
MCP clients and servers **SHOULD** support the
161161
[OAuth 2.0 Dynamic Client Registration Protocol](https://datatracker.ietf.org/doc/html/rfc7591)
@@ -178,7 +178,7 @@ these servers, MCP clients will have to either:
178178
OAuth client themselves (e.g., through a configuration interface hosted by the
179179
server).
180180

181-
### 2.4 Authorization Flow Steps
181+
### 2.5 Authorization Flow Steps
182182

183183
The complete Authorization flow proceeds as follows:
184184

@@ -211,7 +211,7 @@ sequenceDiagram
211211
C->>M: API Requests with Access Token
212212
```
213213

214-
#### 2.4.1 Decision Flow Overview
214+
#### 2.5.1 Decision Flow Overview
215215

216216
```mermaid
217217
flowchart TD
@@ -235,9 +235,9 @@ flowchart TD
235235
N --> O[Use Access Token]
236236
```
237237

238-
### 2.5 Access Token Usage
238+
### 2.6 Access Token Usage
239239

240-
#### 2.5.1 Token Requirements
240+
#### 2.6.1 Token Requirements
241241

242242
Access token handling **MUST** conform to
243243
[OAuth 2.1 Section 5](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5)
@@ -263,7 +263,7 @@ Host: mcp.example.com
263263
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
264264
```
265265

266-
#### 2.5.2 Token Handling
266+
#### 2.6.2 Token Handling
267267

268268
Resource servers **MUST** validate access tokens as described in
269269
[Section 5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.2).
@@ -272,7 +272,7 @@ If validation fails, servers **MUST** respond according to
272272
error handling requirements. Invalid or expired tokens **MUST** receive a HTTP 401
273273
response.
274274

275-
### 2.6 Security Considerations
275+
### 2.7 Security Considerations
276276

277277
The following security requirements **MUST** be implemented:
278278

@@ -282,7 +282,7 @@ The following security requirements **MUST** be implemented:
282282
4. Servers **MUST** validate redirect URIs to prevent open redirect vulnerabilities
283283
5. Redirect URIs **MUST** be either localhost URLs or HTTPS URLs
284284

285-
### 2.7 Error Handling
285+
### 2.8 Error Handling
286286

287287
Servers **MUST** return appropriate HTTP status codes for authorization errors:
288288

@@ -292,22 +292,22 @@ Servers **MUST** return appropriate HTTP status codes for authorization errors:
292292
| 403 | Forbidden | Invalid scopes or insufficient permissions |
293293
| 400 | Bad Request | Malformed authorization request |
294294

295-
### 2.8 Implementation Requirements
295+
### 2.9 Implementation Requirements
296296

297297
1. Implementations **MUST** follow OAuth 2.1 security best practices
298298
2. PKCE is **REQUIRED** for all clients
299299
3. Token rotation **SHOULD** be implemented for enhanced security
300300
4. Token lifetimes **SHOULD** be limited based on security requirements
301301

302-
### 2.9 Third-Party Authorization Flow
302+
### 2.10 Third-Party Authorization Flow
303303

304-
#### 2.9.1 Overview
304+
#### 2.10.1 Overview
305305

306306
MCP servers **MAY** support delegated authorization through third-party authorization
307307
servers. In this flow, the MCP server acts as both an OAuth client (to the third-party
308308
auth server) and an OAuth authorization server (to the MCP client).
309309

310-
#### 2.9.2 Flow Description
310+
#### 2.10.2 Flow Description
311311

312312
The third-party authorization flow comprises these steps:
313313

@@ -341,7 +341,7 @@ sequenceDiagram
341341
M->>C: MCP access token
342342
```
343343

344-
#### 2.9.3 Session Binding Requirements
344+
#### 2.10.3 Session Binding Requirements
345345

346346
MCP servers implementing third-party authorization **MUST**:
347347

@@ -350,7 +350,7 @@ MCP servers implementing third-party authorization **MUST**:
350350
3. Implement appropriate token lifecycle management
351351
4. Handle third-party token expiration and renewal
352352

353-
#### 2.9.4 Security Considerations
353+
#### 2.10.4 Security Considerations
354354

355355
When implementing third-party authorization, servers **MUST**:
356356

docs/specification/2025-03-26/server/prompts.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,15 @@ model.
3131
Servers that support prompts **MUST** declare the `prompts` capability during
3232
[initialization]({{< ref "../basic/lifecycle#initialization" >}}):
3333

34-
/draft`json { "capabilities": { "prompts": { "listChanged": true } } }
35-
36-
````
34+
```json
35+
{
36+
"capabilities": {
37+
"prompts": {
38+
"listChanged": true
39+
}
40+
}
41+
}
42+
```
3743

3844
`listChanged` indicates whether the server will emit notifications when the list of
3945
available prompts changes.
@@ -56,7 +62,7 @@ supports [pagination]({{< ref "utilities/pagination" >}}).
5662
"cursor": "optional-cursor-value"
5763
}
5864
}
59-
````
65+
```
6066

6167
**Response:**
6268

docs/specification/2025-03-26/server/utilities/pagination.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ data sets.
1717
Pagination in MCP uses an opaque cursor-based approach, instead of numbered pages.
1818

1919
- The **cursor** is an opaque string token, representing a position in the result set
20-
- **Page size** is determined by the server, and **MAY NOT** be fixed
20+
- **Page size** is determined by the server, and clients **MUST NOT** assume a fixed page
21+
size
2122

2223
## Response Format
2324

site/hugo.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,15 @@ menu:
9595
name: "TypeScript SDK ↗"
9696
url: "https://github.com/modelcontextprotocol/typescript-sdk"
9797
weight: 5
98+
- identifier: javaSdk
99+
name: "Java SDK ↗"
100+
url: "https://github.com/modelcontextprotocol/java-sdk"
101+
weight: 6
102+
- identifier: kotlinSdk
103+
name: "Kotlin SDK ↗"
104+
url: "https://github.com/modelcontextprotocol/kotlin-sdk"
105+
weight: 7
106+
- identifier: csharpSdk
107+
name: "C# SDK ↗"
108+
url: "https://github.com/modelcontextprotocol/csharp-sdk"
109+
weight: 8

0 commit comments

Comments
 (0)