关于 New Relic MCP Server
New Relic MCP Server 将 MCP 客户端连接到 New Relic 可观测性数据与操作,涵盖 NRQL、NerdGraph GraphQL 和 REST v2,可用于应用监控、事件处理及部署和合成监控管理。
主要功能
- 01运行 NRQL 和 NerdGraph 查询
- 02查看 APM 应用与实体
- 03查看并确认事件
- 04管理合成监控器
- 05通过 REST v2 管理指标与部署
适用场景
- 01分析应用指标与错误
- 02检查并确认未解决事件
- 03查找基础设施实体和监控器
- 04创建或查看部署标记
MCP 相关
它将 New Relic 查询、监控、告警、实体、合成监控及 REST v2 操作作为 MCP 工具提供。MCP 客户端可使用 New Relic API 密钥调用这些工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
New Relic MCP 服务
一个模型上下文协议(MCP)服务,可与 New Relic 的可观测性平台无缝集成。通过简单统一的界面查询指标、管理警报、监控应用,并与整个可观测性技术栈交互。
免责声明:这是一个非官方社区项目,与 New Relic, Inc. 无关联,也未获得其认可或支持。所有商标均为其各自所有者的财产。
功能
- 📊 NRQL 查询 - 执行强大的查询,分析数据
- 🚀 APM 集成 - 监控应用性能与运行状况
- 🔔 警报管理 - 查看并确认警报和事件
- 🔍 实体搜索 - 发现并检查基础设施中的实体
- 📈 合成监控 - 管理合成监视器和检查项
- 🔧 NerdGraph API - 直接访问 New Relic 的 GraphQL API
- 🌐 REST v2 工具(2.0+) - 用于部署、APM 应用、指标和警报的高价值 REST 端点
安装
使用 Smithery 快速安装
如需通过 Smithery 安装或部署,请参阅官方文档:部署、项目配置和smithery.yaml 参考。
如需通过 Smithery 自动为 Claude Desktop 安装 New Relic MCP:
npx @smithery/cli install @cloudbring/newrelic-mcp --client claude
Smithery CLI(推荐)
我们推荐在本地开发、检查和部署流程中使用 Smithery CLI。其优势包括:
- 统一的开发/构建/部署工作流,与客户端无关
- 支持热重载和 Playground 的开发服务(可选隧道)
- 为
stdio或shttp传输构建程序包 - 交互式检查服务;使用提供的配置运行
- 为每个客户端轻松安装
示例:
# Hot‑reload dev server
npx @smithery/cli dev src/server.ts --port 8181 --no-open
# Build production bundle (shttp transport)
npx @smithery/cli build src/server.ts --out .smithery/index.cjs --transport shttp
# Inspect a published server
npx @smithery/cli inspect @cloudbring/newrelic-mcp
# Run with config (env via JSON)
npx @smithery/cli run @cloudbring/newrelic-mcp --config '{"NEW_RELIC_API_KEY":"...","NEW_RELIC_ACCOUNT_ID":"...","NEW_RELIC_REGION":"US"}'
# Install into a specific client
npx @smithery/cli install newrelic-mcp --client claude
# Open playground
npx @smithery/cli playground --port 3001
说明:
- 此仓库包含一个最简
smithery.yaml,其中设置了runtime: "typescript",以适配 TypeScript 优先的部署方式。 - 所有命令和标志请参阅 CLI 参考:smithery-ai/cli。
手动安装
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"newrelic": {
"command": "npx",
"args": [
"-y",
"newrelic-mcp"
],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id",
"NEW_RELIC_REGION": "US"
}
}
}
}
Cline(VS Code)
将以下内容添加到 VS Code 中的 Cline 设置:
{
"cline.mcpServers": [
{
"name": "newrelic",
"command": "npx",
"args": ["-y", "newrelic-mcp"],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id",
"NEW_RELIC_REGION": "US"
}
}
]
}
Zed Editor
将以下内容添加到 Zed 配置文件 ~/.config/zed/settings.json 中:
{
"language_models": {
"mcp": {
"servers": {
"newrelic": {
"command": "npx",
"args": ["-y", "newrelic-mcp"],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id"
}
}
}
}
}
}
Windsurf Editor
将以下内容添加到 Windsurf Cascade 配置中:
{
"mcpServers": {
"newrelic": {
"command": "npx",
"args": ["-y", "newrelic-mcp"],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id",
"NEW_RELIC_REGION": "US"
}
}
}
}
本地开发
- 克隆仓库:
git clone https://github.com/cloudbring/newrelic-mcp.git
cd newrelic-mcp
- 安装依赖并构建:
npm install
npm run build
- 添加到 MCP 客户端配置中:
{
"mcpServers": {
"newrelic": {
"command": "node",
"args": ["/path/to/newrelic-mcp/dist/server.js"],
"env": {
"NEW_RELIC_API_KEY": "your-api-key-here",
"NEW_RELIC_ACCOUNT_ID": "your-account-id",
"NEW_RELIC_REGION": "US"
}
}
}
}
配置
必需的环境变量
NEW_RELIC_API_KEY- New Relic 用户 API 密钥(必需)NEW_RELIC_ACCOUNT_ID- New Relic 账户 ID(可选,可在每次工具调用时提供)NEW_RELIC_REGION- New Relic 数据中心区域:US(默认)或EU(可选)
获取 New Relic 凭据
-
API Key:
- 登录 New Relic
- 在左侧边栏中导航到 API Keys
- 创建具有适当权限的新 User API Key
-
Account ID:
- 登录 New Relic 后,在 URL 中查找 Account ID
- 或导航到 Administration → Access management → Accounts
-
Region:
- 为美国数据中心设置
NEW_RELIC_REGION=US(默认值) - 为欧盟数据中心设置
NEW_RELIC_REGION=EU - 如果未指定,默认值为
US
- 为美国数据中心设置
如需详细的设置说明,请参阅 docs/new-relic-setup.md。
使用示例
配置完成后,你可以通过 MCP 客户端与 New Relic 交互:
查询你的数据
"Show me the average response time for my web application over the last hour"
"What are the top 10 slowest database queries today?"
"Display error rate trends for the production environment"
监控应用
"List all my APM applications and their current status"
"Show me the health of my Node.js services"
"Which applications have active alerts?"
管理告警
"Show me all open incidents"
"What critical alerts fired in the last 24 hours?"
"Acknowledge incident #12345"
搜索基础设施
"Find all Redis databases in production"
"Show me entities with high CPU usage"
"List all synthetic monitors and their success rates"
工具参考
以下是此服务公开的所有 MCP 工具的简明目录。详细说明和规范请参阅 docs 文件夹。
NerdGraph/GraphQL 工具
| 工具 | 概要 |
|---|---|
run_nrql_query | 执行 NRQL 查询(需要 target_account_id) |
run_nerdgraph_query | 执行原始 NerdGraph GraphQL 查询 |
list_apm_applications | 通过 NerdGraph 列出 APM 应用 |
search_entities | 搜索实体(名称、类型、标签) |
get_entity_details | 获取 GUID 的详细信息 |
list_alert_policies | 通过 NerdGraph 列出告警策略 |
list_open_incidents | 通过 NerdGraph 列出未解决事件 |
acknowledge_incident | 确认事件(仅限 NerdGraph) |
list_synthetics_monitors | 列出 Synthetics 监控器 |
create_browser_monitor | 创建浏览器监控器 |
get_account_details | 获取账户元数据 |
REST v2 工具(在 v2.0 中添加)
| 工具 | 概要 | 备注 |
|---|---|---|
create_deployment | 为 APM 应用创建部署标记 | 输入:application_id、revision;可选:changelog、description、user;支持 region |
list_deployments_rest | 列出应用的部署 | 支持 page、auto_paginate、region |
delete_deployment | 删除部署标记 | 需要 confirm: true;User API key 必须具有管理员角色权限 |
list_apm_applications_rest | 通过 REST 列出 APM 应用 | 筛选项:filter[name]、filter[host]、filter[ids]、filter[language];自动分页 |
list_metric_names_for_host | 列出主机的指标名称/值 | 输入:application_id、host_id、可选的 name;自动分页 |
get_metric_data_for_host | 获取主机的时间片指标数据 | 输入:application_id、host_id、names[];可选:values[]、from、to、period、summarize;自动分页 |
list_application_hosts | 列出 APM 应用的主机 | 筛选项:filter[hostname]、filter[ids];自动分页 |
list_alert_policies_rest | 通过 REST 列出告警策略 | 可选的 filter_name;支持分页 |
list_open_incidents_rest | 通过 REST 列出事件 | 服务端不支持 only_open/priority 筛选;这些筛选由客户端应用;自动分页 |
参考:
- 详细规范和架构:
docs/REST_ENDPOINT_TOOL.md和docs/rest-tools-stories/*
故障排除
连接问题
如果你在连接时遇到问题:
-
验证 API key 是否有效:
对于美国区域:
curl -X POST https://api.newrelic.com/graphql \ -H 'Content-Type: application/json' \ -H 'API-Key: YOUR_API_KEY' \ -d '{"query":"{ actor { user { email } } }"}'对于欧盟区域:
curl -X POST https://api.eu.newrelic.com/graphql \ -H 'Content-Type: application/json' \ -H 'API-Key: YOUR_API_KEY' \ -d '{"query":"{ actor { user { email } } }"}' -
检查 Account ID 是否正确
-
确保 API key 具有所需权限
-
查看 MCP 客户端日志以获取详细错误消息
权限错误
如果收到权限错误:
-
验证 API key 是否具有所需权限:
- 对于 NRQL 查询:
NRQL query权限 - 对于 APM 数据:
APM读取权限 - 对于告警:
Alerts读写权限
- 对于 NRQL 查询:
-
如果需要,请创建权限更广泛的新 API key
开发
项目结构
src/
├── server.ts # Main MCP server implementation
├── client/
│ └── newrelic-client.ts # New Relic API client
└── tools/
├── nrql.ts # NRQL query tool
├── apm.ts # APM applications tool
├── entity.ts # Entity management tools
├── alert.ts # Alert and incident tools
├── synthetics.ts # Synthetics monitoring tools
└── nerdgraph.ts # NerdGraph query tool
设置开发环境
- 克隆仓库:
git clone https://github.com/cloudbring/newrelic-mcp.git
cd newrelic-mcp
- 安装依赖:
npm install
- 创建
.env文件:
NEW_RELIC_API_KEY=your-api-key-here
NEW_RELIC_ACCOUNT_ID=your-account-id
NEW_RELIC_REGION=US
- 构建项目:
npm run build
开发命令
# Start development server with hot reload
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Run linting
npm run lint
# Format code
npm run format
# Test server startup
npm run test:server
测试
本项目采用测试驱动开发(TDD),使用:
- Vitest 进行单元测试
- Gherkin 进行行为驱动开发(BDD)测试
- Evalite 验证 LLM 响应
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run BDD tests only
npm run test:bdd
# Run integration tests with real API
USE_REAL_ENV=true npm test
调试
使用 MCP Inspector 测试和调试服务:
# Run with MCP Inspector
npm run inspect
# Run with development server
npm run inspect:dev
# Run with environment variables
npm run inspect:env
详细说明请参阅 docs/mcp-inspector-setup.md。
架构
本服务采用模块化架构,包含:
- 客户端层:处理 New Relic API 通信
- 工具层:实现 MCP 工具规范
- 服务层:管理 MCP 协议和工具路由
每个工具:
- 用途单一且明确
- 使用 Zod 架构验证输入
- 返回结构化、类型明确的响应
- 包含全面的错误处理
贡献
欢迎贡献!详情请参阅贡献指南。
开发工作流
- Fork 仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 先编写测试(TDD 方法)
- 实现功能
- 确保所有测试通过(
npm test) - 保持代码覆盖率高于 90%
- 运行 lint(
npm run lint) - 提交更改(提交内容将自动格式化)
- 推送到你的分支
- 创建 Pull Request
代码风格
本项目使用:
- Biome 进行 lint 和格式化
- 严格模式的 TypeScript
- 2 个空格缩进
- 字符串使用单引号
- 始终使用分号
文档
- New Relic 设置指南 - 凭据设置详情
- MCP Inspector 设置 - 测试和调试
- 日志与遥测 - 测试监控
- 实现详情 - 深入了解架构
- REST 工具概览 - REST v2 工具的高层设计
- REST 工具说明 - 各工具的规范、架构和测试计划
对比
我们调研了其他公开的 New Relic MCP 服务,在撰写本文时,未发现任何仍在积极维护且功能完备的替代方案。如果你知道此类项目,请提交 issue 将其添加到此处。
| 项目 | 状态 | 传输方式 | 部署 | APM 应用 | 指标 | 告警 | Synthetics | 备注 |
|---|---|---|---|---|---|---|---|---|
| 本项目(newrelic-mcp) | 活跃 | NerdGraph + REST v2 | 创建/列出/删除 | 列出(NerdGraph + REST) | 主机名 + 时间片(REST) | 策略 + 事件(NG + REST) | 列出/创建(浏览器) | 测试和文档全面 |
计划中的增强功能(依据 REST v2 目录和用户需求):
- 告警:在 REST 支持的情况下,通过 REST 管理违规和条件
- 指标:增加更广泛的应用级指标端点(名称/数据),不再局限于单主机指标
- 扩展 REST 覆盖范围:标签、关键事务、移动应用(根据反馈确定优先级)
支持
许可证
本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
免责声明
本项目与 New Relic, Inc. 无关,未获其认可或支持。本项目是一个独立的开源项目,使用 New Relic 的公开 API。
致谢
- 基于 Model Context Protocol 规范构建
- 集成 New Relic 可观测性平台 API
- 灵感源自更广泛的 MCP 生态系统
由 @cloudbring 使用 Cursor 和 Claude Code 倾情打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。