MCP New Relic查询器
一种模型上下文协议服务器,使大型语言模型(如Claude)能够使用NRQL查询来查询New Relic的日志和指标。
服务介绍
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 应用程序
安装步骤
- 安装
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"
- 创建并设置项目:
# 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
-
使用提供的代码创建服务器文件
newrelic_logs_server.py。 -
配置您的环境变量:
# 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 查询
- 基本事务查询:
SELECT * FROM Transaction SINCE 1 hour ago
- 错误分析:
SELECT * FROM Transaction WHERE error IS TRUE SINCE 1 hour ago LIMIT 10
- 性能分析:
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
常见问题
- 认证错误:
- 检查 NEW_RELIC_API_KEY 是否正确设置
- 确认 API 密钥具有正确的权限
- 确保 API 密钥有效
- 查询错误:
- 核实 NRQL 语法
- 检查代码中的账户 ID 与您的账户匹配
- 确保在查询的时间范围内存在数据
- 连接问题:
- 检查网络连接
- 确认 GraphQL 端点可访问
- 确保没有防火墙阻止连接
安全注意事项
- 永远不要将 API 密钥提交到版本控制
- 对敏感数据使用环境变量
- 保持依赖项更新
- 监控查询模式和访问日志
开发
本地测试
- 设置环境变量:
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"
- 运行服务器:
uv run newrelic_logs_server.py
代码结构
服务器实现:
- 单个 NRQL 查询工具
- 可配置的 New Relic 账户 ID
- 全面的错误处理
- 详细的日志记录
- 响应格式化
测试更改
- 根据需要修改代码
- 使用 MCP Inspector 测试
- 重启 Claude Desktop 以应用更改
故障排除指南
- 服务器无法启动:
- 检查 Python 版本
- 确认所有依赖项已安装
- 确保虚拟环境已激活
- 查询不起作用:
- 检查日志以获取详细的错误信息
- 核实 NRQL 语法
- 确保在查询的时间范围内存在数据
- Claude 无法连接:
- 核实配置文件语法
- 确保路径是绝对路径
- 重启 Claude Desktop
贡献
- Fork 仓库
- 创建一个功能分支
- 提交一个拉取请求
许可证
本项目采用 MIT 许可证。
支持
如果您遇到问题:
- 检查日志
- 查看常见问题部分
- 使用 MCP Inspector 进行测试
- 在 GitHub 上提交一个问题