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 ifNEW_RELIC_ACCOUNT_IDis 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 Settings → Features → MCP → 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:
"ExecuteSELECT average(duration) FROM Transaction FACET name SINCE 1 day agofor 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41d95f90d8a2022079b7502cea3ff79c0025b91434a1f9cde3e58b7b992592f3
|
|
| MD5 |
c2fcb719e375459d6b24e217b47d7ebd
|
|
| BLAKE2b-256 |
e868b4f06f38a8fdb6277c2ff6b8d1bd714261ac8f5f6ca9dc8183b22f22aafb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
981d8a18b667644cf1dcf47b4330c2aa3ee2108ee13dd9c99a334e5991eda323
|
|
| MD5 |
6c341ec65501a30457e0fe3734be4dc3
|
|
| BLAKE2b-256 |
46acae3cd7e63c75a33e0350e8be8d38ac78e9b2fe9ac5321985c149bbfe745e
|