@edicarlos.lds/businessmap-mcp
Version:
Model Context Protocol server for BusinessMap (Kanbanize) integration
60 lines • 2.54 kB
JavaScript
import { createWorkspaceSchema, getWorkspaceSchema, listWorkspacesSchema, } from '../../schemas/workspace-schemas.js';
import { createErrorResponse, createSuccessResponse } from './base-tool.js';
export class WorkspaceToolHandler {
registerTools(server, client, readOnlyMode) {
this.registerListWorkspaces(server, client);
this.registerGetWorkspace(server, client);
if (!readOnlyMode) {
this.registerCreateWorkspace(server, client);
}
}
registerListWorkspaces(server, client) {
server.registerTool('list_workspaces', {
title: 'List Workspaces',
description: 'Get a list of all workspaces',
inputSchema: listWorkspacesSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true },
}, async () => {
try {
const workspaces = await client.getWorkspaces();
return createSuccessResponse(workspaces);
}
catch (error) {
return createErrorResponse(error, 'fetching workspaces');
}
});
}
registerGetWorkspace(server, client) {
server.registerTool('get_workspace', {
title: 'Get Workspace',
description: 'Get details of a specific workspace',
inputSchema: getWorkspaceSchema.shape,
annotations: { readOnlyHint: true, idempotentHint: true },
}, async ({ workspace_id }) => {
try {
const workspace = await client.getWorkspace(workspace_id);
return createSuccessResponse(workspace);
}
catch (error) {
return createErrorResponse(error, 'fetching workspace');
}
});
}
registerCreateWorkspace(server, client) {
server.registerTool('create_workspace', {
title: 'Create Workspace',
description: 'Create a new workspace',
inputSchema: createWorkspaceSchema.shape,
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false },
}, async ({ name, description }) => {
try {
const workspace = await client.createWorkspace({ name, description });
return createSuccessResponse(workspace, 'Workspace created successfully:');
}
catch (error) {
return createErrorResponse(error, 'creating workspace');
}
});
}
}
//# sourceMappingURL=workspace-tools.js.map