Commit 6eb1b3f
committed
Unify sampling and elicitation code paths with shared validation
This refactoring ensures all sampling and elicitation code paths use
consistent validation and support the same features.
Sampling changes:
- Add shared validation module (mcp/server/validation.py) with
validate_sampling_tools() and validate_tool_use_result_messages()
- Add tools and tool_choice parameters to all sampling methods:
- _build_create_message_request()
- ExperimentalServerSessionFeatures.create_message_as_task()
- ServerTaskContext.create_message()
- ServerTaskContext.create_message_as_task()
- Refactor ServerSession.create_message() to use shared validation
Elicitation changes:
- Rename _build_elicit_request to _build_elicit_form_request for clarity
- Add _build_elicit_url_request() for URL mode elicitation
- Add ServerTaskContext.elicit_url() so URL elicitation can be used
from inside task-augmented tool calls (e.g., for OAuth flows)
This fixes a gap where task-augmented code paths were missing:
- tools/tool_choice parameters for sampling
- URL mode for elicitation1 parent b7d44fa commit 6eb1b3f
File tree
6 files changed
+351
-54
lines changed- src/mcp/server
- experimental
- tests/experimental/tasks/server
6 files changed
+351
-54
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
156 | 157 | | |
157 | 158 | | |
158 | 159 | | |
| 160 | + | |
| 161 | + | |
159 | 162 | | |
160 | 163 | | |
161 | 164 | | |
| |||
173 | 176 | | |
174 | 177 | | |
175 | 178 | | |
| 179 | + | |
| 180 | + | |
176 | 181 | | |
177 | 182 | | |
178 | 183 | | |
179 | 184 | | |
180 | 185 | | |
181 | | - | |
| 186 | + | |
| 187 | + | |
182 | 188 | | |
183 | 189 | | |
184 | 190 | | |
| 191 | + | |
| 192 | + | |
185 | 193 | | |
186 | 194 | | |
187 | 195 | | |
| |||
195 | 203 | | |
196 | 204 | | |
197 | 205 | | |
| 206 | + | |
| 207 | + | |
198 | 208 | | |
199 | 209 | | |
200 | 210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| 48 | + | |
| 49 | + | |
47 | 50 | | |
48 | 51 | | |
49 | 52 | | |
| |||
231 | 234 | | |
232 | 235 | | |
233 | 236 | | |
234 | | - | |
| 237 | + | |
235 | 238 | | |
236 | 239 | | |
237 | 240 | | |
| |||
263 | 266 | | |
264 | 267 | | |
265 | 268 | | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
266 | 340 | | |
267 | 341 | | |
268 | 342 | | |
| |||
274 | 348 | | |
275 | 349 | | |
276 | 350 | | |
| 351 | + | |
| 352 | + | |
277 | 353 | | |
278 | 354 | | |
279 | 355 | | |
| |||
295 | 371 | | |
296 | 372 | | |
297 | 373 | | |
| 374 | + | |
| 375 | + | |
298 | 376 | | |
299 | 377 | | |
300 | 378 | | |
301 | 379 | | |
302 | 380 | | |
303 | | - | |
| 381 | + | |
| 382 | + | |
304 | 383 | | |
305 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
306 | 388 | | |
307 | 389 | | |
308 | 390 | | |
| |||
320 | 402 | | |
321 | 403 | | |
322 | 404 | | |
| 405 | + | |
| 406 | + | |
323 | 407 | | |
324 | 408 | | |
325 | 409 | | |
| |||
386 | 470 | | |
387 | 471 | | |
388 | 472 | | |
389 | | - | |
| 473 | + | |
390 | 474 | | |
391 | 475 | | |
392 | 476 | | |
| |||
442 | 526 | | |
443 | 527 | | |
444 | 528 | | |
| 529 | + | |
| 530 | + | |
445 | 531 | | |
446 | 532 | | |
447 | 533 | | |
| |||
461 | 547 | | |
462 | 548 | | |
463 | 549 | | |
| 550 | + | |
| 551 | + | |
464 | 552 | | |
465 | 553 | | |
466 | 554 | | |
467 | 555 | | |
468 | 556 | | |
469 | | - | |
| 557 | + | |
| 558 | + | |
470 | 559 | | |
471 | 560 | | |
472 | 561 | | |
473 | 562 | | |
| 563 | + | |
| 564 | + | |
474 | 565 | | |
475 | 566 | | |
476 | 567 | | |
| |||
488 | 579 | | |
489 | 580 | | |
490 | 581 | | |
| 582 | + | |
| 583 | + | |
491 | 584 | | |
492 | 585 | | |
493 | 586 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
296 | | - | |
| 296 | + | |
| 297 | + | |
297 | 298 | | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
337 | 302 | | |
338 | 303 | | |
339 | 304 | | |
| |||
525 | 490 | | |
526 | 491 | | |
527 | 492 | | |
528 | | - | |
| 493 | + | |
529 | 494 | | |
530 | 495 | | |
531 | 496 | | |
532 | 497 | | |
533 | 498 | | |
534 | 499 | | |
535 | | - | |
| 500 | + | |
536 | 501 | | |
537 | 502 | | |
538 | 503 | | |
| |||
567 | 532 | | |
568 | 533 | | |
569 | 534 | | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
570 | 577 | | |
571 | 578 | | |
572 | 579 | | |
| |||
578 | 585 | | |
579 | 586 | | |
580 | 587 | | |
| 588 | + | |
| 589 | + | |
581 | 590 | | |
582 | 591 | | |
583 | 592 | | |
| |||
592 | 601 | | |
593 | 602 | | |
594 | 603 | | |
| 604 | + | |
| 605 | + | |
595 | 606 | | |
596 | 607 | | |
597 | 608 | | |
| |||
607 | 618 | | |
608 | 619 | | |
609 | 620 | | |
| 621 | + | |
| 622 | + | |
610 | 623 | | |
611 | 624 | | |
612 | 625 | | |
| |||
0 commit comments