update-list
Modify Trello lists by updating their name, position, subscription status, or archiving them using the list ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | ID of the list to update | |
| name | No | New name for the list | |
| closed | No | Whether the list should be closed (archived) | |
| pos | No | Position of the list | |
| subscribed | No | Whether to subscribe to the list |
Implementation Reference
- src/tools/lists.ts:113-163 (handler)The handler function for the 'update-list' tool. It constructs update data from provided parameters and sends a PUT request to the Trello API endpoint `/lists/{listId}` to update the list's name, closed status, position, or subscription.async ({ listId, name, closed, pos, subscribed }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const updateData: any = {}; if (name !== undefined) updateData.name = name; if (closed !== undefined) updateData.closed = closed; if (pos !== undefined) updateData.pos = pos; if (subscribed !== undefined) updateData.subscribed = subscribed; const response = await fetch( `https://api.trello.com/1/lists/${listId}?key=${credentials.apiKey}&token=${credentials.apiToken}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(updateData), } ); const data = await response.json(); return { content: [ { type: 'text', text: JSON.stringify(data), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error updating list: ${error}`, }, ], isError: true, }; } }
- src/tools/lists.ts:106-112 (schema)Zod input schema for the 'update-list' tool, defining parameters: listId (required string), and optional name (string), closed (boolean), pos (number or string), subscribed (boolean).{ listId: z.string().describe('ID of the list to update'), name: z.string().optional().describe('New name for the list'), closed: z.boolean().optional().describe('Whether the list should be closed (archived)'), pos: z.union([z.number(), z.string()]).optional().describe('Position of the list'), subscribed: z.boolean().optional().describe('Whether to subscribe to the list'), },
- src/tools/lists.ts:104-164 (registration)Registration of the 'update-list' tool using server.tool(), including schema and inline handler function within registerListsTools.server.tool( 'update-list', { listId: z.string().describe('ID of the list to update'), name: z.string().optional().describe('New name for the list'), closed: z.boolean().optional().describe('Whether the list should be closed (archived)'), pos: z.union([z.number(), z.string()]).optional().describe('Position of the list'), subscribed: z.boolean().optional().describe('Whether to subscribe to the list'), }, async ({ listId, name, closed, pos, subscribed }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const updateData: any = {}; if (name !== undefined) updateData.name = name; if (closed !== undefined) updateData.closed = closed; if (pos !== undefined) updateData.pos = pos; if (subscribed !== undefined) updateData.subscribed = subscribed; const response = await fetch( `https://api.trello.com/1/lists/${listId}?key=${credentials.apiKey}&token=${credentials.apiToken}`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(updateData), } ); const data = await response.json(); return { content: [ { type: 'text', text: JSON.stringify(data), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error updating list: ${error}`, }, ], isError: true, }; } } );
- src/index.ts:89-89 (registration)Invocation of registerListsTools in the main MCP server setup, which registers the 'update-list' tool among others.registerListsTools(server, credentials);