🚀 New Relic MCP Server
New Relic MCP Server 是一個遵循模型上下文協議(MCP)的服務器,可與 New Relic 的可觀測性平臺實現無縫集成。你可以通過這個簡單統一的接口查詢指標、管理警報、監控應用程序,並與整個可觀測性堆棧進行交互。
免責聲明:這是一個非官方的社區項目,與 New Relic, Inc. 沒有關聯、未得到其認可或支持。所有商標均為其各自所有者的財產。
🚀 快速開始
按照以下步驟,你可以快速安裝並使用 New Relic MCP Server:
- 安裝並配置 New Relic MCP Server。
- 獲取 New Relic 憑證。
- 通過 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 的開發服務器(可選隧道)。
- 為
stdio
或 shttp
傳輸構建捆綁包。
- 交互式檢查服務器;使用提供的配置運行。
- 為每個客戶端簡單安裝。
示例:
npx @smithery/cli dev src/server.ts --port 8181 --no-open
npx @smithery/cli build src/server.ts --out .smithery/index.cjs --transport shttp
npx @smithery/cli inspect @cloudbring/newrelic-mcp
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
手動安裝
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 憑證
- API 密鑰:
- 登錄 New Relic。
- 在左側邊欄中導航到 API 密鑰。
- 創建一個具有適當權限的新用戶 API 密鑰。
- 賬戶 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_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/*
故障排除
連接問題
如果你在連接時遇到問題:
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 查詢工具
設置開發環境
- 克隆倉庫:
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),並結合以下工具:
- Vitest 進行單元測試。
- Gherkin 進行 BDD 測試。
- Evalite 進行 LLM 響應驗證。
npm test
npm run test:coverage
npm run test:bdd
USE_REAL_ENV=true npm test
調試
使用 MCP Inspector 測試和調試服務器:
npm run inspect
npm run inspect:dev
npm run inspect:env
有關詳細說明,請參閱 docs/mcp-inspector-setup.md。
架構
服務器採用模塊化架構,包括:
- 客戶端層:處理與 New Relic API 的通信。
- 工具層:實現 MCP 工具規範。
- 服務器層:管理 MCP 協議和工具路由。
每個工具:
- 具有單一、明確的目的。
- 使用 Zod 模式驗證輸入。
- 返回結構化、類型化的響應。
- 包括全面的錯誤處理。
貢獻指南
我們歡迎貢獻!詳細信息請參閱我們的 貢獻指南。
開發工作流程
- 分叉倉庫。
- 創建一個功能分支(
git checkout -b feature/amazing-feature
)。
- 首先編寫測試(TDD 方法)。
- 實現你的功能。
- 確保所有測試通過(
npm test
)。
- 保持代碼覆蓋率 >90%。
- 運行 linting(
npm run lint
)。
- 提交你的更改(提交將自動格式化)。
- 推送到你的分支。
- 打開一個拉取請求。
代碼風格
本項目使用:
- 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 用心打造 ❤️