Nobl9 MCP server
The Nobl9 MCP server connects AI clients directly to the Nobl9 platform,
enabling AI agents to interact with your SLOs, monitor reliability metrics, and manage SLO configurations through natural language.
MCP stands for Model Context Protocol,
it is an open-source standard for connecting AI applications to external systems.
Before you proceed, select the Nobl9 instance that matches the host in your browser URL.
Choose your Nobl9 instance
Setup
- Claude Code
- Claude
- ChatGPT
- Gemini Enterprise
- Codex
- Cursor
- OpenCode
- VS Code Copilot
- Other
If you added the Nobl9 connector in Claude, Claude Code can use it too. Sign
in to Claude Code with the same Claude account, run /mcp, and find Nobl9
among the connectors from claude.ai. Claude Code doesn't load these
connectors when it runs with an API key or through a cloud provider such as
Amazon Bedrock. The connector from the Claude Connectors Directory connects
to app.nobl9.com only.
To configure Claude Code manually, or for us1.nobl9.com and dedicated
instances, connect directly to the remote server:
-
Add the Nobl9 MCP server:
claude mcp add --transport=http nobl9 https://app.nobl9.com/api/mcp -
Start
claude. -
Run
/mcpcommand and navigate to Nobl9 MCP server, then select it. -
Choose Authenticate and sign in to Nobl9 in the browser tab that opens.
If you add the server with claude mcp add and also have the Nobl9
connector in Claude, Claude Code uses the server you added and hides the
connector in /mcp.
A connector you add in Claude is also available in Claude Code when you sign in to Claude Code with the same Claude account.
Add the Nobl9 connector from the Claude Connectors Directory. The connector connects Claude to the hosted Nobl9 MCP server, so there is no server URL to paste. It works in Claude on the web, in the desktop app, and in the mobile app.
- Open the connector page linked above, or in Claude go to Customize > Connectors, select Discover, and search for Nobl9.
- Select Connect to Claude.
- Sign in to Nobl9 on the page that opens, pick your organization if prompted, and allow access. Back in Claude, Nobl9 is listed under your connectors as Connected.
- In a chat, select +, then Connectors, and check that the Nobl9 toggle is on. Then ask about your SLOs, error budgets, or alerts.
Claude may ask you to approve a tool before it runs. Select Allow once or Always allow. To change this later, open the Nobl9 connector under Customize > Connectors and set its Tool permissions.
On Claude Team and Enterprise plans, an Owner adds the connector for the organization first. If you see Request instead of Connect to Claude, select it to ask your Owners. Owners see Connect for your team, which adds Nobl9 for everyone in the organization. Each member then signs in to Nobl9 with their own account.

Install the Nobl9 plugin from the ChatGPT plugin directory. The plugin connects ChatGPT to the hosted Nobl9 MCP server, so there is no server URL to paste and nothing to configure.
- Open the plugin page linked above, or in ChatGPT open Plugins in the sidebar and search for Nobl9.
- Select Install plugin, then Connect.
- Sign in to Nobl9 in the browser tab that opens, pick your organization if prompted, and allow access.
- Start a chat and ask about your SLOs, error budgets, or alerts. To pick the plugin explicitly, mention @Nobl9 in your prompt.
ChatGPT may ask you to approve an action before the plugin runs it, for example when you ask it to apply an SLO.
If Nobl9 isn't listed, or shows Disabled by admin, ask your ChatGPT workspace administrator to enable it. In Enterprise and Edu workspaces an administrator may need to enable it first.

The client ID in the Gemini Enterprise setup identifies an OAuth client. It is not related to Nobl9 access keys.
Gemini Enterprise connects to a custom MCP server, but it can't register itself, so you create a client for it once.
-
Get the registration endpoint. Open the protected resource metadata (the first link under Remote server) and copy the URL in
authorization_servers[0]. Append/.well-known/oauth-authorization-serverto that URL and open it: this is the authorization server metadata. Copy itsregistration_endpointvalue. -
Create an OAuth client by calling that endpoint. The response contains the
client_idandclient_secretyou'll enter in the form:curl -X POST "<registration_endpoint>" \-H "Content-Type: application/json" \-d '{"client_name": "Gemini Enterprise","redirect_uris": ["https://vertexaisearch.cloud.google.com/oauth-redirect"],"grant_types": ["authorization_code", "refresh_token"],"token_endpoint_auth_method": "client_secret_basic"}' -
In Gemini Enterprise, add a custom MCP server data store and fill in:
Field Value MCP Server URL https://app.nobl9.com/api/mcpAuthentication OAuth 2.0 Authorization URL, Token URL The authorization_endpointandtoken_endpointfrom the same metadata documentClient ID, Client Secret From step 2 Scopes mcp offline_access -
Click Verify Auth and sign in to Nobl9 in the browser.
-
Enable the actions you need, then connect the data store to your Gemini Enterprise app (Apps → Connected data sources).
Each user who chats signs in to Nobl9 individually, so every action runs with that person's own permissions even though the client is shared.
Codex shares its plugin directory with ChatGPT. If you installed the Nobl9
plugin there, Codex can use it too: in a Codex task, open Sources, select
Use plugins, and pick Nobl9. The plugin connects to app.nobl9.com
only.
To configure Codex manually, or for us1.nobl9.com and dedicated instances,
connect directly to the remote server:
-
Add the Nobl9 MCP server:
codex mcp add nobl9 --url https://app.nobl9.com/api/mcpCodex detects OAuth support and opens the sign-in flow right away.
-
Sign in to Nobl9 in the browser tab that opens.
To sign in again later, or if no browser tab opened, run:
codex mcp login nobl9
-
Click Add to Cursor or copy this into your
~/.cursor/mcp.json:{"mcpServers": {"nobl9": {"url": "https://app.nobl9.com/api/mcp"}}} -
Next, click Authenticate next to the server definition. Sign in to Nobl9 in the browser tab that opens.
OpenCode can connect directly to the remote server:
-
Add the Nobl9 MCP server:
opencode mcp add nobl9 --url https://app.nobl9.com/api/mcpOpenCode discovers the OAuth settings from the server and registers itself.
-
Authenticate by running:
opencode mcp auth nobl9Sign in to Nobl9 in the browser tab that opens.
-
Click Add to VS Code or add this to your workspace
.vscode/mcp.jsonor user configuration:mcp.json{"servers": {"nobl9": {"type": "http","url": "https://app.nobl9.com/api/mcp"}}} -
Start the server.
-
Sign in to Nobl9 in the browser tab that opens.
If you're using any other application, the easiest connection method is through sloctl mcp command.
You need a configured sloctl CLI.
If you don't want to install sloctl, you can alternatively use mcp-proxy or other HTTP-to-stdio bridge.
Note that sloctl mcp does exactly that, it bridges between stdio and our remote HTTP server.
We strongly recommend it over any third party software due to security and trust concerns.
However, sloctl mcp does not work for applications running in environments with no access to the terminal, for instance, web-based ChatGPT.
For these applications, you need to connect to Nobl9 remote HTTP server and authenticate through OAuth.
Supported clients
| Client | How to connect | Notes |
|---|---|---|
| Claude | Nobl9 connector from the Claude Connectors Directory | The connector connects to app.nobl9.com. Other instances connect as a custom connector. |
| ChatGPT | Nobl9 plugin from the ChatGPT plugin directory | The plugin connects to app.nobl9.com. Other instances connect as a custom MCP server. |
| Codex | Nobl9 plugin (shared with ChatGPT) or codex mcp add | |
| Claude Code | Nobl9 connector (shared with Claude) or claude mcp add | |
| Cursor | One-click install link or mcp.json | |
| VS Code Copilot | One-click install link or mcp.json | |
| OpenCode | opencode mcp add | |
| Gemini Enterprise | Custom MCP server data store | Needs a pre-registered OAuth client. See the setup tab. |
| Other | sloctl mcp bridge, or the remote server URL with OAuth | sloctl mcp needs a terminal. Web-only clients use the remote server. |
Try it
Once connected, ask in plain words. A few prompts to start with:
- "Which of my services are closest to failing their customers right now?"
- "Explain the most recent alert on my checkout service and whether it was worth the page."
- "Draft a 99.9% availability target for my payments service and show me before you apply it."
Tools that read data never change anything in Nobl9. Tools that create, change, or delete objects run with your own permissions, and most clients ask you to confirm before running them.
Capabilities
Tools
| Tool | What it does |
|---|---|
applyObjects | Applies complete Nobl9 object definitions. |
calculateAlertPolicy | Calculates Alert Policy Analyzer suggestions for an SLO objective over a time range. |
cancelReplay | Requests cancellation of the latest Replay for an SLO. Recalculation-only runs cannot be canceled. |
createSLIAnalysis | Creates an SLI analysis and starts importing historical data. |
createSLIAnalysisCalculation | Starts a calculation using imported SLI data, replacing the previous calculation. |
deleteObjectByName | Deletes Nobl9 object by name. |
deleteQueuedReplays | Deletes queued Replay requests for one SLO without canceling an in-progress Replay. |
deleteSLIAnalysis | Deletes an SLI analysis and its results. |
generateReliabilityRollup | Calculates Reliability Roll-up data from a Report manifest without saving or updating a report. |
generateSLIAnalysisSLO | Generates an SLO YAML template with placeholders from a completed calculation. This tool does not create an SLO. |
getAlertAnalysis | Retrieves the status, detected alerts, and optional time series for an Alert Policy Analyzer run. |
getOrganizationStatus | Retrieves the current status of the organization's components and any ongoing disruptions. |
getReliabilityRollup | Retrieves Reliability Roll-up data for a saved report, including folder scores and summary trends. |
getReplayAvailability | Checks Replay availability for an SLO, with optional Replay type and duration. |
getReplayStatus | Retrieves the latest Replay status and cancellation state for an SLO. |
getSLIAnalysis | Retrieves an analysis, its metric queries, calculation settings, and processing status. |
getSLIAnalysisCalculation | Retrieves the latest completed calculation's good-to-total ratio as a time series. |
getSLIAnalysisHistogram | Retrieves histogram buckets for imported SLI data. |
getSLIAnalysisStats | Retrieves descriptive statistics and percentiles for imported SLI data. |
getSLIAnalysisSummary | Retrieves reliability, burned budget, bad-event duration, and remaining budget for a completed calculation. |
getSLIAnalysisTimeseries | Retrieves imported SLI data as raw metric percentiles or good, bad, and total count series. |
getSLOStatus | Retrieves current budget status and health metrics for one SLO. |
getSLOsStatuses | Retrieves current budget status and health metrics for multiple SLOs. |
getUsageSummary | Retrieves the organization's resource usage, contracted amounts, and quota status. |
get<object> | Retrieves the full Nobl9 object definition. |
listActiveReplays | Lists queued and in-progress Replays started by users, including composite SLO Replays. |
listOrganizationStatusDisruptions | Lists organization status disruptions (open or cleared) with severity and affected components. |
listSLIAnalyses | Lists SLI analyses visible to you in the selected organization. |
list<object> | Lists Nobl9 object metadata, with filters. |
prometheusLabelNames | Lists supported Prometheus label names for SLO metric discovery. |
prometheusLabelValues | Lists values for a Prometheus label. |
prometheusMetadata | Discovers Nobl9 Prometheus metrics relevant to SLOs. |
prometheusQuery | Runs an instant Prometheus query over SLO metrics. |
prometheusQueryRange | Runs a Prometheus range query over SLO metrics. |
queryDataSource | Queries supported Nobl9 data sources for time-series data over a requested time range. |
retryAlertAnalysis | Retries a failed Alert Policy Analyzer run. |
runReplay | Starts a Replay for an SLO or queues it when no Replay slots are available. |
searchDocs | Searches the Nobl9 documentation and returns matching pages with title, link, and a snippet. |
searchSLOs | Searches for SLOs using text queries and advanced filters across projects and services. |
startAlertAnalysis | Starts an Alert Policy Analyzer run for one SLO objective and alert policy over a time range. |
updateSLIAnalysis | Updates only the display name of an SLI analysis. |
validateObjects | Validates complete Nobl9 object definitions. |
Composite SLOs can be replayed with the recalculation Replay type only.
See replaying composite SLOs.
Prompts
| Prompt | What it does |
|---|---|
calculate-alert-policy | Guides the LLM through alert policy recommendations by calculating suggestions and running Alert Policy Analyzer for a single SLO objective. |
Authentication details
Remote server
The remote MCP server uses browser-based OAuth 2.1 with DCR. Most MCP clients handle the whole flow for you. Point the client at the server URL. It registers itself, opens your browser, and connects after you sign in to Nobl9. You do not need to provide a client ID.
-
Every request runs as you. You sign in with your own Nobl9 account, and the client can only do what your role allows. Sharing one client configuration across a team is fine, since each person signs in individually.
-
Discovery follows the standard MCP chain: an unauthenticated request returns a
WWW-Authenticatechallenge pointing to the protected resource metadata, which points to the authorization server metadata, which exposes the registration endpoint. The metadata endpoints are:https://app.nobl9.com/.well-known/oauth-protected-resourcehttps://app.nobl9.com/.well-known/oauth-protected-resource/api/mcp
Both expose the same information and are duplicated for compatibility. Either GET or OPTIONS HTTP method can be used.
-
Some hosted products, such as Gemini Enterprise, can't register themselves and need a client ID and secret. See the Gemini Enterprise setup for how to create one.
sloctl
sloctl acts as a bridge between the remote HTTP MCP server and local
stdio.
It can authenticate using either user access keys or API keys, which it uses to fetch the access token.
You need sloctl version 0.21.0 or later.
To create the required machine keys use either user access keys or API keys.
Both can be generated in the Nobl9 web application.
For setup details, see Configure sloctl.