@edicarlos.lds/businessmap-mcp
Version:
Model Context Protocol server for BusinessMap (Kanbanize) integration
45 lines • 2.55 kB
JavaScript
import { getWorkflowCycleTimeColumnsSchema } from '../../schemas/workflow-schemas.js';
import { logger } from '../../utils/logger.js';
import { createErrorResponse, createSuccessResponse } from './base-tool.js';
export class WorkflowToolHandler {
registerTools(server, client, readOnlyMode) {
this.registerGetWorkflowCycleTimeColumns(server, client);
this.registerGetWorkflowEffectiveCycleTimeColumns(server, client);
}
registerGetWorkflowCycleTimeColumns(server, client) {
server.registerTool('get_workflow_cycle_time_columns', {
title: 'Get Workflow Cycle Time Columns',
description: "Get workflow's cycle time columns",
inputSchema: getWorkflowCycleTimeColumnsSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true },
}, async ({ board_id, workflow_id }) => {
try {
const columns = await client.getWorkflowCycleTimeColumns(board_id, workflow_id);
return createSuccessResponse(columns);
}
catch (error) {
return createErrorResponse(error, 'fetching workflow cycle time columns');
}
});
}
registerGetWorkflowEffectiveCycleTimeColumns(server, client) {
server.registerTool('get_workflow_effective_cycle_time_columns', {
title: 'Get Workflow Effective Cycle Time Columns',
description: "Get workflow's effective cycle time columns (the columns actually used for cycle time calculation with applied filters/logic)",
inputSchema: getWorkflowCycleTimeColumnsSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true },
}, async ({ board_id, workflow_id }) => {
try {
logger.debug(`Fetching effective cycle time columns for board ${board_id}, workflow ${workflow_id}`);
const columns = await client.getWorkflowEffectiveCycleTimeColumns(board_id, workflow_id);
logger.debug(`Received ${columns.length} effective cycle time columns`);
return createSuccessResponse(columns, `Retrieved ${columns.length} effective cycle time columns for board ${board_id}, workflow ${workflow_id}`);
}
catch (error) {
logger.error(`Error fetching effective cycle time columns:`, error);
return createErrorResponse(error, 'fetching workflow effective cycle time columns');
}
});
}
}
//# sourceMappingURL=workflow-tools.js.map