返回市场
新睿-MCP

新睿-MCP

作者:cloudbring9 星标更新:2025-08-11

项目介绍

技术文档摘要

New Relic MCP 服务器

smithery 徽章

这是一个提供与 New Relic 可观测性平台无缝集成的 Model Context Protocol (MCP) 服务器。通过一个简单统一的界面查询指标、管理告警、监控应用程序,并与整个可观测性堆栈进行交互。

免责声明:这是一个非官方社区项目,未得到 New Relic, Inc. 的支持或认可。所有商标均为其各自所有者的财产。

功能

  • 📊 NRQL 查询 - 执行强大的查询以分析您的数据
  • 🚀 APM 集成 - 监控应用性能和健康状况
  • 🔔 告警管理 - 查看并确认告警和事件
  • 🔍 实体搜索 - 发现并检查基础设施中的实体
  • 📈 合成监控 - 管理合成监控器和检查
  • 🔧 NerdGraph API - 直接访问 New Relic 的 GraphQL API
  • 🌐 REST v2 工具(2.0+) - 高价值 REST 端点用于部署、APM 应用程序、指标和告警

安装

使用 Smithery 快速安装

要通过 Smithery 安装或部署,请参阅官方文档:部署项目配置,以及smithery.yaml 参考

要通过 Smithery 自动安装 New Relic MCP 到 Claude Desktop:

npx @smithery/cli install newrelic-mcp --client claude

Smithery CLI(推荐)

我们推荐使用 Smithery CLI 进行本地开发、检查和部署流程。优点包括:

  • 统一的开发/构建/部署工作流,客户端无关
  • 带有热重载和游乐场的开发服务器(可选隧道)
  • stdioshttp 传输构建捆绑包
  • 交互式检查服务器;使用提供的配置运行
  • 按客户端简单安装

示例:

# 热重载开发服务器
npx @smithery/cli dev src/server.ts --port 8181 --no-open

# 构建生产捆绑包(shttp 传输)
npx @smithery/cli build src/server.ts --out .smithery/index.cjs --transport shttp

# 检查已发布的服务器
npx @smithery/cli inspect @cloudbring/newrelic-mcp

# 使用配置运行(环境变量通过 JSON)
npx @smithery/cli run @cloudbring/newrelic-mcp --config '{"NEW_RELIC_API_KEY":"...","NEW_RELIC_ACCOUNT_ID":"..."}'

# 安装到特定客户端
npx @smithery/cli install newrelic-mcp --client claude

# 打开游乐场
npx @smithery/cli playground --port 3001

注意事项:

  • 本仓库包含一个最小的 smithery.yaml 文件,其中 runtime: "typescript" 以符合 TypeScript 首先的部署。
  • 查看 CLI 参考以获取所有命令和标志:smithery-ai/cli

手动安装

<details> <summary>Claude Desktop</summary>

在您的 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"
      }
    }
  }
}
</details> <details> <summary>Cline (VS Code)</summary>

在 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"
      }
    }
  ]
}
</details> <details> <summary>Zed 编辑器</summary>

在 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"
          }
        }
      }
    }
  }
}
</details> <details> <summary>Windsurf 编辑器</summary>

在您的 Windsurf 级联配置中添加以下内容:

{
  "mcpServers": {
    "newrelic": {
      "command": "npx",
      "args": ["-y", "newrelic-mcp"],
      "env": {
        "NEW_RELIC_API_KEY": "your-api-key-here",
        "NEW_RELIC_ACCOUNT_ID": "your-account-id"
      }
    }
  }
}
</details> <details> <summary>本地开发</summary>
  1. 克隆仓库:
git clone https://github.com/cloudbring/newrelic-mcp.git
cd newrelic-mcp
  1. 安装依赖并构建:
npm install
npm run build
  1. 在您的 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"
      }
    }
  }
}
</details>

配置

必需的环境变量

  • NEW_RELIC_API_KEY - 您的 New Relic 用户 API 密钥(必需)
  • NEW_RELIC_ACCOUNT_ID - 您的 New Relic 账户 ID(可选,可以在每次工具调用时提供)

获取您的 New Relic 凭证

  1. API 密钥

    • 登录到 New Relic
    • 导航到左侧边栏的 API 密钥
    • 创建一个新的用户 API 密钥并赋予适当的权限
  2. 账户 ID

    • 当您登录到 New Relic 时,在 URL 中找到您的账户 ID
    • 或者导航到 管理访问管理账户

详细的设置说明,请参阅 docs/new-relic-setup.md

使用示例

配置完成后,您可以通过您的 MCP 客户端与 New Relic 进行交互:

查询您的数据

"显示我过去一小时的 Web 应用程序平均响应时间"
"今天最慢的前 10 个数据库查询是什么?"
"展示生产环境的错误率趋势"

监控应用程序

"列出我的所有 APM 应用程序及其当前状态"
"显示我的 Node.js 服务的健康状况"
"哪些应用程序有活动告警?"

管理告警

"显示所有打开的事件"
"过去 24 小时内触发了哪些关键告警?"
"确认事件 #12345"

搜索基础设施

"查找所有生产中的 Redis 数据库"
"显示具有高 CPU 使用率的实体"
"列出所有合成监控器及其成功率"

工具参考

以下是此服务器公开的所有 MCP 工具的简明目录。请参阅文档文件夹以获取详细的故事/规格。

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列出合成监控器
create_browser_monitor创建浏览器监控器
get_account_details获取账户元数据

REST v2 工具(从 v2.0 开始添加)

工具概述备注
create_deployment为 APM 应用程序创建部署标记输入:application_idrevision;可选 changelogdescriptionuser;支持 region
list_deployments_rest列出应用程序的部署支持 pageauto_paginateregion
delete_deployment删除部署标记需要 confirm: true;用户 API 密钥必须具有管理员角色权限
list_apm_applications_rest通过 REST 列出 APM 应用程序过滤器:filter[name]filter[host]filter[ids]filter[language];自动分页
list_metric_names_for_host列出主机的指标名称/值输入:application_idhost_id,可选 name;自动分页
get_metric_data_for_host获取主机的时间切片指标数据输入:application_idhost_idnames[];可选 values[]fromtoperiodsummarize;自动分页
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.mddocs/rest-tools-stories/*

故障排除

<details> <summary>连接问题</summary>

如果您遇到连接问题:

  1. 验证您的 API 密钥是否有效:

    curl -X POST https://api.newrelic.com/graphql \
      -H 'Content-Type: application/json' \
      -H 'API-Key: YOUR_API_KEY' \
      -d '{"query":"{ actor { user { email } } }"}'
    
  2. 检查您的账户 ID 是否正确

  3. 确保您的 API 密钥具有必要的权限

  4. 检查 MCP 客户端日志以获取详细的错误消息

</details> <details> <summary>权限错误</summary>

如果您收到权限错误:

  1. 验证您的 API 密钥具有所需的权限:

    • 对于 NRQL 查询:NRQL 查询 权限
    • 对于 APM 数据:APM 读取权限
    • 对于告警:告警 读写权限
  2. 如果需要,创建一个具有更广泛权限的新 API 密钥

</details>

开发

项目结构

src/
├── server.ts           # 主 MCP 服务器实现
├── client/
│   └── newrelic-client.ts  # New Relic API 客户端
└── tools/
    ├── nrql.ts         # NRQL 查询工具
    ├── apm.ts          # APM 应用程序工具
    ├── entity.ts       # 实体管理工具
    ├── alert.ts        # 告警和事件工具
    ├── synthetics.ts   # 合成监控工具
    └── nerdgraph.ts    # NerdGraph 查询工具

设置开发环境

  1. 克隆仓库:
git clone https://github.com/cloudbring/newrelic-mcp.git
cd newrelic-mcp
  1. 安装依赖:
npm install
  1. 创建一个 .env 文件:
NEW_RELIC_API_KEY=your-api-key-here
NEW_RELIC_ACCOUNT_ID=your-account-id
  1. 构建项目:
npm run build

开发命令

# 启动带有热重载的开发服务器
npm run dev

# 构建生产版本
npm run build

# 运行测试
npm test

# 运行带覆盖率的测试
npm run test:coverage

# 运行代码检查
npm run lint

# 格式化代码
npm run format

# 测试服务器启动
npm run test:server

测试

该项目使用测试驱动开发(TDD):

  • 使用 Vitest 进行单元测试
  • 使用 Gherkin 进行行为驱动开发(BDD)测试
  • 使用 Evalite 进行 LLM 响应验证
# 运行所有测试
npm test

# 运行带覆盖率的测试
npm run test:coverage

# 仅运行 BDD 测试
npm run test:bdd

# 使用真实 API 运行集成测试
USE_REAL_ENV=true npm test

调试

使用 MCP Inspector 来测试和调试服务器:

# 使用 MCP Inspector 运行
npm run inspect

# 使用开发服务器运行
npm run inspect:dev

# 使用环境变量运行
npm run inspect:env

请参阅 docs/mcp-inspector-setup.md 以获取详细说明。

架构

服务器遵循模块化架构:

  • 客户端层:处理 New Relic API 通信
  • 工具层:实现 MCP 工具规范
  • 服务器层:管理 MCP 协议和工具路由

每个工具:

  • 具有一个单一且专注的目的
  • 使用 Zod 模式验证输入
  • 返回结构化的、类型的响应
  • 包含全面的错误处理

贡献

我们欢迎贡献!请参阅我们的 贡献指南 以获取详细信息。

开发工作流程

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 先编写测试(TDD 方法)
  4. 实现您的功能
  5. 确保所有测试通过 (npm test)
  6. 保持 >90% 的代码覆盖率
  7. 运行代码检查 (npm run lint)
  8. 提交您的更改(提交将自动格式化)
  9. 推送到您的分支
  10. 打开拉取请求

代码风格

此项目使用:

  • Biome 进行代码检查和格式化
  • TypeScript 并启用严格模式
  • 2 个空格 作为缩进
  • 单引号 用于字符串
  • 分号 总是使用

文档

比较

我们研究了其他公共的 New Relic MCP 服务器,并未发现任何在撰写本文时活跃维护且功能完整的替代方案。如果您知道一个,请打开一个问题将其添加到这里。

项目状态传输方式部署APM 应用程序指标告警合成监控备注
本项目 (newrelic-mcp)活跃NerdGraph + REST v2创建/列表/删除列表(NerdGraph + REST)主机名称 + 时间切片(REST)策略 + 事件(NG + REST)列表/创建(浏览器)全面的测试和文档

计划增强功能(基于 REST v2 目录和用户需求):

  • 告警:通过 REST 管理违规和条件(如有)
  • 指标:更广泛的 APP 级别指标端点(名称/数据)超出主机级别
  • 额外的 REST 覆盖范围:标签、