newrelic-mcp
by alanhoff
README.md
# newrelic-mcp
MCP server for New Relic workflows (NRQL, NerdGraph, entity lookup, logs, alerts, dashboards, and service levels).
## Prerequisites
- Node.js 22+ (this repo uses `npx`; `.nvmrc` is `v24`)
- New Relic account ID
- New Relic user API key
Required environment variables:
- `ACCOUNT_ID` (numeric account id)
- `API_KEY` (New Relic user API key)
- `NERDGRAPH_URL` (usually `https://api.newrelic.com/graphql`)
> **EU region:** If your New Relic dashboard is at `one.eu.newrelic.com`, use `https://api.eu.newrelic.com/graphql` as your `NERDGRAPH_URL` instead.
## Quick Start
Run the MCP server directly:
```bash
# US region (default)
ACCOUNT_ID=123456 \
API_KEY=your_new_relic_user_key \
NERDGRAPH_URL=https://api.newrelic.com/graphql \
npx -y git@github.com:alanhoff/newrelic-mcp.git
# EU region
ACCOUNT_ID=123456 \
API_KEY=your_new_relic_user_key \
NERDGRAPH_URL=https://api.eu.newrelic.com/graphql \
npx -y git@github.com:alanhoff/newrelic-mcp.git
```
This server speaks MCP over stdio, so it is normally started by an MCP client/agent.
## Install In Common CLI Agents
> **EU region:** Replace `https://api.newrelic.com/graphql` with `https://api.eu.newrelic.com/graphql` in all configs below if your account is on the EU region.
### Codex CLI
Add this to `~/.codex/config.toml`:
```toml
[mcp_servers.newrelic]
command = "npx"
args = ["-y", "git@github.com:alanhoff/newrelic-mcp.git"]
env = { ACCOUNT_ID = "123456", API_KEY = "your_new_relic_user_key", NERDGRAPH_URL = "https://api.newrelic.com/graphql" }
```
Verify:
```bash
codex mcp list
```
### Claude Code CLI
Use the CLI installer:
```bash
claude mcp add-json newrelic '{"type":"stdio","command":"npx","args":["-y","git@github.com:alanhoff/newrelic-mcp.git"],"env":{"ACCOUNT_ID":"123456","API_KEY":"your_new_relic_user_key","NERDGRAPH_URL":"https://api.newrelic.com/graphql"}}'
```
Verify:
```bash
claude mcp get newrelic
```
#### Multiple Environments (Staging + Prod)
Name each MCP server with an environment suffix to run staging and prod configs side by side — Claude Code treats each name as a separate server.
```bash
claude mcp add-json newrelic-staging '{"type":"stdio","command":"npx","args":["-y","git@github.com:alanhoff/newrelic-mcp.git"],"env":{"ACCOUNT_ID":"111111","API_KEY":"your_staging_api_key","NERDGRAPH_URL":"https://api.newrelic.com/graphql"}}'
claude mcp add-json newrelic-prod '{"type":"stdio","command":"npx","args":["-y","git@github.com:alanhoff/newrelic-mcp.git"],"env":{"ACCOUNT_ID":"222222","API_KEY":"your_prod_api_key","NERDGRAPH_URL":"https://api.newrelic.com/graphql"}}'
```
Verify both:
```bash
claude mcp get newrelic-staging
claude mcp get newrelic-prod
```
Both servers stay registered and available at same time — pick per query which one (`newrelic-staging` or `newrelic-prod`) tool calls target. Same pattern works for any env split (dev/prod, region A/region B), just swap suffix and `ACCOUNT_ID`/`API_KEY`/`NERDGRAPH_URL` per env.
### Gemini CLI
Add this to `~/.gemini/settings.json` (or `.gemini/settings.json` for project scope):
```json
{
"mcpServers": {
"newrelic": {
"command": "npx",
"args": ["-y", "git@github.com:alanhoff/newrelic-mcp.git"],
"env": {
"ACCOUNT_ID": "123456",
"API_KEY": "your_new_relic_user_key",
"NERDGRAPH_URL": "https://api.newrelic.com/graphql"
}
}
}
}
```
Verify inside Gemini CLI:
```text
/mcp
```
### Cursor (`cursor-agent` CLI)
Add this to `~/.cursor/mcp.json` (or `.cursor/mcp.json` for project scope):
```json
{
"mcpServers": {
"newrelic": {
"command": "npx",
"args": ["-y", "git@github.com:alanhoff/newrelic-mcp.git"],
"env": {
"ACCOUNT_ID": "123456",
"API_KEY": "your_new_relic_user_key",
"NERDGRAPH_URL": "https://api.newrelic.com/graphql"
}
}
}
}
```
Verify:
```bash
cursor-agent mcp list
cursor-agent mcp list-tools newrelic
```
## Install The Skills
This repo ships three skills:
- `newrelic-entity-scout`
- `newrelic-incident-correlation`
- `newrelic-nrql-debug-ladder`
If you are running inside this repository with `AGENTS.md`, they are already available from `.agents/skills/`.
To install them globally for Codex:
```bash
mkdir -p ~/.codex/skills
for skill in newrelic-entity-scout newrelic-incident-correlation newrelic-nrql-debug-ladder; do
cp -R ".agents/skills/$skill" "$HOME/.codex/skills/$skill"
done
```
Alternative (keep them synced to this repo with symlinks):
```bash
mkdir -p ~/.codex/skills
for skill in newrelic-entity-scout newrelic-incident-correlation newrelic-nrql-debug-ladder; do
ln -sfn "$(pwd)/.agents/skills/$skill" "$HOME/.codex/skills/$skill"
done
```
## Local Development
```bash
npm install
npm test
```
Main server entrypoint: `index.js`
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues