M

MCP New Relic查询器

@Ivlad003/mcp_newrelic
0 Stars 16 次浏览 Ivlad003 更新于 2026-08-23

一种模型上下文协议服务器,使大型语言模型(如Claude)能够使用NRQL查询来查询New Relic的日志和指标。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

New Relic MCP 服务器

一个简单的 Model Context Protocol (MCP) 服务器,用于通过 NRQL 查询来查询 New Relic 日志。该服务器使像 Claude 这样的大型语言模型(LLMs)能够与您的 New Relic 数据进行交互。

特性

  • 使用 NRQL 查询 New Relic 日志和指标
  • 详细的错误日志记录
  • 易于与 Claude Desktop 集成
  • 人类可读的输出格式
  • 可配置的 New Relic 账户 ID

设置说明

先决条件

  • Python 3.10 或更高版本
  • New Relic 账户和 API 密钥
  • Claude Desktop 应用程序

安装步骤

  1. 安装 uv 包管理器:
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
  1. 创建并设置项目:
# Create directory
mkdir newrelic-mcp
cd newrelic-mcp

# Create virtual environment
uv venv

# Activate virtual environment
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows

# Install dependencies
uv pip install "mcp[cli]" httpx
  1. 使用提供的代码创建服务器文件 newrelic_logs_server.py

  2. 配置您的环境变量:

# On Unix/macOS
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"

# On Windows (CMD)
set NEW_RELIC_API_KEY=your-api-key-here
set NEW_RELIC_ACCOUNT_ID=your-account-id-here

# On Windows (PowerShell)
$env:NEW_RELIC_API_KEY = "your-api-key-here"
$env:NEW_RELIC_ACCOUNT_ID = "your-account-id-here"

Claude Desktop 集成

通过编辑您的配置文件来配置 Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

{
    "mcpServers": {
        "newrelic": {
            "command": "uv",
            "args": [
                "--directory",
                "/absolute/path/to/newrelic-mcp",
                "run",
                "newrelic_logs_server.py"
            ],
            "env": {
                "NEW_RELIC_API_KEY": "your-api-key-here",
                "NEW_RELIC_ACCOUNT_ID": "your-account-id-here"
            }
        }
    }
}

使用方法

示例 NRQL 查询

  1. 基本事务查询:
SELECT * FROM Transaction SINCE 1 hour ago
  1. 错误分析:
SELECT * FROM Transaction WHERE error IS TRUE SINCE 1 hour ago LIMIT 10
  1. 性能分析:
SELECT average(duration) FROM Transaction FACET name ORDER BY average(duration) DESC LIMIT 5

示例 Claude 提示

您可以向 Claude 提出如下问题:

  • "显示我过去一小时内的所有事务"
  • "我们的应用程序中是否有任何错误?"
  • "我们最慢的端点是什么?"

调试

查看日志

# On macOS/Linux
tail -f ~/Library/Logs/Claude/mcp-server-newrelic.log

# On Windows
type %APPDATA%\Claude\logs\mcp-server-newrelic.log

使用 MCP Inspector 测试

使用以下方式测试您的服务器功能:

npx @modelcontextprotocol/inspector uv run newrelic_logs_server.py

常见问题

  1. 认证错误:
  • 检查 NEW_RELIC_API_KEY 是否正确设置
  • 确认 API 密钥具有正确的权限
  • 确保 API 密钥有效
  1. 查询错误:
  • 核实 NRQL 语法
  • 检查代码中的账户 ID 与您的账户匹配
  • 确保在查询的时间范围内存在数据
  1. 连接问题:
  • 检查网络连接
  • 确认 GraphQL 端点可访问
  • 确保没有防火墙阻止连接

安全注意事项

  • 永远不要将 API 密钥提交到版本控制
  • 对敏感数据使用环境变量
  • 保持依赖项更新
  • 监控查询模式和访问日志

开发

本地测试

  1. 设置环境变量:
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"
  1. 运行服务器:
uv run newrelic_logs_server.py

代码结构

服务器实现:

  • 单个 NRQL 查询工具
  • 可配置的 New Relic 账户 ID
  • 全面的错误处理
  • 详细的日志记录
  • 响应格式化

测试更改

  1. 根据需要修改代码
  2. 使用 MCP Inspector 测试
  3. 重启 Claude Desktop 以应用更改

故障排除指南

  1. 服务器无法启动:
  • 检查 Python 版本
  • 确认所有依赖项已安装
  • 确保虚拟环境已激活
  1. 查询不起作用:
  • 检查日志以获取详细的错误信息
  • 核实 NRQL 语法
  • 确保在查询的时间范围内存在数据
  1. Claude 无法连接:
  • 核实配置文件语法
  • 确保路径是绝对路径
  • 重启 Claude Desktop

贡献

  1. Fork 仓库
  2. 创建一个功能分支
  3. 提交一个拉取请求

许可证

本项目采用 MIT 许可证。

支持

如果您遇到问题:

  1. 检查日志
  2. 查看常见问题部分
  3. 使用 MCP Inspector 进行测试
  4. 在 GitHub 上提交一个问题