create_analytics_report_request
Generate analytics reports for App Store apps by specifying an app ID and choosing between ongoing daily data or one-time historical snapshots.
Instructions
Create a new analytics report request for an app
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The ID of the app to generate analytics reports for | |
| accessType | No | Access type for the analytics report (ONGOING for daily data, ONE_TIME_SNAPSHOT for historical data) | ONE_TIME_SNAPSHOT |
Implementation Reference
- src/handlers/analytics.ts:22-48 (handler)The handler function that implements the core logic: validates input, constructs the API request body, and calls the AppStoreConnectClient to POST to /analyticsReportRequests.async createAnalyticsReportRequest(args: { appId: string; accessType?: AnalyticsAccessType; }): Promise<AnalyticsReportRequestResponse> { const { appId, accessType = "ONE_TIME_SNAPSHOT" } = args; validateRequired(args, ['appId']); const requestBody: AnalyticsReportRequest = { data: { type: "analyticsReportRequests", attributes: { accessType }, relationships: { app: { data: { id: appId, type: "apps" } } } } }; return this.client.post<AnalyticsReportRequestResponse>('/analyticsReportRequests', requestBody); }
- src/index.ts:750-767 (schema)MCP tool JSON schema defining input parameters: appId (required string), accessType (optional enum with default). Part of the tools list returned by listTools.name: "create_analytics_report_request", description: "Create a new analytics report request for an app", inputSchema: { type: "object", properties: { appId: { type: "string", description: "The ID of the app to generate analytics reports for" }, accessType: { type: "string", enum: ["ONGOING", "ONE_TIME_SNAPSHOT"], description: "Access type for the analytics report (ONGOING for daily data, ONE_TIME_SNAPSHOT for historical data)", default: "ONE_TIME_SNAPSHOT" } }, required: ["appId"] }
- src/index.ts:1388-1389 (registration)Tool call dispatch in the MCP CallToolRequest handler: maps the tool name to invocation of the analyticsHandlers.createAnalyticsReportRequest method.case "create_analytics_report_request": return { toolResult: await this.analyticsHandlers.createAnalyticsReportRequest(args as any) };
- src/types/analytics.ts:8-50 (schema)TypeScript type definitions for input (AnalyticsReportRequest) and output (AnalyticsReportRequestResponse), plus AnalyticsAccessType enum used in the handler.export type AnalyticsAccessType = 'ONGOING' | 'ONE_TIME_SNAPSHOT'; export interface AnalyticsReportRequest { data: { type: 'analyticsReportRequests'; attributes: { accessType: AnalyticsAccessType; }; relationships: { app: { data: { id: string; type: 'apps'; }; }; }; }; } export interface AnalyticsReportRequestResponse { data: { id: string; type: 'analyticsReportRequests'; attributes: { accessType: AnalyticsAccessType; stoppedDueToInactivity: boolean; }; relationships: { app: { data: { id: string; type: 'apps'; }; }; reports: { data: Array<{ id: string; type: 'analyticsReports'; }>; }; }; }; }