@edicarlos.lds/businessmap-mcp 3.0.0 → 4.0.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 (103) hide show
  1. package/CONTRIBUTING.md +73 -0
  2. package/README.md +35 -15
  3. package/SECURITY.md +36 -0
  4. package/dist/client/businessmap-client.d.ts +0 -1
  5. package/dist/client/businessmap-client.d.ts.map +1 -1
  6. package/dist/client/businessmap-client.js +39 -23
  7. package/dist/client/businessmap-client.js.map +1 -1
  8. package/dist/client/businessmap-error.d.ts +16 -0
  9. package/dist/client/businessmap-error.d.ts.map +1 -0
  10. package/dist/client/businessmap-error.js +43 -0
  11. package/dist/client/businessmap-error.js.map +1 -0
  12. package/dist/client/modules/board-client.d.ts.map +1 -1
  13. package/dist/client/modules/board-client.js +16 -2
  14. package/dist/client/modules/board-client.js.map +1 -1
  15. package/dist/client/modules/card-client.d.ts +7 -5
  16. package/dist/client/modules/card-client.d.ts.map +1 -1
  17. package/dist/client/modules/card-client.js +40 -13
  18. package/dist/client/modules/card-client.js.map +1 -1
  19. package/dist/client/modules/index.d.ts +0 -3
  20. package/dist/client/modules/index.d.ts.map +1 -1
  21. package/dist/client/modules/index.js +0 -1
  22. package/dist/client/modules/index.js.map +1 -1
  23. package/dist/config/environment.d.ts +3 -0
  24. package/dist/config/environment.d.ts.map +1 -1
  25. package/dist/config/environment.js +64 -3
  26. package/dist/config/environment.js.map +1 -1
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +19 -9
  30. package/dist/index.js.map +1 -1
  31. package/dist/schemas/board-schemas.d.ts +6 -6
  32. package/dist/schemas/board-schemas.d.ts.map +1 -1
  33. package/dist/schemas/board-schemas.js +6 -2
  34. package/dist/schemas/board-schemas.js.map +1 -1
  35. package/dist/schemas/card-schemas.d.ts +67 -48
  36. package/dist/schemas/card-schemas.d.ts.map +1 -1
  37. package/dist/schemas/card-schemas.js +23 -0
  38. package/dist/schemas/card-schemas.js.map +1 -1
  39. package/dist/schemas/common-schemas.d.ts +4 -4
  40. package/dist/server/http.d.ts +7 -1
  41. package/dist/server/http.d.ts.map +1 -1
  42. package/dist/server/http.js +140 -31
  43. package/dist/server/http.js.map +1 -1
  44. package/dist/server/mcp-server.d.ts.map +1 -1
  45. package/dist/server/mcp-server.js +1 -1
  46. package/dist/server/mcp-server.js.map +1 -1
  47. package/dist/server/prompts/base-prompt.d.ts +12 -0
  48. package/dist/server/prompts/base-prompt.d.ts.map +1 -1
  49. package/dist/server/prompts/base-prompt.js +9 -1
  50. package/dist/server/prompts/base-prompt.js.map +1 -1
  51. package/dist/server/prompts/board-prompts.d.ts.map +1 -1
  52. package/dist/server/prompts/board-prompts.js +6 -5
  53. package/dist/server/prompts/board-prompts.js.map +1 -1
  54. package/dist/server/prompts/card-prompts.d.ts.map +1 -1
  55. package/dist/server/prompts/card-prompts.js +2 -1
  56. package/dist/server/prompts/card-prompts.js.map +1 -1
  57. package/dist/server/prompts/index.d.ts +0 -1
  58. package/dist/server/prompts/index.d.ts.map +1 -1
  59. package/dist/server/prompts/index.js.map +1 -1
  60. package/dist/server/prompts/workspace-prompts.d.ts.map +1 -1
  61. package/dist/server/prompts/workspace-prompts.js +4 -3
  62. package/dist/server/prompts/workspace-prompts.js.map +1 -1
  63. package/dist/server/resources/card-resources.d.ts.map +1 -1
  64. package/dist/server/resources/card-resources.js +45 -3
  65. package/dist/server/resources/card-resources.js.map +1 -1
  66. package/dist/server/tools/base-tool.d.ts +5 -0
  67. package/dist/server/tools/base-tool.d.ts.map +1 -1
  68. package/dist/server/tools/base-tool.js +89 -6
  69. package/dist/server/tools/base-tool.js.map +1 -1
  70. package/dist/server/tools/board-tools.d.ts +0 -6
  71. package/dist/server/tools/board-tools.d.ts.map +1 -1
  72. package/dist/server/tools/board-tools.js +35 -72
  73. package/dist/server/tools/board-tools.js.map +1 -1
  74. package/dist/server/tools/card-tools.d.ts.map +1 -1
  75. package/dist/server/tools/card-tools.js +99 -11
  76. package/dist/server/tools/card-tools.js.map +1 -1
  77. package/dist/server/tools/doc-tools.d.ts +2 -1
  78. package/dist/server/tools/doc-tools.d.ts.map +1 -1
  79. package/dist/server/tools/doc-tools.js +47 -20
  80. package/dist/server/tools/doc-tools.js.map +1 -1
  81. package/dist/server/tools/index.d.ts +0 -2
  82. package/dist/server/tools/index.d.ts.map +1 -1
  83. package/dist/server/tools/index.js +0 -1
  84. package/dist/server/tools/index.js.map +1 -1
  85. package/dist/server/tools/user-tools.d.ts.map +1 -1
  86. package/dist/server/tools/user-tools.js +2 -1
  87. package/dist/server/tools/user-tools.js.map +1 -1
  88. package/dist/types/base.d.ts +1 -0
  89. package/dist/types/base.d.ts.map +1 -1
  90. package/dist/types/card.d.ts +10 -5
  91. package/dist/types/card.d.ts.map +1 -1
  92. package/dist/utils/logger.d.ts +7 -12
  93. package/dist/utils/logger.d.ts.map +1 -1
  94. package/dist/utils/logger.js +73 -10
  95. package/dist/utils/logger.js.map +1 -1
  96. package/dist/utils/request-context.d.ts +7 -0
  97. package/dist/utils/request-context.d.ts.map +1 -0
  98. package/dist/utils/request-context.js +9 -0
  99. package/dist/utils/request-context.js.map +1 -0
  100. package/docs/LOGGING.md +15 -0
  101. package/docs/MIDDLEWARE.md +26 -4
  102. package/docs/TOOLS.md +116 -96
  103. package/package.json +22 -17
@@ -4,7 +4,7 @@ import cors from 'cors';
4
4
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
5
5
  import { config } from '../config/environment.js';
6
6
  import { logger } from '../utils/logger.js';
7
- const SESSION_TIMEOUT_MS = 30 * 60 * 1000; // 30 minutes
7
+ import { runWithRequestContext } from '../utils/request-context.js';
8
8
  async function closeSession(id, session) {
9
9
  try {
10
10
  await session.server.server.close();
@@ -14,19 +14,73 @@ async function closeSession(id, session) {
14
14
  }
15
15
  logger.info(`MCP session closed: ${id}`);
16
16
  }
17
+ async function closeUninitializedServer(server) {
18
+ try {
19
+ await server.server.close();
20
+ }
21
+ catch (error) {
22
+ logger.warn('Error while cleaning up uninitialized MCP server:', error);
23
+ }
24
+ }
25
+ async function cleanupFailedSession(id, server, sessions) {
26
+ const session = id ? sessions.get(id) : undefined;
27
+ if (id && session) {
28
+ sessions.delete(id);
29
+ await closeSession(id, session);
30
+ return;
31
+ }
32
+ await closeUninitializedServer(server);
33
+ }
34
+ function closeHttpListener(server) {
35
+ if (!server.listening) {
36
+ return Promise.resolve();
37
+ }
38
+ return new Promise((resolve, reject) => {
39
+ server.close((error) => {
40
+ if (error) {
41
+ reject(error);
42
+ return;
43
+ }
44
+ resolve();
45
+ });
46
+ });
47
+ }
48
+ function getCorrelationId(value) {
49
+ const candidate = Array.isArray(value) ? value[0] : value;
50
+ return candidate && /^[A-Za-z0-9._:-]{1,128}$/.test(candidate) ? candidate : randomUUID();
51
+ }
17
52
  export async function startHttpServer(options = {}) {
18
53
  const app = express();
54
+ const bodyLimit = options.bodyLimit ?? config.server.bodyLimit;
55
+ const maxSessions = options.maxSessions ?? config.server.maxSessions;
56
+ const sessionTimeoutMs = options.sessionTimeoutMs ?? config.server.sessionTimeoutMs;
57
+ if (!Number.isSafeInteger(maxSessions) || maxSessions <= 0) {
58
+ throw new TypeError('maxSessions must be a positive integer');
59
+ }
60
+ if (!Number.isSafeInteger(sessionTimeoutMs) || sessionTimeoutMs <= 0) {
61
+ throw new TypeError('sessionTimeoutMs must be a positive integer');
62
+ }
19
63
  // Disable X-Powered-By header to prevent disclosing version/framework info
20
64
  app.disable('x-powered-by');
21
65
  // Parse JSON bodies (required for StreamableHTTP transport)
22
- app.use(express.json());
66
+ app.use(express.json({ limit: bodyLimit }));
23
67
  // Enable CORS with configured allowed origins
24
68
  app.use(cors({
25
69
  origin: config.server.allowedOrigins,
26
70
  methods: ['GET', 'POST', 'DELETE', 'OPTIONS'],
27
- allowedHeaders: ['Content-Type', 'mcp-session-id', 'last-event-id'],
28
- exposedHeaders: ['mcp-session-id'],
71
+ allowedHeaders: ['Content-Type', 'mcp-session-id', 'last-event-id', 'x-request-id'],
72
+ exposedHeaders: ['mcp-session-id', 'x-request-id'],
29
73
  }));
74
+ // Attach a bounded correlation ID before custom middleware and MCP handling.
75
+ app.use((req, res, next) => {
76
+ const correlationId = getCorrelationId(req.headers['x-request-id']);
77
+ const sessionId = req.headers['mcp-session-id'];
78
+ res.setHeader('x-request-id', correlationId);
79
+ runWithRequestContext({
80
+ correlationId,
81
+ ...(typeof sessionId === 'string' && { sessionId }),
82
+ }, next);
83
+ });
30
84
  // Apply custom middlewares (e.g. for authentication/authorization)
31
85
  if (options.middlewares && options.middlewares.length > 0) {
32
86
  options.middlewares.forEach((middleware) => {
@@ -41,11 +95,13 @@ export async function startHttpServer(options = {}) {
41
95
  next();
42
96
  });
43
97
  const sessions = new Map();
98
+ let pendingSessions = 0;
99
+ let isShuttingDown = false;
44
100
  // Periodic cleanup of inactive sessions
45
101
  const cleanupInterval = setInterval(async () => {
46
102
  const now = Date.now();
47
103
  for (const [id, session] of sessions) {
48
- if (now - session.lastActivityAt > SESSION_TIMEOUT_MS) {
104
+ if (now - session.lastActivityAt > sessionTimeoutMs) {
49
105
  logger.info(`Closing idle MCP session (timeout): ${id}`);
50
106
  sessions.delete(id);
51
107
  await closeSession(id, session);
@@ -55,43 +111,68 @@ export async function startHttpServer(options = {}) {
55
111
  // Prevent the interval from blocking process exit
56
112
  cleanupInterval.unref();
57
113
  const handleNewSession = async (req, res, logResponse, sendError) => {
58
- const { BusinessMapMcpServer } = await import('./mcp-server.js');
59
- const sessionServer = new BusinessMapMcpServer();
60
- // New session: create a fresh transport
61
- const transport = new StreamableHTTPServerTransport({
62
- sessionIdGenerator: () => randomUUID(),
63
- onsessioninitialized: (id) => {
64
- sessions.set(id, { transport, server: sessionServer, lastActivityAt: Date.now() });
65
- logger.info(`New MCP session initialized: ${id}`);
66
- },
67
- onsessionclosed: async (id) => {
68
- const session = sessions.get(id);
69
- sessions.delete(id);
70
- if (session) {
71
- await closeSession(id, session);
72
- }
73
- },
74
- allowedHosts: config.server.allowedHosts,
75
- allowedOrigins: config.server.allowedOrigins,
76
- enableDnsRebindingProtection: true,
77
- });
114
+ if (sessions.size + pendingSessions >= maxSessions) {
115
+ sendError(503, 'HTTP session capacity reached');
116
+ return;
117
+ }
118
+ pendingSessions++;
119
+ let reservationReleased = false;
120
+ let initializedSessionId;
121
+ let sessionServer;
78
122
  try {
123
+ const module = await import('./mcp-server.js');
124
+ sessionServer = new module.BusinessMapMcpServer();
125
+ // New session: create a fresh transport
126
+ const transport = new StreamableHTTPServerTransport({
127
+ sessionIdGenerator: () => randomUUID(),
128
+ onsessioninitialized: (id) => {
129
+ initializedSessionId = id;
130
+ if (!reservationReleased) {
131
+ pendingSessions--;
132
+ reservationReleased = true;
133
+ }
134
+ sessions.set(id, { transport, server: sessionServer, lastActivityAt: Date.now() });
135
+ logger.info(`New MCP session initialized: ${id}`);
136
+ },
137
+ onsessionclosed: async (id) => {
138
+ const session = sessions.get(id);
139
+ sessions.delete(id);
140
+ if (session) {
141
+ await closeSession(id, session);
142
+ }
143
+ },
144
+ allowedHosts: config.server.allowedHosts,
145
+ allowedOrigins: config.server.allowedOrigins,
146
+ enableDnsRebindingProtection: true,
147
+ });
79
148
  await sessionServer.server.connect(transport);
80
149
  await transport.handleRequest(req, res, req.body);
81
150
  logResponse(res.statusCode);
151
+ if (initializedSessionId && isShuttingDown) {
152
+ const session = sessions.get(initializedSessionId);
153
+ sessions.delete(initializedSessionId);
154
+ if (session) {
155
+ await closeSession(initializedSessionId, session);
156
+ }
157
+ }
158
+ else if (!initializedSessionId) {
159
+ await closeUninitializedServer(sessionServer);
160
+ }
82
161
  }
83
162
  catch (error) {
84
163
  logger.error('Failed to handle new MCP session:', error);
85
- try {
86
- await sessionServer.server.close();
87
- }
88
- catch (closeError) {
89
- logger.warn('Error while cleaning up failed session:', closeError);
164
+ if (sessionServer) {
165
+ await cleanupFailedSession(initializedSessionId, sessionServer, sessions);
90
166
  }
91
167
  if (!res.headersSent) {
92
168
  sendError(500, 'Failed to initialize MCP session');
93
169
  }
94
170
  }
171
+ finally {
172
+ if (!reservationReleased) {
173
+ pendingSessions--;
174
+ }
175
+ }
95
176
  };
96
177
  const handleExistingSession = async (req, res, sessionId, logResponse, sendError) => {
97
178
  const session = sessions.get(sessionId);
@@ -124,6 +205,10 @@ export async function startHttpServer(options = {}) {
124
205
  logResponse(statusCode);
125
206
  res.status(statusCode).json({ error: message });
126
207
  };
208
+ if (isShuttingDown) {
209
+ sendError(503, 'Server is shutting down');
210
+ return;
211
+ }
127
212
  if (req.method === 'POST' && !sessionId) {
128
213
  await handleNewSession(req, res, logResponse, sendError);
129
214
  return;
@@ -142,17 +227,41 @@ export async function startHttpServer(options = {}) {
142
227
  app.get('/health', (_req, res) => {
143
228
  res.json({ status: 'ok', version: config.server.version });
144
229
  });
230
+ app.get('/ready', (_req, res) => {
231
+ const hasCapacity = sessions.size + pendingSessions < maxSessions;
232
+ if (isShuttingDown || !hasCapacity) {
233
+ res.status(503).json({ status: 'not_ready', version: config.server.version });
234
+ return;
235
+ }
236
+ res.json({ status: 'ready', version: config.server.version });
237
+ });
145
238
  const port = config.server.port;
146
239
  const server = app.listen(port, () => {
147
240
  logger.success(`HTTP Server running on port ${port}`);
148
241
  logger.info(`MCP Endpoint: http://localhost:${port}/mcp`);
149
242
  logger.info(`Health Check: http://localhost:${port}/health`);
243
+ logger.info(`Readiness Check: http://localhost:${port}/ready`);
150
244
  logger.info(`Allowed origins: ${config.server.allowedOrigins.join(', ')}`);
151
245
  logger.info(`Allowed hosts: ${config.server.allowedHosts.join(', ')}`);
152
246
  });
153
247
  server.on('close', () => {
154
248
  clearInterval(cleanupInterval);
155
249
  });
156
- return server;
250
+ let shutdownPromise;
251
+ const shutdown = () => {
252
+ shutdownPromise ??= (async () => {
253
+ isShuttingDown = true;
254
+ clearInterval(cleanupInterval);
255
+ const closeServer = closeHttpListener(server);
256
+ const activeSessions = [...sessions.entries()];
257
+ sessions.clear();
258
+ await Promise.allSettled(activeSessions.map(([id, session]) => closeSession(id, session)));
259
+ server.closeAllConnections();
260
+ await closeServer;
261
+ logger.info('HTTP server shut down');
262
+ })();
263
+ return shutdownPromise;
264
+ };
265
+ return Object.assign(server, { shutdown });
157
266
  }
158
267
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBpE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;;IActD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IAYpB,IAAI,MAAM,IAAI,SAAS,CAEtB;CACF"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBpE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;;IActD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IAYpB,IAAI,MAAM,IAAI,SAAS,CAEtB;CACF"}
@@ -26,7 +26,7 @@ export class BusinessMapMcpServer {
26
26
  }
27
27
  catch (error) {
28
28
  const message = error instanceof Error ? error.message : 'Unknown error';
29
- throw new Error(`Failed to initialize BusinessMap MCP Server: ${message}`);
29
+ throw new Error(`Failed to initialize BusinessMap MCP Server: ${message}`, { cause: error });
30
30
  }
31
31
  }
32
32
  setupTools() {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod/v3';
2
4
  import { BusinessMapClient } from '../../client/businessmap-client.js';
3
5
  /**
4
6
  * Base interface for prompt handlers
@@ -11,4 +13,14 @@ export interface BasePromptHandler {
11
13
  */
12
14
  registerPrompts(server: McpServer, client: BusinessMapClient): void;
13
15
  }
16
+ /**
17
+ * Register a prompt through a non-generic signature. The SDK's registerPrompt infers
18
+ * callback types from the args schema, which makes TS recurse into the zod generics
19
+ * and blow up with TS2589; calling through this fixed signature avoids that.
20
+ */
21
+ export declare function registerPrompt(server: McpServer, name: string, promptConfig: {
22
+ title: string;
23
+ description: string;
24
+ argsSchema: z.ZodRawShape;
25
+ }, callback: (args: Record<string, string>) => GetPromptResult): void;
14
26
  //# sourceMappingURL=base-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-prompt.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/base-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrE"}
1
+ {"version":3,"file":"base-prompt.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/base-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,CAAC,CAAC,WAAW,CAAA;CAAE,EAC/E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,eAAe,GAC1D,IAAI,CAON"}
@@ -1,2 +1,10 @@
1
- export {};
1
+ /**
2
+ * Register a prompt through a non-generic signature. The SDK's registerPrompt infers
3
+ * callback types from the args schema, which makes TS recurse into the zod generics
4
+ * and blow up with TS2589; calling through this fixed signature avoids that.
5
+ */
6
+ export function registerPrompt(server, name, promptConfig, callback) {
7
+ const register = server.registerPrompt.bind(server);
8
+ register(name, promptConfig, callback);
9
+ }
2
10
  //# sourceMappingURL=base-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-prompt.js","sourceRoot":"","sources":["../../../src/server/prompts/base-prompt.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"base-prompt.js","sourceRoot":"","sources":["../../../src/server/prompts/base-prompt.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,IAAY,EACZ,YAA+E,EAC/E,QAA2D;IAE3D,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAIzC,CAAC;IACV,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"board-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/board-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAKpE,OAAO,CAAC,+BAA+B;IAmDvC,OAAO,CAAC,2BAA2B;CAqDpC"}
1
+ {"version":3,"file":"board-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/board-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAErE,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAKpE,OAAO,CAAC,+BAA+B;IAoDvC,OAAO,CAAC,2BAA2B;CAsDpC"}
@@ -1,11 +1,12 @@
1
1
  import { z } from 'zod/v3';
2
+ import { registerPrompt } from './base-prompt.js';
2
3
  export class BoardPromptHandler {
3
4
  registerPrompts(server, _client) {
4
5
  this.registerAnalyzeBoardPerformance(server);
5
6
  this.registerGenerateBoardReport(server);
6
7
  }
7
8
  registerAnalyzeBoardPerformance(server) {
8
- server.registerPrompt('analyze-board-performance', {
9
+ registerPrompt(server, 'analyze-board-performance', {
9
10
  title: 'Analyze Board Performance',
10
11
  description: 'Analyze a board\'s performance: flow efficiency, bottlenecks, cycle time and workload distribution across columns and lanes.',
11
12
  argsSchema: {
@@ -21,7 +22,7 @@ export class BoardPromptHandler {
21
22
 
22
23
  Follow these steps:
23
24
  1. Use \`get_current_board_structure\` to retrieve the full board structure (workflows, columns, lanes).
24
- 2. Use \`list_cards\` to retrieve all active cards on the board.
25
+ 2. Use \`list_cards\` with \`compact=true\`, \`include_pagination=true\`, and \`per_page=50\` to retrieve active cards page by page. Stop when pagination indicates the last page.
25
26
  3. Use \`get_workflow_cycle_time_columns\` for each workflow to understand which columns count for cycle time.
26
27
 
27
28
  Based on the data collected, provide a structured analysis including:
@@ -50,7 +51,7 @@ Format the response as a clear executive report with sections and bullet points.
50
51
  }));
51
52
  }
52
53
  registerGenerateBoardReport(server) {
53
- server.registerPrompt('generate-board-report', {
54
+ registerPrompt(server, 'generate-board-report', {
54
55
  title: 'Generate Board Report',
55
56
  description: 'Generate a comprehensive status report for a board, including cards summary, progress, and highlights.',
56
57
  argsSchema: {
@@ -66,8 +67,8 @@ Format the response as a clear executive report with sections and bullet points.
66
67
 
67
68
  Steps to gather data:
68
69
  1. Use \`get_current_board_structure\` to get the board structure.
69
- 2. Use \`list_cards\` to get all cards (use filters as needed for active cards).
70
- 3. For a sample of cards (up to 10), use \`get_card\` to get detailed information.
70
+ 2. Use \`list_cards\` with \`compact=true\`, \`include_pagination=true\`, and \`per_page=50\` for a bounded active-card snapshot.
71
+ 3. For a sample of cards (up to 10), use \`get_card\` at its default summary level. Request \`detail_level=full\` only if the summary is insufficient.
71
72
 
72
73
  Report structure:
73
74
  # Board Status Report — [Board Name]
@@ -1 +1 @@
1
- {"version":3,"file":"board-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/board-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,MAAM,OAAO,kBAAkB;IAC7B,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,+BAA+B,CAAC,MAAiB;QACvD,MAAM,CAAC,cAAc,CACnB,2BAA2B,EAC3B;YACE,KAAK,EAAE,2BAA2B;YAClC,WAAW,EACT,8HAA8H;YAChI,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;aACzD;SACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8CAA8C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;iFA0BO;qBACpE;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,MAAiB;QACnD,MAAM,CAAC,cAAc,CACnB,uBAAuB,EACvB;YACE,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,wGAAwG;YAC1G,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;aAC3D;SACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uDAAuD,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA6BjC;qBACrC;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"board-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/board-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAqB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,OAAO,kBAAkB;IAC7B,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,+BAA+B,CAAC,MAAiB;QACvD,cAAc,CACZ,MAAM,EACN,2BAA2B,EAC3B;YACE,KAAK,EAAE,2BAA2B;YAClC,WAAW,EACT,8HAA8H;YAChI,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;aACzD;SACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,8CAA8C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;iFA0BO;qBACpE;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,2BAA2B,CAAC,MAAiB;QACnD,cAAc,CACZ,MAAM,EACN,uBAAuB,EACvB;YACE,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EACT,wGAAwG;YAC1G,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;aAC3D;SACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,uDAAuD,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA6BjC;qBACrC;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"card-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/card-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIpE,OAAO,CAAC,iCAAiC;CA6C1C"}
1
+ {"version":3,"file":"card-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/card-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAErE,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIpE,OAAO,CAAC,iCAAiC;CA8C1C"}
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod/v3';
2
+ import { registerPrompt } from './base-prompt.js';
2
3
  export class CardPromptHandler {
3
4
  registerPrompts(server, _client) {
4
5
  this.registerCreateCardFromDescription(server);
5
6
  }
6
7
  registerCreateCardFromDescription(server) {
7
- server.registerPrompt('create-card-from-description', {
8
+ registerPrompt(server, 'create-card-from-description', {
8
9
  title: 'Create Card from Description',
9
10
  description: 'Guide the creation of a well-structured card from a natural language description.',
10
11
  argsSchema: {
@@ -1 +1 @@
1
- {"version":3,"file":"card-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/card-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,MAAM,OAAO,iBAAiB;IAC5B,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEO,iCAAiC,CAAC,MAAiB;QACzD,MAAM,CAAC,cAAc,CACnB,8BAA8B,EAC9B;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EACT,mFAAmF;YACrF,UAAU,EAAE;gBACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;gBAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;aAC/E;SACF,EACD,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;GAEjB,WAAW;;mBAEK,QAAQ;;;4GAGiF,QAAQ;;;;;;;;;;;;;oIAagB;qBACvH;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"card-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/card-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAqB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,OAAO,iBAAiB;IAC5B,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAEO,iCAAiC,CAAC,MAAiB;QACzD,cAAc,CACZ,MAAM,EACN,8BAA8B,EAC9B;YACE,KAAK,EAAE,8BAA8B;YACrC,WAAW,EACT,mFAAmF;YACrF,UAAU,EAAE;gBACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;gBAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;aAC/E;SACF,EACD,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;GAEjB,WAAW;;mBAEK,QAAQ;;;4GAGiF,QAAQ;;;;;;;;;;;;;oIAagB;qBACvH;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,3 @@
1
- export { BasePromptHandler } from './base-prompt.js';
2
1
  export { BoardPromptHandler } from './board-prompts.js';
3
2
  export { CardPromptHandler } from './card-prompts.js';
4
3
  export { WorkspacePromptHandler } from './workspace-prompts.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/workspace-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIpE,OAAO,CAAC,+BAA+B;CAyDxC"}
1
+ {"version":3,"file":"workspace-prompts.d.ts","sourceRoot":"","sources":["../../../src/server/prompts/workspace-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AAErE,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIpE,OAAO,CAAC,+BAA+B;CA0DxC"}
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod/v3';
2
+ import { registerPrompt } from './base-prompt.js';
2
3
  export class WorkspacePromptHandler {
3
4
  registerPrompts(server, _client) {
4
5
  this.registerWorkspaceStatusOverview(server);
5
6
  }
6
7
  registerWorkspaceStatusOverview(server) {
7
- server.registerPrompt('workspace-status-overview', {
8
+ registerPrompt(server, 'workspace-status-overview', {
8
9
  title: 'Workspace Status Overview',
9
10
  description: 'Generate a high-level status overview of a workspace, including all boards and their key metrics.',
10
11
  argsSchema: {
@@ -20,8 +21,8 @@ export class WorkspacePromptHandler {
20
21
 
21
22
  Steps:
22
23
  1. Use \`get_workspace\` to get workspace details.
23
- 2. Use \`list_boards\` with workspace_id filter to list all boards in this workspace.
24
- 3. For each board (up to 5 boards), use \`list_cards\` to get a count of active cards.
24
+ 2. Use \`list_boards\` with workspace_id and the default summary detail to discover boards in this workspace.
25
+ 3. For each board (up to 5 boards), use \`list_cards\` with \`compact=true\`, \`include_pagination=true\`, and \`per_page=50\` to get a bounded active-card count.
25
26
  4. For up to 3 boards, use \`get_current_board_structure\` for column distribution.
26
27
 
27
28
  Deliver a structured overview:
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/workspace-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,MAAM,OAAO,sBAAsB;IACjC,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEO,+BAA+B,CAAC,MAAiB;QACvD,MAAM,CAAC,cAAc,CACnB,2BAA2B,EAC3B;YACE,KAAK,EAAE,2BAA2B;YAClC,WAAW,EACT,mGAAmG;YACrG,UAAU,EAAE;gBACV,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;aAClF;SACF,EACD,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0DAA0D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAiCnC;qBAC1C;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"workspace-prompts.js","sourceRoot":"","sources":["../../../src/server/prompts/workspace-prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAqB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,OAAO,sBAAsB;IACjC,eAAe,CAAC,MAAiB,EAAE,OAA0B;QAC3D,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEO,+BAA+B,CAAC,MAAiB;QACvD,cAAc,CACZ,MAAM,EACN,2BAA2B,EAC3B;YACE,KAAK,EAAE,2BAA2B;YAClC,WAAW,EACT,mGAAmG;YACrG,UAAU,EAAE;gBACV,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;aAClF;SACF,EACD,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0DAA0D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAiCnC;qBAC1C;iBACF;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"card-resources.d.ts","sourceRoot":"","sources":["../../../src/server/resources/card-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,mBAAoB,YAAW,mBAAmB;IAC3D,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAqDxE"}
1
+ {"version":3,"file":"card-resources.d.ts","sourceRoot":"","sources":["../../../src/server/resources/card-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAiBzD,qBAAa,mBAAoB,YAAW,mBAAmB;IAC3D,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CA2FxE"}
@@ -1,7 +1,21 @@
1
1
  import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ function compactCard(card) {
3
+ return {
4
+ card_id: card.card_id,
5
+ custom_id: card.custom_id,
6
+ board_id: card.board_id,
7
+ title: card.title,
8
+ owner_user_id: card.owner_user_id,
9
+ column_id: card.column_id,
10
+ lane_id: card.lane_id,
11
+ priority: card.priority,
12
+ deadline: card.deadline,
13
+ is_blocked: card.is_blocked,
14
+ };
15
+ }
2
16
  export class CardResourceHandler {
3
17
  registerResources(server, client) {
4
- // List cards for a specific board
18
+ // Return a bounded discovery page. Clients can follow the page resource for more.
5
19
  server.registerResource('cards', new ResourceTemplate('businessmap://boards/{board_id}/cards', { list: undefined }), {}, // Added empty metadata object
6
20
  async (uri, variables) => {
7
21
  try {
@@ -9,12 +23,16 @@ export class CardResourceHandler {
9
23
  if (Number.isNaN(boardId)) {
10
24
  throw new TypeError(`Invalid board_id: "${variables.board_id}" is not a valid number`);
11
25
  }
12
- const cards = await client.cards.getCards(boardId);
26
+ const cards = await client.cards.getCardsPage(boardId, { page: 1, per_page: 50 });
13
27
  return {
14
28
  contents: [
15
29
  {
16
30
  uri: uri.href,
17
- text: JSON.stringify(cards, null, 2),
31
+ text: JSON.stringify({
32
+ ...cards,
33
+ data: cards.data.map(compactCard),
34
+ next_resource_template: 'businessmap://boards/{board_id}/cards/pages/{page}/size/{per_page}',
35
+ }, null, 2),
18
36
  },
19
37
  ],
20
38
  };
@@ -23,6 +41,30 @@ export class CardResourceHandler {
23
41
  throw new Error(`Failed to fetch cards: ${error instanceof Error ? error.message : 'Unknown error'}`);
24
42
  }
25
43
  });
44
+ // Get a bounded page of cards for clients that need predictable payload sizes
45
+ server.registerResource('card-page', new ResourceTemplate('businessmap://boards/{board_id}/cards/pages/{page}/size/{per_page}', { list: undefined }), {}, async (uri, variables) => {
46
+ const boardId = Number.parseInt(variables.board_id);
47
+ const page = Number.parseInt(variables.page);
48
+ const perPage = Number.parseInt(variables.per_page);
49
+ if (Number.isNaN(boardId) || Number.isNaN(page) || Number.isNaN(perPage)) {
50
+ throw new TypeError('board_id, page, and per_page must be valid numbers');
51
+ }
52
+ if (page < 1 || perPage < 1 || perPage > 100) {
53
+ throw new RangeError('page must be at least 1 and per_page must be between 1 and 100');
54
+ }
55
+ const cards = await client.cards.getCardsPage(boardId, {
56
+ page,
57
+ per_page: perPage,
58
+ });
59
+ return {
60
+ contents: [
61
+ {
62
+ uri: uri.href,
63
+ text: JSON.stringify({ ...cards, data: cards.data.map(compactCard) }, null, 2),
64
+ },
65
+ ],
66
+ };
67
+ });
26
68
  // Get card details
27
69
  server.registerResource('card', new ResourceTemplate('businessmap://cards/{card_id}', { list: undefined }), {}, // Added empty metadata object
28
70
  async (uri, variables) => {
@@ -1 +1 @@
1
- {"version":3,"file":"card-resources.js","sourceRoot":"","sources":["../../../src/server/resources/card-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAa,MAAM,yCAAyC,CAAC;AAItF,MAAM,OAAO,mBAAmB;IAC5B,iBAAiB,CAAC,MAAiB,EAAE,MAAyB;QAC1D,kCAAkC;QAClC,MAAM,CAAC,gBAAgB,CACnB,OAAO,EACP,IAAI,gBAAgB,CAAC,uCAAuC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAClF,EAAE,EAAE,8BAA8B;QAClC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAkB,CAAC,CAAC;gBAC9D,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,SAAS,CAAC,sBAAsB,SAAS,CAAC,QAAQ,yBAAyB,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,OAAO;oBACH,QAAQ,EAAE;wBACN;4BACI,GAAG,EAAE,GAAG,CAAC,IAAI;4BACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvC;qBACJ;iBACJ,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC1G,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,mBAAmB;QACnB,MAAM,CAAC,gBAAgB,CACnB,MAAM,EACN,IAAI,gBAAgB,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1E,EAAE,EAAE,8BAA8B;QAClC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YACrB,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAiB,CAAC,CAAC;gBAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,SAAS,CAAC,qBAAqB,SAAS,CAAC,OAAO,yBAAyB,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO;oBACH,QAAQ,EAAE;wBACN;4BACI,GAAG,EAAE,GAAG,CAAC,IAAI;4BACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACJ;iBACJ,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACzG,CAAC;QACL,CAAC,CACJ,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"card-resources.js","sourceRoot":"","sources":["../../../src/server/resources/card-resources.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { z } from 'zod/v3';
3
3
  import { BusinessMapClient } from '../../client/businessmap-client.js';
4
+ export declare const ESSENTIAL_TOOLS: Set<string>;
4
5
  /**
5
6
  * Base interface for tool handlers
6
7
  */
@@ -46,6 +47,10 @@ export declare const READ_ONLY: ToolAnnotations;
46
47
  export declare const WRITE: ToolAnnotations;
47
48
  /** Annotations for idempotent write tools (update/toggle) */
48
49
  export declare const WRITE_IDEMPOTENT: ToolAnnotations;
50
+ /** Annotations for destructive operations that are safe to repeat */
51
+ export declare const DESTRUCTIVE_IDEMPOTENT: ToolAnnotations;
52
+ /** Annotations for destructive operations that may not be safe to repeat */
53
+ export declare const DESTRUCTIVE: ToolAnnotations;
49
54
  export interface ToolDefinition<Shape extends z.ZodRawShape> {
50
55
  name: string;
51
56
  title: string;