
SigNoz
STDIOSigNoz MCP server providing AI-powered access to observability metrics, alerts, and dashboards
SigNoz MCP server providing AI-powered access to observability metrics, alerts, and dashboards
A Model Context Protocol (MCP) server that provides seamless access to SigNoz observability data through AI assistants and LLMs. This server enables natural language queries for metrics, alerts, dashboards, and service performance data.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP Client │───▶│ MCP Server │───▶│ SigNoz API │
│ (AI Assistant)│ │ (Go) │ │ (Observability)│
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Tool Handlers │
│ (HTTP Client) │
└──────────────────┘
Use this mcp-server with MCP-compatible clients like Claude Desktop and Cursor.
signoz-mcp-server
(for example: .../signoz-mcp-server/bin/signoz-mcp-server
).edit config
claude_desktop_config.json
Add shown config with your signoz url, api key and path to signoz-mcp-server binary.{ "mcpServers": { "signoz": { "command": "/absolute/path/to/signoz-mcp-server/bin/signoz-mcp-server", "args": [], "env": { "SIGNOZ_URL": "https://your-signoz-instance.com", "SIGNOZ_API_KEY": "your-api-key-here", "LOG_LEVEL": "info" } } } }
signoz
server load in the developer console and its tools become available.Notes:
command
path with your actual binary location.Option A — GUI:
+
New MCP ServerOption B — Project config file:
Create .cursor/mcp.json
in your project root:
For Both options use same json struct
{ "mcpServers": { "signoz": { "command": "/absolute/path/to/signoz-mcp-server/bin/signoz-mcp-server", "args": [], "env": { "SIGNOZ_URL": "https://your-signoz-instance.com", "SIGNOZ_API_KEY": "your-api-key-here", "LOG_LEVEL": "info" } } } }
Once added, restart Cursor to use the SigNoz tools.
Note: By default, the server logs at info
level. If you need detailed debugging information, set LOG_LEVEL=debug
in your environment. For production use, consider using LOG_LEVEL=warn
to reduce log verbosity.
signoz-mcp-server/
├── cmd/server/ # Main application entry point
├── internal/
│ ├── client/ # SigNoz API client
│ ├── config/ # Configuration management
│ ├── handler/tools/ # MCP tool implementations
│ ├── logger/ # Logging utilities
│ └── mcp-server/ # MCP server core
├── go.mod # Go module dependencies
├── Makefile # Build automation
└── README.md
# Clone the repository git clone https://github.com/SigNoz/signoz-mcp-server.git cd signoz-mcp-server # Build the binary make build # Or build directly with Go go build -o bin/signoz-mcp-server ./cmd/server/
Set the following environment variables:
export SIGNOZ_URL="https://your-signoz-instance.com" export SIGNOZ_API_KEY="your-api-key-here" export LOG_LEVEL="info" # Optional: debug, info, error (default: info)
In SigNoz Cloud, SIGNOZ_URL is typically - https://ingest.
You can access API Key by going to Settings -> Workspace Settings -> API Key in SigNoz UI
# Run the built binary ./bin/signoz-mcp-server
internal/handler/tools/
internal/client/client.go
The MCP server provides the following tools that can be used through natural language:
"Show me all available metrics"
"Search for CPU-related metrics"
"List all active alerts"
"Get details for alert rule ID abc123"
"List all dashboards"
"Show me the Host Metrics dashboard details"
"List all services from the last 24 hours"
"What are the top operations for the paymentservice?"
list_metric_keys
Lists all available metric keys from SigNoz.
search_metric_keys
Searches for metrics by text query.
searchText
(required) - Text to search forlist_alerts
Lists all active alerts from SigNoz.
get_alert
Gets details of a specific alert rule.
ruleId
(required) - Alert rule IDlist_dashboards
Lists all dashboards with summaries (name, UUID, description, tags).
get_dashboard
Gets complete dashboard configuration.
uuid
(required) - Dashboard UUIDlist_services
Lists all services within a time range.
start
(required) - Start time in nanosecondsend
(required) - End time in nanosecondsget_service_top_operations
Gets top operations for a specific service.
start
(required) - Start time in nanosecondsend
(required) - End time in nanosecondsservice
(required) - Service nametags
(optional) - JSON array of tagsAll time parameters use nanoseconds since Unix epoch. For example:
1751328000000000000
(August 2025)1751241600000000000
All tools return JSON responses that are optimized for LLM consumption:
Variable | Description | Required |
---|---|---|
SIGNOZ_URL | SigNoz instance URL | Yes |
SIGNOZ_API_KEY | SigNoz API key | Yes |
We welcome contributions!
Made with ❤️ for the observability community