New Relic
Query New Relic logs using NRQL queries.
New Relic MCP Server
A simple Model Context Protocol (MCP) server for querying New Relic logs using NRQL queries. This server enables Large Language Models (LLMs) like Claude to interact with your New Relic data.
Features
- Query New Relic logs and metrics using NRQL
- Detailed error logging
- Easy integration with Claude Desktop
- Human-readable output formatting
- Configurable New Relic account ID
Setup Instructions
Prerequisites
- Python 3.10 or higher
- New Relic account and API key
- Claude Desktop application
Installation Steps
- Install
uvpackage manager:
# 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 and setup project:
# 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
-
Create server file
newrelic_logs_server.pywith the provided code. -
Configure your environment variables:
# 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 Integration
Configure Claude Desktop by editing your configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the following configuration:
{
"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"
}
}
}
}
Usage
Example NRQL Queries
- Basic Transaction Query:
SELECT * FROM Transaction SINCE 1 hour ago
- Error Analysis:
SELECT * FROM Transaction WHERE error IS TRUE SINCE 1 hour ago LIMIT 10
- Performance Analysis:
SELECT average(duration) FROM Transaction FACET name ORDER BY average(duration) DESC LIMIT 5
Example Claude Prompts
You can ask Claude questions like:
- "Show me all transactions from the last hour"
- "Are there any errors in our application?"
- "What are our slowest endpoints?"
Debugging
Viewing Logs
# On macOS/Linux
tail -f ~/Library/Logs/Claude/mcp-server-newrelic.log
# On Windows
type %APPDATA%\Claude\logs\mcp-server-newrelic.log
Testing with MCP Inspector
Test your server functionality using:
npx @modelcontextprotocol/inspector uv run newrelic_logs_server.py
Common Issues
- Authentication Errors:
- Check if NEW_RELIC_API_KEY is set correctly
- Verify API key has correct permissions
- Ensure API key is valid
- Query Errors:
- Verify NRQL syntax
- Check account ID in code matches your account
- Ensure queried data exists in the time range
- Connection Issues:
- Check network connectivity
- Verify GraphQL endpoint is accessible
- Ensure no firewalls are blocking connections
Security Notes
- Never commit API keys to version control
- Use environment variables for sensitive data
- Keep dependencies updated
- Monitor query patterns and access logs
Development
Local Testing
- Set environment variables:
export NEW_RELIC_API_KEY="your-api-key-here"
export NEW_RELIC_ACCOUNT_ID="your-account-id-here"
- Run the server:
uv run newrelic_logs_server.py
Code Structure
The server implements:
- Single NRQL query tool
- Configurable New Relic account ID
- Comprehensive error handling
- Detailed logging
- Response formatting
Testing Changes
- Modify code as needed
- Test with MCP Inspector
- Restart Claude Desktop to apply changes
Troubleshooting Guide
- Server Not Starting:
- Check Python version
- Verify all dependencies are installed
- Ensure virtual environment is activated
- Query Not Working:
- Check logs for detailed error messages
- Verify NRQL syntax
- Ensure data exists in queried time range
- Claude Not Connecting:
- Verify configuration file syntax
- Check paths are absolute
- Restart Claude Desktop
Contributing
- Fork the repository
- Create a feature branch
- Submit a pull request
License
This project is licensed under the MIT License.
Support
If you encounter issues:
- Check the logs
- Review common issues section
- Test with MCP Inspector
- File an issue on GitHub
Related Servers
Spotify MCP Node Server
Control Spotify playback and manage playlists using AI assistants and IDEs.
Doppler
Manage secrets from Doppler, a secret management platform. Requires a Doppler API token.
HubSpot MCP Server
Interact with HubSpot CRM data, providing access to contacts, companies, and engagement information.
Remote MCP Server on Cloudflare
A self-hostable MCP server for Cloudflare Workers with OAuth login support, using Cloudflare KV for storage.
Google Cloud Logging
An MCP server for accessing Google Cloud Logging data and services.
Globus
Manage research data and compute with Globus.
Portainer MCP
Manage Portainer resources and execute Docker or Kubernetes commands through an AI assistant.
Pangea MCP proxy
Protect any MCP server from malicious entities and confidential PII using Pangea's AI Guard and Vault.
Vitally
Access customer data from the Vitally API.
Google Cloud Healthcare API (FHIR)
Provides healthcare tools for interacting with FHIR resources on Google Cloud Healthcare API and public medical research APIs like PubMed.
