Skip to main content
Glama

move-cards

Move Trello cards between lists or reposition them within boards to organize project workflows and track progress.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardsYes

Implementation Reference

  • Handler function that executes the logic for moving multiple Trello cards to specified lists by making parallel PUT requests to the Trello API.
    async ({ cards }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const results = await Promise.all( cards.map(async (card) => { const response = await fetch( `https://api.trello.com/1/cards/${card.cardId}?key=${credentials.apiKey}&token=${credentials.apiToken}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ idList: card.listId, pos: card.position || 'bottom', }), } ); return await response.json(); }) ); return { content: [ { type: 'text', text: JSON.stringify(results), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error moving cards: ${error}`, }, ], isError: true, }; } }
  • Input schema using Zod for validating the 'move-cards' tool parameters: an array of card objects with cardId, listId, and optional position.
    cards: z.array( z.object({ cardId: z.string().describe('ID of the card to move'), listId: z.string().describe('ID of the destination list'), position: z.string().optional().describe('Position in the list (e.g. "top", "bottom")'), }) ), },
  • Registration of the 'move-cards' MCP tool using server.tool() call within the registerCardsTools function, including name, schema, and handler.
    'move-cards', { cards: z.array( z.object({ cardId: z.string().describe('ID of the card to move'), listId: z.string().describe('ID of the destination list'), position: z.string().optional().describe('Position in the list (e.g. "top", "bottom")'), }) ), }, async ({ cards }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const results = await Promise.all( cards.map(async (card) => { const response = await fetch( `https://api.trello.com/1/cards/${card.cardId}?key=${credentials.apiKey}&token=${credentials.apiToken}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ idList: card.listId, pos: card.position || 'bottom', }), } ); return await response.json(); }) ); return { content: [ { type: 'text', text: JSON.stringify(results), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error moving cards: ${error}`, }, ], isError: true, }; } } );
  • src/index.ts:90-90 (registration)
    Top-level invocation of registerCardsTools in the main server setup, which registers the 'move-cards' tool along with other cards tools.
    registerCardsTools(server, credentials);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/adriangrahldev/advanced-trello-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server