Skip to main content

MCP server to execute New Relic NRQL queries via NerdGraph

Project description

New Relic MCP Server

MCP server that executes NRQL queries against New Relic via the NerdGraph GraphQL API.

Tools

  • execute_nrql — Run an NRQL query against a single New Relic account. Parameters: query (required), account_id (optional if NEW_RELIC_ACCOUNT_ID is set), timeout_seconds (optional, 1–70).

Requirements

  • Python 3.10+
  • uv (recommended) or pip
  • A New Relic user API key with NerdGraph access

Environment variables

Variable Required Description
NEW_RELIC_API_KEY Yes New Relic user API key for NerdGraph. Create at one.newrelic.com.
NEW_RELIC_REGION No us (default) or eu for NerdGraph endpoint.
NEW_RELIC_ACCOUNT_ID No Default account ID when not passed to execute_nrql.

Copy .env.example to .env and set NEW_RELIC_API_KEY (and optionally the others).

Install

The recommended way is via uvx — no separate install step needed:

{
  "mcpServers": {
    "newrelic": {
      "command": "uvx",
      "args": ["newrelic-mcp"],
      "env": {
        "NEW_RELIC_API_KEY": "YOUR_API_KEY",
        "NEW_RELIC_REGION": "us",
        "NEW_RELIC_ACCOUNT_ID": "YOUR_ACCOUNT_ID"
      }
    }
  }
}

uvx fetches and runs the package from PyPI automatically.

Or install explicitly with pip:

pip install newrelic-mcp

Claude Code setup

Run this command to register the server (one-time setup):

claude mcp add newrelic --env NEW_RELIC_API_KEY=YOUR_API_KEY --env NEW_RELIC_REGION=us -- uvx newrelic-mcp

Or add it manually to your Claude Code MCP config (~/.claude/settings.json or project .claude/settings.json):

{
  "mcpServers": {
    "newrelic": {
      "command": "uvx",
      "args": ["newrelic-mcp"],
      "env": {
        "NEW_RELIC_API_KEY": "YOUR_API_KEY",
        "NEW_RELIC_REGION": "us"
      }
    }
  }
}

Cursor setup

Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-level) and add:

{
  "mcpServers": {
    "newrelic": {
      "command": "uvx",
      "args": ["newrelic-mcp"],
      "env": {
        "NEW_RELIC_API_KEY": "YOUR_API_KEY",
        "NEW_RELIC_REGION": "us",
        "NEW_RELIC_ACCOUNT_ID": "YOUR_ACCOUNT_ID"
      }
    }
  }
}

Then restart Cursor. Alternatively, use the UI: Cursor SettingsFeaturesMCP → add a new server with command uvx, arg newrelic-mcp, and the env vars above.

Codex CLI setup

Edit ~/.codex/config.yaml and add:

mcpServers:
  newrelic:
    type: stdio
    command: uvx
    args:
      - newrelic-mcp
    env:
      NEW_RELIC_API_KEY: "YOUR_API_KEY"
      NEW_RELIC_REGION: "us"
      NEW_RELIC_ACCOUNT_ID: "YOUR_ACCOUNT_ID"

Then restart Codex. For project-level config, add the same block to codex.yaml in your project root.

Local development

From the project root:

uv sync
uv run main.py

For debugging with HTTP transport:

MCP_TRANSPORT=http uv run main.py

Then connect to http://localhost:8000/mcp with the MCP Inspector.

Do not commit .env or any file containing your API key.

Example prompts

Use these in Cursor (or any MCP client) to run NRQL via the New Relic MCP server:

  • Run a simple query:
    "Run this NRQL: SELECT count(*) FROM Transaction SINCE 1 HOUR AGO"

  • Query by account:
    "Execute SELECT average(duration) FROM Transaction FACET name SINCE 1 day ago for account ID 1234567"

  • By Adobe Commerce project:
    "Query New Relic for project abc123: show me transaction errors in the last 24 hours"
    "Get the last 100 logs for project xyz789"
    "List Redis samples for project my-project in the last hour"

  • Explore an entity:
    "What attributes are available on the Log entity? Run a discovery query."
    "Show me one Transaction row so I can see the fields"

  • Aggregations and facets:
    "Count transactions per app name in the last 6 hours"
    "Average response time by transaction name for the last day"

  • Time range:
    "Run: SELECT * FROM Log WHERE message IS NOT NULL SINCE 2 days ago LIMIT 50"

Set NEW_RELIC_ACCOUNT_ID in the MCP config (or pass it in the prompt) when you are not using an Adobe Commerce project ID; the agent can resolve project ID → account ID when needed.

NRQL and rate limits

  • Queries must be valid NRQL (e.g. SELECT count(*) FROM Transaction SINCE 1 HOUR AGO).
  • New Relic enforces NRQL rate limits. This server does not retry; failed requests surface as tool errors.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

newrelic_mcp-0.1.1.tar.gz (51.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

newrelic_mcp-0.1.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file newrelic_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: newrelic_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 51.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for newrelic_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 41d95f90d8a2022079b7502cea3ff79c0025b91434a1f9cde3e58b7b992592f3
MD5 c2fcb719e375459d6b24e217b47d7ebd
BLAKE2b-256 e868b4f06f38a8fdb6277c2ff6b8d1bd714261ac8f5f6ca9dc8183b22f22aafb

See more details on using hashes here.

File details

Details for the file newrelic_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: newrelic_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for newrelic_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 981d8a18b667644cf1dcf47b4330c2aa3ee2108ee13dd9c99a334e5991eda323
MD5 6c341ec65501a30457e0fe3734be4dc3
BLAKE2b-256 46acae3cd7e63c75a33e0350e8be8d38ac78e9b2fe9ac5321985c149bbfe745e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page