Skip to main content
Glama
thrashy

New Relic MCP Server

by thrashy

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NEW_RELIC_REGIONNoRegion: US (default) or EUUS
NEW_RELIC_API_KEYYesYour New Relic User API key (starts with NRAK- or NRAA-)
NEW_RELIC_TIMEOUTNoHTTP request timeout in seconds (default 30)30
NEW_RELIC_ACCOUNT_IDYesYour New Relic account ID

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
query_nrqlA

Execute a NRQL query against New Relic. Common event types: Transaction, TransactionError, Span, Log, Metric, KeyTransaction, ExternalCall, SyntheticCheck, PageView, MobileSession. Tips: Use SINCE X hours/days ago for time ranges (e.g. SINCE 3 hours ago). For high-volume apps, use shorter time windows (1-3 hours) to avoid query timeouts. Use TIMESERIES for trend data over time. Use FACET for grouping results. Prefer uniqueCount() over uniques() for high-cardinality attributes. Use LIMIT to cap result rows (default is 10 for FACET queries). Time range formats: SINCE 1 hour ago, SINCE '2024-01-15 00:00:00', SINCE timestamp.

get_app_performanceB

Get performance metrics for a specific application

get_app_errorsC

Get error metrics for a specific application

get_incidentsC

Get recent incidents from New Relic

get_infrastructure_hostsC

Get infrastructure hosts and their metrics

get_alert_violationsC

Get recent alert violations and incidents

get_deploymentsB

Get deployment markers and their impact

get_dashboardsA

Get New Relic dashboards (max 200 due to API limits). Use search parameter to find specific dashboards efficiently.

create_dashboardB

Create a new New Relic dashboard

update_dashboardA

Rename a dashboard and/or update its description by GUID. Pages and widgets are preserved unchanged.

add_widget_to_dashboardA

Add a widget to an existing dashboard (requires dashboard GUID and widget configuration).

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: dual y-axis requires the COMPLETE rawConfiguration (not just yAxisRight). NR automatically appends an aggregation suffix to series names: percentile() → " (99%)", average() → no suffix. The alias in the query should NOT include the suffix — NR adds it. Use the rendered name in series[].name. Example — query alias is 'My Series', NR renders it as 'My Series (99%)' for percentile():

{
  "nrqlQueries": [{"accountIds": [123456], "query": "SELECT count(*) AS 'Left', percentile(duration, 99) AS 'My Series' FROM ... TIMESERIES"}],
  "chartStyles": {"lineInterpolation": "linear"},
  "facet": {"showOtherSeries": false},
  "legend": {"enabled": true},
  "markers": {"displayedTypes": {"criticalViolations": false, "deployments": true, "relatedDeployments": true, "warningViolations": false}},
  "platformOptions": {"ignoreTimeRange": false},
  "thresholds": {"isLabelVisible": true},
  "yAxisLeft": {"zero": true},
  "yAxisRight": {"zero": true, "series": [{"name": "My Series (99%)"}]}
}

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

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

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

Threshold label visibility (shows/hides threshold labels on chart): {"thresholds": {"isLabelVisible": true}}

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

Deployment markers: {"markers": {"displayedTypes": {"deployments": true, "relatedDeployments": true, "criticalViolations": false, "warningViolations": false}}}

Combined example (fixed range + no legend):

{
  "nrqlQueries": [{"accountIds": [123456], "query": "SELECT count(*) FROM Log TIMESERIES"}],
  "yAxisLeft": {"min": 0, "max": 1000, "zero": true},
  "legend": {"enabled": false}
}

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

Placement (layout): dashboards use a 12-column grid (column is 1-based; height 1 ≈ one billboard row, charts are usually 3). Without layout, New Relic auto-places the widget full-size at the bottom — fine for one-offs, wrong for designed dashboards. Compact KPI billboard: {"column": 1, "row": 1, "width": 2, "height": 2}; chart in a 3-across row: {"column": 5, "row": 4, "width": 4, "height": 3}.

get_dashboard_widgetsC

Get all widgets from a dashboard with their details and IDs

update_widgetA

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. See the add_widget_to_dashboard description for the full rawConfiguration reference.

Update-specific notes:

  • Omit widget_type to keep the widget's current visualization.

  • Omit layout to keep the widget's current position and size.

delete_widgetA

Delete a widget from a dashboard

delete_dashboardB

Delete a dashboard by GUID

create_alert_policyC

Create a new alert policy

create_nrql_conditionC

Create a NRQL alert condition

create_notification_destinationC

Create a notification destination (email, webhook, Slack, etc.)

create_notification_channelC

Create a notification channel linked to a destination

create_workflowA

Create a workflow to connect alert policies to notification channels

update_alert_policyB

Update an existing alert policy (name and/or incident preference)

delete_alert_policyC

Delete an alert policy by ID

update_nrql_conditionB

Update an existing NRQL alert condition

delete_nrql_conditionA

Delete a NRQL alert condition by ID

delete_notification_destinationB

Delete a notification destination by ID

delete_notification_channelB

Delete a notification channel by ID

update_workflowA

Update an existing workflow. Only the provided fields are changed. Use destination_configurations to replace the notification channels and issues_filter to replace the filter.

delete_workflowC

Delete a workflow by ID

create_muting_ruleA

Create a muting rule to suppress alert notifications during scheduled windows. Use conditions to match specific policies, condition names, or entity attributes. Use schedule for recurring windows (DAILY, WEEKLY). Condition attributes: policyId, policyName, conditionId, conditionName, entity.name, entity.type.

update_muting_ruleA

Update an existing muting rule. Only the provided fields are changed; condition and schedule shapes match create_muting_rule.

list_muting_rulesA

List all muting rules in the account with their conditions and schedules

delete_muting_ruleA

Delete a muting rule by ID

list_alert_policiesA

List all alert policies in the account

list_alert_conditionsA

List alert conditions with optional filters by policy, name, or NRQL query

list_notification_destinationsB

List all notification destinations

list_notification_channelsA

List all notification channels

list_workflowsB

List all alert workflows

entity_searchA

Search for New Relic entities (APM apps, hosts, synthetic monitors, browsers, etc.) by name, type, domain, or tags. Returns GUIDs, alert severity, and metadata. Use domain values: APM, INFRA, SYNTH, BROWSER, MOBILE, EXT. Use type values: APPLICATION, HOST, MONITOR, KEY_TRANSACTION, etc. Use minimal_output=true to reduce response size (omits tags and type-specific fields). Use limit to cap results (default 25, max 200).

decode_entity_guidA

Decode a New Relic entity GUID (base64-encoded) to reveal its components: account ID, domain (APM, EXT, INFRA, etc.), entity type (APPLICATION, KEY_TRANSACTION, HOST, etc.), and domain ID. Useful for understanding what an entity GUID refers to without making an API call.

get_entityA

Look up a single New Relic entity by its GUID. Returns full details including name, type, domain, alert severity, account info, tags, permalink, and type-specific metadata (language for APM apps, monitor type for synthetics, host metrics for infra). Use entity_search to find GUIDs, or decode_entity_guid to inspect a GUID without an API call.

get_entity_tagsA

Get all tags for a New Relic entity by its GUID. Use entity_search to find GUIDs.

add_tags_to_entityB

Add or update tags on a New Relic entity. Tags are key-value pairs.

replace_tags_on_entityA

Replace ALL tags on a New Relic entity (overwrites existing tags). Use add_tags_to_entity to append instead.

delete_tags_from_entityA

Delete tag keys (and all their values) from a New Relic entity.

delete_tag_valuesA

Delete specific tag key-value pairs from an entity (keeps the key if other values remain).

list_service_levelsA

List all Service Level Indicators (SLIs/SLOs) for the account. Shows objectives, target percentages, time windows, and the NRQL queries used to measure good/valid events.

get_service_levelA

Get the full definitions (valid/good/bad event queries, SLI functions, objectives, time windows) of the Service Level Indicators attached to an entity. Accepts the GUID of the instrumented entity or of a SERVICE_LEVEL entity itself.

create_service_levelA

Create a Service Level Indicator on an entity. For SLIs over OTEL distribution metrics (FROM Metric), never use function COUNT (it counts pre-aggregated data points, not requests): use GET_FIELD for availability and GET_CDF_COUNT with a threshold for latency.

update_service_levelA

Update a Service Level Indicator (name, description, event queries, objectives) by its SERVICE_LEVEL entity GUID. Note: changing the SLI function on an existing SLI may not reset the engine's computation pipeline; if numbers stay wrong after an update, delete and recreate the SLI.

delete_service_levelA

Delete a Service Level Indicator by its SERVICE_LEVEL entity GUID. Requires the events-to-metrics delete capability on the account.

list_synthetic_monitorsB

List all synthetic monitors with their current status, success rate, monitor type (simple, scripted browser, API test, etc.), check period, and location health.

get_synthetic_resultsA

Get recent check results for a specific synthetic monitor. Shows pass/fail per location, duration, and error messages. Use list_synthetic_monitors to find monitor GUIDs.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
New Relic ApplicationsList of applications monitored by New Relic
Recent IncidentsRecent incidents from New Relic
New Relic DashboardsList of available dashboards
Alert PoliciesList of alert policies and their configurations
Alert ConditionsList of all alert conditions across policies
Alert WorkflowsList of alert workflows and notification configurations

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/thrashy/mcp-newrelic'

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