Connect Instatus to ChatGPT: Manage Status Pages, Incidents and Uptime
from the team behind Truto
Instatus in ChatGPT, in about a minute.
The best way to connect Instatus to ChatGPT is Elaichi: connect Instatus to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14‑day free trial and no credit card required.
- No credit card required
- 500+ connectors
- Credentials vaulted, never read back
-
Start your free trial
14 days free, no credit card required.
-
Connect Instatus
Once, in Elaichi. ChatGPT never gets more access than you have.
-
Add Elaichi to ChatGPT
In ChatGPT, open Plugins, press +, and paste the URL into Server URL. Sign in and approve.
https://api.elaichi.ai/mcp
Building Instatus into your own product? This guide is for you.
Connect Instatus to ChatGPT using Truto's managed MCP server. This guide covers UI and API setup, tool execution, security controls, and real-world DevOps workflows for incident management.
The developer guide
Learn how to connect Instatus to ChatGPT using Truto's MCP server. Automate status pages, manage incidents, and execute SRE workflows with AI agents.
If you need to connect Instatus to ChatGPT to automate your status pages, manage ongoing incidents, and track system uptime, you need a Model Context Protocol (MCP) server. This server acts as a translation layer between ChatGPT's JSON-RPC tool calls and the Instatus REST API. You can either build and maintain this integration infrastructure yourself, or use a managed platform like Truto to dynamically generate a secure, authenticated MCP server URL.
If your team uses Claude, check out our guide on connecting Instatus to Claude or explore our broader architectural overview on connecting Instatus to AI Agents.
Giving a Large Language Model (LLM) read and write access to an incident communication platform is a high-stakes engineering challenge. You have to handle complex relational payloads, map dynamic page identifiers to MCP tool definitions, and deal with deeply nested component hierarchies. Every time Instatus updates a schema or alters their pagination logic, your custom server code must be updated, redeployed, and tested.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Instatus, connect it natively to ChatGPT, and execute complex incident workflows using natural language.
Instatus to ChatGPT Quickstart Guide
If you just want the fastest path from a fresh Truto account to ChatGPT calling the Instatus API, follow these steps. Deeper architecture, security, and lifecycle details live in the sections below.
What you need:
- A Truto account with API access.
- An Instatus admin account with an active API token.
- A ChatGPT Pro, Plus, Business, Enterprise, or Education seat with Developer mode available.
Step 1: Connect Instatus to Truto
In the Truto dashboard, navigate to Integrated Accounts -> New Integrated Account, select Instatus, and enter your API credentials. Truto handles the credential storage and authentication headers for all downstream requests.
Once connected, grab your integrated_account_id. You can copy it from the account detail page or list it via the API:
curl https://api.truto.one/integrated-account \
-H "Authorization: Bearer $TRUTO_API_TOKEN"Step 2: Generate the Instatus MCP Server
You can generate the MCP server URL through the Truto UI or programmatically via the Truto API.
Method A: Via the Truto UI
- Navigate to the integrated account page for your Instatus connection.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (name, allowed methods, and tags).
- Copy the generated MCP server URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4...).
Method B: Via the API
Make a POST request to scope an MCP endpoint to your Instatus account. You can filter by methods to constrain what ChatGPT can touch:
curl -X POST https://api.truto.one/integrated-account/$INTEGRATED_ACCOUNT_ID/mcp \
-H "Authorization: Bearer $TRUTO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Instatus for ChatGPT",
"config": {
"methods": ["read", "write"],
"tags": ["incidents", "pages", "components"]
}
}'The response contains a url field. That single URL carries routing and authentication - treat it like a secret.
Step 3: Connect the MCP Server to ChatGPT
You can register this server with ChatGPT using the UI or via a manual configuration file.
Method A: Via the ChatGPT UI
- Open ChatGPT and navigate to Settings -> Apps -> Advanced settings.
- Enable Developer mode.
- Under MCP servers / Custom connectors, click to add a new server.
- Name it "Instatus (Truto)".
- Paste your Truto MCP server URL into the Server URL field and click Add.
Method B: Via manual config file If you are running a custom MCP client setup or using the ChatGPT desktop application with file-based config, you can map the URL to the generic Server-Sent Events (SSE) transport adapter:
{
"mcpServers": {
"instatus": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/a1b2c3d4..."
]
}
}
}Once connected, ChatGPT will automatically request tools/list and populate its context window with Instatus operations.
The Engineering Reality of the Instatus API
A custom MCP server is essentially a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against the Instatus API introduces specific edge cases.
If you decide to build a custom MCP server for Instatus, you own the entire API lifecycle. Here are the specific integration challenges that break standard CRUD assumptions:
The Workspace Hierarchy and Page IDs
Instatus structures data hierarchically: Workspaces contain Pages, and Pages contain Components, Incidents, Maintenances, and Subscribers. Nearly every API endpoint (except workspace-level operations) requires a page_id parameter. If you build a raw MCP server, you must ensure the LLM knows to look up the page_id first before attempting to log an incident. Truto's auto-generated schemas explicitly require page_id on the relevant endpoints, preventing the LLM from executing incomplete payload structures.
Nested Translation Arrays
Instatus supports multilingual status pages. As a result, payloads for components, incidents, and templates often include deeply nested translations arrays containing translation IDs and localized strings. If you pass raw Instatus documentation to an LLM, it will frequently attempt to mutate these translation arrays incorrectly or hallucinate translation IDs. Truto normalizes these payloads, mapping the schema so the LLM understands when to omit optional localization parameters during standard incident creation.
Cron Monitor Slugs and Ping URLs
When creating a cron monitor in Instatus (to track scheduled jobs via HTTP pings), the API returns a slug. This slug is the secret used to build the monitor's unique ping URL. If you don't explicitly instruct the LLM on how this slug is utilized, it cannot properly set up external alerting tools. Truto's dynamically generated tool descriptions enforce the correct usage of this return data.
Core Instatus Tools for ChatGPT
Truto automatically generates over 90 tools from the Instatus API. Here are the highest-leverage operations for incident response and status page management.
Create an Incident
Creates a new active incident on a specific status page. This is the critical first step during an outage.
Contextual usage: The LLM needs the page_id and a clear name for the incident. It can also accept an array of affected components.
"We are experiencing a severe database outage in US-East. Create a new incident on our primary status page named 'Database Connectivity Issues - US-East' and set the status to Investigating."
Update an Incident by ID
Updates an existing incident, allowing the LLM to transition the status from Investigating to Identified, Monitoring, or Resolved.
Contextual usage: Requires the page_id and the specific id of the incident. This is heavily used during active war rooms.
"Update incident 12345 on the main status page. Change the status to 'Monitoring' and add an update saying we have deployed a hotfix and are watching error rates."
Resolve Incident via Template
Resolves an incident by generating a final update from a predefined template.
Contextual usage: Instead of manually typing a resolution message, the LLM can trigger this endpoint to close the loop cleanly using standard company language.
"Resolve the current database incident using the standard 'Outage Resolved' template."
Create a Maintenance
Schedules planned downtime on the status page. This prevents user panic during known deployments or infrastructure upgrades.
Contextual usage: The LLM must pass a start and end time alongside the affected components.
"Schedule a maintenance window for the 'Authentication API' component starting this Saturday at 2 AM UTC for two hours. Name it 'Routine Database Upgrades'."
Create a Cron Monitor
Creates a monitor that tracks a scheduled job via HTTP pings. This is vital for observing recurring batch jobs.
Contextual usage: The LLM provides a name and a period (in seconds). It will receive a slug back to construct the ping URL.
"Set up a new cron monitor on the status page for our nightly backup job. It should expect a ping every 24 hours with a 1-hour grace period."
Update a Component by ID
Changes the status of a specific architecture component (e.g., Operational, Degraded Performance, Partial Outage, Major Outage).
Contextual usage: Often chained with incident creation. The LLM updates the component status to reflect reality on the public page.
"Change the status of the 'Payment Gateway' component to 'Major Outage' on the main status page."
For the complete inventory of Instatus tools and detailed JSON schemas, visit the Instatus integration page.
Workflows in Action
Here is how these tools combine to automate complete DevOps and SRE workflows directly from the ChatGPT prompt.
Scenario 1: Managing a Major Outage
When an alert fires, a DevOps engineer can instruct ChatGPT to handle the entire public communication flow.
"We have a P1 outage on the billing service. First, find our primary status page. Then, update the 'Billing API' component to Major Outage. Finally, create a new incident called 'Billing Processing Failures' stating that we are actively investigating the issue."
Step-by-step execution:
list_all_instatus_pages: ChatGPT retrieves the workspace pages to locate the primarypage_id.list_all_instatus_components: It fetches the components for that page to find the ID for the "Billing API".update_a_instatus_component_by_id: It sets the billing component status to Major Outage.create_a_instatus_incident: It creates the incident payload and publishes it to the public status page.
sequenceDiagram
participant User as User
participant ChatGPT as ChatGPT
participant Truto as Truto MCP Server
participant Instatus as "Instatus API"
User->>ChatGPT: "Create outage incident..."
ChatGPT->>Truto: Call list_all_instatus_pages
Truto->>Instatus: GET /v1/pages
Instatus-->>Truto: Return page_id
Truto-->>ChatGPT: Return page_id
ChatGPT->>Truto: Call update_a_instatus_component_by_id
Truto->>Instatus: PUT /v1/pages/{page_id}/components/{id}
Instatus-->>Truto: Component updated
Truto-->>ChatGPT: Component updated
ChatGPT->>Truto: Call create_a_instatus_incident
Truto->>Instatus: POST /v1/pages/{page_id}/incidents
Instatus-->>Truto: Incident created
Truto-->>ChatGPT: Result
ChatGPT->>User: "Incident is live."Scenario 2: Scheduling Routine Maintenance
An SRE needs to communicate planned database upgrades without digging through UI menus.
"I need to schedule maintenance for tomorrow at 10 PM PST for 3 hours. It affects the 'Search Infrastructure' component. Set it up on the engineering status page."
Step-by-step execution:
list_all_instatus_pages: ChatGPT identifies the correct "engineering"page_id.list_all_instatus_components: It finds the ID for "Search Infrastructure".create_a_instatus_maintenance: It calculates the UTC timestamps for 10 PM PST, constructs the payload with the component ID, and logs the scheduled maintenance.
Security and Access Control
Exposing an incident management API to an LLM requires strict boundary control. Truto provides four mechanisms to lock down your Instatus MCP server:
- Method filtering (
config.methods): Restrict the server to read-only operations (["read"]) to allow ChatGPT to check status pages without the ability to create incidents, or allow specific writes like["create", "update"]. - Tag filtering (
config.tags): Scope the server to specific operational domains. For example, applying theincidentstag ensures the LLM cannot access or modify subscriber lists. - Additional Authentication (
require_api_token_auth): When set totrue, possessing the MCP URL is not enough. The client must also pass a valid Truto API token in the Authorization header. - Time-to-Live (
expires_at): Generate ephemeral MCP servers for temporary war rooms or contractor access. Once the timestamp passes, the server and its keys are automatically purged.
Handling API Rate Limits
When deploying AI agents against external APIs, rate limits become a significant architectural bottleneck. LLMs execute loops, wide searches, and bulk operations much faster than human operators.
Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream Instatus API returns an HTTP 429 (Too Many Requests), Truto passes that exact error directly back to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification.
Your MCP client - or the underlying agent orchestration framework - is entirely responsible for reading these headers and implementing the appropriate retry and backoff logic. Do not assume the MCP layer will absorb rate limit spikes.
Stop Writing Custom Connectors
Building a custom MCP server for Instatus forces you to maintain an integration layer that breaks every time the upstream API changes. By using Truto, you rely on documentation-driven tool generation. When Instatus adds a new metric endpoint or alters an incident payload, Truto automatically inherits those changes and updates the MCP schema in real time.
Connect Instatus to Truto once, generate a secure MCP URL, and let your AI agents handle incident communication reliably.
FAQ
- What is the easiest way to connect Instatus to ChatGPT?
- The best way to connect Instatus to ChatGPT is Elaichi: connect Instatus to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14-day free trial and no credit card required.
- How do I connect Instatus to ChatGPT?
- You can connect Instatus to ChatGPT by creating a Model Context Protocol (MCP) server. Use Truto to connect your Instatus account, generate a secure MCP server URL, and paste that URL into ChatGPT's custom connector settings.
- Can ChatGPT create Instatus incidents?
- Yes. By using the 'create_a_instatus_incident' tool provided by the Truto MCP server, ChatGPT can create active incidents, update their status, and eventually resolve them using natural language prompts.
- How does Truto handle Instatus API rate limits?
- Truto passes HTTP 429 Too Many Requests errors directly to the caller. It normalizes rate limit data into standard headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. The calling AI agent is responsible for retry and backoff logic.
- Can I restrict what the Instatus MCP server accesses?
- Yes. Truto allows you to apply method filtering (e.g., read-only) and tag filtering when creating the MCP server, ensuring the LLM only has access to the specific Instatus resources you authorize.