@modelcontextprotocol/sdk 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +284 -28
  2. package/dist/cjs/client/index.d.ts.map +1 -1
  3. package/dist/cjs/client/index.js +5 -0
  4. package/dist/cjs/client/index.js.map +1 -1
  5. package/dist/cjs/client/streamableHttp.d.ts +124 -0
  6. package/dist/cjs/client/streamableHttp.d.ts.map +1 -0
  7. package/dist/cjs/client/streamableHttp.js +353 -0
  8. package/dist/cjs/client/streamableHttp.js.map +1 -0
  9. package/dist/cjs/examples/client/simpleStreamableHttp.d.ts +2 -0
  10. package/dist/cjs/examples/client/simpleStreamableHttp.d.ts.map +1 -0
  11. package/dist/cjs/examples/client/simpleStreamableHttp.js +448 -0
  12. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -0
  13. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
  14. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
  15. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +168 -0
  16. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
  17. package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
  18. package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
  19. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +139 -0
  20. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -0
  21. package/dist/cjs/examples/server/simpleSseServer.d.ts +2 -0
  22. package/dist/cjs/examples/server/simpleSseServer.d.ts.map +1 -0
  23. package/dist/cjs/examples/server/simpleSseServer.js +148 -0
  24. package/dist/cjs/examples/server/simpleSseServer.js.map +1 -0
  25. package/dist/cjs/examples/server/simpleStreamableHttp.d.ts +2 -0
  26. package/dist/cjs/examples/server/simpleStreamableHttp.d.ts.map +1 -0
  27. package/dist/cjs/examples/server/simpleStreamableHttp.js +250 -0
  28. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -0
  29. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
  30. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
  31. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +229 -0
  32. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
  33. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
  34. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
  35. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +112 -0
  36. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
  37. package/dist/cjs/examples/shared/inMemoryEventStore.d.ts +31 -0
  38. package/dist/cjs/examples/shared/inMemoryEventStore.d.ts.map +1 -0
  39. package/dist/cjs/examples/shared/inMemoryEventStore.js +69 -0
  40. package/dist/cjs/examples/shared/inMemoryEventStore.js.map +1 -0
  41. package/dist/cjs/inMemory.d.ts +13 -3
  42. package/dist/cjs/inMemory.d.ts.map +1 -1
  43. package/dist/cjs/inMemory.js +9 -7
  44. package/dist/cjs/inMemory.js.map +1 -1
  45. package/dist/cjs/server/auth/types.d.ts +5 -0
  46. package/dist/cjs/server/auth/types.d.ts.map +1 -1
  47. package/dist/cjs/server/mcp.d.ts +100 -19
  48. package/dist/cjs/server/mcp.d.ts.map +1 -1
  49. package/dist/cjs/server/mcp.js +154 -12
  50. package/dist/cjs/server/mcp.js.map +1 -1
  51. package/dist/cjs/server/sse.d.ts +10 -3
  52. package/dist/cjs/server/sse.d.ts.map +1 -1
  53. package/dist/cjs/server/sse.js +13 -4
  54. package/dist/cjs/server/sse.js.map +1 -1
  55. package/dist/cjs/server/streamableHttp.d.ts +146 -0
  56. package/dist/cjs/server/streamableHttp.d.ts.map +1 -0
  57. package/dist/cjs/server/streamableHttp.js +538 -0
  58. package/dist/cjs/server/streamableHttp.js.map +1 -0
  59. package/dist/cjs/shared/protocol.d.ts +31 -5
  60. package/dist/cjs/shared/protocol.d.ts.map +1 -1
  61. package/dist/cjs/shared/protocol.js +23 -15
  62. package/dist/cjs/shared/protocol.js.map +1 -1
  63. package/dist/cjs/shared/transport.d.ts +32 -3
  64. package/dist/cjs/shared/transport.d.ts.map +1 -1
  65. package/dist/cjs/types.d.ts +6 -0
  66. package/dist/cjs/types.d.ts.map +1 -1
  67. package/dist/cjs/types.js +14 -2
  68. package/dist/cjs/types.js.map +1 -1
  69. package/dist/esm/client/index.d.ts.map +1 -1
  70. package/dist/esm/client/index.js +5 -0
  71. package/dist/esm/client/index.js.map +1 -1
  72. package/dist/esm/client/streamableHttp.d.ts +124 -0
  73. package/dist/esm/client/streamableHttp.d.ts.map +1 -0
  74. package/dist/esm/client/streamableHttp.js +348 -0
  75. package/dist/esm/client/streamableHttp.js.map +1 -0
  76. package/dist/esm/examples/client/simpleStreamableHttp.d.ts +2 -0
  77. package/dist/esm/examples/client/simpleStreamableHttp.d.ts.map +1 -0
  78. package/dist/esm/examples/client/simpleStreamableHttp.js +446 -0
  79. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -0
  80. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
  81. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
  82. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +166 -0
  83. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
  84. package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
  85. package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
  86. package/dist/esm/examples/server/jsonResponseStreamableHttp.js +134 -0
  87. package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -0
  88. package/dist/esm/examples/server/simpleSseServer.d.ts +2 -0
  89. package/dist/esm/examples/server/simpleSseServer.d.ts.map +1 -0
  90. package/dist/esm/examples/server/simpleSseServer.js +143 -0
  91. package/dist/esm/examples/server/simpleSseServer.js.map +1 -0
  92. package/dist/esm/examples/server/simpleStreamableHttp.d.ts +2 -0
  93. package/dist/esm/examples/server/simpleStreamableHttp.d.ts.map +1 -0
  94. package/dist/esm/examples/server/simpleStreamableHttp.js +245 -0
  95. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -0
  96. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
  97. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
  98. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +224 -0
  99. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
  100. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
  101. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
  102. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +107 -0
  103. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
  104. package/dist/esm/examples/shared/inMemoryEventStore.d.ts +31 -0
  105. package/dist/esm/examples/shared/inMemoryEventStore.d.ts.map +1 -0
  106. package/dist/esm/examples/shared/inMemoryEventStore.js +65 -0
  107. package/dist/esm/examples/shared/inMemoryEventStore.js.map +1 -0
  108. package/dist/esm/inMemory.d.ts +13 -3
  109. package/dist/esm/inMemory.d.ts.map +1 -1
  110. package/dist/esm/inMemory.js +9 -7
  111. package/dist/esm/inMemory.js.map +1 -1
  112. package/dist/esm/server/auth/types.d.ts +5 -0
  113. package/dist/esm/server/auth/types.d.ts.map +1 -1
  114. package/dist/esm/server/mcp.d.ts +100 -19
  115. package/dist/esm/server/mcp.d.ts.map +1 -1
  116. package/dist/esm/server/mcp.js +154 -12
  117. package/dist/esm/server/mcp.js.map +1 -1
  118. package/dist/esm/server/sse.d.ts +10 -3
  119. package/dist/esm/server/sse.d.ts.map +1 -1
  120. package/dist/esm/server/sse.js +13 -4
  121. package/dist/esm/server/sse.js.map +1 -1
  122. package/dist/esm/server/streamableHttp.d.ts +146 -0
  123. package/dist/esm/server/streamableHttp.d.ts.map +1 -0
  124. package/dist/esm/server/streamableHttp.js +531 -0
  125. package/dist/esm/server/streamableHttp.js.map +1 -0
  126. package/dist/esm/shared/protocol.d.ts +31 -5
  127. package/dist/esm/shared/protocol.d.ts.map +1 -1
  128. package/dist/esm/shared/protocol.js +24 -16
  129. package/dist/esm/shared/protocol.js.map +1 -1
  130. package/dist/esm/shared/transport.d.ts +32 -3
  131. package/dist/esm/shared/transport.d.ts.map +1 -1
  132. package/dist/esm/types.d.ts +6 -0
  133. package/dist/esm/types.d.ts.map +1 -1
  134. package/dist/esm/types.js +6 -0
  135. package/dist/esm/types.js.map +1 -1
  136. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,QAAQ,GAGT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,oBAAoB,EAOpB,oBAAoB,EACpB,iBAAiB,EAEjB,qBAAqB,EAErB,sBAAsB,EACtB,uBAAuB,EAEvB,uBAAuB,EAEvB,yBAAyB,EAEzB,iCAAiC,EAEjC,qBAAqB,EAIrB,wBAAwB,EAKxB,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,MAIX,SAAQ,QAIT;IAMC;;OAEG;IACH,YACU,WAA2B,EACnC,OAAuB;;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHP,gBAAW,GAAX,WAAW,CAAgB;QAInC,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,EAAE,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,YAAgC;QAC1D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC3E,CAAC;IAES,gBAAgB,CACxB,UAAoC,EACpC,MAAc;;QAEd,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAG,UAAU,CAAC,CAAA,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,2BAA2B,UAAU,kBAAkB,MAAM,GAAG,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,SAAoB,EAAE,OAAwB;QACnE,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B;gBACE,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE;oBACN,eAAe,EAAE,uBAAuB;oBACxC,YAAY,EAAE,IAAI,CAAC,aAAa;oBAChC,UAAU,EAAE,IAAI,CAAC,WAAW;iBAC7B;aACF,EACD,sBAAsB,EACtB,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,eAAe,EAAE,CACxE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,YAAY,CAAC;YAC/C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;YAExC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;YAEzC,MAAM,IAAI,CAAC,YAAY,CAAC;gBACtB,MAAM,EAAE,2BAA2B;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAES,yBAAyB,CAAC,MAA0B;;QAC5D,QAAQ,MAAiC,EAAE,CAAC;YAC1C,KAAK,kBAAkB;gBACrB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,OAAO,CAAA,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,GAAG,CAC3D,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,aAAa,CAAC;YACnB,KAAK,cAAc;gBACjB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,OAAO,CAAA,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,iDAAiD,MAAM,GAAG,CAC3D,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,gBAAgB,CAAC;YACtB,KAAK,0BAA0B,CAAC;YAChC,KAAK,gBAAgB,CAAC;YACtB,KAAK,qBAAqB,CAAC;YAC3B,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,SAAS,CAAA,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,GAAG,CAC7D,CAAC;gBACJ,CAAC;gBAED,IACE,MAAM,KAAK,qBAAqB;oBAChC,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,EAC7C,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,gEAAgE,MAAM,GAAG,CAC1E,CAAC;gBACJ,CAAC;gBAED,MAAM;YAER,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACf,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,KAAK,CAAA,EAAE,CAAC;oBACrC,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,GAAG,CACzD,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,qBAAqB;gBACxB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,WAAW,CAAA,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CACb,qDAAqD,MAAM,GAAG,CAC/D,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,YAAY;gBACf,iDAAiD;gBACjD,MAAM;YAER,KAAK,MAAM;gBACT,2CAA2C;gBAC3C,MAAM;QACV,CAAC;IACH,CAAC;IAES,4BAA4B,CACpC,MAA+B;;QAE/B,QAAQ,MAAsC,EAAE,CAAC;YAC/C,KAAK,kCAAkC;gBACrC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,CAAC,KAAK,0CAAE,WAAW,CAAA,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CACb,0EAA0E,MAAM,GAAG,CACpF,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,2BAA2B;gBAC9B,kDAAkD;gBAClD,MAAM;YAER,KAAK,yBAAyB;gBAC5B,gDAAgD;gBAChD,MAAM;YAER,KAAK,wBAAwB;gBAC3B,4CAA4C;gBAC5C,MAAM;QACV,CAAC;IACH,CAAC;IAES,8BAA8B,CAAC,MAAc;QACrD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,wBAAwB;gBAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CACb,6DAA6D,MAAM,GAAG,CACvE,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,YAAY;gBACf,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,0DAA0D,MAAM,GAAG,CACpE,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,2CAA2C;gBAC3C,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAwB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAiC,EAAE,OAAwB;QACxE,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,EACzC,oBAAoB,EACpB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAmB,EAAE,OAAwB;QACjE,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EACjD,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAkC,EAClC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EACjC,qBAAqB,EACrB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAqC,EACrC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAClC,uBAAuB,EACvB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAuC,EACvC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EACpC,yBAAyB,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,MAA+C,EAC/C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAC9C,iCAAiC,EACjC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAqC,EACrC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EACpC,wBAAwB,EACxB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAkC,EAClC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,EACzC,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,MAAoC,EACpC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAC3C,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAiC,EACjC,eAE+C,oBAAoB,EACnE,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAChC,YAAY,EACZ,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAmC,EACnC,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAChC,qBAAqB,EACrB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { Transport } from "../shared/transport.js";
2
+ import { JSONRPCMessage } from "../types.js";
3
+ import { OAuthClientProvider } from "./auth.js";
4
+ export declare class StreamableHTTPError extends Error {
5
+ readonly code: number | undefined;
6
+ constructor(code: number | undefined, message: string | undefined);
7
+ }
8
+ /**
9
+ * Configuration options for reconnection behavior of the StreamableHTTPClientTransport.
10
+ */
11
+ export interface StreamableHTTPReconnectionOptions {
12
+ /**
13
+ * Maximum backoff time between reconnection attempts in milliseconds.
14
+ * Default is 30000 (30 seconds).
15
+ */
16
+ maxReconnectionDelay: number;
17
+ /**
18
+ * Initial backoff time between reconnection attempts in milliseconds.
19
+ * Default is 1000 (1 second).
20
+ */
21
+ initialReconnectionDelay: number;
22
+ /**
23
+ * The factor by which the reconnection delay increases after each attempt.
24
+ * Default is 1.5.
25
+ */
26
+ reconnectionDelayGrowFactor: number;
27
+ /**
28
+ * Maximum number of reconnection attempts before giving up.
29
+ * Default is 2.
30
+ */
31
+ maxRetries: number;
32
+ }
33
+ /**
34
+ * Configuration options for the `StreamableHTTPClientTransport`.
35
+ */
36
+ export type StreamableHTTPClientTransportOptions = {
37
+ /**
38
+ * An OAuth client provider to use for authentication.
39
+ *
40
+ * When an `authProvider` is specified and the connection is started:
41
+ * 1. The connection is attempted with any existing access token from the `authProvider`.
42
+ * 2. If the access token has expired, the `authProvider` is used to refresh the token.
43
+ * 3. If token refresh fails or no access token exists, and auth is required, `OAuthClientProvider.redirectToAuthorization` is called, and an `UnauthorizedError` will be thrown from `connect`/`start`.
44
+ *
45
+ * After the user has finished authorizing via their user agent, and is redirected back to the MCP client application, call `StreamableHTTPClientTransport.finishAuth` with the authorization code before retrying the connection.
46
+ *
47
+ * If an `authProvider` is not provided, and auth is required, an `UnauthorizedError` will be thrown.
48
+ *
49
+ * `UnauthorizedError` might also be thrown when sending any message over the transport, indicating that the session has expired, and needs to be re-authed and reconnected.
50
+ */
51
+ authProvider?: OAuthClientProvider;
52
+ /**
53
+ * Customizes HTTP requests to the server.
54
+ */
55
+ requestInit?: RequestInit;
56
+ /**
57
+ * Options to configure the reconnection behavior.
58
+ */
59
+ reconnectionOptions?: StreamableHTTPReconnectionOptions;
60
+ /**
61
+ * Session ID for the connection. This is used to identify the session on the server.
62
+ * When not provided and connecting to a server that supports session IDs, the server will generate a new session ID.
63
+ */
64
+ sessionId?: string;
65
+ };
66
+ /**
67
+ * Client transport for Streamable HTTP: this implements the MCP Streamable HTTP transport specification.
68
+ * It will connect to a server using HTTP POST for sending messages and HTTP GET with Server-Sent Events
69
+ * for receiving messages.
70
+ */
71
+ export declare class StreamableHTTPClientTransport implements Transport {
72
+ private _abortController?;
73
+ private _url;
74
+ private _requestInit?;
75
+ private _authProvider?;
76
+ private _sessionId?;
77
+ private _reconnectionOptions;
78
+ onclose?: () => void;
79
+ onerror?: (error: Error) => void;
80
+ onmessage?: (message: JSONRPCMessage) => void;
81
+ constructor(url: URL, opts?: StreamableHTTPClientTransportOptions);
82
+ private _authThenStart;
83
+ private _commonHeaders;
84
+ private _startOrAuthSse;
85
+ /**
86
+ * Calculates the next reconnection delay using backoff algorithm
87
+ *
88
+ * @param attempt Current reconnection attempt count for the specific stream
89
+ * @returns Time to wait in milliseconds before next reconnection attempt
90
+ */
91
+ private _getNextReconnectionDelay;
92
+ /**
93
+ * Schedule a reconnection attempt with exponential backoff
94
+ *
95
+ * @param lastEventId The ID of the last received event for resumability
96
+ * @param attemptCount Current reconnection attempt count for this specific stream
97
+ */
98
+ private _scheduleReconnection;
99
+ private _handleSseStream;
100
+ start(): Promise<void>;
101
+ /**
102
+ * Call this method after the user has finished authorizing via their user agent and is redirected back to the MCP client application. This will exchange the authorization code for an access token, enabling the next connection attempt to successfully auth.
103
+ */
104
+ finishAuth(authorizationCode: string): Promise<void>;
105
+ close(): Promise<void>;
106
+ send(message: JSONRPCMessage | JSONRPCMessage[], options?: {
107
+ resumptionToken?: string;
108
+ onresumptiontoken?: (token: string) => void;
109
+ }): Promise<void>;
110
+ get sessionId(): string | undefined;
111
+ /**
112
+ * Terminates the current session by sending a DELETE request to the server.
113
+ *
114
+ * Clients that no longer need a particular session
115
+ * (e.g., because the user is leaving the client application) SHOULD send an
116
+ * HTTP DELETE to the MCP endpoint with the Mcp-Session-Id header to explicitly
117
+ * terminate the session.
118
+ *
119
+ * The server MAY respond with HTTP 405 Method Not Allowed, indicating that
120
+ * the server does not allow clients to terminate sessions.
121
+ */
122
+ terminateSession(): Promise<void>;
123
+ }
124
+ //# sourceMappingURL=streamableHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamableHttp.d.ts","sourceRoot":"","sources":["../../../src/client/streamableHttp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAkE,cAAc,EAAwB,MAAM,aAAa,CAAC;AACnI,OAAO,EAAoB,mBAAmB,EAAqB,MAAM,WAAW,CAAC;AAWrF,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,IAAI,EAAE,MAAM,GAAG,SAAS;gBAAxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxC,OAAO,EAAE,MAAM,GAAG,SAAS;CAI9B;AA2BD;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,2BAA2B,EAAE,MAAM,CAAC;IAEpC;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG;IACjD;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,iCAAiC,CAAC;IAExD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,6BAA8B,YAAW,SAAS;IAC7D,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,aAAa,CAAC,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,oBAAoB,CAAoC;IAEhE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAG5C,GAAG,EAAE,GAAG,EACR,IAAI,CAAC,EAAE,oCAAoC;YAS/B,cAAc;YAoBd,cAAc;YAmBd,eAAe;IA6C7B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAWjC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,gBAAgB;IAoElB,KAAK;IAUX;;OAEG;IACG,UAAU,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+F1J,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAgCxC"}
@@ -0,0 +1,348 @@
1
+ import { isInitializedNotification, isJSONRPCRequest, isJSONRPCResponse, JSONRPCMessageSchema } from "../types.js";
2
+ import { auth, UnauthorizedError } from "./auth.js";
3
+ import { EventSourceParserStream } from "eventsource-parser/stream";
4
+ // Default reconnection options for StreamableHTTP connections
5
+ const DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS = {
6
+ initialReconnectionDelay: 1000,
7
+ maxReconnectionDelay: 30000,
8
+ reconnectionDelayGrowFactor: 1.5,
9
+ maxRetries: 2,
10
+ };
11
+ export class StreamableHTTPError extends Error {
12
+ constructor(code, message) {
13
+ super(`Streamable HTTP error: ${message}`);
14
+ this.code = code;
15
+ }
16
+ }
17
+ /**
18
+ * Client transport for Streamable HTTP: this implements the MCP Streamable HTTP transport specification.
19
+ * It will connect to a server using HTTP POST for sending messages and HTTP GET with Server-Sent Events
20
+ * for receiving messages.
21
+ */
22
+ export class StreamableHTTPClientTransport {
23
+ constructor(url, opts) {
24
+ var _a;
25
+ this._url = url;
26
+ this._requestInit = opts === null || opts === void 0 ? void 0 : opts.requestInit;
27
+ this._authProvider = opts === null || opts === void 0 ? void 0 : opts.authProvider;
28
+ this._sessionId = opts === null || opts === void 0 ? void 0 : opts.sessionId;
29
+ this._reconnectionOptions = (_a = opts === null || opts === void 0 ? void 0 : opts.reconnectionOptions) !== null && _a !== void 0 ? _a : DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS;
30
+ }
31
+ async _authThenStart() {
32
+ var _a;
33
+ if (!this._authProvider) {
34
+ throw new UnauthorizedError("No auth provider");
35
+ }
36
+ let result;
37
+ try {
38
+ result = await auth(this._authProvider, { serverUrl: this._url });
39
+ }
40
+ catch (error) {
41
+ (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
42
+ throw error;
43
+ }
44
+ if (result !== "AUTHORIZED") {
45
+ throw new UnauthorizedError();
46
+ }
47
+ return await this._startOrAuthSse({ resumptionToken: undefined });
48
+ }
49
+ async _commonHeaders() {
50
+ var _a;
51
+ const headers = {};
52
+ if (this._authProvider) {
53
+ const tokens = await this._authProvider.tokens();
54
+ if (tokens) {
55
+ headers["Authorization"] = `Bearer ${tokens.access_token}`;
56
+ }
57
+ }
58
+ if (this._sessionId) {
59
+ headers["mcp-session-id"] = this._sessionId;
60
+ }
61
+ return new Headers({ ...headers, ...(_a = this._requestInit) === null || _a === void 0 ? void 0 : _a.headers });
62
+ }
63
+ async _startOrAuthSse(options) {
64
+ var _a, _b;
65
+ const { resumptionToken } = options;
66
+ try {
67
+ // Try to open an initial SSE stream with GET to listen for server messages
68
+ // This is optional according to the spec - server may not support it
69
+ const headers = await this._commonHeaders();
70
+ headers.set("Accept", "text/event-stream");
71
+ // Include Last-Event-ID header for resumable streams if provided
72
+ if (resumptionToken) {
73
+ headers.set("last-event-id", resumptionToken);
74
+ }
75
+ const response = await fetch(this._url, {
76
+ method: "GET",
77
+ headers,
78
+ signal: (_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal,
79
+ });
80
+ if (!response.ok) {
81
+ if (response.status === 401 && this._authProvider) {
82
+ // Need to authenticate
83
+ return await this._authThenStart();
84
+ }
85
+ // 405 indicates that the server does not offer an SSE stream at GET endpoint
86
+ // This is an expected case that should not trigger an error
87
+ if (response.status === 405) {
88
+ return;
89
+ }
90
+ throw new StreamableHTTPError(response.status, `Failed to open SSE stream: ${response.statusText}`);
91
+ }
92
+ this._handleSseStream(response.body, options);
93
+ }
94
+ catch (error) {
95
+ (_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, error);
96
+ throw error;
97
+ }
98
+ }
99
+ /**
100
+ * Calculates the next reconnection delay using backoff algorithm
101
+ *
102
+ * @param attempt Current reconnection attempt count for the specific stream
103
+ * @returns Time to wait in milliseconds before next reconnection attempt
104
+ */
105
+ _getNextReconnectionDelay(attempt) {
106
+ // Access default values directly, ensuring they're never undefined
107
+ const initialDelay = this._reconnectionOptions.initialReconnectionDelay;
108
+ const growFactor = this._reconnectionOptions.reconnectionDelayGrowFactor;
109
+ const maxDelay = this._reconnectionOptions.maxReconnectionDelay;
110
+ // Cap at maximum delay
111
+ return Math.min(initialDelay * Math.pow(growFactor, attempt), maxDelay);
112
+ }
113
+ /**
114
+ * Schedule a reconnection attempt with exponential backoff
115
+ *
116
+ * @param lastEventId The ID of the last received event for resumability
117
+ * @param attemptCount Current reconnection attempt count for this specific stream
118
+ */
119
+ _scheduleReconnection(options, attemptCount = 0) {
120
+ var _a;
121
+ // Use provided options or default options
122
+ const maxRetries = this._reconnectionOptions.maxRetries;
123
+ // Check if we've exceeded maximum retry attempts
124
+ if (maxRetries > 0 && attemptCount >= maxRetries) {
125
+ (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, new Error(`Maximum reconnection attempts (${maxRetries}) exceeded.`));
126
+ return;
127
+ }
128
+ // Calculate next delay based on current attempt count
129
+ const delay = this._getNextReconnectionDelay(attemptCount);
130
+ // Schedule the reconnection
131
+ setTimeout(() => {
132
+ // Use the last event ID to resume where we left off
133
+ this._startOrAuthSse(options).catch(error => {
134
+ var _a;
135
+ (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, new Error(`Failed to reconnect SSE stream: ${error instanceof Error ? error.message : String(error)}`));
136
+ // Schedule another attempt if this one failed, incrementing the attempt counter
137
+ this._scheduleReconnection(options, attemptCount + 1);
138
+ });
139
+ }, delay);
140
+ }
141
+ _handleSseStream(stream, options) {
142
+ if (!stream) {
143
+ return;
144
+ }
145
+ const { onresumptiontoken, replayMessageId } = options;
146
+ let lastEventId;
147
+ const processStream = async () => {
148
+ var _a, _b, _c, _d;
149
+ // this is the closest we can get to trying to catch network errors
150
+ // if something happens reader will throw
151
+ try {
152
+ // Create a pipeline: binary stream -> text decoder -> SSE parser
153
+ const reader = stream
154
+ .pipeThrough(new TextDecoderStream())
155
+ .pipeThrough(new EventSourceParserStream())
156
+ .getReader();
157
+ while (true) {
158
+ const { value: event, done } = await reader.read();
159
+ if (done) {
160
+ break;
161
+ }
162
+ // Update last event ID if provided
163
+ if (event.id) {
164
+ lastEventId = event.id;
165
+ onresumptiontoken === null || onresumptiontoken === void 0 ? void 0 : onresumptiontoken(event.id);
166
+ }
167
+ if (!event.event || event.event === "message") {
168
+ try {
169
+ const message = JSONRPCMessageSchema.parse(JSON.parse(event.data));
170
+ if (replayMessageId !== undefined && isJSONRPCResponse(message)) {
171
+ message.id = replayMessageId;
172
+ }
173
+ (_a = this.onmessage) === null || _a === void 0 ? void 0 : _a.call(this, message);
174
+ }
175
+ catch (error) {
176
+ (_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, error);
177
+ }
178
+ }
179
+ }
180
+ }
181
+ catch (error) {
182
+ // Handle stream errors - likely a network disconnect
183
+ (_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, new Error(`SSE stream disconnected: ${error}`));
184
+ // Attempt to reconnect if the stream disconnects unexpectedly and we aren't closing
185
+ if (this._abortController && !this._abortController.signal.aborted) {
186
+ // Use the exponential backoff reconnection strategy
187
+ if (lastEventId !== undefined) {
188
+ try {
189
+ this._scheduleReconnection({
190
+ resumptionToken: lastEventId,
191
+ onresumptiontoken,
192
+ replayMessageId
193
+ }, 0);
194
+ }
195
+ catch (error) {
196
+ (_d = this.onerror) === null || _d === void 0 ? void 0 : _d.call(this, new Error(`Failed to reconnect: ${error instanceof Error ? error.message : String(error)}`));
197
+ }
198
+ }
199
+ }
200
+ }
201
+ };
202
+ processStream();
203
+ }
204
+ async start() {
205
+ if (this._abortController) {
206
+ throw new Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");
207
+ }
208
+ this._abortController = new AbortController();
209
+ }
210
+ /**
211
+ * Call this method after the user has finished authorizing via their user agent and is redirected back to the MCP client application. This will exchange the authorization code for an access token, enabling the next connection attempt to successfully auth.
212
+ */
213
+ async finishAuth(authorizationCode) {
214
+ if (!this._authProvider) {
215
+ throw new UnauthorizedError("No auth provider");
216
+ }
217
+ const result = await auth(this._authProvider, { serverUrl: this._url, authorizationCode });
218
+ if (result !== "AUTHORIZED") {
219
+ throw new UnauthorizedError("Failed to authorize");
220
+ }
221
+ }
222
+ async close() {
223
+ var _a, _b;
224
+ // Abort any pending requests
225
+ (_a = this._abortController) === null || _a === void 0 ? void 0 : _a.abort();
226
+ (_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);
227
+ }
228
+ async send(message, options) {
229
+ var _a, _b, _c;
230
+ try {
231
+ const { resumptionToken, onresumptiontoken } = options || {};
232
+ if (resumptionToken) {
233
+ // If we have at last event ID, we need to reconnect the SSE stream
234
+ this._startOrAuthSse({ resumptionToken, replayMessageId: isJSONRPCRequest(message) ? message.id : undefined }).catch(err => { var _a; return (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, err); });
235
+ return;
236
+ }
237
+ const headers = await this._commonHeaders();
238
+ headers.set("content-type", "application/json");
239
+ headers.set("accept", "application/json, text/event-stream");
240
+ const init = {
241
+ ...this._requestInit,
242
+ method: "POST",
243
+ headers,
244
+ body: JSON.stringify(message),
245
+ signal: (_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal,
246
+ };
247
+ const response = await fetch(this._url, init);
248
+ // Handle session ID received during initialization
249
+ const sessionId = response.headers.get("mcp-session-id");
250
+ if (sessionId) {
251
+ this._sessionId = sessionId;
252
+ }
253
+ if (!response.ok) {
254
+ if (response.status === 401 && this._authProvider) {
255
+ const result = await auth(this._authProvider, { serverUrl: this._url });
256
+ if (result !== "AUTHORIZED") {
257
+ throw new UnauthorizedError();
258
+ }
259
+ // Purposely _not_ awaited, so we don't call onerror twice
260
+ return this.send(message);
261
+ }
262
+ const text = await response.text().catch(() => null);
263
+ throw new Error(`Error POSTing to endpoint (HTTP ${response.status}): ${text}`);
264
+ }
265
+ // If the response is 202 Accepted, there's no body to process
266
+ if (response.status === 202) {
267
+ // if the accepted notification is initialized, we start the SSE stream
268
+ // if it's supported by the server
269
+ if (isInitializedNotification(message)) {
270
+ // Start without a lastEventId since this is a fresh connection
271
+ this._startOrAuthSse({ resumptionToken: undefined }).catch(err => { var _a; return (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, err); });
272
+ }
273
+ return;
274
+ }
275
+ // Get original message(s) for detecting request IDs
276
+ const messages = Array.isArray(message) ? message : [message];
277
+ const hasRequests = messages.filter(msg => "method" in msg && "id" in msg && msg.id !== undefined).length > 0;
278
+ // Check the response type
279
+ const contentType = response.headers.get("content-type");
280
+ if (hasRequests) {
281
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/event-stream")) {
282
+ // Handle SSE stream responses for requests
283
+ // We use the same handler as standalone streams, which now supports
284
+ // reconnection with the last event ID
285
+ this._handleSseStream(response.body, { onresumptiontoken });
286
+ }
287
+ else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/json")) {
288
+ // For non-streaming servers, we might get direct JSON responses
289
+ const data = await response.json();
290
+ const responseMessages = Array.isArray(data)
291
+ ? data.map(msg => JSONRPCMessageSchema.parse(msg))
292
+ : [JSONRPCMessageSchema.parse(data)];
293
+ for (const msg of responseMessages) {
294
+ (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, msg);
295
+ }
296
+ }
297
+ else {
298
+ throw new StreamableHTTPError(-1, `Unexpected content type: ${contentType}`);
299
+ }
300
+ }
301
+ }
302
+ catch (error) {
303
+ (_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);
304
+ throw error;
305
+ }
306
+ }
307
+ get sessionId() {
308
+ return this._sessionId;
309
+ }
310
+ /**
311
+ * Terminates the current session by sending a DELETE request to the server.
312
+ *
313
+ * Clients that no longer need a particular session
314
+ * (e.g., because the user is leaving the client application) SHOULD send an
315
+ * HTTP DELETE to the MCP endpoint with the Mcp-Session-Id header to explicitly
316
+ * terminate the session.
317
+ *
318
+ * The server MAY respond with HTTP 405 Method Not Allowed, indicating that
319
+ * the server does not allow clients to terminate sessions.
320
+ */
321
+ async terminateSession() {
322
+ var _a, _b;
323
+ if (!this._sessionId) {
324
+ return; // No session to terminate
325
+ }
326
+ try {
327
+ const headers = await this._commonHeaders();
328
+ const init = {
329
+ ...this._requestInit,
330
+ method: "DELETE",
331
+ headers,
332
+ signal: (_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal,
333
+ };
334
+ const response = await fetch(this._url, init);
335
+ // We specifically handle 405 as a valid response according to the spec,
336
+ // meaning the server does not support explicit session termination
337
+ if (!response.ok && response.status !== 405) {
338
+ throw new StreamableHTTPError(response.status, `Failed to terminate session: ${response.statusText}`);
339
+ }
340
+ this._sessionId = undefined;
341
+ }
342
+ catch (error) {
343
+ (_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, error);
344
+ throw error;
345
+ }
346
+ }
347
+ }
348
+ //# sourceMappingURL=streamableHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamableHttp.js","sourceRoot":"","sources":["../../../src/client/streamableHttp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simpleStreamableHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleStreamableHttp.d.ts","sourceRoot":"","sources":["../../../../src/examples/client/simpleStreamableHttp.ts"],"names":[],"mappings":""}