mcp_trace_validator/checks/inventory/
draft_rows.rs1use super::Check;
12#[cfg(feature = "draft-2026-07-28")]
13use crate::checks::draft;
14
15#[cfg(feature = "draft-2026-07-28")]
16macro_rules! check {
17 ($id:literal, $run:path) => {
18 Check { id: $id, run: $run }
19 };
20}
21
22#[cfg(feature = "draft-2026-07-28")]
24pub(super) const DRAFT: &[Check] = &[
25 check!(
26 "base.result-type-present",
27 draft::envelope::result_type_present
28 ),
29 check!(
30 "base.request-id-unique-in-flight",
31 draft::envelope::request_id_unique_in_flight
32 ),
33 check!(
34 "base.error-code-legacy-subrange",
35 draft::envelope::error_code_legacy_subrange
36 ),
37 check!(
38 "base.error-code-reserved-subrange",
39 draft::envelope::error_code_reserved_subrange
40 ),
41 check!(
42 "base.error-code-withdrawn",
43 draft::envelope::error_code_withdrawn
44 ),
45 check!(
46 "base.error-code-application-range",
47 draft::envelope::error_code_application_range
48 ),
49 check!(
50 "meta.required-request-fields",
51 draft::meta::required_request_fields
52 ),
53 check!(
54 "meta.missing-required-field-rejected",
55 draft::meta::missing_required_field_rejected
56 ),
57 check!(
58 "meta.missing-required-field-http-status",
59 draft::meta::missing_required_field_http_status
60 ),
61 check!(
62 "meta.missing-capability-error",
63 draft::meta::missing_capability_error
64 ),
65 check!(
66 "meta.missing-capability-http-status",
67 draft::meta::missing_capability_http_status
68 ),
69 check!(
70 "meta.no-undeclared-capability-reliance",
71 draft::meta::no_undeclared_capability_reliance
72 ),
73 check!(
74 "meta.subscription-id-present",
75 draft::meta::subscription_id_present
76 ),
77 check!(
78 "meta.trace-context-format",
79 draft::meta::trace_context_format
80 ),
81 check!(
82 "transport.protocol-version-header-present",
83 draft::transport::protocol_version_header_present
84 ),
85 check!(
86 "transport.protocol-version-header-matches-body",
87 draft::transport::protocol_version_header_matches_body
88 ),
89 check!(
90 "transport.request-metadata-headers",
91 draft::transport::request_metadata_headers
92 ),
93 check!(
94 "transport.client-no-responses",
95 draft::transport::client_no_responses
96 ),
97 check!(
98 "transport.no-independent-server-requests",
99 draft::transport::no_independent_server_requests
100 ),
101 check!(
102 "transport.accel-buffering-header",
103 draft::transport::accel_buffering_header
104 ),
105 check!(
106 "transport.no-messages-after-cancellation",
107 draft::transport::no_messages_after_cancellation
108 ),
109 check!(
110 "transport.version-mismatch-rejected",
111 draft::transport::version_mismatch_rejected
112 ),
113 check!(
114 "transport.invalid-param-header-rejected",
115 draft::transport::invalid_param_header_rejected
116 ),
117 check!(
118 "transport.header-mismatch-status",
119 draft::transport::header_mismatch_status
120 ),
121 check!(
122 "transport.header-body-match-validated",
123 draft::transport::header_body_match_validated
124 ),
125 check!(
126 "transport.unsupported-version-error",
127 draft::transport::unsupported_version_error
128 ),
129 check!(
130 "transport.unsupported-version-status",
131 draft::transport::unsupported_version_status
132 ),
133 check!(
134 "transport.unknown-method-404",
135 draft::transport::unknown_method_404
136 ),
137 check!(
138 "transport.header-value-encoding",
139 draft::transport::header_value_encoding
140 ),
141 check!(
142 "transport.sentinel-marker-case",
143 draft::transport::sentinel_marker_case
144 ),
145 check!(
146 "transport.sentinel-pattern-encoded",
147 draft::transport::sentinel_pattern_encoded
148 ),
149 check!(
150 "transport.x-mcp-header-mirrored",
151 draft::transport::x_mcp_header_mirrored
152 ),
153 check!(
154 "transport.x-mcp-header-name-valid",
155 draft::transport::x_mcp_header_name_valid
156 ),
157 check!("discover.implemented", draft::discovery::implemented),
158 check!(
159 "discover.dual-era-probe-first",
160 draft::discovery::dual_era_probe_first
161 ),
162 check!(
163 "versioning.retry-uses-supported-version",
164 draft::versioning::retry_uses_supported_version
165 ),
166 check!(
167 "versioning.extension-identifier-format",
168 draft::versioning::extension_identifier_format
169 ),
170 check!(
171 "versioning.initialize-error-names-versions",
172 draft::versioning::initialize_error_names_versions
173 ),
174 check!(
175 "transport.cancel-notification-references-request",
176 draft::transport::cancel_notification_references_request
177 ),
178 check!(
179 "transport.no-messages-after-cancel-notification",
180 draft::transport::no_messages_after_cancel_notification
181 ),
182 check!(
183 "mrtr.input-required-supported-methods",
184 draft::mrtr::input_required_supported_methods
185 ),
186 check!(
187 "mrtr.input-request-methods",
188 draft::mrtr::input_request_methods
189 ),
190 check!(
191 "mrtr.input-required-has-content",
192 draft::mrtr::input_required_has_content
193 ),
194 check!(
195 "mrtr.retry-carries-input-responses",
196 draft::mrtr::retry_carries_input_responses
197 ),
198 check!(
199 "mrtr.request-state-echoed",
200 draft::mrtr::request_state_echoed
201 ),
202 check!(
203 "mrtr.no-unsolicited-request-state",
204 draft::mrtr::no_unsolicited_request_state
205 ),
206 check!("mrtr.retry-id-differs", draft::mrtr::retry_id_differs),
207 check!(
208 "mrtr.request-state-scoped-to-retry",
209 draft::mrtr::request_state_scoped_to_retry
210 ),
211 check!(
212 "mrtr.missing-input-reasked",
213 draft::mrtr::missing_input_reasked
214 ),
215 check!(
216 "subscriptions.only-requested-notifications",
217 draft::subscriptions::only_requested_notifications
218 ),
219 check!(
220 "subscriptions.acknowledgment-first",
221 draft::subscriptions::acknowledgment_first
222 ),
223 check!(
224 "subscriptions.graceful-close-result-shape",
225 draft::subscriptions::graceful_close_result_shape
226 ),
227 check!(
228 "caching.hints-on-cacheable-results",
229 draft::caching::hints_on_cacheable_results
230 ),
231 check!("caching.ttl-non-negative", draft::caching::ttl_non_negative),
232 check!(
233 "caching.page-scope-consistent",
234 draft::caching::page_scope_consistent
235 ),
236 check!(
237 "capabilities.completions-declared",
238 draft::capabilities::completions_declared
239 ),
240 check!(
241 "capabilities.logging-declared",
242 draft::capabilities::logging_declared
243 ),
244 check!("logging.level-requested", draft::logging::level_requested),
245 check!(
246 "logging.not-on-subscription",
247 draft::logging::not_on_subscription
248 ),
249 check!(
250 "logging.invalid-level-rejected",
251 draft::logging::invalid_level_rejected
252 ),
253 check!(
254 "capabilities.tools-declared",
255 draft::capabilities::tools_declared
256 ),
257 check!(
258 "capabilities.resources-declared",
259 draft::capabilities::resources_declared
260 ),
261 check!(
262 "capabilities.prompts-declared",
263 draft::capabilities::prompts_declared
264 ),
265 check!(
266 "capabilities.tools-list-implemented",
267 draft::capabilities::tools_list_implemented
268 ),
269 check!(
270 "capabilities.resources-list-implemented",
271 draft::capabilities::resources_list_implemented
272 ),
273 check!(
274 "capabilities.prompts-list-implemented",
275 draft::capabilities::prompts_list_implemented
276 ),
277 check!(
278 "capabilities.embedded-resource-declared",
279 draft::capabilities::embedded_resource_declared
280 ),
281 check!(
282 "tools.deterministic-order",
283 draft::features::deterministic_order
284 ),
285 check!(
286 "tools.x-mcp-header-integer-range",
287 draft::features::x_mcp_header_integer_range
288 ),
289 check!(
290 "resources.read-contents-non-empty",
291 draft::features::read_contents_non_empty
292 ),
293];
294
295#[cfg(not(feature = "draft-2026-07-28"))]
297pub(super) const DRAFT: &[Check] = &[];