npx skills add ...
npx skills add signoz/agent-skills --skill signoz-mcp-setup
npx skills add signoz/agent-skills --skill signoz-mcp-setup
Initialize or repair SigNoz MCP server configuration for Claude Code, Codex, Cursor, VS Code/GitHub Copilot, Claude Desktop, Gemini CLI, Devin CLI, Windsurf, Zed, Antigravity CLI, OpenCode, or another MCP client. Use this skill before any SigNoz docs, query, dashboard, alert, or view workflow when `signoz_*` tools are unavailable, or when the user says "setup SigNoz MCP", "configure SigNoz plugin", "wrong region", "change SigNoz region", "MCP auth failed", or asks to connect SigNoz Cloud or a self-hosted MCP endpoint, even if they do not mention the plugin.
Initialize or repair the SigNoz MCP server registration shipped with this
plugin. The target state is one working signoz MCP server. Do not create a
duplicate server unless the user explicitly asks for a separate configuration.
Read references/mcp-settings.md before checking state, mapping user input, or editing registration files. It contains the server-state check, registration file locations, editing rules, and region mapping used by this procedure.
Read references/client-configs.md when the user names a client other than the bundled Claude Code, Codex, or Cursor plugin path, when a native client config already exists, or when self-hosted stdio/local-binary setup is requested.
Determine this before checking state — it decides where state is allowed to be checked from.
Use the client named in $ARGUMENTS or the user's latest message. If no
client is named, infer it only when the active environment is obvious (which
agent CLI or editor is running this skill, not just what files happen to exist
on disk):
client-configs.md.If you need to edit a native client config and the client is still ambiguous, ask which client they want to configure.
Silently determine the SigNoz MCP server state using the reference flow, scoped to the client identified in Step 1:
Probe with signoz_list_services(timeRange: "1h", limit: 1). Do not use docs
tools (signoz_search_docs or signoz_fetch_doc) for this check.
.signoz_claude_mcp.json, .mcp.json, or .signoz_cursor_mcp.json. Those
are bundled files for a different client's plugin distribution and are
irrelevant here even if a file-search tool happens to find them (for
example when this skill is linked from a local checkout of the
agent-skills source repo itself, which ships all three files side by
side). Check that client's own native config location instead, per
client-configs.md.State outcomes:
signoz_list_services succeeded; continue with the user's
original SigNoz request.Do not fall back to raw HTTP calls for SigNoz data when MCP is unavailable. The MCP server is the supported API surface for this plugin's live SigNoz workflows.
The workflow skills assume the current SigNoz MCP server contract. If a SigNoz tool reports schema or parameter errors that contradict the skill instructions, repair or update the MCP server connection instead of inventing alternate raw HTTP calls or teaching legacy parameters.
Use $ARGUMENTS or the user's latest message if it already contains a region
or URL. Otherwise ask for one of:
us, us2, eu, eu2, in, in2, or a newer
region codehttps://mcp.us.signoz.cloud/mcphttp://localhost:8000/mcpMap the response using mcp-settings.md. If the user gives only a SigNoz
workspace URL such as https://your-instance.signoz.cloud, do not guess the
region from it. Ask them to check Settings -> Ingestion in SigNoz and
provide the region.
Do not ask for an API key for SigNoz Cloud setup. OAuth asks for the instance
URL and service account API key after the hosted MCP URL is configured. For
self-hosted SigNoz, prefer HTTP mode when the user gives an /mcp endpoint.
For stdio/local-binary mode, collect the binary path, SigNoz URL, and API key
only if the user explicitly asks you to configure that mode. For clients that
cannot complete interactive OAuth, use the header-based fallback in
client-configs.md only when the user asks for it or the client requires it.
For bundled Claude Code, Codex, and Cursor plugin installs, edit the registration files using the reference editing rules:
.signoz_claude_mcp.json for Claude Code, replace only the url value
with the resolved MCP endpoint. Preserve the existing server key and type:
this file ships the server key mcp, and renaming it changes the tool
namespace (plugin:signoz:mcp) and forces re-authentication..mcp.json for Codex, replace only the url value with the resolved MCP
endpoint, preserving the existing signoz server key..signoz_cursor_mcp.json for Cursor, replace only the url value with the
resolved MCP endpoint, preserving the existing signoz server key.Claude Code target shape (keep the mcp server key and type):
Codex and Cursor target shape (keep the signoz server key):
If either bundled file still uses any SIGNOZ_MCP_URL wrapper from an older
version, replace it with the concrete resolved URL.
Bundled registration files live inside the installed plugin. Plugin updates can
reset them to the placeholder; if that happens, rerun this setup skill. For a
more durable native-client setup, use the relevant recipe in client-configs.md.
For Codex, if the user says the endpoint reset again, keeps resetting, or asks for a durable/persistent setup, also create or update the native Codex MCP server entry after resolving the endpoint:
This writes the user-level [mcp_servers.signoz] entry in Codex config and
survives plugin cache updates. If editing TOML directly, preserve unrelated
config and only set url for mcp_servers.signoz.
For native client setup, use client-configs.md:
signoz in native client configs (the bundled Claude
Code plugin file is the only one that uses the mcp key — do not rename it).Backend RBAC classifies MCP failures from the API key's user role: reads need at
least viewer; alert/dashboard writes need editor or admin; notification-channel
management and API-key creation need admin. 401 / UNAUTHORIZED means the
credential is missing, invalid, or expired: check configuration/presence
first, then reauthenticate or reissue as appropriate. 403 /
PERMISSION_DENIED means credentials are valid but under-privileged. Have a
sufficiently privileged user act or issue a dedicated minimum-role key; never
paste elevated keys into chat or tracked config.
Tell the user that the SigNoz MCP endpoint has been configured, then give the client-specific authentication step:
signoz MCP server in
Tools & MCP if prompted.signoz server if prompted, then complete the authentication flow.codex mcp login signoz to complete OAuth, then verify with /mcp. For a
self-hosted HTTP endpoint (no OAuth unless the server runs with
OAUTH_ENABLED=true), skip the login step and just verify with /mcp that the
already-authenticated signoz server is connected./mcp, select signoz, and complete authentication.claude_desktop_config.json; that file is
only for command-based registration, not a hosted URL./mcp auth signoz..devin/config.json is
picked up. For SigNoz Cloud, run devin mcp login signoz to complete OAuth.
For a self-hosted or header-based endpoint, no OAuth step is expected./mcp, select the signoz server, and choose
Authenticate to start the OAuth flow (complete it in the browser). Self-hosted
endpoints need no OAuth unless the server runs with OAUTH_ENABLED=true. If
authentication is stuck, clear cached dynamic auth providers and retry.opencode mcp auth signoz if authentication does not
start automatically, then verify with opencode mcp list.Keep the response short. Do not expose registration file paths, placeholder values, environment variable names, API keys, tokens, or file contents unless the user explicitly asks for implementation details.
codex mcp add signoz --url <resolved-mcp-url>