@haibun/mcp 1.68.0 → 1.70.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 (34) hide show
  1. package/README.md +66 -137
  2. package/build/lib/http-prompter-client.d.ts +19 -0
  3. package/build/lib/http-prompter-client.d.ts.map +1 -0
  4. package/build/lib/http-prompter-client.js +68 -0
  5. package/build/lib/http-prompter-client.js.map +1 -0
  6. package/build/lib/mcp-executor-server.d.ts +11 -3
  7. package/build/lib/mcp-executor-server.d.ts.map +1 -1
  8. package/build/lib/mcp-executor-server.js +132 -1
  9. package/build/lib/mcp-executor-server.js.map +1 -1
  10. package/build/mcp-client-stepper.d.ts +24 -13
  11. package/build/mcp-client-stepper.d.ts.map +1 -1
  12. package/build/mcp-client-stepper.js +251 -58
  13. package/build/mcp-client-stepper.js.map +1 -1
  14. package/build/mcp-server-stepper.d.ts +4 -3
  15. package/build/mcp-server-stepper.d.ts.map +1 -1
  16. package/build/mcp-server-stepper.js +28 -3
  17. package/build/mcp-server-stepper.js.map +1 -1
  18. package/build/mcp-test-utils.d.ts +3 -4
  19. package/build/mcp-test-utils.d.ts.map +1 -1
  20. package/build/mcp-test-utils.js +6 -5
  21. package/build/mcp-test-utils.js.map +1 -1
  22. package/package.json +3 -3
  23. package/build/lib/mcp-stepper-server.d.ts +0 -13
  24. package/build/lib/mcp-stepper-server.d.ts.map +0 -1
  25. package/build/lib/mcp-stepper-server.js +0 -91
  26. package/build/lib/mcp-stepper-server.js.map +0 -1
  27. package/build/mcp-test-stepper.d.ts +0 -9
  28. package/build/mcp-test-stepper.d.ts.map +0 -1
  29. package/build/mcp-test-stepper.js +0 -20
  30. package/build/mcp-test-stepper.js.map +0 -1
  31. package/build/test-constants.d.ts +0 -10
  32. package/build/test-constants.d.ts.map +0 -1
  33. package/build/test-constants.js +0 -14
  34. package/build/test-constants.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-stepper.d.ts","sourceRoot":"","sources":["../src/mcp-client-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIxF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAExE,cAAM,iBAAkB,SAAQ,iBAAiB;IAIpC,OAAO,CAAC,gBAAgB;IAHpC,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,WAAW,CAAS;gBAER,gBAAgB,EAAE,qBAAqB;IAI3D,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAC3C,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;YAExB,gBAAgB;IAWxB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAqCjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B;AAiBD,cAAM,gBAAiB,SAAQ,QAAS,YAAW,WAAW,EAAE,UAAU;IACzE,MAAM,CAAC,MAAM,SAAY;IACzB,MAAM,iBAAgB;IACtB,OAAO;QACN,CAAC,gBAAgB,CAAC,MAAM,CAAC;;2BAET,MAAM;;;;;;;UACrB;MACD;IACD,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;gBAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;aAAE,CAAC;SAAE,CAAC;KAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;aAAE,CAAC;SAAE,CAAC;KAAE,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;SAAE,CAAC;KAAE,CAAC,CAAC;IACvS,WAAW,UAAS;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAUpC,gBAAgB;IAW9B,KAAK;;;4BAGmB,MAAM,eAAe,YAAY;;;;4BAmBjC,MAAM,eAAe,YAAY;;;;4BAoBjC,MAAM,eAAe,YAAY;;;;2CAelB,MAAM,eAAe,YAAY;;;;oDAoDxB,MAAM,eAAe,YAAY;;MA0DhF;CACD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"mcp-client-stepper.d.ts","sourceRoot":"","sources":["../src/mcp-client-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAExE,cAAM,iBAAkB,SAAQ,iBAAiB;IACpC,OAAO,CAAC,SAAS;IAA4B,OAAO,CAAC,mBAAmB;gBAAhE,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,EAAU,mBAAmB,EAAE,MAAM,OAAO;IAInG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAoB3C,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAiBhC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAsCjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIxC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAG3C;AAuBD,cAAM,gBAAiB,SAAQ,QAAS,YAAW,WAAW,EAAE,UAAU;IACzE,MAAM,CAAC,MAAM,SAAY;IACzB,MAAM,iBAAgB;IACtB,OAAO;QACN,CAAC,gBAAgB,CAAC,MAAM,CAAC;;2BAET,MAAM;;;;;;;UACrB;MACD;IACD,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;gBAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;aAAE,CAAC;SAAE,CAAC;KAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;aAAE,CAAC;SAAE,CAAC;KAAE,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;SAAE,CAAC;KAAE,CAAC,CAAC;IACvS,WAAW,UAAS;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAUpC,gBAAgB;IAYxB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAehC,iBAAiB;YAsBjB,6BAA6B;IAyB3C,KAAK;;;;;;;;;;;;;;;;;;;6CAgHoC,MAAM;;;;2CA6DR,MAAM;;;;oDAoDG,MAAM;;MA0DrD;CACD;AAED,eAAe,gBAAgB,CAAC"}
@@ -6,31 +6,54 @@ import { actionNotOK, actionOK, getStepperOption, stringOrError } from '@haibun/
6
6
  import { currentVersion as version } from '@haibun/core/currentVersion.js';
7
7
  import { EExecutionMessageType } from '@haibun/core/lib/interfaces/logger.js';
8
8
  class MCPClientPrompter extends BasePromptManager {
9
- serverParameters;
10
- client;
11
- isConnected = false;
12
- constructor(serverParameters) {
9
+ getClient;
10
+ getConnectionStatus;
11
+ constructor(getClient, getConnectionStatus) {
13
12
  super();
14
- this.serverParameters = serverParameters;
13
+ this.getClient = getClient;
14
+ this.getConnectionStatus = getConnectionStatus;
15
15
  }
16
- showPrompt(prompt) { }
17
- hidePrompt(id) { }
18
- async ensureConnection() {
19
- if (this.isConnected && this.client) {
20
- return;
16
+ showPrompt(prompt) {
17
+ const client = this.getClient();
18
+ const isConnected = this.getConnectionStatus();
19
+ if (client && isConnected) {
20
+ client.notification({
21
+ method: 'prompt/show',
22
+ params: {
23
+ id: prompt.id,
24
+ message: prompt.message,
25
+ context: prompt.context,
26
+ options: prompt.options,
27
+ timestamp: new Date().toISOString()
28
+ }
29
+ }).catch(error => {
30
+ console.debug(`Failed to send prompt show notification: ${error}`);
31
+ });
32
+ }
33
+ }
34
+ hidePrompt(id) {
35
+ const client = this.getClient();
36
+ const isConnected = this.getConnectionStatus();
37
+ if (client && isConnected) {
38
+ client.notification({
39
+ method: 'prompt/hide',
40
+ params: {
41
+ id,
42
+ timestamp: new Date().toISOString()
43
+ }
44
+ }).catch(error => {
45
+ console.debug(`Failed to send prompt hide notification: ${error}`);
46
+ });
21
47
  }
22
- this.client = new Client({ name: "haibun-mcp-prompter", version });
23
- const transport = new StdioClientTransport(this.serverParameters);
24
- await this.client.connect(transport);
25
- this.isConnected = true;
26
48
  }
27
49
  async prompt(prompt) {
28
50
  try {
29
- await this.ensureConnection();
30
- if (!this.client) {
51
+ const client = this.getClient();
52
+ const isConnected = this.getConnectionStatus();
53
+ if (!client || !isConnected) {
31
54
  return undefined;
32
55
  }
33
- const result = await this.client.callTool({
56
+ const result = await client.callTool({
34
57
  name: 'handlePrompt',
35
58
  arguments: {
36
59
  message: prompt.message,
@@ -58,24 +81,33 @@ class MCPClientPrompter extends BasePromptManager {
58
81
  }
59
82
  }
60
83
  async close() {
61
- if (this.client && this.isConnected) {
62
- await this.client.close();
63
- this.isConnected = false;
64
- this.client = undefined;
65
- }
84
+ // Connection cleanup is handled by the stepper
85
+ }
86
+ // Public method to manually send notifications for existing prompts
87
+ notifyPromptShown(prompt) {
88
+ this.showPrompt(prompt);
89
+ }
90
+ notifyPromptHidden(id) {
91
+ this.hidePrompt(id);
66
92
  }
67
93
  }
68
94
  const cycles = (mcs) => ({
69
- async endFeature() {
70
- if (mcs.client && mcs.isConnected) {
71
- await this.client.close();
72
- mcs.isConnected = false;
73
- mcs.client = undefined;
74
- }
95
+ async startExecution() {
96
+ // Automatically register MCP prompter when execution starts
97
+ await mcs.getClient();
98
+ },
99
+ async endExecution() {
100
+ // Clean up connections and unregister prompter when execution ends
75
101
  if (mcs.mcpPrompter) {
102
+ mcs.world.prompter.unsubscribe(mcs.mcpPrompter);
76
103
  await mcs.mcpPrompter.close();
77
104
  mcs.mcpPrompter = undefined;
78
105
  }
106
+ if (mcs.client && mcs.isConnected) {
107
+ await mcs.client.close();
108
+ mcs.isConnected = false;
109
+ mcs.client = undefined;
110
+ }
79
111
  }
80
112
  });
81
113
  class MCPClientStepper extends AStepper {
@@ -110,76 +142,237 @@ class MCPClientStepper extends AStepper {
110
142
  await this.client.connect(transport);
111
143
  this.isConnected = true;
112
144
  }
145
+ // Public method to get client and ensure prompter is registered
146
+ async getClient() {
147
+ await this.ensureConnection();
148
+ if (!this.mcpPrompter && this.client && this.isConnected) {
149
+ this.mcpPrompter = new MCPClientPrompter(() => this.client, () => this.isConnected);
150
+ this.world.prompter.subscribe(this.mcpPrompter);
151
+ this.world.logger.log('📡 MCPClientPrompter registered - real-time notifications enabled');
152
+ // Check for existing prompts on first registration
153
+ await this.checkAndNotifyExistingPrompts();
154
+ }
155
+ return this.client;
156
+ }
157
+ async fetchDebugPrompts() {
158
+ const client = await this.getClient();
159
+ const result = await client.callTool({
160
+ name: 'listDebugPrompts',
161
+ arguments: {}
162
+ });
163
+ if (result.content && Array.isArray(result.content) && result.content.length > 0) {
164
+ const content = result.content[0];
165
+ if (content.type === 'text') {
166
+ const promptsData = JSON.parse(content.text);
167
+ if (promptsData.error) {
168
+ throw new Error(`MCP Tool Error: ${promptsData.error}`);
169
+ }
170
+ return promptsData.prompts || [];
171
+ }
172
+ }
173
+ return [];
174
+ }
175
+ async checkAndNotifyExistingPrompts() {
176
+ if (!this.mcpPrompter) {
177
+ return;
178
+ }
179
+ try {
180
+ const prompts = await this.fetchDebugPrompts();
181
+ // Send notifications for existing prompts to ensure they're visible
182
+ for (const existingPrompt of prompts) {
183
+ const prompt = {
184
+ id: existingPrompt.id,
185
+ message: existingPrompt.message,
186
+ context: existingPrompt.context,
187
+ options: existingPrompt.options
188
+ };
189
+ this.mcpPrompter.notifyPromptShown(prompt);
190
+ this.world.logger.log(`📡 Sent notification for existing prompt: ${prompt.id}`);
191
+ }
192
+ }
193
+ catch (error) {
194
+ this.world.logger.warn(`Failed to check existing prompts: ${error}`);
195
+ }
196
+ }
113
197
  steps = {
114
- registerMcpPrompter: {
115
- gwta: `register mcp prompter`,
116
- action: async (named, featureStep) => {
198
+ checkAndNotifyExistingPrompts: {
199
+ gwta: `check and notify existing prompts`,
200
+ action: async () => {
117
201
  try {
118
- if (!this.mcpPrompter) {
119
- this.mcpPrompter = new MCPClientPrompter(this.serverParameters);
120
- this.world.prompter.subscribe(this.mcpPrompter);
121
- }
202
+ await this.checkAndNotifyExistingPrompts();
122
203
  const messageContext = {
123
204
  incident: EExecutionMessageType.ACTION,
124
- incidentDetails: { registered: true }
205
+ incidentDetails: { checked: true }
125
206
  };
126
207
  return actionOK({ messageContext });
127
208
  }
128
209
  catch (e) {
129
210
  console.error(e);
130
- return actionNotOK(`Failed to register MCP prompter: ${e}`);
211
+ return actionNotOK(`Failed to check existing prompts: ${e}`);
131
212
  }
132
213
  }
133
214
  },
134
- unregisterMcpPrompter: {
135
- gwta: `unregister mcp prompter`,
136
- action: async (named, featureStep) => {
215
+ testRealTimeNotifications: {
216
+ gwta: `test real time notifications`,
217
+ action: async () => {
137
218
  try {
138
- if (this.mcpPrompter) {
139
- this.world.prompter.unsubscribe(this.mcpPrompter);
140
- await this.mcpPrompter.close();
141
- this.mcpPrompter = undefined;
142
- }
219
+ const testPrompt = {
220
+ id: 'test-notification-' + Math.random().toString(36).slice(2),
221
+ message: 'Test real-time notification',
222
+ options: ['test', 'debug']
223
+ };
224
+ this.world.logger.log(`🔧 Testing real-time notification for prompt: ${testPrompt.id}`);
225
+ void this.world.prompter.prompt(testPrompt);
143
226
  const messageContext = {
144
227
  incident: EExecutionMessageType.ACTION,
145
- incidentDetails: { unregistered: true }
228
+ incidentDetails: {
229
+ tested: true,
230
+ promptId: testPrompt.id,
231
+ message: 'Real-time notification test initiated'
232
+ }
146
233
  };
147
234
  return actionOK({ messageContext });
148
235
  }
149
236
  catch (e) {
150
237
  console.error(e);
151
- return actionNotOK(`Failed to unregister MCP prompter: ${e}`);
238
+ return actionNotOK(`Failed to test real-time notifications: ${e}`);
152
239
  }
153
240
  }
154
241
  },
155
242
  listMcpTools: {
156
243
  gwta: `list mcp tools`,
157
- action: async (named, featureStep) => {
244
+ action: async () => {
158
245
  try {
159
- await this.ensureConnection();
160
- const toolsResult = await this.client.listTools();
246
+ const client = await this.getClient();
247
+ const toolsResult = await client.listTools();
161
248
  const tools = Array.isArray(toolsResult) ? toolsResult : (toolsResult.tools || []);
162
249
  const messageContext = { incident: EExecutionMessageType.ACTION, incidentDetails: { tools } };
163
250
  return actionOK({ messageContext });
164
251
  }
165
252
  catch (e) {
166
- console.error(e);
167
- return actionNotOK(`Failed to list MCP tools: ${e}`);
253
+ const error = e;
254
+ const errorDetails = {
255
+ tool: 'listMcpTools',
256
+ error: String(error),
257
+ code: error.code || 'unknown',
258
+ data: error.data || null,
259
+ stack: error.stack || null
260
+ };
261
+ this.world.logger.error(`MCP Tool Execution Failed: ${JSON.stringify(errorDetails, null, 2)}`);
262
+ const messageContext = {
263
+ incident: EExecutionMessageType.ACTION,
264
+ incidentDetails: errorDetails
265
+ };
266
+ return actionNotOK(`Failed to list MCP tools: ${error}`, { messageContext });
267
+ }
268
+ }
269
+ },
270
+ listDebugPrompts: {
271
+ gwta: `list debug prompts`,
272
+ action: async () => {
273
+ try {
274
+ const prompts = await this.fetchDebugPrompts();
275
+ const messageContext = {
276
+ incident: EExecutionMessageType.ACTION,
277
+ incidentDetails: {
278
+ prompts,
279
+ count: prompts.length,
280
+ message: prompts.length > 0 ?
281
+ `Found ${prompts.length} pending debug prompt(s)` :
282
+ 'No debug prompts'
283
+ }
284
+ };
285
+ return actionOK({ messageContext });
286
+ }
287
+ catch (e) {
288
+ const error = e;
289
+ const errorDetails = {
290
+ tool: 'listDebugPrompts',
291
+ error: String(error),
292
+ code: error.code || 'unknown',
293
+ data: error.data || null,
294
+ stack: error.stack || null
295
+ };
296
+ this.world.logger.error(`MCP Tool Execution Failed: ${JSON.stringify(errorDetails, null, 2)}`);
297
+ const messageContext = {
298
+ incident: EExecutionMessageType.ACTION,
299
+ incidentDetails: errorDetails
300
+ };
301
+ return actionNotOK(`Failed to list debug prompts: ${error}`, { messageContext });
302
+ }
303
+ }
304
+ },
305
+ respondToDebugPrompt: {
306
+ gwta: `respond to debug prompt {promptId} with {response}`,
307
+ action: async ({ promptId, response }) => {
308
+ try {
309
+ const client = await this.getClient();
310
+ const result = await client.callTool({
311
+ name: 'respondToDebugPrompt',
312
+ arguments: {
313
+ promptId,
314
+ response
315
+ }
316
+ });
317
+ if (result.content && Array.isArray(result.content) && result.content.length > 0) {
318
+ const content = result.content[0];
319
+ if (content.type === 'text') {
320
+ try {
321
+ const responseData = JSON.parse(content.text);
322
+ const messageContext = {
323
+ incident: EExecutionMessageType.ACTION,
324
+ incidentDetails: {
325
+ success: responseData.success || false,
326
+ promptId: responseData.promptId,
327
+ response: responseData.response,
328
+ message: responseData.message || 'Response processed'
329
+ }
330
+ };
331
+ return actionOK({ messageContext });
332
+ }
333
+ catch {
334
+ const messageContext = {
335
+ incident: EExecutionMessageType.ACTION,
336
+ incidentDetails: { response: content.text }
337
+ };
338
+ return actionOK({ messageContext });
339
+ }
340
+ }
341
+ }
342
+ return actionNotOK('No response received from MCP server for debug prompt response');
343
+ }
344
+ catch (e) {
345
+ const error = e;
346
+ const errorDetails = {
347
+ tool: 'respondToDebugPrompt',
348
+ promptId,
349
+ response,
350
+ error: String(error),
351
+ code: error.code || 'unknown',
352
+ data: error.data || null,
353
+ stack: error.stack || null
354
+ };
355
+ this.world.logger.error(`MCP Tool Execution Failed: ${JSON.stringify(errorDetails, null, 2)}`);
356
+ const messageContext = {
357
+ incident: EExecutionMessageType.ACTION,
358
+ incidentDetails: errorDetails
359
+ };
360
+ return actionNotOK(`Failed to respond to debug prompt: ${error}`, { messageContext });
168
361
  }
169
362
  }
170
363
  },
171
364
  promptViaMcp: {
172
365
  gwta: `prompt via mcp {message} with options {options}`,
173
- action: async ({ message, options }, featureStep) => {
366
+ action: async ({ message, options }) => {
174
367
  try {
175
- await this.ensureConnection();
368
+ const client = await this.getClient();
176
369
  const prompt = {
177
370
  id: 'test-' + Math.random().toString(36).slice(2),
178
371
  message,
179
372
  options: options ? options.split(',').map(o => o.trim()) : undefined
180
373
  };
181
374
  // Try to call a prompt handling tool on the MCP server
182
- const result = await this.client.callTool({
375
+ const result = await client.callTool({
183
376
  name: 'handlePrompt',
184
377
  arguments: {
185
378
  message: prompt.message,
@@ -219,9 +412,9 @@ class MCPClientStepper extends AStepper {
219
412
  },
220
413
  promptViaMcpWithContext: {
221
414
  gwta: `prompt via mcp {message} with context {context} and options {options}`,
222
- action: async ({ message, context, options }, featureStep) => {
415
+ action: async ({ message, context, options }) => {
223
416
  try {
224
- await this.ensureConnection();
417
+ const client = await this.getClient();
225
418
  let parsedContext;
226
419
  try {
227
420
  parsedContext = JSON.parse(context);
@@ -236,7 +429,7 @@ class MCPClientStepper extends AStepper {
236
429
  options: options ? options.split(',').map(o => o.trim()) : undefined
237
430
  };
238
431
  // Try to call a prompt handling tool on the MCP server
239
- const result = await this.client.callTool({
432
+ const result = await client.callTool({
240
433
  name: 'handlePrompt',
241
434
  arguments: {
242
435
  message: prompt.message,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-stepper.js","sourceRoot":"","sources":["../src/mcp-client-stepper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client-stepper.js","sourceRoot":"","sources":["../src/mcp-client-stepper.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { AStepper, IHasOptions } from '@haibun/core/lib/astepper.js';
2
- import { TWorld } from '@haibun/core/lib/defs.js';
1
+ import { AStepper, IHasOptions, IHasCycles } from '@haibun/core/lib/astepper.js';
2
+ import { TWorld, IStepperCycles } from '@haibun/core/lib/defs.js';
3
3
  import { MCPExecutorServer } from './lib/mcp-executor-server.js';
4
- declare class MCPServerStepper extends AStepper implements IHasOptions {
4
+ declare class MCPServerStepper extends AStepper implements IHasOptions, IHasCycles {
5
5
  steppers: AStepper[];
6
6
  mcpServer: MCPExecutorServer;
7
7
  remotePort: number;
8
8
  accessToken: string;
9
+ cycles: IStepperCycles;
9
10
  options: {
10
11
  REMOTE_PORT: {
11
12
  desc: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-stepper.d.ts","sourceRoot":"","sources":["../src/mcp-server-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAM,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,cAAM,gBAAiB,SAAQ,QAAS,YAAW,WAAW;IAC7D,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO;;;0BAGS,MAAM;;;;;;2BAIL,MAAM;;;;MAErB;IAEI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAYlD,OAAO,CAAC,eAAe;IAWvB,KAAK;;;;;;;;;MAuBJ;CACD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"mcp-server-stepper.d.ts","sourceRoot":"","sources":["../src/mcp-server-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAM,MAAM,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAkBjE,cAAM,gBAAiB,SAAQ,QAAS,YAAW,WAAW,EAAE,UAAU;IACzE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAgB;IAEtC,OAAO;;;0BAGS,MAAM;;;;;;2BAIL,MAAM;;;;MAErB;IAEI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAmBlD,OAAO,CAAC,eAAe;IAavB,KAAK;;;;;;;;;MAuBJ;CACD;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,12 +1,28 @@
1
1
  import { AStepper } from '@haibun/core/lib/astepper.js';
2
2
  import { OK } from '@haibun/core/lib/defs.js';
3
- import { actionNotOK, getStepperOption, intOrError } from '@haibun/core/lib/util/index.js';
3
+ import { actionNotOK, getStepperOption, getStepperOptionName, intOrError } from '@haibun/core/lib/util/index.js';
4
4
  import { MCPExecutorServer } from './lib/mcp-executor-server.js';
5
+ const cycles = (mcpStepper) => ({
6
+ async startFeature({ resolvedFeature, index }) {
7
+ if (mcpStepper.mcpServer && mcpStepper.mcpServer.isRunning) {
8
+ mcpStepper.getWorld().logger.debug(`🔗 Starting MCP sampling for feature ${index}: ${resolvedFeature.path}`);
9
+ await mcpStepper.mcpServer.startPromptSampling();
10
+ }
11
+ },
12
+ endFeature() {
13
+ if (mcpStepper.mcpServer && mcpStepper.mcpServer.isRunning) {
14
+ mcpStepper.getWorld().logger.debug(`🔗 Stopping MCP sampling for feature`);
15
+ mcpStepper.mcpServer.stopPromptSampling();
16
+ }
17
+ return Promise.resolve();
18
+ }
19
+ });
5
20
  class MCPServerStepper extends AStepper {
6
21
  steppers;
7
22
  mcpServer;
8
23
  remotePort;
9
24
  accessToken;
25
+ cycles = cycles(this);
10
26
  options = {
11
27
  REMOTE_PORT: {
12
28
  desc: 'Port for remote execution API',
@@ -23,15 +39,24 @@ class MCPServerStepper extends AStepper {
23
39
  this.remotePort = intOrError(getStepperOption(this, 'REMOTE_PORT', world.moduleOptions) || '').result || NaN;
24
40
  this.accessToken = getStepperOption(this, 'ACCESS_TOKEN', world.moduleOptions);
25
41
  if (!isNaN(this.remotePort) && !this.accessToken) {
26
- throw new Error('ACCESS_TOKEN is required when REMOTE_PORT is configured for remote execution');
42
+ throw new Error(`${getStepperOptionName(this, 'ACCESS_TOKEN')} is required when REMOTE_PORT is configured for remote execution`);
43
+ }
44
+ // Log the remote configuration
45
+ if (!isNaN(this.remotePort)) {
46
+ this.getWorld().logger.warn(`🔗 MCP Server configured for remote execution on http://localhost:${this.remotePort}`);
47
+ }
48
+ else {
49
+ this.getWorld().logger.info(`🏠 MCP Server configured for local execution`);
27
50
  }
28
51
  }
29
52
  getRemoteConfig() {
30
53
  if (!isNaN(this.remotePort)) {
31
- return {
54
+ const config = {
32
55
  url: `http://localhost:${this.remotePort}`,
33
56
  accessToken: this.accessToken
34
57
  };
58
+ this.world.logger.log(`🔗 MCP Server configured for remote execution on ${config.url} with token: ${config.accessToken ? '[PRESENT]' : '[MISSING]'}`);
59
+ return config;
35
60
  }
36
61
  return undefined;
37
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-stepper.js","sourceRoot":"","sources":["../src/mcp-server-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,EAAE,EAAU,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,gBAAiB,SAAQ,QAAQ;IACtC,QAAQ,CAAa;IACrB,SAAS,CAAoB;IAC7B,UAAU,CAAS;IACnB,WAAW,CAAS;IAEpB,OAAO,GAAG;QACT,WAAW,EAAE;YACZ,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;SACzD;QACD,YAAY,EAAE;YACb,IAAI,EAAE,sDAAsD;YAC5D,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SAC7C;KACD,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAoB;QACjD,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;QAC7G,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAE/E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QACjG,CAAC;IACF,CAAC;IAEO,eAAe;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACN,GAAG,EAAE,oBAAoB,IAAI,CAAC,UAAU,EAAE;gBAC1C,WAAW,EAAE,IAAI,CAAC,WAAW;aAC7B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,GAAG;QACP,aAAa,EAAE;YACd,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAE5C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBAChF,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;SACD;QACD,YAAY,EAAE;YACb,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,OAAO,EAAE,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACP,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;gBACjD,CAAC;YACF,CAAC;SACD;KACD,CAAA;CACD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"mcp-server-stepper.js","sourceRoot":"","sources":["../src/mcp-server-stepper.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  export declare const runtimeStdio: (port?: number) => string;
2
2
  export declare const TEST_PORTS: {
3
- readonly MCP_REMOTE_EXECUTOR: 12300;
4
- readonly MCP_REMOTE_EXECUTION: 12310;
5
3
  readonly MCP_CLIENT_LIST_TOOLS: 12342;
6
4
  readonly MCP_CLIENT_PROMPTER: 12341;
7
5
  readonly MCP_TOOL_EXECUTION: 12350;
8
- readonly MCP_TOOL_EXECUTION_ALT: 12351;
9
- readonly MCP_CLIENT_LIFECYCLE: 12360;
10
6
  readonly MCP_HTTP_PROMPTER_TEST: 12370;
7
+ readonly MCP_EXECUTOR_PROMPTER_TEST_EXECUTOR: 12381;
8
+ readonly MCP_EXECUTOR_PROMPTER_TEST_DEBUG: 12383;
9
+ readonly MCP_DEBUG_STEPS_TEST: 12390;
11
10
  };
12
11
  //# sourceMappingURL=mcp-test-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-test-utils.d.ts","sourceRoot":"","sources":["../src/mcp-test-utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAoBzC,CAAA;AAGD,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAC"}
1
+ {"version":3,"file":"mcp-test-utils.d.ts","sourceRoot":"","sources":["../src/mcp-test-utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAsBzC,CAAA;AAGD,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC"}
@@ -2,7 +2,9 @@
2
2
  export const runtimeStdio = (port) => {
3
3
  const listening = port ? {
4
4
  'HAIBUN_O_HTTPEXECUTORSTEPPER_LISTEN_PORT': port.toString(),
5
- 'HAIBUN_O_HTTPEXECUTORSTEPPER_ACCESS_TOKEN': 'test-token-client'
5
+ 'HAIBUN_O_HTTPEXECUTORSTEPPER_ACCESS_TOKEN': 'test-token-client',
6
+ 'HAIBUN_O_MCPSERVERSTEPPER_REMOTE_PORT': port.toString(),
7
+ 'HAIBUN_O_MCPSERVERSTEPPER_ACCESS_TOKEN': 'test-token-client'
6
8
  } : {};
7
9
  const config = {
8
10
  command: process.execPath,
@@ -21,13 +23,12 @@ export const runtimeStdio = (port) => {
21
23
  return JSON.stringify(config, null, 2);
22
24
  };
23
25
  export const TEST_PORTS = {
24
- MCP_REMOTE_EXECUTOR: 12300,
25
- MCP_REMOTE_EXECUTION: 12310,
26
26
  MCP_CLIENT_LIST_TOOLS: 12342,
27
27
  MCP_CLIENT_PROMPTER: 12341,
28
28
  MCP_TOOL_EXECUTION: 12350,
29
- MCP_TOOL_EXECUTION_ALT: 12351,
30
- MCP_CLIENT_LIFECYCLE: 12360,
31
29
  MCP_HTTP_PROMPTER_TEST: 12370,
30
+ MCP_EXECUTOR_PROMPTER_TEST_EXECUTOR: 12381,
31
+ MCP_EXECUTOR_PROMPTER_TEST_DEBUG: 12383,
32
+ MCP_DEBUG_STEPS_TEST: 12390,
32
33
  };
33
34
  //# sourceMappingURL=mcp-test-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-test-utils.js","sourceRoot":"","sources":["../src/mcp-test-utils.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,0CAA0C,EAAE,IAAI,CAAC,QAAQ,EAAE;QAC3D,2CAA2C,EAAE,mBAAmB;KAChE,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAA0B;QACrC,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,GAAG,EAAE;YACJ,gCAAgC,EAAE,YAAY;YAC9C,iCAAiC,EAAE,MAAM;YACzC,GAAG,SAAS;SACZ;QACD,IAAI,EAAE;YACL,0BAA0B;YAC1B,OAAO;YACP,qBAAqB;YACrB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SACvB;KACD,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,mBAAmB,EAAE,KAAK;IAC1B,oBAAoB,EAAE,KAAK;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,mBAAmB,EAAE,KAAK;IAC1B,kBAAkB,EAAE,KAAK;IACzB,sBAAsB,EAAE,KAAK;IAC7B,oBAAoB,EAAE,KAAK;IAC3B,sBAAsB,EAAE,KAAK;CACpB,CAAC"}
1
+ {"version":3,"file":"mcp-test-utils.js","sourceRoot":"","sources":["../src/mcp-test-utils.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,0CAA0C,EAAE,IAAI,CAAC,QAAQ,EAAE;QAC3D,2CAA2C,EAAE,mBAAmB;QAChE,uCAAuC,EAAE,IAAI,CAAC,QAAQ,EAAE;QACxD,wCAAwC,EAAE,mBAAmB;KAC7D,CAAC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAA0B;QACrC,OAAO,EAAE,OAAO,CAAC,QAAQ;QACzB,GAAG,EAAE;YACJ,gCAAgC,EAAE,YAAY;YAC9C,iCAAiC,EAAE,MAAM;YACzC,GAAG,SAAS;SACZ;QACD,IAAI,EAAE;YACL,0BAA0B;YAC1B,OAAO;YACP,qBAAqB;YACrB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SACvB;KACD,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,qBAAqB,EAAE,KAAK;IAC5B,mBAAmB,EAAE,KAAK;IAC1B,kBAAkB,EAAE,KAAK;IACzB,sBAAsB,EAAE,KAAK;IAC7B,mCAAmC,EAAE,KAAK;IAC1C,gCAAgC,EAAE,KAAK;IACvC,oBAAoB,EAAE,KAAK;CAClB,CAAC"}