icon for mcp server

SolarWinds Logs Visualization

STDIO

Model Context Protocol server for accessing and visualizing SolarWinds Observability logs.

SolarWinds Logs MCP Server

A Model Context Protocol (MCP) server for accessing and visualizing SolarWinds Observability logs.

Note -

This server is currently incomplete as it does not support structured data search (a limitation of the REST API?). I'm uncertain if it also needs to accept a data center to use in the api endpoint calls. Will address both when time allows (needed it for a real work problem, have to fix that first)

Tools

search_logs

Search SolarWinds Observability logs with optional filtering

  • Takes search parameters including filter, time range, and pagination options
  • Returns formatted log entries with timestamps, hostnames, and messages
  • Supports advanced filtering by group, entity, and more
  • Default search range is the last 24 hours

visualize_logs

Generate a histogram json response for of log events

  • Formatted for Claude and canvas representations
  • Configurable time intervals (minute, hour, day)
  • Supports UTC or local time zones
  • Customizable query filters and time ranges
  • Default visualization range is the last 24 hours

Resources

SolarWinds Log Search

  • URI Template: solarwinds://{query}/search
  • Returns log entries matching the specified query
  • Example: solarwinds://error/search

Installation

Optionally install from npm:

npm install -g mcp-solarwinds

Or clone and build from source:

git clone https://github.com/@jakenuts/mcp-solarwinds.git cd mcp-solarwinds npm install npm run build

Or just use npx in your configurations

For Cline VSCode Extension

Add to %APPDATA%/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:

{ "mcpServers": { "solarwinds": { "command": "npx", "args": ["-y", "mcp-solarwinds"], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" }, "autoApprove": ["search_logs", "visualize_logs"] } } }

For Claude Desktop

Add to the appropriate config file:

Windows: %APPDATA%/Claude/claude_desktop_config.json MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{ "mcpServers": { "solarwinds": { "command": "npx", "args": ["-y", "mcp-solarwinds"], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" } } } }

Special Windows Configuration

If you encounter the ENOENT spawn npx issue on Windows, use this alternative configuration that specifies the full paths:

{ "mcpServers": { "solarwinds": { "command": "C:\\Users\\[username]\\AppData\\Roaming\\nvm\\[node-version]\\node.exe", "args": [ "C:\\Users\\[username]\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npx-cli.js", "-y", "mcp-solarwinds" ], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" } } } }

Configuration

The SolarWinds Observability MCP server requires an API token to authenticate with the SolarWinds Observability API.

Configuration Methods

There are multiple ways to provide the API token:

  1. MCP Settings Configuration (Recommended): Configure the token in your MCP settings file
  2. Environment Variable: Set the SOLARWINDS_API_TOKEN environment variable
  3. Local .env File (For Testing): Create a .env file in the project root with SOLARWINDS_API_TOKEN=your-token

For local testing, you can:

  1. Copy .env.example to .env and add your token
  2. Run the example script: node examples/local-test.js

Tool Usage Examples

search_logs

Basic search:

{ "filter": "error" }

Advanced search with time range and pagination:

{ "filter": "error", "entityId": "web-server", "startTime": "2025-03-01T00:00:00Z", "endTime": "2025-03-05T23:59:59Z", "pageSize": 100, "direction": "backward" }

visualize_logs

Basic histogram (ASCII chart):

{ "filter": "error", "interval": "hour" }

Advanced visualization (ASCII chart):

{ "filter": "error", "entityId": "web-server", "startTime": "2025-03-01T00:00:00Z", "endTime": "2025-03-05T23:59:59Z", "interval": "day", "use_utc": true }

Claude visualization (JSON format):

{ "filter": "error", "interval": "hour", "format": "json" }

The JSON format returns data that Claude can visualize as a chart:

{ "timeRanges": ["12:02", "12:03", "12:04", "12:05", "12:06", "12:07", "12:08", "12:09"], "counts": [261, 47, 48, 48, 31, 262, 270, 33], "total": 1000, "queryParams": { "query": "error", "startTime": "2025-03-05T00:00:00.000Z", "endTime": "2025-03-05T23:59:59.000Z" } }

Development

Install dependencies:

npm install

Build the server:

npm run build

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. The MCP Inspector provides helpful debugging tools:

npm run debug:inspector

This will provide a URL to access the inspector in your browser, where you can:

  • View all MCP messages
  • Inspect request/response payloads
  • Test tools interactively
  • Monitor server state

For local testing without the MCP framework:

# Create a .env file with your token cp .env.example .env # Edit .env to add your token # Run the example script node examples/local-test.js

Technical Details

  • Built with TypeScript and the MCP SDK
  • Uses axios for API communication
  • Supports ISO 8601 date formats for time ranges
  • Generates ASCII histograms for log visualization
  • Default search range: last 24 hours
  • Default page size: 50 logs
  • Supports multiple authentication methods

Be the First to Experience MCP Now