get-board-content-logs
Retrieve content change logs for Miro board items to track modifications, filter by date, board, or user, and monitor activity for enterprise organizations.
Instructions
Retrieves content change logs of board items (Enterprise only)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| orgId | Yes | Unique identifier of the organization | |
| from | Yes | Start date for filtering (ISO 8601 format) | |
| to | Yes | End date for filtering (ISO 8601 format) | |
| boardIds | No | List of board IDs to filter by | |
| emails | No | List of user emails to filter by | |
| cursor | No | Cursor for pagination | |
| limit | No | Maximum number of results to return | |
| sorting | No | Sort order for results |
Implementation Reference
- src/tools/getBoardContentLogs.ts:19-44 (handler)The handler function implementing the tool logic: constructs query parameters, converts dates, calls MiroClient's enterpriseBoardContentItemLogsFetch API, and returns the response or error.fn: async ({ orgId, from, to, boardIds, emails, cursor, limit, sorting }) => { try { const query: any = {}; if (boardIds) query.boardIds = boardIds; if (emails) query.emails = emails; if (cursor) query.cursor = cursor; if (limit) query.limit = limit; if (sorting) query.sorting = sorting; // Convert string dates to Date objects const fromDate = new Date(from); const toDate = new Date(to); const response = await MiroClient.getApi().enterpriseBoardContentItemLogsFetch( orgId, fromDate, toDate, query ); return ServerResponse.text(JSON.stringify(response.body, null, 2)); } catch (error) { process.stderr.write(`Error retrieving board content logs: ${error}\n`); return ServerResponse.error(error); } }
- Zod schema defining the input arguments for the 'get-board-content-logs' tool, including required orgId, from/to dates, and optional filters.args: { orgId: z.string().describe("Unique identifier of the organization"), from: z.string().describe("Start date for filtering (ISO 8601 format)"), to: z.string().describe("End date for filtering (ISO 8601 format)"), boardIds: z.array(z.string()).optional().nullish().describe("List of board IDs to filter by"), emails: z.array(z.string()).optional().nullish().describe("List of user emails to filter by"), cursor: z.string().optional().nullish().describe("Cursor for pagination"), limit: z.number().optional().nullish().describe("Maximum number of results to return"), sorting: z.enum(["asc", "desc"]).optional().nullish().describe("Sort order for results") },
- src/index.ts:207-207 (registration)Registers the getBoardContentLogsTool instance with the ToolBootstrapper in the main server setup..register(getBoardContentLogsTool);
- src/index.ts:106-106 (registration)Imports the getBoardContentLogsTool from its module for registration.import getBoardContentLogsTool from './tools/getBoardContentLogs.js';