这是一个提供与 New Relic 可观测性平台无缝集成的 Model Context Protocol (MCP) 服务器。通过一个简单统一的界面查询指标、管理告警、监控应用程序,并与整个可观测性堆栈进行交互。
免责声明:这是一个非官方社区项目,未得到 New Relic, Inc. 的支持或认可。所有商标均为其各自所有者的财产。
要通过 Smithery 安装或部署,请参阅官方文档:部署,项目配置,以及smithery.yaml 参考。
要通过 Smithery 自动安装 New Relic MCP 到 Claude Desktop:
npx @smithery/cli install newrelic-mcp --client claude
我们推荐使用 Smithery CLI 进行本地开发、检查和部署流程。优点包括:
stdio 或 shttp 传输构建捆绑包示例:
# 热重载开发服务器
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 首先的部署。在您的 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>
git clone https://github.com/cloudbring/newrelic-mcp.git
cd newrelic-mcp
npm install
npm run build
{
"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(可选,可以在每次工具调用时提供)API 密钥:
账户 ID:
详细的设置说明,请参阅 docs/new-relic-setup.md。
配置完成后,您可以通过您的 MCP 客户端与 New Relic 进行交互:
"显示我过去一小时的 Web 应用程序平均响应时间"
"今天最慢的前 10 个数据库查询是什么?"
"展示生产环境的错误率趋势"
"列出我的所有 APM 应用程序及其当前状态"
"显示我的 Node.js 服务的健康状况"
"哪些应用程序有活动告警?"
"显示所有打开的事件"
"过去 24 小时内触发了哪些关键告警?"
"确认事件 #12345"
"查找所有生产中的 Redis 数据库"
"显示具有高 CPU 使用率的实体"
"列出所有合成监控器及其成功率"
以下是此服务器公开的所有 MCP 工具的简明目录。请参阅文档文件夹以获取详细的故事/规格。
| 工具 | 概述 |
|---|---|
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 | 获取账户元数据 |
| 工具 | 概述 | 备注 |
|---|---|---|
create_deployment | 为 APM 应用程序创建部署标记 | 输入:application_id,revision;可选 changelog,description,user;支持 region |
list_deployments_rest | 列出应用程序的部署 | 支持 page,auto_paginate,region |
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_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 密钥是否有效:
curl -X POST https://api.newrelic.com/graphql \
-H 'Content-Type: application/json' \
-H 'API-Key: YOUR_API_KEY' \
-d '{"query":"{ actor { user { email } } }"}'
检查您的账户 ID 是否正确
确保您的 API 密钥具有必要的权限
检查 MCP 客户端日志以获取详细的错误消息
如果您收到权限错误:
验证您的 API 密钥具有所需的权限:
NRQL 查询 权限APM 读取权限告警 读写权限如果需要,创建一个具有更广泛权限的新 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 查询工具
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
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):
# 运行所有测试
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 以获取详细说明。
服务器遵循模块化架构:
每个工具:
我们欢迎贡献!请参阅我们的 贡献指南 以获取详细信息。
git checkout -b feature/amazing-feature)npm test)npm run lint)此项目使用:
我们研究了其他公共的 New Relic MCP 服务器,并未发现任何在撰写本文时活跃维护且功能完整的替代方案。如果您知道一个,请打开一个问题将其添加到这里。
| 项目 | 状态 | 传输方式 | 部署 | APM 应用程序 | 指标 | 告警 | 合成监控 | 备注 |
|---|---|---|---|---|---|---|---|---|
| 本项目 (newrelic-mcp) | 活跃 | NerdGraph + REST v2 | 创建/列表/删除 | 列表(NerdGraph + REST) | 主机名称 + 时间切片(REST) | 策略 + 事件(NG + REST) | 列表/创建(浏览器) | 全面的测试和文档 |
计划增强功能(基于 REST v2 目录和用户需求):