Commit b4fef52
feat: Add transport context extraction support to all MCP servers (#477)
- Add McpTransportContextExtractor to WebFlux/WebMVC SSE and Streamable transport providers
- Enable extraction of HTTP transport metadata (headers, etc.) for use during request processing
- Pass transport context through reactive context chain using McpTransportContext.KEY
- Add contextExtractor() builder methods for configuring custom extractors
- Update HttpServlet transport providers with same context extraction capability
- Modify McpServerSession to properly propagate transport context to handlers
- Add test coverage with TEST_CONTEXT_EXTRACTOR in integration tests
This allows MCP feature implementations to access HTTP transport level metadata
that was present at request time, enabling use cases like authentication,
request tracing, and custom header processing.
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
Co-authored-by: Christian Tzolov <christian.tzolov@broadcom.com>
Co-authored-by: Dariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>1 parent 9c9e2eb commit b4fef52
File tree
14 files changed
+374
-24
lines changed- mcp-spring
- mcp-spring-webflux/src
- main/java/io/modelcontextprotocol/server/transport
- test/java/io/modelcontextprotocol
- mcp-spring-webmvc/src
- main/java/io/modelcontextprotocol/server/transport
- test/java/io/modelcontextprotocol/server
- mcp-test/src/main/java/io/modelcontextprotocol
- mcp/src
- main/java/io/modelcontextprotocol
- server/transport
- spec
- test/java/io/modelcontextprotocol/server
14 files changed
+374
-24
lines changedLines changed: 54 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
| |||
115 | 119 | | |
116 | 120 | | |
117 | 121 | | |
| 122 | + | |
| 123 | + | |
118 | 124 | | |
119 | 125 | | |
120 | 126 | | |
| |||
194 | 200 | | |
195 | 201 | | |
196 | 202 | | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
197 | 224 | | |
198 | 225 | | |
199 | 226 | | |
200 | 227 | | |
| 228 | + | |
201 | 229 | | |
202 | 230 | | |
203 | 231 | | |
204 | 232 | | |
205 | 233 | | |
| 234 | + | |
206 | 235 | | |
207 | 236 | | |
208 | 237 | | |
| |||
315 | 344 | | |
316 | 345 | | |
317 | 346 | | |
| 347 | + | |
| 348 | + | |
318 | 349 | | |
319 | 350 | | |
320 | 351 | | |
| |||
336 | 367 | | |
337 | 368 | | |
338 | 369 | | |
339 | | - | |
| 370 | + | |
340 | 371 | | |
341 | 372 | | |
342 | 373 | | |
| |||
370 | 401 | | |
371 | 402 | | |
372 | 403 | | |
| 404 | + | |
| 405 | + | |
373 | 406 | | |
374 | 407 | | |
375 | 408 | | |
| |||
386 | 419 | | |
387 | 420 | | |
388 | 421 | | |
389 | | - | |
| 422 | + | |
390 | 423 | | |
391 | 424 | | |
392 | 425 | | |
| |||
458 | 491 | | |
459 | 492 | | |
460 | 493 | | |
| 494 | + | |
| 495 | + | |
461 | 496 | | |
462 | 497 | | |
463 | 498 | | |
| |||
519 | 554 | | |
520 | 555 | | |
521 | 556 | | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
522 | 573 | | |
523 | 574 | | |
524 | 575 | | |
| |||
530 | 581 | | |
531 | 582 | | |
532 | 583 | | |
533 | | - | |
| 584 | + | |
534 | 585 | | |
535 | 586 | | |
536 | 587 | | |
| |||
Lines changed: 10 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
195 | 197 | | |
196 | 198 | | |
197 | 199 | | |
| |||
202 | 204 | | |
203 | 205 | | |
204 | 206 | | |
205 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
206 | 210 | | |
207 | 211 | | |
208 | 212 | | |
| |||
282 | 286 | | |
283 | 287 | | |
284 | 288 | | |
285 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
286 | 293 | | |
287 | 294 | | |
288 | 295 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| 26 | + | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
| |||
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
43 | 50 | | |
44 | 51 | | |
45 | 52 | | |
| |||
75 | 82 | | |
76 | 83 | | |
77 | 84 | | |
| 85 | + | |
78 | 86 | | |
79 | 87 | | |
80 | 88 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| 26 | + | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
| |||
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
41 | 48 | | |
42 | 49 | | |
43 | 50 | | |
| |||
71 | 78 | | |
72 | 79 | | |
73 | 80 | | |
| 81 | + | |
74 | 82 | | |
75 | 83 | | |
76 | 84 | | |
| |||
Lines changed: 57 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
16 | 20 | | |
17 | 21 | | |
18 | 22 | | |
| |||
106 | 110 | | |
107 | 111 | | |
108 | 112 | | |
| 113 | + | |
| 114 | + | |
109 | 115 | | |
110 | 116 | | |
111 | 117 | | |
| |||
177 | 183 | | |
178 | 184 | | |
179 | 185 | | |
180 | | - | |
| 186 | + | |
181 | 187 | | |
182 | 188 | | |
183 | 189 | | |
184 | 190 | | |
185 | 191 | | |
186 | 192 | | |
187 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
188 | 216 | | |
189 | 217 | | |
190 | 218 | | |
191 | 219 | | |
| 220 | + | |
192 | 221 | | |
193 | 222 | | |
194 | 223 | | |
195 | 224 | | |
196 | 225 | | |
| 226 | + | |
197 | 227 | | |
198 | 228 | | |
199 | 229 | | |
| |||
367 | 397 | | |
368 | 398 | | |
369 | 399 | | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
370 | 403 | | |
371 | 404 | | |
372 | 405 | | |
373 | 406 | | |
374 | | - | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
375 | 411 | | |
376 | 412 | | |
377 | 413 | | |
| |||
517 | 553 | | |
518 | 554 | | |
519 | 555 | | |
| 556 | + | |
| 557 | + | |
520 | 558 | | |
521 | 559 | | |
522 | 560 | | |
| |||
576 | 614 | | |
577 | 615 | | |
578 | 616 | | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
579 | 633 | | |
580 | 634 | | |
581 | 635 | | |
| |||
587 | 641 | | |
588 | 642 | | |
589 | 643 | | |
590 | | - | |
| 644 | + | |
591 | 645 | | |
592 | 646 | | |
593 | 647 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
42 | 48 | | |
43 | 49 | | |
44 | 50 | | |
| |||
60 | 66 | | |
61 | 67 | | |
62 | 68 | | |
| 69 | + | |
63 | 70 | | |
64 | 71 | | |
65 | 72 | | |
| |||
0 commit comments