get-action
Retrieve detailed Trello action data by ID to track card changes, comments, and member activities for project oversight.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| actionId | Yes | ID of the action to retrieve | |
| display | No | Include display information | |
| entities | No | Include entity information | |
| fields | No | Comma-separated list of fields to include | |
| member | No | Include member information | |
| memberCreator | No | Include member creator information | |
| memberCreatorFields | No | Comma-separated list of member creator fields | |
| memberFields | No | Comma-separated list of member fields |
Implementation Reference
- src/tools/actions.ts:23-70 (handler)Handler function that retrieves the specified Trello action by making a GET request to the Trello API, handling optional parameters for additional data, and returning the JSON response or error.async ({ actionId, display, entities, fields, member, memberCreator, memberCreatorFields, memberFields }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const url = new URL(`https://api.trello.com/1/actions/${actionId}`); url.searchParams.append('key', credentials.apiKey); url.searchParams.append('token', credentials.apiToken); if (display !== undefined) url.searchParams.append('display', display.toString()); if (entities !== undefined) url.searchParams.append('entities', entities.toString()); if (fields) url.searchParams.append('fields', fields); if (member !== undefined) url.searchParams.append('member', member.toString()); if (memberCreator !== undefined) url.searchParams.append('memberCreator', memberCreator.toString()); if (memberCreatorFields) url.searchParams.append('memberCreator_fields', memberCreatorFields); if (memberFields) url.searchParams.append('member_fields', memberFields); const response = await fetch(url.toString()); const data = await response.json(); return { content: [ { type: 'text', text: JSON.stringify(data), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error getting action: ${error}`, }, ], isError: true, }; } }
- src/tools/actions.ts:13-22 (schema)Input schema using Zod for validating parameters of the get-action tool.{ actionId: z.string().describe('ID of the action to retrieve'), display: z.boolean().optional().describe('Include display information'), entities: z.boolean().optional().describe('Include entity information'), fields: z.string().optional().describe('Comma-separated list of fields to include'), member: z.boolean().optional().describe('Include member information'), memberCreator: z.boolean().optional().describe('Include member creator information'), memberCreatorFields: z.string().optional().describe('Comma-separated list of member creator fields'), memberFields: z.string().optional().describe('Comma-separated list of member fields'), },
- src/tools/actions.ts:12-71 (registration)Registration of the 'get-action' tool with McpServer using server.tool(), including name, input schema, and handler function.'get-action', { actionId: z.string().describe('ID of the action to retrieve'), display: z.boolean().optional().describe('Include display information'), entities: z.boolean().optional().describe('Include entity information'), fields: z.string().optional().describe('Comma-separated list of fields to include'), member: z.boolean().optional().describe('Include member information'), memberCreator: z.boolean().optional().describe('Include member creator information'), memberCreatorFields: z.string().optional().describe('Comma-separated list of member creator fields'), memberFields: z.string().optional().describe('Comma-separated list of member fields'), }, async ({ actionId, display, entities, fields, member, memberCreator, memberCreatorFields, memberFields }) => { try { if (!credentials.apiKey || !credentials.apiToken) { return { content: [ { type: 'text', text: 'Trello API credentials are not configured', }, ], isError: true, }; } const url = new URL(`https://api.trello.com/1/actions/${actionId}`); url.searchParams.append('key', credentials.apiKey); url.searchParams.append('token', credentials.apiToken); if (display !== undefined) url.searchParams.append('display', display.toString()); if (entities !== undefined) url.searchParams.append('entities', entities.toString()); if (fields) url.searchParams.append('fields', fields); if (member !== undefined) url.searchParams.append('member', member.toString()); if (memberCreator !== undefined) url.searchParams.append('memberCreator', memberCreator.toString()); if (memberCreatorFields) url.searchParams.append('memberCreator_fields', memberCreatorFields); if (memberFields) url.searchParams.append('member_fields', memberFields); const response = await fetch(url.toString()); const data = await response.json(); return { content: [ { type: 'text', text: JSON.stringify(data), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error getting action: ${error}`, }, ], isError: true, }; } } );