{"_id":"newrelic-mcp","_rev":"4-eec9588b2bb491a10f87391914157d1f","name":"newrelic-mcp","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"newrelic-mcp","version":"1.0.0","keywords":["mcp","modelcontextprotocol","newrelic","observability","monitoring","apm","nrql","alerts","synthetics","ai","llm","claude"],"author":{"name":"@cloudbring"},"license":"MIT","_id":"newrelic-mcp@1.0.0","maintainers":[{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"}],"homepage":"https://github.com/cloudbring/newrelic-mcp#readme","bugs":{"url":"https://github.com/cloudbring/newrelic-mcp/issues"},"bin":{"newrelic-mcp":"dist/server.js"},"dist":{"shasum":"7a240e843b69980ffad518467af79450c54fa003","tarball":"https://registry.npmjs.org/newrelic-mcp/-/newrelic-mcp-1.0.0.tgz","fileCount":35,"integrity":"sha512-4T33iibJ8bUb5k5DkmBMdO0mM1n8x8bAyfNXnsvbY6dynMFVttcprOErWBzqL97Y3KfkKarfsx3R8xUYp1AEdg==","signatures":[{"sig":"MEYCIQCE+ecOGolFzz1sW22ggkHFYInRcP8nIcu2gZY34yZYWgIhAI5RbRc9eCQMYfP1SVGi0R49EpyCPFyH34LMaV2WGI+L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76420},"main":"dist/server.js","types":"./dist/server.d.ts","gitHead":"0c106175067b0681c52aa14a16755af6c607d1bd","scripts":{"dev":"tsx src/server.ts","lint":"biome check .","test":"vitest","build":"tsc","start":"node dist/server.js","format":"biome format --write .","inspect":"npx @modelcontextprotocol/inspector node dist/server.js","prepare":"husky","test:ui":"vitest --ui","lint:fix":"biome check --write .","test:bdd":"vitest --run test/features/**/*.spec.ts","test:eval":"evalite","test:unit":"vitest --run test/**/*.test.ts","typecheck":"tsc --noEmit","inspect:dev":"npx @modelcontextprotocol/inspector tsx src/server.ts","inspect:env":"./scripts/run-inspector.sh","test:server":"node scripts/test-server.js","format:check":"biome format .","test:coverage":"vitest --coverage","test:eval:watch":"evalite watch","test:integration":"USE_REAL_ENV=true vitest"},"_npmUser":{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/cloudbring/newrelic-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Model Context Protocol server for New Relic observability platform integration","directories":{"doc":"docs","test":"test"},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.25.76","dotenv":"^17.2.1","winston":"^3.17.0","newrelic":"^13.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/instrumentation-winston":"^0.48.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^9.1.7","vitest":"^3.2.4","evalite":"^0.11.4","autoevals":"^0.0.130","ultracite":"^5.1.2","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","lint-staged":"^16.1.4","@biomejs/biome":"^2.1.3","@cucumber/gherkin":"^33.1.0","@vitest/coverage-v8":"^3.2.4","@amiceli/vitest-cucumber":"^5.1.2"},"_npmOperationalInternal":{"tmp":"tmp/newrelic-mcp_1.0.0_1754464228507_0.34349285577082744","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"newrelic-mcp","version":"1.1.2","keywords":["mcp","modelcontextprotocol","newrelic","observability","monitoring","apm","nrql","alerts","synthetics","ai","llm","claude"],"author":{"name":"@cloudbring"},"license":"MIT","_id":"newrelic-mcp@1.1.2","maintainers":[{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"}],"homepage":"https://github.com/cloudbring/newrelic-mcp#readme","bugs":{"url":"https://github.com/cloudbring/newrelic-mcp/issues"},"bin":{"newrelic-mcp":"dist/server.js"},"dist":{"shasum":"ac699f772099e912ed6617911e5c11762a7b4146","tarball":"https://registry.npmjs.org/newrelic-mcp/-/newrelic-mcp-1.1.2.tgz","fileCount":35,"integrity":"sha512-b1SMSNeK/n4Th+87fgHKH0T0PAbcFv34TkQXVbkuynScBLcOpmNI0D0NGoeCwD64qB/1Q7CG8G6T5u2WOmDWLg==","signatures":[{"sig":"MEUCIQDwq6Hc1lPJ6EYF+p4M1BNAy7V0elxg1DUBtFxigyfl1gIgF1kgb1wD4JTqw8a90wZ8TXHC2xGAq41M+/dbo08hvt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/newrelic-mcp@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85844},"main":"dist/server.js","types":"./dist/server.d.ts","gitHead":"9abdda7fc83a8d8122d6013241108e4e8e687330","scripts":{"dev":"tsx src/server.ts","lint":"npx ultracite lint","test":"vitest","ai:ci":"biome ci --max-diagnostics=none --reporter=summary .","build":"tsc","start":"node dist/server.js","format":"npx ultracite format","ai:lint":"biome lint --max-diagnostics=none --reporter=summary .","ai:test":"vitest --run","inspect":"npx @modelcontextprotocol/inspector node dist/server.js","prepare":"husky","test:ui":"vitest --ui","ai:check":"biome check --max-diagnostics=none --reporter=summary .","lint:fix":"npx ultracite format","test:bdd":"vitest --run test/features/**/*.spec.ts","ai:format":"biome format --write .","test:eval":"evalite","test:unit":"vitest --run test/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"vitest","inspect:dev":"npx @modelcontextprotocol/inspector tsx src/server.ts","inspect:env":"./scripts/run-inspector.sh","test:server":"node scripts/test-server.js","format:check":"npx ultracite lint","ai:test:watch":"vitest","test:coverage":"vitest --coverage","ai:format:check":"biome format .","test:eval:watch":"evalite watch","test:integration":"USE_REAL_ENV=true vitest"},"_npmUser":{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/cloudbring/newrelic-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for New Relic observability platform integration","directories":{"doc":"docs","test":"test"},"_nodeVersion":"20.19.4","dependencies":{"zod":"^3.25.76","dotenv":"^17.2.1","winston":"^3.17.0","newrelic":"^13.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/instrumentation-winston":"^0.48.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^9.1.7","vitest":"^3.2.4","evalite":"^0.11.4","autoevals":"^0.0.130","ultracite":"^5.1.2","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","lint-staged":"^16.1.4","@biomejs/biome":"^2.1.3","@cucumber/gherkin":"^33.1.0","@vitest/coverage-v8":"^3.2.4","@amiceli/vitest-cucumber":"^5.1.2"},"_npmOperationalInternal":{"tmp":"tmp/newrelic-mcp_1.1.2_1754649603563_0.0734343533426971","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"newrelic-mcp","version":"2.0.0","keywords":["mcp","modelcontextprotocol","newrelic","observability","monitoring","apm","nrql","alerts","synthetics","ai","llm","claude"],"author":{"name":"@cloudbring"},"license":"MIT","_id":"newrelic-mcp@2.0.0","maintainers":[{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"}],"homepage":"https://github.com/cloudbring/newrelic-mcp#readme","bugs":{"url":"https://github.com/cloudbring/newrelic-mcp/issues"},"bin":{"newrelic-mcp":"dist/server.js"},"dist":{"shasum":"a41d2f7102f3762dab99a4d699ba58f062867270","tarball":"https://registry.npmjs.org/newrelic-mcp/-/newrelic-mcp-2.0.0.tgz","fileCount":55,"integrity":"sha512-uZRk/TSuwGJvexFUY51vjEcLGXFeHgPfm6Hxx44cAXL3wJt12WlDdpvQhIYFMxcTquSsdj90AtL7RptInp7d7A==","signatures":[{"sig":"MEQCIBm7aPdzmDenxEkpb5BatqUZ35esGxBTCpVozkzZUrpsAiAHmOWDY8WVlcIFMWXeTq/ePs++8gp7K/htCHTLKoicgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/newrelic-mcp@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":136285},"main":"dist/server.js","types":"./dist/server.d.ts","gitHead":"ba76270d725217d170efdedab10922673d5c2ab9","scripts":{"dev":"tsx src/server.ts","lint":"npx ultracite lint","test":"vitest","ai:ci":"biome ci --max-diagnostics=none --reporter=summary .","build":"tsc","start":"node dist/server.js","format":"npx ultracite format","ai:lint":"biome lint --max-diagnostics=none --reporter=summary .","ai:test":"vitest --run","inspect":"npx @modelcontextprotocol/inspector node dist/server.js","prepare":"husky","test:ui":"vitest --ui","ai:check":"biome check --max-diagnostics=none --reporter=summary .","lint:fix":"npx ultracite format","test:bdd":"vitest --run test/features/**/*.spec.ts","ai:format":"biome format --write .","test:eval":"evalite","test:unit":"vitest --run test/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"vitest","inspect:dev":"npx @modelcontextprotocol/inspector tsx src/server.ts","inspect:env":"./scripts/run-inspector.sh","test:server":"node scripts/test-server.js","format:check":"npx ultracite lint","ai:test:watch":"vitest","test:coverage":"vitest --coverage","ai:format:check":"biome format .","test:eval:watch":"evalite watch","test:integration":"USE_REAL_ENV=true vitest"},"_npmUser":{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"},"repository":{"url":"git+https://github.com/cloudbring/newrelic-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol server for New Relic observability platform integration","directories":{"doc":"docs","test":"test"},"_nodeVersion":"20.19.4","dependencies":{"zod":"^3.25.76","dotenv":"^17.2.1","winston":"^3.17.0","newrelic":"^13.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/instrumentation-winston":"^0.48.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^9.1.7","vitest":"^3.2.4","evalite":"^0.11.4","autoevals":"^0.0.130","ultracite":"^5.1.2","@vitest/ui":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.2.0","lint-staged":"^16.1.4","@biomejs/biome":"^2.1.3","@cucumber/gherkin":"^33.1.0","@vitest/coverage-v8":"^3.2.4","@amiceli/vitest-cucumber":"^5.1.2"},"_npmOperationalInternal":{"tmp":"tmp/newrelic-mcp_2.0.0_1754698879387_0.08927680179123398","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"newrelic-mcp","version":"2.1.0","description":"Model Context Protocol server for New Relic observability platform integration","module":"./src/server.ts","main":"dist/server.js","bin":{"newrelic-mcp":"dist/server.js"},"engines":{"node":">=20"},"publishConfig":{"access":"public","provenance":true},"directories":{"test":"test","doc":"docs"},"repository":{"type":"git","url":"git+https://github.com/cloudbring/newrelic-mcp.git"},"bugs":{"url":"https://github.com/cloudbring/newrelic-mcp/issues"},"homepage":"https://github.com/cloudbring/newrelic-mcp#readme","scripts":{"build":"tsc","dev":"tsx src/server.ts","start":"node dist/server.js","prepack":"npm run build","test":"vitest","test:watch":"vitest","test:ui":"vitest --ui","test:coverage":"vitest --coverage","test:integration":"USE_REAL_ENV=true vitest","test:bdd":"vitest --run test/features/**/*.spec.ts","test:unit":"vitest --run test/**/*.test.ts","test:eval":"evalite","test:eval:watch":"evalite watch","typecheck":"tsc --noEmit","lint":"npx ultracite lint","lint:fix":"npx ultracite format","format":"npx ultracite format","format:check":"npx ultracite lint","ai:test":"vitest --run","ai:test:watch":"vitest","ai:test:coverage":"vitest --coverage --run","ai:test:integration":"USE_REAL_ENV=true vitest --run","ai:lint":"biome lint --max-diagnostics=none --reporter=summary .","ai:check":"biome check --max-diagnostics=none --reporter=summary .","ai:ci":"biome ci --max-diagnostics=none --reporter=summary .","ai:format":"biome format --write .","ai:format:check":"biome format .","inspect":"npx @modelcontextprotocol/inspector node dist/server.js","inspect:dev":"npx @modelcontextprotocol/inspector tsx src/server.ts","inspect:env":"./scripts/run-inspector.sh","test:server":"node scripts/test-server.js","prepare":"husky"},"keywords":["mcp","modelcontextprotocol","newrelic","observability","monitoring","apm","nrql","alerts","synthetics","ai","llm","claude"],"author":{"name":"@cloudbring"},"license":"MIT","devDependencies":{"@amiceli/vitest-cucumber":"^5.1.2","@biomejs/biome":"^2.1.3","@cucumber/gherkin":"^33.1.0","@types/node":"^24.2.0","@vitest/coverage-v8":"^3.2.4","@vitest/ui":"^3.2.4","autoevals":"^0.0.130","evalite":"^0.11.4","husky":"^9.1.7","lint-staged":"^16.1.4","tsx":"^4.20.3","typescript":"^5.9.2","ultracite":"^5.1.2","vitest":"^3.2.4"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.1","@opentelemetry/api":"^1.9.0","@opentelemetry/auto-instrumentations-node":"^0.62.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation-winston":"^0.48.0","@opentelemetry/resources":"^2.0.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/semantic-conventions":"^1.36.0","dotenv":"^17.2.1","newrelic":"^13.0.0","winston":"^3.17.0","zod":"^3.25.76"},"gitHead":"dc6e4261f9af614a5ad1539469870780a84a9779","types":"./dist/server.d.ts","_id":"newrelic-mcp@2.1.0","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-un5jL2KzGd+C77sf7Qknk/sSd/a/Guwn5KHArXKGbfw1gXcSPe2Gy/BSpjPUMoSBfhxHveRRMQvuOGI22FkTCw==","shasum":"7c7058e2fb70872753e6c60590a700e208175db4","tarball":"https://registry.npmjs.org/newrelic-mcp/-/newrelic-mcp-2.1.0.tgz","fileCount":55,"unpackedSize":142611,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/newrelic-mcp@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDk3Zbvy4l7kaS1Gqk3iECeDg6PNMs7N/kIHou5X3kZkAiA9OPqxN2KhBASoWW/gukLt6z/5qzfbtAyc6osWmjRMcg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5d525469-9936-4a07-99d6-420ca6c66edc"}},"maintainers":[{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/newrelic-mcp_2.1.0_1783743956676_0.40934842265795224"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-06T07:10:28.417Z","modified":"2026-07-11T04:25:57.215Z","1.0.0":"2025-08-06T07:10:28.680Z","1.1.2":"2025-08-08T10:40:03.771Z","2.0.0":"2025-08-09T00:21:19.578Z","2.1.0":"2026-07-11T04:25:56.816Z"},"bugs":{"url":"https://github.com/cloudbring/newrelic-mcp/issues"},"author":{"name":"@cloudbring"},"license":"MIT","homepage":"https://github.com/cloudbring/newrelic-mcp#readme","keywords":["mcp","modelcontextprotocol","newrelic","observability","monitoring","apm","nrql","alerts","synthetics","ai","llm","claude"],"repository":{"type":"git","url":"git+https://github.com/cloudbring/newrelic-mcp.git"},"description":"Model Context Protocol server for New Relic observability platform integration","maintainers":[{"name":"cloudbring","email":"emmanuelm+npmjs@gmail.com"}],"readme":"# New Relic MCP Server\n\n [![smithery badge](https://smithery.ai/badge/@cloudbring/newrelic-mcp)](https://smithery.ai/server/@cloudbring/newrelic-mcp)\n\nA Model Context Protocol (MCP) server that provides seamless integration with New Relic's observability platform. Query metrics, manage alerts, monitor applications, and interact with your entire observability stack through a simple, unified interface.\n\n> **Disclaimer**: This is an unofficial community project and is not affiliated with, endorsed by, or supported by New Relic, Inc. All trademarks are the property of their respective owners.\n\n## Features\n\n- 📊 **NRQL Queries** - Execute powerful queries to analyze your data\n- 🚀 **APM Integration** - Monitor application performance and health\n- 🔔 **Alert Management** - View and acknowledge alerts and incidents  \n- 🔍 **Entity Search** - Discover and inspect entities across your infrastructure\n- 📈 **Synthetics Monitoring** - Manage synthetic monitors and checks\n- 🔧 **NerdGraph API** - Direct access to New Relic's GraphQL API\n- 🌐 **REST v2 Tools (2.0+)** - High‑value REST endpoints for deployments, APM apps, metrics, and alerts\n\n## Installation\n\n### Quick Install with Smithery\n\nTo install or deploy via Smithery, see the official docs: [Deployments](https://smithery.ai/docs/build/deployments), [Project Configuration](https://smithery.ai/docs/build/project-config), and [`smithery.yaml` Reference](https://smithery.ai/docs/build/project-config/smithery-yaml).\n\nTo install New Relic MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/mcp/newrelic-mcp):\n\n```bash\nnpx @smithery/cli install @cloudbring/newrelic-mcp --client claude\n```\n\n### Smithery CLI (recommended)\n\nWe recommend the Smithery CLI for local development, inspection, and deployment flows. Benefits:\n\n- Unified dev/build/deploy workflow, client‑agnostic\n- Dev server with hot‑reload and playground (optional tunnel)\n- Build bundles for `stdio` or `shttp` transports\n- Inspect a server interactively; run with supplied config\n- Simple install per client\n\nExamples:\n\n```bash\n# Hot‑reload dev server\nnpx @smithery/cli dev src/server.ts --port 8181 --no-open\n\n# Build production bundle (shttp transport)\nnpx @smithery/cli build src/server.ts --out .smithery/index.cjs --transport shttp\n\n# Inspect a published server\nnpx @smithery/cli inspect @cloudbring/newrelic-mcp\n\n# Run with config (env via JSON)\nnpx @smithery/cli run @cloudbring/newrelic-mcp --config '{\"NEW_RELIC_API_KEY\":\"...\",\"NEW_RELIC_ACCOUNT_ID\":\"...\",\"NEW_RELIC_REGION\":\"US\"}'\n\n# Install into a specific client\nnpx @smithery/cli install newrelic-mcp --client claude\n\n# Open playground\nnpx @smithery/cli playground --port 3001\n```\n\nNotes:\n\n- This repo includes a minimal `smithery.yaml` with `runtime: \"typescript\"` to align with TypeScript‑first deployments.\n- See the CLI reference for all commands and flags: [smithery-ai/cli](https://github.com/smithery-ai/cli).\n\n### Manual Installation\n\n<details>\n<summary>Claude Desktop</summary>\n\nAdd to your Claude Desktop configuration file:\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  \n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"newrelic\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"newrelic-mcp\"\n      ],\n      \"env\": {\n        \"NEW_RELIC_API_KEY\": \"your-api-key-here\",\n        \"NEW_RELIC_ACCOUNT_ID\": \"your-account-id\",\n        \"NEW_RELIC_REGION\": \"US\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Cline (VS Code)</summary>\n\nAdd to your Cline settings in VS Code:\n\n```json\n{\n  \"cline.mcpServers\": [\n    {\n      \"name\": \"newrelic\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"newrelic-mcp\"],\n      \"env\": {\n        \"NEW_RELIC_API_KEY\": \"your-api-key-here\",\n        \"NEW_RELIC_ACCOUNT_ID\": \"your-account-id\",\n        \"NEW_RELIC_REGION\": \"US\"\n      }\n    }\n  ]\n}\n```\n\n</details>\n\n<details>\n<summary>Zed Editor</summary>\n\nAdd to your Zed configuration file at `~/.config/zed/settings.json`:\n\n```json\n{\n  \"language_models\": {\n    \"mcp\": {\n      \"servers\": {\n        \"newrelic\": {\n          \"command\": \"npx\",\n          \"args\": [\"-y\", \"newrelic-mcp\"],\n          \"env\": {\n            \"NEW_RELIC_API_KEY\": \"your-api-key-here\",\n            \"NEW_RELIC_ACCOUNT_ID\": \"your-account-id\"\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Windsurf Editor</summary>\n\nAdd to your Windsurf Cascade configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"newrelic\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"newrelic-mcp\"],\n      \"env\": {\n        \"NEW_RELIC_API_KEY\": \"your-api-key-here\",\n        \"NEW_RELIC_ACCOUNT_ID\": \"your-account-id\",\n        \"NEW_RELIC_REGION\": \"US\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Local Development</summary>\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/cloudbring/newrelic-mcp.git\ncd newrelic-mcp\n```\n\n2. Install dependencies and build:\n\n```bash\nnpm install\nnpm run build\n```\n\n3. Add to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"newrelic\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/newrelic-mcp/dist/server.js\"],\n      \"env\": {\n        \"NEW_RELIC_API_KEY\": \"your-api-key-here\",\n        \"NEW_RELIC_ACCOUNT_ID\": \"your-account-id\",\n        \"NEW_RELIC_REGION\": \"US\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n## Configuration\n\n### Required Environment Variables\n\n- `NEW_RELIC_API_KEY` - Your New Relic User API Key (required)\n- `NEW_RELIC_ACCOUNT_ID` - Your New Relic Account ID (optional, can be provided per tool call)\n- `NEW_RELIC_REGION` - New Relic data center region: `US` (default) or `EU` (optional)\n\n### Getting Your New Relic Credentials\n\n1. **API Key**:\n   - Log in to [New Relic](https://one.newrelic.com)\n   - Navigate to **API Keys** in the left sidebar\n   - Create a new User API Key with appropriate permissions\n\n2. **Account ID**:\n   - Find your Account ID in the URL when logged into New Relic\n   - Or navigate to **Administration** → **Access management** → **Accounts**\n\n3. **Region**:\n   - Set `NEW_RELIC_REGION=US` for US data center (default)\n   - Set `NEW_RELIC_REGION=EU` for EU data center\n   - If not specified, defaults to `US`\n\nFor detailed setup instructions, see [docs/new-relic-setup.md](docs/new-relic-setup.md).\n\n## Usage Examples\n\nOnce configured, you can interact with New Relic through your MCP client:\n\n### Query Your Data\n\n```text\n\"Show me the average response time for my web application over the last hour\"\n\"What are the top 10 slowest database queries today?\"\n\"Display error rate trends for the production environment\"\n```\n\n### Monitor Applications\n\n```text\n\"List all my APM applications and their current status\"\n\"Show me the health of my Node.js services\"\n\"Which applications have active alerts?\"\n```\n\n### Manage Alerts\n\n```text\n\"Show me all open incidents\"\n\"What critical alerts fired in the last 24 hours?\"\n\"Acknowledge incident #12345\"\n```\n\n### Search Infrastructure\n\n```text\n\"Find all Redis databases in production\"\n\"Show me entities with high CPU usage\"\n\"List all synthetic monitors and their success rates\"\n```\n\n## Tool Reference\n\nBelow is a concise catalog of all MCP tools exposed by this server. See the docs folder for detailed stories/specs.\n\n### NerdGraph/GraphQL tools\n\n| Tool | Summary |\n|------|---------|\n| `run_nrql_query` | Execute NRQL queries (requires `target_account_id`) |\n| `run_nerdgraph_query` | Execute raw NerdGraph GraphQL queries |\n| `list_apm_applications` | List APM applications via NerdGraph |\n| `search_entities` | Search entities (name, type, tags) |\n| `get_entity_details` | Fetch details for a GUID |\n| `list_alert_policies` | List alert policies via NerdGraph |\n| `list_open_incidents` | List open incidents via NerdGraph |\n| `acknowledge_incident` | Acknowledge an incident (NerdGraph only) |\n| `list_synthetics_monitors` | List Synthetics monitors |\n| `create_browser_monitor` | Create a browser monitor |\n| `get_account_details` | Fetch account metadata |\n\n### REST v2 tools (added in v2.0)\n\n| Tool | Summary | Notes |\n|------|---------|-------|\n| `create_deployment` | Create deployment marker for an APM application | Inputs: `application_id`, `revision`; optional `changelog`, `description`, `user`; supports `region` |\n| `list_deployments_rest` | List deployments for an app | Supports `page`, `auto_paginate`, `region` |\n| `delete_deployment` | Delete deployment marker | Requires `confirm: true`; User API key must have admin role permissions |\n| `list_apm_applications_rest` | List APM apps via REST | Filters: `filter[name]`, `filter[host]`, `filter[ids]`, `filter[language]`; auto‑paginate |\n| `list_metric_names_for_host` | List metric names/values for host | Inputs: `application_id`, `host_id`, optional `name`; auto‑paginate |\n| `get_metric_data_for_host` | Get timeslice metric data for host | Inputs: `application_id`, `host_id`, `names[]`; optional `values[]`, `from`, `to`, `period`, `summarize`; auto‑paginate |\n| `list_application_hosts` | List hosts for an APM app | Filters: `filter[hostname]`, `filter[ids]`; auto‑paginate |\n| `list_alert_policies_rest` | List alert policies via REST | Optional `filter_name`; supports pagination |\n| `list_open_incidents_rest` | List incidents via REST | Server has no `only_open`/`priority` filters; these are applied client‑side; auto‑paginate |\n\nReferences:\n- Detailed specs and schemas: `docs/REST_ENDPOINT_TOOL.md` and `docs/rest-tools-stories/*`\n\n## Troubleshooting\n\n<details>\n<summary>Connection Issues</summary>\n\nIf you're having trouble connecting:\n\n1. Verify your API key is valid:\n\n   For US region:\n   ```bash\n   curl -X POST https://api.newrelic.com/graphql \\\n     -H 'Content-Type: application/json' \\\n     -H 'API-Key: YOUR_API_KEY' \\\n     -d '{\"query\":\"{ actor { user { email } } }\"}'\n   ```\n\n   For EU region:\n   ```bash\n   curl -X POST https://api.eu.newrelic.com/graphql \\\n     -H 'Content-Type: application/json' \\\n     -H 'API-Key: YOUR_API_KEY' \\\n     -d '{\"query\":\"{ actor { user { email } } }\"}'\n   ```\n\n2. Check that your Account ID is correct\n3. Ensure your API key has the necessary permissions\n4. Check the MCP client logs for detailed error messages\n\n</details>\n\n<details>\n<summary>Permission Errors</summary>\n\nIf you receive permission errors:\n\n1. Verify your API key has the required permissions:\n   - For NRQL queries: `NRQL query` permission\n   - For APM data: `APM` read permissions\n   - For alerts: `Alerts` read/write permissions\n\n2. Create a new API key with broader permissions if needed\n\n</details>\n\n## Development\n\n### Project Structure\n\n```text\nsrc/\n├── server.ts           # Main MCP server implementation\n├── client/\n│   └── newrelic-client.ts  # New Relic API client\n└── tools/\n    ├── nrql.ts         # NRQL query tool\n    ├── apm.ts          # APM applications tool\n    ├── entity.ts       # Entity management tools\n    ├── alert.ts        # Alert and incident tools\n    ├── synthetics.ts   # Synthetics monitoring tools\n    └── nerdgraph.ts    # NerdGraph query tool\n```\n\n### Setup Development Environment\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/cloudbring/newrelic-mcp.git\ncd newrelic-mcp\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Create a `.env` file:\n\n```bash\nNEW_RELIC_API_KEY=your-api-key-here\nNEW_RELIC_ACCOUNT_ID=your-account-id\nNEW_RELIC_REGION=US\n```\n\n4. Build the project:\n\n```bash\nnpm run build\n```\n\n### Development Commands\n\n```bash\n# Start development server with hot reload\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run linting\nnpm run lint\n\n# Format code\nnpm run format\n\n# Test server startup\nnpm run test:server\n```\n\n### Testing\n\nThe project uses Test-Driven Development (TDD) with:\n\n- **Vitest** for unit testing\n- **Gherkin** for BDD testing\n- **Evalite** for LLM response validation\n\n```bash\n# Run all tests\nnpm test\n\n# Run with coverage\nnpm run test:coverage\n\n# Run BDD tests only\nnpm run test:bdd\n\n# Run integration tests with real API\nUSE_REAL_ENV=true npm test\n```\n\n### Debugging\n\nUse the MCP Inspector to test and debug the server:\n\n```bash\n# Run with MCP Inspector\nnpm run inspect\n\n# Run with development server\nnpm run inspect:dev\n\n# Run with environment variables\nnpm run inspect:env\n```\n\nSee [docs/mcp-inspector-setup.md](docs/mcp-inspector-setup.md) for detailed instructions.\n\n### Architecture\n\nThe server follows a modular architecture with:\n\n- **Client Layer**: Handles New Relic API communication\n- **Tools Layer**: Implements MCP tool specifications\n- **Server Layer**: Manages MCP protocol and tool routing\n\nEach tool:\n\n- Has a single, focused purpose\n- Validates inputs using Zod schemas\n- Returns structured, typed responses\n- Includes comprehensive error handling\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Workflow\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Write tests first (TDD approach)\n4. Implement your feature\n5. Ensure all tests pass (`npm test`)\n6. Maintain >90% code coverage\n7. Run linting (`npm run lint`)\n8. Commit your changes (commits will be auto-formatted)\n9. Push to your branch\n10. Open a Pull Request\n\n### Code Style\n\nThis project uses:\n\n- **Biome** for linting and formatting\n- **TypeScript** with strict mode\n- **2 spaces** for indentation\n- **Single quotes** for strings\n- **Semicolons** always\n\n## Documentation\n\n- [New Relic Setup Guide](docs/new-relic-setup.md) - Detailed credential setup\n- [MCP Inspector Setup](docs/mcp-inspector-setup.md) - Testing and debugging\n- [Logging & Telemetry](docs/logging-telemetry.md) - Test monitoring\n- [Implementation Details](docs/implementation.md) - Architecture deep dive\n- [REST tools overview](docs/REST_ENDPOINT_TOOL.md) - High‑level design for REST v2 tools\n- [REST tool stories](docs/rest-tools-stories/README.md) - Per‑tool specs, schemas, and test plans\n\n## Comparisons\n\nWe researched other public New Relic MCP servers and did not find any actively maintained, feature‑complete alternatives at the time of writing. If you know of one, please open an issue to add it here.\n\n| Project | Status | Transport(s) | Deployments | APM Apps | Metrics | Alerts | Synthetics | Notes |\n|---------|--------|---------------|-------------|----------|---------|--------|-----------|-------|\n| This project (newrelic-mcp) | Active | NerdGraph + REST v2 | Create/List/Delete | List (NerdGraph + REST) | Host names + timeslices (REST) | Policies + Incidents (NG + REST) | List/Create (browser) | Comprehensive tests and docs |\n\nPlanned enhancements (based on REST v2 catalog and user demand):\n- Alerts: violations and conditions management via REST where available\n- Metrics: broader app‑level metrics endpoints (names/data) beyond per‑host\n- Additional REST coverage: labels, key transactions, mobile apps (prioritized by feedback)\n\n## Support\n\n- 🐛 [Report bugs](https://github.com/cloudbring/newrelic-mcp/issues)\n- 💡 [Request features](https://github.com/cloudbring/newrelic-mcp/issues)\n- 💬 [Join discussions](https://github.com/cloudbring/newrelic-mcp/discussions)\n- 📖 [Read the docs](https://github.com/cloudbring/newrelic-mcp/tree/main/docs)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Disclaimer\n\nThis project is not affiliated with, endorsed by, or supported by New Relic, Inc. It is an independent open-source project that uses New Relic's public APIs.\n\n## Acknowledgments\n\n- Built on the [Model Context Protocol](https://modelcontextprotocol.io) specification\n- Integrates with [New Relic's](https://newrelic.com) observability platform APIs\n- Inspired by the broader MCP ecosystem\n\n---\n\nMade with ❤️ by [@cloudbring](https://github.com/cloudbring) using Cursor and Claude Code\n","readmeFilename":"README.md"}