Skip to main content
Glama
alanhoff

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`