Newrelic Mcp

Newrelic Mcp

🚀 New Relic MCP Server

New Relic MCP Server 是一个遵循模型上下文协议(MCP)的服务器,可与 New Relic 的可观测性平台实现无缝集成。你可以通过这个简单统一的接口查询指标、管理警报、监控应用程序,并与整个可观测性堆栈进行交互。

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

🚀 快速开始

按照以下步骤,你可以快速安装并使用 New Relic MCP Server:

  1. 安装并配置 New Relic MCP Server。
  2. 获取 New Relic 凭证。
  3. 通过 MCP 客户端与 New Relic 进行交互。

✨ 主要特性

  • 📊 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 newrelic-mcp --client claude

Smithery CLI(推荐)

我们推荐使用 Smithery CLI 进行本地开发、检查和部署。其优势如下:

  • 统一的开发/构建/部署工作流程,与客户端无关。
  • 带有热重载和 playground 的开发服务器(可选隧道)。
  • 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

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

手动安装

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"
}
}
}
}
Cline (VS Code) 将以下内容添加到你在 VS Code 中的 Cline 设置中: ```json { "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" } } ] } ```
Zed Editor 将以下内容添加到你的 Zed 配置文件 `~/.config/zed/settings.json` 中: ```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 配置中: ```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" } } } } ```
本地开发 1. 克隆仓库: ```bash git clone https://github.com/cloudbring/newrelic-mcp.git cd newrelic-mcp ``` 2. 安装依赖并构建: ```bash npm install npm run build ``` 3. 将以下内容添加到你的 MCP 客户端配置中: ```json { "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_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 进行交互:

查询数据

"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 列出合成监控器
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/*

故障排除

连接问题 如果你在连接时遇到问题: 1. 验证你的 API 密钥是否有效: ```bash 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 客户端日志以获取详细的错误消息。
权限错误 如果你收到权限错误: 1. 验证你的 API 密钥是否具有所需的权限: - 对于 NRQL 查询:需要 `NRQL query` 权限。 - 对于 APM 数据:需要 `APM` 读取权限。 - 对于警报:需要 `Alerts` 读写权限。 2. 如果需要,创建一个具有更广泛权限的新 API 密钥。

开发说明

项目结构

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

# 运行 linting
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. 运行 linting(npm run lint)。
  8. 提交你的更改(提交将自动格式化)。
  9. 推送到你的分支。
  10. 打开一个拉取请求。

代码风格

本项目使用:

  • Biome 进行 linting 和格式化。
  • TypeScript 并启用严格模式。
  • 2 个空格 进行缩进。
  • 单引号 用于字符串。
  • 分号 始终使用。

文档资料

  • New Relic 设置指南 - 详细的凭证设置。
  • MCP Inspector 设置 - 测试和调试。
  • 日志记录与遥测 - 测试监控。
  • 实现细节 - 架构深入分析。
  • REST 工具概述 - REST v2 工具的高级设计。
  • REST 工具故事 - 每个工具的规范、模式和测试计划。

对比情况

我们研究了其他公开的 New Relic MCP 服务器,在撰写本文时,未发现任何积极维护、功能完整的替代方案。如果你知道有这样的项目,请打开一个问题将其添加到此处。

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

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

  • 警报:在可用的情况下,通过 REST 管理违规和条件。
  • 指标:提供更广泛的应用程序级指标端点(名称/数据),而不仅仅是每个主机的指标。
  • 额外的 REST 覆盖:标签、关键事务、移动应用程序(根据反馈进行优先级排序)。

支持与反馈

📄 许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

免责声明

本项目与 New Relic, Inc. 没有关联、未得到其认可或支持。它是一个独立的开源项目,使用了 New Relic 的公共 API。

致谢


@cloudbring 使用 Cursor 和 Claude Code 用心打造 ❤️

  • 0 关注
  • 0 收藏,28 浏览
  • system 提出于 2025-10-06 19:39

相似服务问题

相关AI产品