get_device_activities
Retrieve recent activity logs for a NinjaOne device to monitor events like alerts, script executions, and status changes.
Instructions
Get recent activity log for a specific device. Shows events such as alerts triggered, scripts run, and status changes.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | NinjaOne device ID | |
| page_size | No | Number of activity entries to return | |
| after | No | Activity ID cursor for pagination | |
| activity_type | No | Filter by activity type (e.g., CONDITION, PATCH, SCRIPT) |
Implementation Reference
- src/tools/devices.ts:86-105 (handler)Handler function for get_device_activities tool that makes an API call to /device/${device_id}/activities with pagination and activity type filtering, then returns JSON results or error message
async ({ device_id, page_size, after, activity_type }) => { const params: Record<string, string> = { pageSize: String(page_size), }; if (after !== undefined) params.after = String(after); if (activity_type) params.activityType = activity_type; try { const results = await client.get( `/device/${device_id}/activities`, params, ); return toolResult(JSON.stringify(results, null, 2)); } catch (error) { return toolResult( `Error fetching device activities: ${error}`, true, ); } }, - src/tools/devices.ts:70-85 (schema)Zod schema definition for get_device_activities tool parameters: device_id (required number), page_size (optional number, default 50), after (optional number for pagination), activity_type (optional string filter)
{ device_id: z.number().describe("NinjaOne device ID"), page_size: z .number() .optional() .default(50) .describe("Number of activity entries to return"), after: z .number() .optional() .describe("Activity ID cursor for pagination"), activity_type: z .string() .optional() .describe("Filter by activity type (e.g., CONDITION, PATCH, SCRIPT)"), }, - src/tools/devices.ts:66-106 (registration)Registration of get_device_activities tool with the MCP server, including tool name, description, parameter schema, and handler function
// ── Get Device Activities ──────────────────────────────────────────── server.tool( "get_device_activities", "Get recent activity log for a specific device. Shows events such as alerts triggered, scripts run, and status changes.", { device_id: z.number().describe("NinjaOne device ID"), page_size: z .number() .optional() .default(50) .describe("Number of activity entries to return"), after: z .number() .optional() .describe("Activity ID cursor for pagination"), activity_type: z .string() .optional() .describe("Filter by activity type (e.g., CONDITION, PATCH, SCRIPT)"), }, async ({ device_id, page_size, after, activity_type }) => { const params: Record<string, string> = { pageSize: String(page_size), }; if (after !== undefined) params.after = String(after); if (activity_type) params.activityType = activity_type; try { const results = await client.get( `/device/${device_id}/activities`, params, ); return toolResult(JSON.stringify(results, null, 2)); } catch (error) { return toolResult( `Error fetching device activities: ${error}`, true, ); } }, );