UNPKG

@edicarlos.lds/businessmap-mcp

Version:

Model Context Protocol server for BusinessMap (Kanbanize) integration

60 lines 2.54 kB
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