Skip to main content
Glama
Sicks3c

HackerOne MCP Server

by Sicks3c

get_report_activities

Retrieve the activity timeline for a HackerOne report, including comments, state changes, bounty awards, and triage responses.

Instructions

Get the activity timeline of a report: comments, state changes, bounty awards, and triage responses.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
report_idYesThe HackerOne report ID
page_sizeNoNumber of activities to return (default 50)

Implementation Reference

  • The function `getReportActivities` performs the core logic, fetching and transforming report activity data.
    export async function getReportActivities(
      reportId: string,
      _pageSize = 50
    ) {
      // Activities are included in the report response under relationships
      const data = await h1Fetch(`/hackers/reports/${reportId}`);
      const activities = data.data?.relationships?.activities?.data ?? [];
    
      return activities.map((a: any) => ({
        id: a.id,
        type: a.type,
        message: a.attributes.message,
        created_at: a.attributes.created_at,
        internal: a.attributes.internal,
        automated_response: a.attributes.automated_response,
        actor_type: a.relationships?.actor?.data?.type ?? null,
        actor:
          a.relationships?.actor?.data?.attributes?.username ??
          a.relationships?.actor?.data?.attributes?.name ??
          null,
      }));
    }
  • src/index.ts:142-165 (registration)
    The `get_report_activities` tool is registered using `server.tool` and calls the handler.
    // ── Tool: get_report_activities ────────────────────────────────────
    server.tool(
      "get_report_activities",
      "Get the activity timeline of a report: comments, state changes, bounty awards, and triage responses.",
      {
        report_id: z.string().describe("The HackerOne report ID"),
        page_size: z
          .number()
          .min(1)
          .max(100)
          .optional()
          .describe("Number of activities to return (default 50)"),
      },
      async ({ report_id, page_size }) => {
        try {
          const activities = await getReportActivities(report_id, page_size);
          return {
            content: [
              {
                type: "text" as const,
                text: JSON.stringify(activities, null, 2),
              },
            ],
          };

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/Sicks3c/hackerone-mcp-server'

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