Skip to main content
Glama
adm-alvin-decruz

New Relic MCP Server

update_widget

Update an existing widget on a New Relic dashboard by modifying its NRQL query, type, title, and advanced chart configuration.

Instructions

Update an existing widget on a dashboard.

Use the optional raw_configuration parameter to control advanced chart display settings. When provided, it is sent as rawConfiguration to NerdGraph and takes precedence over the typed configuration. The raw_configuration object should include nrqlQueries plus any display options.

IMPORTANT: nrqlQueries uses accountIds (array) not accountId (scalar): "nrqlQueries": [{"accountIds": [123456], "query": "SELECT ..."}] This is auto-populated from widget_query if omitted.

Fixed Y-Axis Range (left axis): {"yAxisLeft": {"min": 0, "max": 500, "zero": false}}

Dual Y-Axis (second axis on right): IMPORTANT: requires the COMPLETE rawConfiguration. NR appends aggregation suffix to series names automatically (percentile() → " (99%)", average() → no suffix). Query alias should NOT include the suffix. See add_widget_to_dashboard for the full dual y-axis example.

Hide Legend: {"legend": {"enabled": false}}

Facet - show/hide Other series: {"facet": {"showOtherSeries": true}}

Ignore dashboard time picker: {"platformOptions": {"ignoreTimeRange": true}}

Threshold label visibility: {"thresholds": {"isLabelVisible": true}}

Chart line style: {"chartStyles": {"lineInterpolation": "linear"}} (or "step", "smooth")

Note: logarithmic scale is not supported by New Relic for line/area charts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
page_guidYesPage GUID where the widget is located
widget_idYesWidget ID to update
widget_typeNoNew widget type (line, area, bar, pie, table, billboard, etc.)line
widget_queryNoNew NRQL query for the widget
widget_titleNoNew title for the widget
raw_configurationNoAdvanced chart display configuration sent as rawConfiguration to NerdGraph. Must include 'nrqlQueries' array with accountIds (array, not scalar). Supports: yAxisLeft ({min, max, zero}), yAxisRight ({zero, series:[{name}]}), legend ({enabled}), facet ({showOtherSeries}), platformOptions ({ignoreTimeRange}), thresholds ({isLabelVisible}), chartStyles ({lineInterpolation: linear/step/smooth}). Note: logarithmic scale is NOT supported. Overrides the typed configuration when provided.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does substantial work here: raw_configuration takes precedence over typed configuration, nrqlQueries requires accountIds (array) and is auto-populated from widget_query if omitted, New Relic appends suffixes to series names, and logarithmic scale is unsupported. This gives real operational insight beyond a generic 'update' statement, though it does not cover return values or authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but the length is justified by the complexity of raw_configuration and the need to show exact JSON shapes. The main purpose is front-loaded, and the examples are organized by feature with clear headings. It could be tightened slightly, but most sentences earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with six parameters, a nested object, and no output schema, the description covers the non-obvious behaviors thoroughly. The obvious parameters page_guid and widget_id are self-explanatory, and the raw_configuration details are extensive. The only notable gap is the lack of any mention of return values or errors, but that is minor for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful value beyond the schema by providing concrete JSON examples for yAxisLeft, dual y-axis, legend, facet, platformOptions, thresholds, and chartStyles. It also highlights the critical accountIds vs accountId pitfall and the auto-population behavior, which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Update an existing widget on a dashboard,' a specific verb and resource that clearly defines the operation. It is distinct from sibling tools like add_widget_to_dashboard and delete_widget, and even references add_widget_to_dashboard in the body, reinforcing the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'existing widget' implies this is for modifying an existing widget rather than creating or deleting one, but there is no explicit guidance about when to choose this over add_widget_to_dashboard or delete_widget. The mention of add_widget_to_dashboard is for an example, not for usage routing, so the guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.