SigNozCAUTION
MCP Server for SigNoz
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://golang.org) [](LICENSE) [](https://modelcontextprotocol.io)
A Model Context Protocol (MCP) server that provides seamless access to SigNoz observability data through AI assistants and LLMs. Query metrics, traces, logs, alerts, dashboards, and services using natural language.
[📖 Full Documentation](https://signoz.io/docs/ai/signoz-mcp-server/)
Table of Contents
- Connect to SigNoz Cloud
- Self-Hosted Installation
- Connect to Self-Hosted SigNoz
- MCP Protocol Compatibility
- What Can You Do With It?
- Available Tools
- Environment Variables
- Claude Desktop Extension
- End-to-End Tests
- Architecture
- Contributing
Connect to SigNoz Cloud
Connect your AI tool to SigNoz Cloud's hosted MCP server. No installation is required; just add the hosted MCP URL and authenticate.
https://mcp..signoz.cloud/mcp
Make sure you select the correct region that matches your SigNoz Cloud account. Using the wrong region will result in authentication failures. Find your region under Settings → Ingestion in SigNoz, or see the SigNoz Cloud region reference.
One-Click Install Links
GitHub does not reliably make custom-protocol links like cursor:// and vscode: clickable in README rendering.
Use the documentation page for one-click install buttons:
- [Open one-click install links for Cursor](https://signoz.io/docs/ai/signoz-mcp-server/#install-in
21d203fa903cOBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add signoz-mcp-server:v0.15.0 -- docker run -i --rm docker.io/signoz/signoz-mcp-server:v0.15.0:None
Trust audit
CAUTIONgrade C · trust 74/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (3 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- found
Findings (24)
const secret = "never-log-this-token"
"sk_live_suggestioncanary123456",
"sk_live_detailcanary123456",
"sk_live_detailhintcanary123456",
.goreleaser.yaml
AGENTS.md
"169.254.169.254", // SSRF target blocked once an allowlist is set
server --url http://127.0.0.1:<port>/mcp \
{"http://0.0.0.0:3301", "not allowed"},return &localHTTPTestServer{URL: "http://127.0.0.1", handler: handler}url: "https://1.1.1.1:443",
want: "https://1.1.1.1",
never print or persist credentials, report which fields round-tripped server-side, and prefer
Since tokens are self-contained encrypted blobs, any server instance with the same `OAUTH_TOKEN_SECRET` can validate any token. No sticky sessions or shared state needed. The only requirement is that
The Streamable HTTP transport runs stateless (`WithStateLess(true)`; see [architecture.md](architecture.md)) — no `Mcp-Session-Id` is issued and there is no server-owned session lifecycle to report. T
This is materially different from the post-decrypt OAuth paths (`handleAuthorizationCodeGrant`, `handleRefreshTokenGrant`, `issueTokenPair`), where `signozURL` comes out of an encrypted token the **se
- `README.md`: supported protocol-era/transport table, `server/discover` and legacy initialize behavior, stateless POST-only endpoint, no session ID, and unchanged client configuration.
internal/docs/assets/corpus.gob.gz
When OAuth is enabled, the middleware first tries to decrypt an `Authorization` Bearer token as a server-issued OAuth access token; a valid one unwraps to a stored API key forwarded via `SIGNOZ-API-KE
finds it. Use read-only queries and never persist credentials.
assigning viewer access or creating/revoking credentials.
read-only, avoid logging credentials, and report whether a real recognized
- Do not retry or route around the policy. Ask the user for explicit approval after disclosing the risk. If approved, keep the routing suite non-executing and run only a separately identified read-onl
Gates applied: no_behavioural_pass.
21d203fa903cfull audit observations/trust-audit/mcp-server/signoz__signoz-1.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 21d203fa903c | CAUTION | C | 74 | first audit |
Questions
What is the SigNoz MCP server?
MCP Server for SigNoz
Is SigNoz safe to connect to an agent?
With care. The audit graded it C (74/100) and found 24 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does SigNoz need?
It reads GITHUB_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does SigNoz run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as signoz-mcp-protocol-ci at 1.0.0.
How current is this page?
The grade is for one exact copy of the source (21d203fa903c), read on 2026-10-07. The repository is watched and re-audited when it changes.