retrieve_multiple_activities
Fetch activity logs for a Storyblok space, filtered by date, user, or activity type to monitor changes.
Instructions
Retrieves activity logs for a specified Storyblok space.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| created_at_gte | No | Filter activities created on or after this date (format: 'YYYY-MM-DD') | |
| created_at_lte | No | Filter activities created on or before this date (format: 'YYYY-MM-DD') | |
| by_owner_ids | No | Filter by user IDs | |
| types | No | Filter by activity types (e.g., 'Story', 'Component', 'Asset') |
Implementation Reference
- src/tools/activities.ts:10-58 (registration)Registration of the 'retrieve_multiple_activities' tool via server.tool(), including schema definition (lines 15-32) and handler logic (lines 33-57). The handler builds query params from optional filters (created_at_gte, created_at_lte, by_owner_ids, types), calls apiGet('/activities/', params), and returns the JSON response.
export function registerActivities(server: McpServer): void { // Tool: retrieve_multiple_activities server.tool( 'retrieve_multiple_activities', 'Retrieves activity logs for a specified Storyblok space.', { created_at_gte: z .string() .optional() .describe("Filter activities created on or after this date (format: 'YYYY-MM-DD')"), created_at_lte: z .string() .optional() .describe("Filter activities created on or before this date (format: 'YYYY-MM-DD')"), by_owner_ids: z .array(z.number()) .optional() .describe('Filter by user IDs'), types: z .array(z.string()) .optional() .describe("Filter by activity types (e.g., 'Story', 'Component', 'Asset')"), }, async ({ created_at_gte, created_at_lte, by_owner_ids, types }) => { try { const params: Record<string, string> = {}; if (created_at_gte) { params.created_at_gte = created_at_gte; } if (created_at_lte) { params.created_at_lte = created_at_lte; } if (by_owner_ids && by_owner_ids.length > 0) { params.by_owner_ids = by_owner_ids.join(','); } if (types && types.length > 0) { params.types = types.join(','); } const data = await apiGet('/activities/', params); return createJsonResponse(data); } catch (error) { if (error instanceof APIError) { return createErrorResponse(error); } throw error; } } ); - src/tools/activities.ts:15-32 (schema)Zod schema for 'retrieve_multiple_activities' input parameters: optional created_at_gte (string), created_at_lte (string), by_owner_ids (number array), and types (string array).
{ created_at_gte: z .string() .optional() .describe("Filter activities created on or after this date (format: 'YYYY-MM-DD')"), created_at_lte: z .string() .optional() .describe("Filter activities created on or before this date (format: 'YYYY-MM-DD')"), by_owner_ids: z .array(z.number()) .optional() .describe('Filter by user IDs'), types: z .array(z.string()) .optional() .describe("Filter by activity types (e.g., 'Story', 'Component', 'Asset')"), }, - src/tools/activities.ts:33-57 (handler)Handler function for 'retrieve_multiple_activities': builds query params from optional filters, makes GET request to /activities/ via apiGet, returns JSON response or error response on APIError.
async ({ created_at_gte, created_at_lte, by_owner_ids, types }) => { try { const params: Record<string, string> = {}; if (created_at_gte) { params.created_at_gte = created_at_gte; } if (created_at_lte) { params.created_at_lte = created_at_lte; } if (by_owner_ids && by_owner_ids.length > 0) { params.by_owner_ids = by_owner_ids.join(','); } if (types && types.length > 0) { params.types = types.join(','); } const data = await apiGet('/activities/', params); return createJsonResponse(data); } catch (error) { if (error instanceof APIError) { return createErrorResponse(error); } throw error; } } - src/tools/index.ts:13-13 (registration)Import of registerActivities from './activities.js', which is the registration function containing the tool definition.
import { registerActivities } from './activities.js'; - src/tools/index.ts:55-55 (registration)Registration call registerActivities(server) within registerAllTools, which triggers the tool registration on the MCP server.
registerActivities(server);