@cyanheads/mcp-ts-core 0.12.0 → 0.12.2

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 (129) hide show
  1. package/AGENTS.md +7 -3
  2. package/CLAUDE.md +7 -3
  3. package/README.md +1 -1
  4. package/changelog/0.12.x/0.12.1.md +26 -0
  5. package/changelog/0.12.x/0.12.2.md +29 -0
  6. package/dist/config/index.d.ts +9 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +21 -3
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/core/app.d.ts +45 -1
  11. package/dist/core/app.d.ts.map +1 -1
  12. package/dist/core/app.js +18 -3
  13. package/dist/core/app.js.map +1 -1
  14. package/dist/core/index.d.ts +3 -2
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +1 -1
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/serverManifest.d.ts +11 -2
  19. package/dist/core/serverManifest.d.ts.map +1 -1
  20. package/dist/core/serverManifest.js +30 -12
  21. package/dist/core/serverManifest.js.map +1 -1
  22. package/dist/core/worker.d.ts.map +1 -1
  23. package/dist/core/worker.js +2 -2
  24. package/dist/core/worker.js.map +1 -1
  25. package/dist/linter/rules/enrichment-rules.d.ts.map +1 -1
  26. package/dist/linter/rules/enrichment-rules.js +5 -2
  27. package/dist/linter/rules/enrichment-rules.js.map +1 -1
  28. package/dist/linter/rules/portability-rules.d.ts +4 -2
  29. package/dist/linter/rules/portability-rules.d.ts.map +1 -1
  30. package/dist/linter/rules/portability-rules.js +33 -4
  31. package/dist/linter/rules/portability-rules.js.map +1 -1
  32. package/dist/linter/rules/schema-rules.d.ts +28 -3
  33. package/dist/linter/rules/schema-rules.d.ts.map +1 -1
  34. package/dist/linter/rules/schema-rules.js +87 -25
  35. package/dist/linter/rules/schema-rules.js.map +1 -1
  36. package/dist/linter/rules/tool-rules.d.ts.map +1 -1
  37. package/dist/linter/rules/tool-rules.js +9 -3
  38. package/dist/linter/rules/tool-rules.js.map +1 -1
  39. package/dist/linter/types.d.ts +2 -1
  40. package/dist/linter/types.d.ts.map +1 -1
  41. package/dist/logs/combined.log +10 -10
  42. package/dist/logs/error.log +6 -6
  43. package/dist/mcp-server/cacheHints.d.ts +35 -0
  44. package/dist/mcp-server/cacheHints.d.ts.map +1 -0
  45. package/dist/mcp-server/cacheHints.js +43 -0
  46. package/dist/mcp-server/cacheHints.js.map +1 -0
  47. package/dist/mcp-server/notifications.d.ts +68 -1
  48. package/dist/mcp-server/notifications.d.ts.map +1 -1
  49. package/dist/mcp-server/notifications.js +67 -0
  50. package/dist/mcp-server/notifications.js.map +1 -1
  51. package/dist/mcp-server/resources/resource-registration.d.ts +2 -2
  52. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  53. package/dist/mcp-server/resources/resource-registration.js +6 -2
  54. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  55. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +14 -1
  56. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
  57. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
  58. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +13 -5
  59. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  60. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +28 -26
  61. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  62. package/dist/mcp-server/server.d.ts +16 -1
  63. package/dist/mcp-server/server.d.ts.map +1 -1
  64. package/dist/mcp-server/server.js +7 -2
  65. package/dist/mcp-server/server.js.map +1 -1
  66. package/dist/mcp-server/tools/tool-registration.d.ts +2 -2
  67. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  68. package/dist/mcp-server/tools/tool-registration.js +2 -1
  69. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  70. package/dist/mcp-server/tools/utils/headerParam.d.ts +113 -0
  71. package/dist/mcp-server/tools/utils/headerParam.d.ts.map +1 -0
  72. package/dist/mcp-server/tools/utils/headerParam.js +280 -0
  73. package/dist/mcp-server/tools/utils/headerParam.js.map +1 -0
  74. package/dist/mcp-server/tools/utils/schemaShape.d.ts +27 -0
  75. package/dist/mcp-server/tools/utils/schemaShape.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/utils/schemaShape.js +43 -0
  77. package/dist/mcp-server/tools/utils/schemaShape.js.map +1 -0
  78. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +28 -5
  79. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
  80. package/dist/mcp-server/tools/utils/toolDefinition.js +22 -3
  81. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
  82. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +13 -5
  83. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  84. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +35 -28
  85. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  86. package/dist/mcp-server/transports/http/eventStore.d.ts +57 -0
  87. package/dist/mcp-server/transports/http/eventStore.d.ts.map +1 -0
  88. package/dist/mcp-server/transports/http/eventStore.js +114 -0
  89. package/dist/mcp-server/transports/http/eventStore.js.map +1 -0
  90. package/dist/mcp-server/transports/http/httpServer.d.ts +2 -1
  91. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  92. package/dist/mcp-server/transports/http/httpServer.js +2 -2
  93. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  94. package/dist/mcp-server/transports/http/httpTransport.d.ts +8 -3
  95. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  96. package/dist/mcp-server/transports/http/httpTransport.js +30 -5
  97. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  98. package/dist/mcp-server/transports/http/landing-page/sections/tools.js +22 -2
  99. package/dist/mcp-server/transports/http/landing-page/sections/tools.js.map +1 -1
  100. package/dist/mcp-server/transports/manager.d.ts +10 -1
  101. package/dist/mcp-server/transports/manager.d.ts.map +1 -1
  102. package/dist/mcp-server/transports/manager.js +6 -2
  103. package/dist/mcp-server/transports/manager.js.map +1 -1
  104. package/dist/mcp-server/types.d.ts +20 -1
  105. package/dist/mcp-server/types.d.ts.map +1 -1
  106. package/dist/mcp-server/types.js +14 -0
  107. package/dist/mcp-server/types.js.map +1 -1
  108. package/dist/testing/fuzz.d.ts +7 -4
  109. package/dist/testing/fuzz.d.ts.map +1 -1
  110. package/dist/testing/fuzz.js +13 -5
  111. package/dist/testing/fuzz.js.map +1 -1
  112. package/dist/utils/internal/performance.d.ts +12 -4
  113. package/dist/utils/internal/performance.d.ts.map +1 -1
  114. package/dist/utils/internal/performance.js +23 -8
  115. package/dist/utils/internal/performance.js.map +1 -1
  116. package/dist/utils/internal/requestContext.d.ts +13 -0
  117. package/dist/utils/internal/requestContext.d.ts.map +1 -1
  118. package/dist/utils/internal/requestContext.js +43 -8
  119. package/dist/utils/internal/requestContext.js.map +1 -1
  120. package/package.json +2 -2
  121. package/skills/add-resource/SKILL.md +31 -1
  122. package/skills/add-tool/SKILL.md +70 -1
  123. package/skills/api-config/SKILL.md +30 -3
  124. package/skills/api-context/SKILL.md +47 -15
  125. package/skills/api-linter/SKILL.md +39 -3
  126. package/skills/api-telemetry/SKILL.md +3 -1
  127. package/skills/api-workers/SKILL.md +9 -1
  128. package/skills/tool-defs-analysis/SKILL.md +15 -5
  129. package/templates/.env.example +4 -0
@@ -7,7 +7,11 @@
7
7
  * import the wrapper from the same `/tools` subpath as the builder.
8
8
  * @module src/mcp-server/tools/utils/toolDefinition
9
9
  */
10
+ import { z } from 'zod';
11
+ import { assertHeaderDesignations } from './headerParam.js';
12
+ import { isDiscriminatedUnionSchema } from './schemaShape.js';
10
13
  export { disabledTool } from './disabled-tool.js';
14
+ export { headerParam } from './headerParam.js';
11
15
  // ---------------------------------------------------------------------------
12
16
  // Builder
13
17
  // ---------------------------------------------------------------------------
@@ -60,7 +64,9 @@ export { disabledTool } from './disabled-tool.js';
60
64
  */
61
65
  export function tool(name, options) {
62
66
  assertErrorKeyUnreserved(name, options.output, options.enrichment);
63
- return { name, ...options, input: strictenInput(options.input) };
67
+ const input = strictenInput(options.input);
68
+ assertHeaderDesignations(name, input);
69
+ return { name, ...options, input };
64
70
  }
65
71
  /**
66
72
  * Rejects a definition whose success payload declares a field named `error`.
@@ -98,13 +104,26 @@ function assertErrorKeyUnreserved(name, output, enrichment) {
98
104
  *
99
105
  * Only the default (strip) mode is upgraded. A definition that explicitly
100
106
  * declared `.passthrough()` or `.catchall(...)` asked for an open object, and
101
- * that intent wins — Zod records it as a catchall type, which is what this
102
- * checks for.
107
+ * that intent wins — Zod records it as a catchall type (a `ZodNever` catchall
108
+ * for `.strict()` itself), which is what this checks for.
109
+ *
110
+ * A discriminated-union root is strictened per variant, since the branch is
111
+ * where the properties live and `additionalProperties` is emitted. The union is
112
+ * rebuilt from the strictened options rather than mutated: Zod indexes variants
113
+ * by discriminator value at construction time, so replacing the options on a
114
+ * built union would leave the index pointing at the loose ones.
103
115
  *
104
116
  * Root-level only, matching `.strict()` itself: a nested `z.object()` inside
105
117
  * the input still strips unless it is strict in its own right.
106
118
  */
107
119
  function strictenInput(input) {
120
+ if (isDiscriminatedUnionSchema(input)) {
121
+ const options = input.options;
122
+ const strictened = options.map((option) => option.def.catchall === undefined ? option.strict() : option);
123
+ if (strictened.every((option, i) => option === options[i]))
124
+ return input;
125
+ return z.discriminatedUnion(input.def.discriminator, strictened);
126
+ }
108
127
  const declaresCatchall = input.def.catchall !== undefined;
109
128
  return declaresCatchall ? input : input.strict();
110
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAyB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+NzE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,IAAI,CAMlB,IAAY,EACZ,OAAwE;IAExE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAC/B,IAAY,EACZ,MAA8B,EAC9B,UAAmC;IAEnC,MAAM,MAAM,GACV,OAAO,IAAI,MAAM,CAAC,KAAK;QACrB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,IAAI,OAAO,IAAI,UAAU;YACnC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS,CAAC;IAClB,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,sCAAsC,MAAM,uBAAuB;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,uDAAuD,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,aAAa,CAAwC,KAAa;IACzE,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC1D,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,EAAa,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAgE,CAAC,EAAE,MAAM,KAAK,CAAC;AAItF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAyB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwP/C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,IAAI,CAMlB,IAAY,EACZ,OAAwE;IAExE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,wBAAwB,CAC/B,IAAY,EACZ,MAA8B,EAC9B,UAAmC;IAEnC,MAAM,MAAM,GACV,OAAO,IAAI,MAAM,CAAC,KAAK;QACrB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,UAAU,IAAI,OAAO,IAAI,UAAU;YACnC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS,CAAC;IAClB,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,sCAAsC,MAAM,uBAAuB;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,uDAAuD,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,aAAa,CAAiC,KAAa;IAClE,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAA4C,CAAC;QACnE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAC7D,CAAC;QACF,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,OAAO,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAmB,CAAsB,CAAC;IACjG,CAAC;IACD,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC1D,OAAO,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,EAAa,CAAC;AAC/D,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Constructs Context, checks inline auth, measures execution, formats response.
4
4
  * @module src/mcp-server/tools/utils/toolHandlerFactory
5
5
  */
6
- import type { CallToolResult, ContentBlock, InputRequiredResult, ServerContext } from '@modelcontextprotocol/server';
6
+ import type { CallToolResult, ContentBlock, InputRequiredResult, ServerContext, ServerNotifier } from '@modelcontextprotocol/server';
7
7
  import { type ZodObject, type ZodRawShape } from 'zod';
8
8
  import type { Context } from '../../../core/context.js';
9
9
  import { type ResourceSubscriptions } from '../../../mcp-server/notifications.js';
@@ -32,16 +32,24 @@ export interface HandlerFactoryServices {
32
32
  * overwriting an in-flight handler's notifier target (and potentially
33
33
  * notifying the wrong server).
34
34
  *
35
- * The handler factory prefers request-scoped notifiers
36
- * ({@link buildRequestScopedNotifiers}, #135) and uses these only as a fallback
37
- * for scopes with no `ctx.mcpReq.notify` (test harnesses, background callers).
35
+ * The handler factory picks a delivery path per era via
36
+ * {@link selectNotifiers}, and uses these closures only as a fallback for
37
+ * scopes with neither a bus nor a request sender (stdio, test harnesses).
38
38
  */
39
39
  export interface HandlerNotifiers {
40
+ /**
41
+ * Publish facade for the modern era's `subscriptions/listen` bus, supplied
42
+ * only for `modern` instances. Takes precedence over the request-scoped path:
43
+ * on 2026-07-28 the client opts into notification types through its listen
44
+ * stream, and only what reaches the bus is filtered against that opt-in
45
+ * (#193).
46
+ */
47
+ bus?: ServerNotifier;
40
48
  notifyPromptListChanged?: () => void;
41
49
  notifyResourceListChanged?: () => void;
42
50
  notifyResourceUpdated?: (uri: string) => void;
43
51
  notifyToolListChanged?: () => void;
44
- /** Per-connection `resources/subscribe` registry (#354). */
52
+ /** Per-connection `resources/subscribe` registry (#354). Legacy era only. */
45
53
  subscriptions?: ResourceSubscriptions;
46
54
  }
47
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,WAAW,EAAmB,MAAM,KAAK,CAAC;AAGlF,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAYlE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAY,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,qEAAqE;AACrE,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAyBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,cAAc,CAchB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAO9E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAGpF;AAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAkCrF;AA0GD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,aAAa,EAAE,YAAY,EAAE,GAC5B,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAkBvD;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,gBAAgB,GAC1B,CACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAqIjD"}
1
+ {"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,cAAc,EACf,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,WAAW,EAAmB,MAAM,KAAK,CAAC;AAGlF,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAYlE,OAAO,EAAE,KAAK,qBAAqB,EAAmB,MAAM,+BAA+B,CAAC;AAG5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,KAAK,gBAAgB,EAAY,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,qEAAqE;AACrE,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAyBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,cAAc,CAchB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAO9E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAGpF;AAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAkCrF;AA0GD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,aAAa,EAAE,YAAY,EAAE,GAC5B,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAkBvD;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,sBAAsB,EAChC,SAAS,EAAE,gBAAgB,GAC1B,CACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAC,CA2IjD"}
@@ -7,8 +7,9 @@ import { ZodError, z } from 'zod';
7
7
  import { config } from '../../../config/index.js';
8
8
  import { attachTypedFail, createContext, readContentStore, readEnrichmentStore, } from '../../../core/context.js';
9
9
  import { createContextInputs, createRequestInput, isInputRequiredSignal, } from '../../../mcp-server/inputRequired.js';
10
- import { buildRequestScopedNotifiers, } from '../../../mcp-server/notifications.js';
10
+ import { selectNotifiers } from '../../../mcp-server/notifications.js';
11
11
  import { withRequiredScopes } from '../../../mcp-server/transports/auth/lib/authUtils.js';
12
+ import { resolveSessionMode } from '../../../mcp-server/types.js';
12
13
  import { McpError } from '../../../types-global/errors.js';
13
14
  import { ErrorHandler } from '../../../utils/internal/error-handler/errorHandler.js';
14
15
  import { measureToolExecution } from '../../../utils/internal/performance.js';
@@ -349,11 +350,7 @@ export function createToolHandler(def, services, notifiers) {
349
350
  return async (input, serverContext) => {
350
351
  const mcpReq = serverContext?.mcpReq;
351
352
  const signal = mcpReq?.signal ?? new AbortController().signal;
352
- // Route handler-time list-changed / resource-updated notifications through
353
- // this request's `ctx.mcpReq.notify` so they carry `relatedRequestId` and
354
- // reach the client under per-request serving (#135). Fall back to the
355
- // server-level notifiers when the scope exposes no sender.
356
- const effectiveNotifiers = buildRequestScopedNotifiers(mcpReq ?? {}, notifiers.subscriptions) ?? notifiers;
353
+ const effectiveNotifiers = selectNotifiers(notifiers, mcpReq);
357
354
  const sdkSessionId = typeof serverContext?.sessionId === 'string' ? serverContext.sessionId : undefined;
358
355
  // Surface sessionId on `Context` only when it has request-spanning
359
356
  // lifetime — stateful HTTP (or `auto`, which resolves to stateful for
@@ -361,7 +358,7 @@ export function createToolHandler(def, services, notifiers) {
361
358
  // pass it through only when the consumer opted in via
362
359
  // `createApp({ context: { exposeStatelessSessionId: true } })`. Stdio
363
360
  // gives no sessionId at the SDK layer, so the gate is moot there.
364
- const isStatefulMode = config.mcpSessionMode === 'stateful' || config.mcpSessionMode === 'auto';
361
+ const isStatefulMode = resolveSessionMode(config.mcpSessionMode) === 'stateful';
365
362
  const handlerSessionId = sdkSessionId && (isStatefulMode || services.exposeStatelessSessionId === true)
366
363
  ? sdkSessionId
367
364
  : undefined;
@@ -387,31 +384,41 @@ export function createToolHandler(def, services, notifiers) {
387
384
  }
388
385
  // Validate input
389
386
  const validatedInput = def.input.parse(input);
390
- // Construct Context with detected capabilities. When the definition
391
- // declares an error contract, `attachTypedFail` adds `ctx.fail` so
392
- // handlers can `throw ctx.fail('reason', ...)`; otherwise ctx is unchanged.
393
- const ctx = attachTypedFail(createContext({
394
- appContext,
395
- logger: services.logger,
396
- storage: services.storage,
397
- signal,
398
- sessionId: handlerSessionId,
399
- inputs: createContextInputs(mcpReq),
400
- requestInput: createRequestInput(),
401
- ...(mcpReq?.log && { wireLog: mcpReq.log }),
402
- notifyPromptListChanged: effectiveNotifiers.notifyPromptListChanged,
403
- notifyResourceListChanged: effectiveNotifiers.notifyResourceListChanged,
404
- notifyResourceUpdated: effectiveNotifiers.notifyResourceUpdated,
405
- notifyToolListChanged: effectiveNotifiers.notifyToolListChanged,
406
- }), def.errors);
387
+ // Construct Context with detected capabilities, from inside the execution
388
+ // span so `ctx.traceId` / `ctx.spanId` — and the child logger built from
389
+ // them — name the `tool_execution:*` span the handler runs in rather than
390
+ // the enclosing request span (#296). When the definition declares an error
391
+ // contract, `attachTypedFail` adds `ctx.fail` so handlers can
392
+ // `throw ctx.fail('reason', ...)`; otherwise ctx is unchanged.
393
+ // Assigned by the measured callback below and read after it settles, on
394
+ // both the success and error paths.
395
+ let ctx;
407
396
  // Execute handler with performance measurement.
408
397
  // Wrap with Promise.resolve — handler may return sync or async.
409
- const result = await measureToolExecution(() => Promise.resolve(def.handler(validatedInput, ctx)), { ...appContext, toolName: def.name }, validatedInput, () => {
410
- const store = readEnrichmentStore(ctx);
398
+ const result = await measureToolExecution((spanContext) => {
399
+ ctx = attachTypedFail(createContext({
400
+ appContext: spanContext,
401
+ logger: services.logger,
402
+ storage: services.storage,
403
+ signal,
404
+ sessionId: handlerSessionId,
405
+ inputs: createContextInputs(mcpReq),
406
+ requestInput: createRequestInput(),
407
+ ...(mcpReq?.log && { wireLog: mcpReq.log }),
408
+ notifyPromptListChanged: effectiveNotifiers.notifyPromptListChanged,
409
+ notifyResourceListChanged: effectiveNotifiers.notifyResourceListChanged,
410
+ notifyResourceUpdated: effectiveNotifiers.notifyResourceUpdated,
411
+ notifyToolListChanged: effectiveNotifiers.notifyToolListChanged,
412
+ }), def.errors);
413
+ return Promise.resolve(def.handler(validatedInput, ctx));
414
+ }, { ...appContext, toolName: def.name }, validatedInput, () => {
415
+ const store = ctx ? readEnrichmentStore(ctx) : undefined;
411
416
  return store && Object.keys(store.values).length > 0
412
417
  ? { [ATTR_MCP_TOOL_ENRICHED]: true }
413
418
  : {};
414
419
  });
420
+ // Assigned by the measured callback above before the handler ran.
421
+ const handlerCtx = ctx;
415
422
  const validatedResult = def.output.parse(result);
416
423
  // Render content[] from the domain payload only (Resolution B). Isolate
417
424
  // formatter errors from handler errors so they get classified correctly.
@@ -426,12 +433,12 @@ export function createToolHandler(def, services, notifiers) {
426
433
  // ride content[] only — never structuredContent — so a handler can surface
427
434
  // media for the model without the base64 duplicating into the typed output.
428
435
  // Empty for tools that never call ctx.content, leaving content[] unchanged.
429
- const collected = readContentStore(ctx)?.blocks;
436
+ const collected = readContentStore(handlerCtx)?.blocks;
430
437
  if (collected && collected.length > 0) {
431
438
  domainContent = [...collected, ...domainContent];
432
439
  }
433
440
  // Merge enrichment into structuredContent and append the content[] trailer.
434
- return buildToolSuccessResult(def, ctx, validatedResult, domainContent);
441
+ return buildToolSuccessResult(def, handlerCtx, validatedResult, domainContent);
435
442
  }
436
443
  catch (error) {
437
444
  // `ctx.requestInput(...)` is protocol control flow, not a failure: return
@@ -1 +1 @@
1
- {"version":3,"file":"toolHandlerFactory.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolHandlerFactory.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview Bounded in-memory `EventStore` for stateful HTTP session
3
+ * resumability.
4
+ *
5
+ * Stateful HTTP survives a dropped connection but not the in-flight stream: the
6
+ * session is still there on reconnect, and everything the server emitted while
7
+ * the socket was down is gone. The SDK's transport closes that gap when it is
8
+ * given an `EventStore` — it stamps each SSE frame with an event ID, and a
9
+ * client reconnecting with `Last-Event-ID` gets the missed frames replayed
10
+ * before the live stream resumes.
11
+ *
12
+ * The store is framework-owned rather than a dependency's memory store because
13
+ * the bounds are the feature. Retention is capped two ways — a total event count
14
+ * and a per-event TTL — and one store belongs to one session, so eviction
15
+ * releases its buffer with it. Without both, a long-lived session on a busy
16
+ * server retains every frame it ever sent.
17
+ *
18
+ * **Legacy arm only.** Protocol revision 2026-07-28 is per-request and has no
19
+ * session to resume, so nothing here applies to it (#215).
20
+ *
21
+ * @module src/mcp-server/transports/http/eventStore
22
+ */
23
+ import type { EventStore } from '@modelcontextprotocol/server';
24
+ /** Retention bounds. Both apply; whichever binds first evicts. */
25
+ export interface BoundedEventStoreOptions {
26
+ /**
27
+ * Maximum events retained across every stream in the session. The oldest are
28
+ * dropped first, which is also the safe direction: a client far enough behind
29
+ * that its resume point was evicted starts a fresh stream instead.
30
+ */
31
+ maxEvents?: number;
32
+ /** Injectable clock. Present for tests; production uses `Date.now`. */
33
+ now?: () => number;
34
+ /** How long an event stays replayable, in milliseconds. */
35
+ ttlMs?: number;
36
+ }
37
+ /** A session-scoped event store, plus the handles the transport layer needs. */
38
+ export interface BoundedEventStore extends EventStore {
39
+ /**
40
+ * Drops every retained event, releasing the buffer at an explicit DELETE
41
+ * rather than leaving it to the collector. A session that ends any other way
42
+ * (stale eviction, shutdown) discards the store with the transport that
43
+ * holds it, so this is promptness, not the only release path.
44
+ */
45
+ clear(): void;
46
+ /** Events currently retained. */
47
+ readonly size: number;
48
+ }
49
+ /**
50
+ * Creates a bounded in-memory event store for one session.
51
+ *
52
+ * Event IDs are `<streamId>_<sequence>` with a monotonic per-store counter, so
53
+ * insertion order is replay order and an ID identifies its own stream without a
54
+ * second index.
55
+ */
56
+ export declare function createBoundedEventStore(options?: BoundedEventStoreOptions): BoundedEventStore;
57
+ //# sourceMappingURL=eventStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventStore.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/eventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,8BAA8B,CAAC;AAE/E,kEAAkE;AAClE,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD;;;;;OAKG;IACH,KAAK,IAAI,IAAI,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAiCD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,iBAAiB,CAiEjG"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @fileoverview Bounded in-memory `EventStore` for stateful HTTP session
3
+ * resumability.
4
+ *
5
+ * Stateful HTTP survives a dropped connection but not the in-flight stream: the
6
+ * session is still there on reconnect, and everything the server emitted while
7
+ * the socket was down is gone. The SDK's transport closes that gap when it is
8
+ * given an `EventStore` — it stamps each SSE frame with an event ID, and a
9
+ * client reconnecting with `Last-Event-ID` gets the missed frames replayed
10
+ * before the live stream resumes.
11
+ *
12
+ * The store is framework-owned rather than a dependency's memory store because
13
+ * the bounds are the feature. Retention is capped two ways — a total event count
14
+ * and a per-event TTL — and one store belongs to one session, so eviction
15
+ * releases its buffer with it. Without both, a long-lived session on a busy
16
+ * server retains every frame it ever sent.
17
+ *
18
+ * **Legacy arm only.** Protocol revision 2026-07-28 is per-request and has no
19
+ * session to resume, so nothing here applies to it (#215).
20
+ *
21
+ * @module src/mcp-server/transports/http/eventStore
22
+ */
23
+ /**
24
+ * Retained events, capped at 512 by default.
25
+ *
26
+ * Sized for the gap a reconnect actually has to cover — a dropped socket, not a
27
+ * disconnected weekend — rather than for a full session transcript. Each entry
28
+ * holds one JSON-RPC message, so the memory cost scales with payload size;
29
+ * lower it on a server whose tools return large results.
30
+ */
31
+ const DEFAULT_MAX_EVENTS = 512;
32
+ /** How long a retained event stays replayable. Five minutes by default. */
33
+ const DEFAULT_TTL_MS = 300_000;
34
+ /**
35
+ * The stream an event ID belongs to, read back off the ID itself.
36
+ *
37
+ * Only the sequence suffix has a fixed shape — a stream ID may itself contain
38
+ * `_`, as the SDK's standalone GET stream (`_GET_stream`) does — so the split
39
+ * is at the last separator, not the first.
40
+ */
41
+ const streamIdOf = (eventId) => {
42
+ const separator = eventId.lastIndexOf('_');
43
+ return separator === -1 ? '' : eventId.slice(0, separator);
44
+ };
45
+ /**
46
+ * Creates a bounded in-memory event store for one session.
47
+ *
48
+ * Event IDs are `<streamId>_<sequence>` with a monotonic per-store counter, so
49
+ * insertion order is replay order and an ID identifies its own stream without a
50
+ * second index.
51
+ */
52
+ export function createBoundedEventStore(options = {}) {
53
+ const maxEvents = options.maxEvents ?? DEFAULT_MAX_EVENTS;
54
+ const ttlMs = options.ttlMs ?? DEFAULT_TTL_MS;
55
+ const now = options.now ?? Date.now;
56
+ // Insertion-ordered, which is what makes both the replay walk and the
57
+ // oldest-first eviction a plain iteration.
58
+ const events = new Map();
59
+ let sequence = 0;
60
+ const evict = () => {
61
+ const cutoff = now() - ttlMs;
62
+ for (const [eventId, event] of events) {
63
+ if (event.storedAt > cutoff)
64
+ break; // insertion-ordered: the rest are newer
65
+ events.delete(eventId);
66
+ }
67
+ while (events.size > maxEvents) {
68
+ const oldest = events.keys().next();
69
+ if (oldest.done)
70
+ break;
71
+ events.delete(oldest.value);
72
+ }
73
+ };
74
+ return {
75
+ storeEvent(streamId, message) {
76
+ const eventId = `${streamId}_${++sequence}`;
77
+ events.set(eventId, { message, storedAt: now(), streamId });
78
+ evict();
79
+ return Promise.resolve(eventId);
80
+ },
81
+ getStreamIdForEventId(eventId) {
82
+ return Promise.resolve(events.get(eventId)?.streamId);
83
+ },
84
+ async replayEventsAfter(lastEventId, { send }) {
85
+ const anchor = events.get(lastEventId);
86
+ // An unknown anchor means the client's resume point aged out or was
87
+ // evicted. Replaying from the start would deliver messages it already
88
+ // has, so send nothing and let the live stream carry on from here. An
89
+ // SDK-driven reconnect never gets this far — `getStreamIdForEventId`
90
+ // answers first, and an unknown ID is rejected there.
91
+ if (!anchor)
92
+ return streamIdOf(lastEventId);
93
+ const { streamId } = anchor;
94
+ let past = false;
95
+ for (const [eventId, event] of events) {
96
+ if (!past) {
97
+ past = eventId === lastEventId;
98
+ continue;
99
+ }
100
+ if (event.streamId !== streamId)
101
+ continue;
102
+ await send(eventId, event.message);
103
+ }
104
+ return streamId;
105
+ },
106
+ clear() {
107
+ events.clear();
108
+ },
109
+ get size() {
110
+ return events.size;
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=eventStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventStore.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/eventStore.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * @module src/mcp-server/transports/http/httpServer
7
7
  */
8
8
  import { type ServerType } from '@hono/node-server';
9
+ import type { ServerEventBus } from '@modelcontextprotocol/server';
9
10
  import type { ServerManifest } from '../../../core/serverManifest.js';
10
11
  import type { FrameworkServerFactory } from '../../../mcp-server/types.js';
11
12
  import { type RequestContext } from '../../../utils/internal/requestContext.js';
@@ -18,5 +19,5 @@ export interface HttpTransportHandle {
18
19
  server: ServerType;
19
20
  stop: (parentContext: RequestContext) => Promise<void>;
20
21
  }
21
- export declare function startHttpTransport(serverFactory: FrameworkServerFactory, parentContext: RequestContext, manifest: ServerManifest): Promise<HttpTransportHandle>;
22
+ export declare function startHttpTransport(serverFactory: FrameworkServerFactory, parentContext: RequestContext, manifest: ServerManifest, bus?: ServerEventBus): Promise<HttpTransportHandle>;
22
23
  //# sourceMappingURL=httpServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAGpF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AA2ED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,sBAAsB,EACrC,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
1
+ {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAGpF;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AA2ED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,sBAAsB,EACrC,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,cAAc,EACxB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
@@ -61,10 +61,10 @@ function startHttpServerWithRetry(app, initialPort, host, maxRetries, parentCont
61
61
  tryBind(initialPort, 1);
62
62
  return promise;
63
63
  }
64
- export async function startHttpTransport(serverFactory, parentContext, manifest) {
64
+ export async function startHttpTransport(serverFactory, parentContext, manifest, bus) {
65
65
  const transportContext = withExtra(parentContext, { component: 'HttpTransportStart' });
66
66
  logger.info('Starting HTTP transport.', transportContext);
67
- const { app, close } = await createHttpApp(serverFactory, transportContext, manifest);
67
+ const { app, close } = await createHttpApp(serverFactory, transportContext, manifest, bus);
68
68
  const server = await startHttpServerWithRetry(app, config.mcpHttpPort, config.mcpHttpHost, config.mcpHttpMaxPortRetries, transportContext);
69
69
  logger.info('HTTP transport started successfully.', transportContext);
70
70
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"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"}
@@ -21,12 +21,12 @@
21
21
  * @see {@link https://modelcontextprotocol.io/specification/2026-07-28/basic/transports | MCP Transports}
22
22
  * @module src/mcp-server/transports/http/httpTransport
23
23
  */
24
- import { type McpHttpHandler } from '@modelcontextprotocol/server';
24
+ import { type McpHttpHandler, type ServerEventBus } from '@modelcontextprotocol/server';
25
25
  import { Hono } from 'hono';
26
26
  import type { ServerManifest } from '../../../core/serverManifest.js';
27
27
  import type { HonoNodeBindings } from '../../../mcp-server/transports/http/httpTypes.js';
28
28
  import { SessionStore } from '../../../mcp-server/transports/http/sessionStore.js';
29
- import type { FrameworkServerFactory } from '../../../mcp-server/types.js';
29
+ import { type FrameworkServerFactory } from '../../../mcp-server/types.js';
30
30
  import { type RequestContext } from '../../../utils/internal/requestContext.js';
31
31
  /**
32
32
  * Creates a Hono HTTP application for the MCP server.
@@ -41,9 +41,14 @@ import { type RequestContext } from '../../../utils/internal/requestContext.js';
41
41
  * @template TBindings - The Hono binding type (must extend object, defaults to HonoNodeBindings for Node.js)
42
42
  * @param mcpServer - The MCP server instance
43
43
  * @param parentContext - Parent request context for logging
44
+ * @param bus - Change-event bus the modern leg's `subscriptions/listen` streams
45
+ * subscribe to. Pass the one the app publishes on (`ComposedApp.bus`), or a
46
+ * background emission reaches a different bus than the streams listen to and
47
+ * is silently dropped (#193). Omitted, the handler creates its own — fine for
48
+ * a test harness that never emits out of request.
44
49
  * @returns Configured Hono application with the specified binding type
45
50
  */
46
- export declare function createHttpApp<TBindings extends object = HonoNodeBindings>(serverFactory: FrameworkServerFactory, parentContext: RequestContext, manifest: ServerManifest): Promise<{
51
+ export declare function createHttpApp<TBindings extends object = HonoNodeBindings>(serverFactory: FrameworkServerFactory, parentContext: RequestContext, manifest: ServerManifest, bus?: ServerEventBus): Promise<{
47
52
  app: Hono<{
48
53
  Bindings: TBindings;
49
54
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"httpTransport.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAMlF,OAAO,EAGL,YAAY,EACb,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAmD5C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,SAAS,SAAS,MAAM,GAAG,gBAAgB,EAC7E,aAAa,EAAE,sBAAsB,EACrC,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC;IACT,GAAG,EAAE,IAAI,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACnC,iFAAiF;IACjF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC,CAAC,CAkgBD"}
1
+ {"version":3,"file":"httpTransport.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAMlF,OAAO,EAGL,YAAY,EACb,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,KAAK,sBAAsB,EAAsB,MAAM,uBAAuB,CAAC;AAExF,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAmD5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CAAC,SAAS,SAAS,MAAM,GAAG,gBAAgB,EAC7E,aAAa,EAAE,sBAAsB,EACrC,aAAa,EAAE,cAAc,EAC7B,QAAQ,EAAE,cAAc,EACxB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC;IACT,GAAG,EAAE,IAAI,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACnC,iFAAiF;IACjF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC,CAAC,CAqhBD"}