update_report
Modify an existing analytics report in Umami by updating its name, type, description, or parameters to reflect current data analysis needs.
Instructions
Update an existing saved report
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report UUID | |
| websiteId | No | Website UUID | |
| name | No | Report name | |
| type | No | Report type | |
| description | No | Report description | |
| parameters | No | Report-specific parameters (JSON object) |
Implementation Reference
- src/tools/reports.ts:60-87 (handler)The update_report tool is defined and implemented directly within the registerReportTools function in src/tools/reports.ts. It uses the MCP server instance to register the tool and handles the API call to update a report.
server.tool( "update_report", "Update an existing saved report", { reportId: z.string().describe("Report UUID"), websiteId: z.string().optional().describe("Website UUID"), name: z.string().optional().describe("Report name"), type: z .enum(["funnel", "retention", "utm", "goals", "insights", "revenue", "journey", "attribution"]) .optional() .describe("Report type"), description: z.string().optional().describe("Report description"), parameters: z .record(z.unknown()) .optional() .describe("Report-specific parameters (JSON object)"), }, async ({ reportId, websiteId, name, type, description, parameters }) => { const body: Record<string, unknown> = {}; if (websiteId !== undefined) body.websiteId = websiteId; if (name !== undefined) body.name = name; if (type !== undefined) body.type = type; if (description !== undefined) body.description = description; if (parameters !== undefined) body.parameters = parameters; const data = await client.call("POST", `/api/reports/${reportId}`, body); return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] }; } );