Skip to content

Commit 5c51c69

Browse files
committed
chore(sep-2575): exclude the four unobservable server requirements from traceability
Marks the section-C rows of #296 as excluded rather than untested: no-prior-context, no-connection-reuse-required, disconnect-is-cancel and stops-on-cancel describe internal server state that a black-box harness cannot observe on the wire. With these excluded and the part-B checks landed, every testable server-side SEP-2575 requirement is covered; the remaining untested rows are all client-side and blocked on a SEP-2575-aware reference client.
1 parent 79c457d commit 5c51c69

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

src/seps/sep-2575.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ requirements:
1313
- check: sep-2575-server-tags-subscription-id
1414
text: 'On notifications delivered via a subscriptions/listen stream, the server MUST include io.modelcontextprotocol/subscriptionId in _meta so the client can correlate the notification with the originating subscription request.'
1515
url: https://modelcontextprotocol.io/specification/draft/basic/index#meta
16-
- check: sep-2575-server-stateless-no-prior-context
17-
text: 'A server MUST NOT treat connection or process identity as a proxy for conversation or session continuity. / Servers MUST NOT rely on prior requests over the same connection to establish context (e.g., capabilities, protocol version, client identity).'
18-
- check: sep-2575-server-stateless-no-connection-reuse-required
19-
text: 'Servers MUST NOT require that a client reuse the same connection to perform related operations.'
2016
- check: sep-2575-server-unsupported-version-error
2117
text: 'If the server does not implement the requested version (whether the version is unknown to the server, or is a known version the server has chosen not to support), it MUST respond with an UnsupportedProtocolVersionError listing the versions it does support.'
2218
url: https://modelcontextprotocol.io/specification/draft/basic/lifecycle#protocol-version-negotiation
@@ -29,12 +25,6 @@ requirements:
2925
- check: sep-2575-http-server-no-independent-requests-on-stream
3026
text: 'The server MUST NOT send independent JSON-RPC requests on this stream. Server-to-client interactions are embedded as input requests inside an IncompleteResult.'
3127
url: https://modelcontextprotocol.io/specification/draft/basic/transports#receiving-messages-1
32-
- check: sep-2575-http-server-disconnect-is-cancel
33-
text: 'Closing the SSE response stream MUST be treated by the server as cancellation of that request.'
34-
url: https://modelcontextprotocol.io/specification/draft/basic/transports#cancellation-1
35-
- check: sep-2575-http-server-stops-on-cancel
36-
text: 'The server SHOULD stop work on the cancelled request as soon as practical and MUST NOT send any further messages for it [HTTP].'
37-
url: https://modelcontextprotocol.io/specification/draft/basic/transports#cancellation-1
3828
- check: sep-2575-http-client-sends-version-header
3929
text: 'Every POST request to the MCP endpoint MUST include an MCP-Protocol-Version header.'
4030
url: https://modelcontextprotocol.io/specification/draft/basic/transports#protocol-version-header
@@ -78,6 +68,16 @@ requirements:
7868
text: 'The server MUST NOT emit notifications/message for a request that does not include [io.modelcontextprotocol/logLevel in _meta].'
7969
url: https://modelcontextprotocol.io/specification/draft/server/utilities/logging#per-request-log-level
8070

71+
- text: 'A server MUST NOT treat connection or process identity as a proxy for conversation or session continuity. / Servers MUST NOT rely on prior requests over the same connection to establish context (e.g., capabilities, protocol version, client identity).'
72+
excluded: 'internal server state, not directly wire-observable; the observable consequence (rejecting requests with incomplete _meta rather than falling back to remembered state) is covered by sep-2575-request-meta-invalid-* — see https://github.com/modelcontextprotocol/conformance/issues/296'
73+
- text: 'Servers MUST NOT require that a client reuse the same connection to perform related operations.'
74+
excluded: 'not observable from a black-box harness; every harness request already arrives on an independent connection — see https://github.com/modelcontextprotocol/conformance/issues/296'
75+
- text: 'Closing the SSE response stream MUST be treated by the server as cancellation of that request.'
76+
excluded: '"treated as cancellation" is internal server state; once the stream is closed there is no channel left on which to observe the effect — see https://github.com/modelcontextprotocol/conformance/issues/296'
77+
url: https://modelcontextprotocol.io/specification/draft/basic/transports#cancellation-1
78+
- text: 'The server SHOULD stop work on the cancelled request as soon as practical and MUST NOT send any further messages for it [HTTP].'
79+
excluded: '"stop work as soon as practical" is unobservable from a black-box harness, and "no further messages" cannot be verified once the response stream is closed — see https://github.com/modelcontextprotocol/conformance/issues/296'
80+
url: https://modelcontextprotocol.io/specification/draft/basic/transports#cancellation-1
8181
- text: 'State that needs to span multiple requests (e.g., long-running tasks, application-level handles) MUST be referenced by an explicit identifier the client passes on each request.'
8282
excluded: 'architectural guidance, observable only via subscriptionId/task-id rows already listed'
8383
- text: 'To distinguish notifications belonging to different concurrent subscriptions, clients MUST correlate notifications using the io.modelcontextprotocol/subscriptionId field carried in _meta.'

0 commit comments

Comments
 (0)