UNPKG

@edicarlos.lds/businessmap-mcp

Version:

Model Context Protocol server for BusinessMap (Kanbanize) integration

50 lines 2.15 kB
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js'; export class CardResourceHandler { registerResources(server, client) { // List cards for a specific board server.registerResource('cards', new ResourceTemplate('businessmap://boards/{board_id}/cards', { list: undefined }), {}, // Added empty metadata object async (uri, variables) => { try { const boardId = parseInt(variables.board_id); if (isNaN(boardId)) { throw new Error(`Invalid board_id: "${variables.board_id}" is not a valid number`); } const cards = await client.getCards(boardId); return { contents: [ { uri: uri.href, text: JSON.stringify(cards, null, 2), }, ], }; } catch (error) { throw new Error(`Failed to fetch cards: ${error instanceof Error ? error.message : 'Unknown error'}`); } }); // Get card details server.registerResource('card', new ResourceTemplate('businessmap://cards/{card_id}', { list: undefined }), {}, // Added empty metadata object async (uri, variables) => { try { const cardId = parseInt(variables.card_id); if (isNaN(cardId)) { throw new Error(`Invalid card_id: "${variables.card_id}" is not a valid number`); } const card = await client.getCard(cardId); return { contents: [ { uri: uri.href, text: JSON.stringify(card, null, 2), }, ], }; } catch (error) { throw new Error(`Failed to fetch card: ${error instanceof Error ? error.message : 'Unknown error'}`); } }); } } //# sourceMappingURL=card-resources.js.map