New Relic MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NEW_RELIC_REGION | No | New Relic region (US or EU) | US |
| NEW_RELIC_API_KEY | Yes | New Relic User API key (starts with NRAK- or NRAA-) | |
| NEW_RELIC_TIMEOUT | No | Timeout in seconds for API requests | 30 |
| NEW_RELIC_ACCOUNT_ID | Yes | Your New Relic account ID |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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_performanceC | 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_deploymentsC | 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_dashboardA | Create a new New Relic dashboard |
| add_widget_to_dashboardA | Add a widget to an existing dashboard (requires dashboard GUID and widget configuration). Use the optional IMPORTANT: Fixed Y-Axis Range (left axis):
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(): Hide Legend:
Facet - show/hide Other series:
Ignore dashboard time picker:
Threshold label visibility (shows/hides threshold labels on chart):
Chart line style:
Deployment markers:
Combined example (fixed range + no legend): Note: logarithmic scale is not supported by New Relic for line/area charts. |
| search_all_dashboardsA | Search through dashboards with local filtering (retrieves max 200 from API, then searches locally). Better for complex searches. |
| get_dashboard_widgetsA | Get all widgets from a dashboard with their details and IDs |
| update_widgetA | Update an existing widget on a dashboard. Use the optional IMPORTANT: Fixed Y-Axis Range (left axis):
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:
Facet - show/hide Other series:
Ignore dashboard time picker:
Threshold label visibility:
Chart line style:
Note: logarithmic scale is not supported by New Relic for line/area charts. |
| delete_widgetB | Delete a widget from a dashboard |
| delete_dashboardB | Delete a dashboard by GUID |
| create_alert_policyC | Create a new alert policy |
| create_nrql_conditionB | Create a NRQL alert condition |
| create_notification_destinationC | Create a notification destination (email, webhook, Slack, etc.) |
| create_notification_channelB | Create a notification channel linked to a destination |
| create_workflowC | 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_policyB | Delete an alert policy by ID |
| update_nrql_conditionA | Update an existing NRQL alert condition |
| delete_nrql_conditionA | Delete a NRQL alert condition by ID |
| delete_notification_destinationA | Delete a notification destination by ID |
| delete_workflowB | 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. |
| list_muting_rulesA | List all muting rules in the account with their conditions and schedules |
| delete_muting_ruleB | Delete a muting rule by ID |
| list_alert_policiesA | List all alert policies in the account |
| list_alert_conditionsB | List alert conditions with optional filters by policy, name, or NRQL query |
| list_notification_destinationsB | List all notification destinations |
| list_notification_channelsB | List all notification channels |
| list_workflowsA | 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. |
| list_synthetic_monitorsA | 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| New Relic Applications | List of applications monitored by New Relic |
| Recent Incidents | Recent incidents from New Relic |
| New Relic Dashboards | List of available dashboards |
| Alert Policies | List of alert policies and their configurations |
| Alert Conditions | List of all alert conditions across policies |
| Alert Workflows | List of alert workflows and notification configurations |
TDQS
Scored across 45 tools
Most tools target distinct resource-action pairs, but get_incidents and get_alert_violations clearly overlap (the latter explicitly includes incidents), and get_dashboards vs search_all_dashboards have murky boundaries since both retrieve the same 200-dashboard limit and both support searching. The descriptions do not effectively differentiate these pairs.
The vast majority follow a clean verb_noun convention: get_*, list_*, create_*, update_*, delete_*. Minor deviations exist such as entity_search vs search_all_dashboards (noun-first vs verb-first) and decode_entity_guid, but the overall pattern is predictable and readable.
45 tools is well into the overcrowded range, especially for a single platform. The surface includes roughly 13 alerting tools, 9 dashboard tools, and 6 entity-tag tools, indicating sub-domains that could be consolidated without losing capability.
Dashboards, alert policies, NRQL conditions, and entity tags have solid CRUD coverage, and query_nrql acts as a powerful escape hatch. However, notification destinations/channels, workflows, and muting rules all lack update operations, and synthetics and SLOs are read-only, leaving agents with delete-and-recreate workarounds and asymmetric capabilities.