Skip to content

Commit 8a3601a

Browse files
committed
fix!: require negotiated version when using HTTP
1 parent a52e9d7 commit 8a3601a

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,7 @@ sequenceDiagram
132132
Note over C: Continue with authorization flow
133133
```
134134

135-
#### 2.3.1 Server Metadata Discovery Headers
136-
137-
MCP clients _SHOULD_ include the header `MCP-Protocol-Version: <protocol-version>` during
138-
Server Metadata Discovery to allow the MCP server to respond based on the MCP protocol
139-
version.
140-
141-
For example: `MCP-Protocol-Version: 2024-11-05`
142-
143-
#### 2.3.2 Authorization Base URL
135+
#### 2.3.1 Authorization Base URL
144136

145137
The authorization base URL **MUST** be determined from the MCP server URL by discarding
146138
any existing `path` component. For example:
@@ -154,7 +146,7 @@ If the MCP server URL is `https://api.example.com/v1/mcp`, then:
154146
This ensures authorization endpoints are consistently located at the root level of the
155147
domain hosting the MCP server, regardless of any path components in the MCP server URL.
156148

157-
#### 2.3.3 Fallbacks for Servers without Metadata Discovery
149+
#### 2.3.2 Fallbacks for Servers without Metadata Discovery
158150

159151
For servers that do not implement OAuth 2.0 Authorization Server Metadata, clients
160152
**MUST** use the following default endpoint paths relative to the authorization base URL

docs/specification/draft/basic/authorization.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ these authorization servers, MCP clients will have to either:
157157
OAuth client themselves (e.g., through a configuration interface hosted by the
158158
server).
159159

160-
### 2.6 Authorization Flow Steps
160+
### 2.5 Authorization Flow Steps
161161

162162
The complete Authorization flow proceeds as follows:
163163

@@ -198,9 +198,9 @@ sequenceDiagram
198198
Note over C,M: MCP communication continues with valid token
199199
```
200200

201-
### 2.7 Access Token Usage
201+
### 2.6 Access Token Usage
202202

203-
#### 2.7.1 Token Requirements
203+
#### 2.6.1 Token Requirements
204204

205205
Access token handling when making requests to MCP servers **MUST** conform to the requirements defined in
206206
[OAuth 2.1 Section 5 "Resource Requests"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5).
@@ -226,7 +226,7 @@ Host: mcp.example.com
226226
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
227227
```
228228

229-
#### 2.7.2 Token Handling
229+
#### 2.6.2 Token Handling
230230

231231
MCP servers, acting in their role as an OAuth 2.1 resource server, **MUST** validate access tokens as described in
232232
[OAuth 2.1 Section 5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.2).

docs/specification/draft/basic/lifecycle.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,13 @@ supports. This **SHOULD** be the _latest_ version supported by the server.
138138
If the client does not support the version in the server's response, it **SHOULD**
139139
disconnect.
140140

141+
If using HTTP, the client **MUST** include the `MCP-Protocol-Version:
142+
<protocol-version>` HTTP header during any subsequent requests to the MCP
143+
server, allowing the MCP server to respond based on the MCP protocol version.
144+
145+
If the server receives a request with a missing, invalid, or unsupported
146+
MCP-Protocol-VERSION, it **MUST** respond with `400 Bad Request`.
147+
141148
#### Capability Negotiation
142149

143150
Client and server capabilities establish which optional protocol features will be

0 commit comments

Comments
 (0)