Skip to main content
Glama

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
NameRequiredDescriptionDefault
device_idYesNinjaOne device ID
page_sizeNoNumber of activity entries to return
afterNoActivity ID cursor for pagination
activity_typeNoFilter by activity type (e.g., CONDITION, PATCH, SCRIPT)

Implementation Reference

  • 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,
        );
      }
    },
  • 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)"),
    },
  • 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,
          );
        }
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fredriksknese/mcp-ninjaone'

If you have feedback or need assistance with the MCP directory API, please join our Discord server