2
2
title : Lifecycle
3
3
---
4
4
5
- <Info >** Protocol Revision** : 2025-03-26 </Info >
5
+ <Info >** Protocol Revision** : draft </Info >
6
6
7
7
The Model Context Protocol (MCP) defines a rigorous lifecycle for client-server
8
8
connections that ensures proper capability negotiation and state management.
@@ -118,11 +118,11 @@ to indicate it is ready to begin normal operations:
118
118
```
119
119
120
120
- The client ** SHOULD NOT** send requests other than
121
- [ pings] ( /specification/2025-03-26 /basic/utilities/ping ) before the server has responded to the
121
+ [ pings] ( /specification/draft /basic/utilities/ping ) before the server has responded to the
122
122
` initialize ` request.
123
123
- The server ** SHOULD NOT** send requests other than
124
- [ pings] ( /specification/2025-03-26 /basic/utilities/ping ) and
125
- [ logging] ( /specification/2025-03-26 /server/utilities/logging ) before receiving the ` initialized `
124
+ [ pings] ( /specification/draft /basic/utilities/ping ) and
125
+ [ logging] ( /specification/draft /server/utilities/logging ) before receiving the ` initialized `
126
126
notification.
127
127
128
128
#### Version Negotiation
@@ -146,13 +146,13 @@ Key capabilities include:
146
146
147
147
| Category | Capability | Description |
148
148
| -------- | -------------- | -------------------------------------------------------------------------- |
149
- | Client | ` roots ` | Ability to provide filesystem [ roots] ( /specification/2025-03-26 /client/roots ) |
150
- | Client | ` sampling ` | Support for LLM [ sampling] ( /specification/2025-03-26 /client/sampling ) requests |
149
+ | Client | ` roots ` | Ability to provide filesystem [ roots] ( /specification/draft /client/roots ) |
150
+ | Client | ` sampling ` | Support for LLM [ sampling] ( /specification/draft /client/sampling ) requests |
151
151
| Client | ` experimental ` | Describes support for non-standard experimental features |
152
- | Server | ` prompts ` | Offers [ prompt templates] ( /specification/2025-03-26 /server/prompts ) |
153
- | Server | ` resources ` | Provides readable [ resources] ( /specification/2025-03-26 /server/resources ) |
154
- | Server | ` tools ` | Exposes callable [ tools] ( /specification/2025-03-26 /server/tools ) |
155
- | Server | ` logging ` | Emits structured [ log messages] ( /specification/2025-03-26 /server/utilities/logging ) |
152
+ | Server | ` prompts ` | Offers [ prompt templates] ( /specification/draft /server/prompts ) |
153
+ | Server | ` resources ` | Provides readable [ resources] ( /specification/draft /server/resources ) |
154
+ | Server | ` tools ` | Exposes callable [ tools] ( /specification/draft /server/tools ) |
155
+ | Server | ` logging ` | Emits structured [ log messages] ( /specification/draft /server/utilities/logging ) |
156
156
| Server | ` experimental ` | Describes support for non-standard experimental features |
157
157
158
158
Capability objects can describe sub-capabilities like:
@@ -179,7 +179,7 @@ mechanism should be used to signal connection termination:
179
179
180
180
#### stdio
181
181
182
- For the stdio [ transport] ( /specification/2025-03-26 /basic/transports ) , the client ** SHOULD** initiate
182
+ For the stdio [ transport] ( /specification/draft /basic/transports ) , the client ** SHOULD** initiate
183
183
shutdown by:
184
184
185
185
1 . First, closing the input stream to the child process (the server)
@@ -192,22 +192,22 @@ exiting.
192
192
193
193
#### HTTP
194
194
195
- For HTTP [ transports] ( /specification/2025-03-26 /basic/transports ) , shutdown is indicated by closing the
195
+ For HTTP [ transports] ( /specification/draft /basic/transports ) , shutdown is indicated by closing the
196
196
associated HTTP connection(s).
197
197
198
198
## Timeouts
199
199
200
200
Implementations ** SHOULD** establish timeouts for all sent requests, to prevent hung
201
201
connections and resource exhaustion. When the request has not received a success or error
202
202
response within the timeout period, the sender ** SHOULD** issue a [ cancellation
203
- notification] ( /specification/2025-03-26 /basic/utilities/cancellation ) for that request and stop waiting for
203
+ notification] ( /specification/draft /basic/utilities/cancellation ) for that request and stop waiting for
204
204
a response.
205
205
206
206
SDKs and other middleware ** SHOULD** allow these timeouts to be configured on a
207
207
per-request basis.
208
208
209
209
Implementations ** MAY** choose to reset the timeout clock when receiving a [ progress
210
- notification] ( /specification/2025-03-26 /basic/utilities/progress ) corresponding to the request, as this
210
+ notification] ( /specification/draft /basic/utilities/progress ) corresponding to the request, as this
211
211
implies that work is actually happening. However, implementations ** SHOULD** always
212
212
enforce a maximum timeout, regardless of progress notifications, to limit the impact of a
213
213
misbehaving client or server.
0 commit comments