{
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "description": "A stable machine-readable error code, when there is one.",
            "type": "string"
          },
          "error": {
            "type": "string",
            "description": "What went wrong."
          },
          "issues": {
            "description": "Validation problems, one per invalid field.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string"
                },
                "path": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                }
              },
              "required": [
                "message",
                "path"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "description": "A workspace API key, created in Superlog under Settings → API keys.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Manage a Superlog workspace's automations, runs, tag mode, model access, and secrets, read its telemetry, build dashboards and alerts over it, run synthetic checks, and export them to Terraform. Every request acts as the member who created the API key.",
    "title": "Superlog management API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/integrations/available": {
      "get": {
        "description": "Lists the integrations this server can connect and whether each one uses a provider consent link or secure setup in Superlog. It does not show which integrations are connected.",
        "operationId": "list_available_integrations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "integrations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "provider": {
                            "type": "string",
                            "enum": [
                              "aws",
                              "gcp",
                              "github",
                              "slack",
                              "sentry",
                              "datadog",
                              "dash0",
                              "posthog",
                              "grafana",
                              "cloudflare",
                              "railway",
                              "axiom",
                              "upstash",
                              "langfuse",
                              "supabase",
                              "vercel",
                              "custom_mcp",
                              "clickstack",
                              "linear",
                              "discord",
                              "devrev",
                              "signoz",
                              "honeycomb",
                              "betterstack"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "available": {
                            "type": "boolean"
                          },
                          "connectionType": {
                            "type": "string",
                            "enum": [
                              "oauth",
                              "secure_setup"
                            ]
                          }
                        },
                        "required": [
                          "provider",
                          "name",
                          "description",
                          "available",
                          "connectionType"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "integrations"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Find integrations to connect",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "list_available_integrations"
      }
    },
    "/integrations/connect": {
      "post": {
        "description": "Starts connecting one integration to the workspace. For OAuth providers, returns a consent link that is personal to the signed-in person and workspace and expires after ten minutes, or status `connected` when an existing connection is recovered. A new connection completes after the person approves access in a browser signed in to the same Superlog account and workspace. For integrations that need credentials or extra setup, returns a link to secure setup in Superlog.",
        "operationId": "start_integration_connection",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "aws",
                      "gcp",
                      "github",
                      "slack",
                      "sentry",
                      "datadog",
                      "dash0",
                      "posthog",
                      "grafana",
                      "cloudflare",
                      "railway",
                      "axiom",
                      "upstash",
                      "langfuse",
                      "supabase",
                      "vercel",
                      "custom_mcp",
                      "clickstack",
                      "linear",
                      "discord",
                      "devrev",
                      "signoz",
                      "honeycomb",
                      "betterstack"
                    ],
                    "description": "Provider selected for the user's goal."
                  }
                },
                "required": [
                  "provider"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "provider": {
                      "type": "string",
                      "enum": [
                        "aws",
                        "gcp",
                        "github",
                        "slack",
                        "sentry",
                        "datadog",
                        "dash0",
                        "posthog",
                        "grafana",
                        "cloudflare",
                        "railway",
                        "axiom",
                        "upstash",
                        "langfuse",
                        "supabase",
                        "vercel",
                        "custom_mcp",
                        "clickstack",
                        "linear",
                        "discord",
                        "devrev",
                        "signoz",
                        "honeycomb",
                        "betterstack"
                      ]
                    },
                    "connectionType": {
                      "type": "string",
                      "enum": [
                        "oauth",
                        "secure_setup"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "awaiting_consent",
                        "setup_required",
                        "connected"
                      ]
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "handoffUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "expiresAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "date-time"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "instructions": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "provider",
                    "connectionType",
                    "status",
                    "url",
                    "expiresAt",
                    "instructions"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get an integration consent link",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "start_integration_connection"
      }
    },
    "/workspace": {
      "get": {
        "description": "Returns the workspace, its enabled features, and the member the caller acts as.",
        "operationId": "get_workspace",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "workspace": {
                      "type": "object",
                      "properties": {
                        "apiKeyId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uuid"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The API key used for this request, or null when an MCP client signed in with OAuth."
                        },
                        "capabilities": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Features enabled for this workspace, such as `automations`."
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the workspace was created."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Workspace ID."
                        },
                        "member": {
                          "type": "object",
                          "properties": {
                            "email": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "role": {
                              "type": "string"
                            },
                            "userId": {
                              "type": "string",
                              "format": "uuid",
                              "description": "User ID."
                            }
                          },
                          "required": [
                            "email",
                            "name",
                            "role",
                            "userId"
                          ],
                          "additionalProperties": false,
                          "description": "The member this request acts as. Changes are recorded under their name."
                        },
                        "name": {
                          "type": "string"
                        },
                        "slug": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "apiKeyId",
                        "capabilities",
                        "createdAt",
                        "id",
                        "member",
                        "name",
                        "slug"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "workspace"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get the workspace",
        "tags": [
          "Workspace"
        ],
        "x-mcp-tool": "get_workspace"
      }
    },
    "/members": {
      "get": {
        "description": "Lists the workspace's members and its pending invitations. Invite and remove members in the app.",
        "operationId": "list_members",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "invitations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the invitation was sent."
                          },
                          "email": {
                            "type": "string"
                          },
                          "expiresAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the invitation expires."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Invitation ID."
                          },
                          "role": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "createdAt",
                          "email",
                          "expiresAt",
                          "id",
                          "role"
                        ],
                        "additionalProperties": false
                      },
                      "description": "Invitations that have not been accepted and have not expired."
                    },
                    "members": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "email": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Membership ID."
                          },
                          "joinedAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the person joined the workspace."
                          },
                          "name": {
                            "type": "string"
                          },
                          "role": {
                            "type": "string",
                            "description": "`owner`, `admin`, or `member`."
                          },
                          "userId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "User ID."
                          }
                        },
                        "required": [
                          "email",
                          "id",
                          "joinedAt",
                          "name",
                          "role",
                          "userId"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "invitations",
                    "members"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List members",
        "tags": [
          "Workspace"
        ],
        "x-mcp-tool": "list_members"
      }
    },
    "/api-keys": {
      "get": {
        "description": "Lists the workspace's active API keys. Create keys in the app under **Settings → API keys**.",
        "operationId": "list_api_keys",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "apiKeys": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the key was created."
                          },
                          "createdBy": {
                            "type": "object",
                            "properties": {
                              "email": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "description": "User ID."
                              },
                              "name": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "email",
                              "id",
                              "name"
                            ],
                            "additionalProperties": false,
                            "description": "The member the key acts as."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "API key ID."
                          },
                          "lastUsedAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the key was last used, to the minute."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "prefix": {
                            "type": "string",
                            "description": "The first characters of the key."
                          }
                        },
                        "required": [
                          "createdAt",
                          "createdBy",
                          "id",
                          "lastUsedAt",
                          "name",
                          "prefix"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "apiKeys"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List API keys",
        "tags": [
          "API keys"
        ],
        "x-mcp-tool": "list_api_keys"
      }
    },
    "/api-keys/{apiKeyId}": {
      "delete": {
        "description": "Revokes an API key. It stops working immediately. Admins and owners can revoke any key; members can revoke only their own.",
        "operationId": "revoke_api_key",
        "parameters": [
          {
            "description": "API key ID.",
            "in": "path",
            "name": "apiKeyId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "API key ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "revoked": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "revoked"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Revoke an API key",
        "tags": [
          "API keys"
        ],
        "x-mcp-tool": "revoke_api_key"
      }
    },
    "/integrations": {
      "get": {
        "description": "Lists connected integrations, the repositories they give access to, and their resources, such as Slack channels and Sentry projects.",
        "operationId": "list_integrations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "integrations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Integration account ID. Use it as `integrationAccountId` in triggers and notifications, and in `contextAccountIds`."
                          },
                          "provider": {
                            "type": "string",
                            "description": "For example `github`, `slack`, `sentry`, or `linear`."
                          }
                        },
                        "required": [
                          "displayName",
                          "id",
                          "provider"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "repositories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "defaultBranch": {
                            "type": "string"
                          },
                          "fullName": {
                            "type": "string",
                            "description": "`owner/name`."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Repository ID. Use it in `repositoryIds`."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The GitHub integration that grants access."
                          },
                          "private": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "defaultBranch",
                          "fullName",
                          "id",
                          "integrationAccountId",
                          "private"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "resources": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": "string"
                          },
                          "externalId": {
                            "type": "string",
                            "description": "The provider's ID, such as a Slack channel ID or Sentry project ID. Triggers and notifications use this value."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Resource ID. Tag mode uses it in `contextResourceIds`."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The integration the resource belongs to."
                          },
                          "kind": {
                            "type": "string",
                            "description": "For example `slack_channel`, `sentry_project`, `discord_channel`, or `vercel_project`."
                          }
                        },
                        "required": [
                          "displayName",
                          "externalId",
                          "id",
                          "integrationAccountId",
                          "kind"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "integrations",
                    "repositories",
                    "resources"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List integrations",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "list_integrations"
      }
    },
    "/integrations/refresh": {
      "post": {
        "description": "Reloads GitHub repositories or Slack channels from the provider, then returns the same result as listing integrations. Use it after giving the GitHub App access to a new repository or creating a Slack channel.",
        "operationId": "refresh_integrations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "github",
                      "slack"
                    ],
                    "description": "The provider to reload."
                  }
                },
                "required": [
                  "provider"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "integrations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Integration account ID. Use it as `integrationAccountId` in triggers and notifications, and in `contextAccountIds`."
                          },
                          "provider": {
                            "type": "string",
                            "description": "For example `github`, `slack`, `sentry`, or `linear`."
                          }
                        },
                        "required": [
                          "displayName",
                          "id",
                          "provider"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "repositories": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "defaultBranch": {
                            "type": "string"
                          },
                          "fullName": {
                            "type": "string",
                            "description": "`owner/name`."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Repository ID. Use it in `repositoryIds`."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The GitHub integration that grants access."
                          },
                          "private": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "defaultBranch",
                          "fullName",
                          "id",
                          "integrationAccountId",
                          "private"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "resources": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": "string"
                          },
                          "externalId": {
                            "type": "string",
                            "description": "The provider's ID, such as a Slack channel ID or Sentry project ID. Triggers and notifications use this value."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Resource ID. Tag mode uses it in `contextResourceIds`."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The integration the resource belongs to."
                          },
                          "kind": {
                            "type": "string",
                            "description": "For example `slack_channel`, `sentry_project`, `discord_channel`, or `vercel_project`."
                          }
                        },
                        "required": [
                          "displayName",
                          "externalId",
                          "id",
                          "integrationAccountId",
                          "kind"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "integrations",
                    "repositories",
                    "resources"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Refresh repositories or channels",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "refresh_integrations"
      }
    },
    "/integrations/{integrationAccountId}/sentry-environments": {
      "get": {
        "description": "Lists the environments of a Sentry connection, for a Sentry trigger's `excludedEnvironments`.",
        "operationId": "list_sentry_environments",
        "parameters": [
          {
            "description": "Sentry integration account ID.",
            "in": "path",
            "name": "integrationAccountId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Sentry integration account ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "environments": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "environments"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List Sentry environments",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "list_sentry_environments"
      }
    },
    "/automations": {
      "get": {
        "description": "Lists automations, most recently changed first, with each one's last run.",
        "operationId": "list_automations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "automations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "connectors": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Providers the automation uses, such as `github` and `sentry`, and `skills` when it uses workspace skills."
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the automation was created."
                          },
                          "description": {
                            "type": "string"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "harness": {
                            "type": "string",
                            "enum": [
                              "codex",
                              "claude_agent_sdk",
                              "opencode"
                            ]
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Automation ID."
                          },
                          "lastRun": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "createdAt": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "When the run was created."
                                  },
                                  "status": {
                                    "type": "string",
                                    "enum": [
                                      "pending",
                                      "running",
                                      "succeeded",
                                      "failed",
                                      "cancelled"
                                    ]
                                  }
                                },
                                "required": [
                                  "createdAt",
                                  "status"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "model": {
                            "type": "string"
                          },
                          "modelProvider": {
                            "type": "string",
                            "enum": [
                              "openai",
                              "anthropic",
                              "google",
                              "xai",
                              "mistral",
                              "deepseek"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "triggers": {
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "channelIds": {
                                      "minItems": 1,
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "description": "Slack channel IDs, such as C0123456789."
                                    },
                                    "eventMode": {
                                      "type": "string",
                                      "enum": [
                                        "mentions",
                                        "every_message",
                                        "both"
                                      ],
                                      "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                    },
                                    "ignoredAuthors": {
                                      "description": "Slack people and apps whose messages do not start or continue a run.",
                                      "maxItems": 100,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 255,
                                            "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                          },
                                          "name": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 255
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "name"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "ignoredPhrases": {
                                      "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500
                                      }
                                    },
                                    "includedAuthors": {
                                      "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                      "maxItems": 100,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "id": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 255,
                                            "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                          },
                                          "name": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 255
                                          }
                                        },
                                        "required": [
                                          "id",
                                          "name"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "slack"
                                    }
                                  },
                                  "required": [
                                    "channelIds",
                                    "eventMode",
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs on Slack messages in the selected channels."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "eventTypes": {
                                      "minItems": 1,
                                      "maxItems": 2,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "new_issue",
                                          "regression"
                                        ]
                                      },
                                      "description": "Run on new issues, regressions, or both."
                                    },
                                    "excludedEnvironments": {
                                      "description": "Issues from these environments do not start a run.",
                                      "maxItems": 100,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64
                                      }
                                    },
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "sentry"
                                    },
                                    "projectIds": {
                                      "minItems": 1,
                                      "maxItems": 100,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "description": "Sentry project IDs."
                                    }
                                  },
                                  "required": [
                                    "eventTypes",
                                    "integrationAccountId",
                                    "kind",
                                    "projectIds"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs on new or regressed Sentry issues in the selected projects."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "eventTypes": {
                                      "minItems": 1,
                                      "maxItems": 2,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "new_issue",
                                          "regression"
                                        ]
                                      },
                                      "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "errors"
                                    },
                                    "services": {
                                      "description": "Only issues from these `service.name` values start a run.",
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      }
                                    }
                                  },
                                  "required": [
                                    "eventTypes",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "axiom"
                                    }
                                  },
                                  "required": [
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "signoz"
                                    }
                                  },
                                  "required": [
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "honeycomb"
                                    }
                                  },
                                  "required": [
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "betterstack"
                                    }
                                  },
                                  "required": [
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "devrev"
                                    }
                                  },
                                  "required": [
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "eventTypes": {
                                      "minItems": 1,
                                      "maxItems": 2,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "enum": [
                                          "opened",
                                          "merged"
                                        ]
                                      },
                                      "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                    },
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "github"
                                    },
                                    "repositoryIds": {
                                      "minItems": 1,
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "description": "Responder repository IDs from the GitHub connection."
                                    }
                                  },
                                  "required": [
                                    "eventTypes",
                                    "integrationAccountId",
                                    "kind",
                                    "repositoryIds"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "channelIds": {
                                      "minItems": 1,
                                      "maxItems": 50,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "description": "Discord channel IDs."
                                    },
                                    "integrationAccountId": {
                                      "type": "string",
                                      "format": "uuid"
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "discord"
                                    }
                                  },
                                  "required": [
                                    "channelIds",
                                    "integrationAccountId",
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when someone uses `/automate` in the selected Discord channels."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "cron": {
                                      "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                      "type": "string",
                                      "maxLength": 255
                                    },
                                    "frequency": {
                                      "type": "string",
                                      "enum": [
                                        "hourly",
                                        "daily",
                                        "weekly",
                                        "custom"
                                      ]
                                    },
                                    "hour": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 23,
                                      "description": "Local hour for daily and weekly runs, 0 to 23."
                                    },
                                    "kind": {
                                      "type": "string",
                                      "const": "schedule"
                                    },
                                    "timezone": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 64,
                                      "description": "IANA time zone, such as Europe/Paris."
                                    },
                                    "weekday": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 6,
                                      "description": "Local day for weekly runs. 0 is Sunday."
                                    }
                                  },
                                  "required": [
                                    "frequency",
                                    "hour",
                                    "kind",
                                    "timezone",
                                    "weekday"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "webhook"
                                    }
                                  },
                                  "required": [
                                    "kind"
                                  ],
                                  "additionalProperties": false,
                                  "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                                }
                              ]
                            }
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the automation was last changed."
                          },
                          "version": {
                            "type": "integer",
                            "description": "Increases each time the configuration is saved."
                          }
                        },
                        "required": [
                          "connectors",
                          "createdAt",
                          "description",
                          "enabled",
                          "harness",
                          "id",
                          "lastRun",
                          "model",
                          "modelProvider",
                          "name",
                          "triggers",
                          "updatedAt",
                          "version"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "automations"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List automations",
        "tags": [
          "Automations"
        ],
        "x-mcp-tool": "list_automations"
      },
      "post": {
        "description": "Creates an automation. Model settings you leave out use the defaults.",
        "operationId": "create_automation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "configuration": {
                    "type": "object",
                    "properties": {
                      "contextAccountIds": {
                        "default": [],
                        "description": "Integration account IDs the agent can read from, besides GitHub.",
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "harness": {
                        "description": "Defaults to `codex`.",
                        "type": "string",
                        "enum": [
                          "codex",
                          "claude_agent_sdk",
                          "opencode"
                        ]
                      },
                      "maxModelRequests": {
                        "description": "Defaults to `500`.",
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1000
                      },
                      "maxOutputTokensPerRequest": {
                        "description": "Defaults to `16000`.",
                        "type": "integer",
                        "minimum": 256,
                        "maximum": 100000
                      },
                      "maxRuntimeSeconds": {
                        "description": "Defaults to `1800`.",
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 3600
                      },
                      "model": {
                        "description": "Defaults to `gpt-5.4`.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]*$"
                      },
                      "modelProvider": {
                        "description": "Defaults to `openai`.",
                        "type": "string",
                        "enum": [
                          "openai",
                          "anthropic",
                          "google",
                          "xai",
                          "mistral",
                          "deepseek"
                        ]
                      },
                      "notifications": {
                        "default": [],
                        "description": "Slack channels that receive the result of each scheduled, Sentry, Axiom, SigNoz, Honeycomb, Better Stack, or GitHub run.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 255
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "slack"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId",
                                "kind"
                              ]
                            }
                          ]
                        }
                      },
                      "prompt": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50000,
                        "description": "The agent instructions."
                      },
                      "repositoryIds": {
                        "default": [],
                        "description": "Repositories checked out in the sandbox.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "skillIds": {
                        "default": [],
                        "description": "Workspace skills written to the sandbox for the agent to read. Skills are managed on the Skills page.",
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "toolPolicy": {
                        "description": "Defaults to `full`.",
                        "type": "string",
                        "const": "full"
                      },
                      "triggers": {
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Slack channel IDs, such as C0123456789."
                                },
                                "eventMode": {
                                  "type": "string",
                                  "enum": [
                                    "mentions",
                                    "every_message",
                                    "both"
                                  ],
                                  "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                },
                                "ignoredAuthors": {
                                  "description": "Slack people and apps whose messages do not start or continue a run.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                      },
                                      "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ]
                                  }
                                },
                                "ignoredPhrases": {
                                  "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "includedAuthors": {
                                  "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                      },
                                      "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ]
                                  }
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "slack"
                                }
                              },
                              "required": [
                                "channelIds",
                                "eventMode",
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs on Slack messages in the selected channels."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "new_issue",
                                      "regression"
                                    ]
                                  },
                                  "description": "Run on new issues, regressions, or both."
                                },
                                "excludedEnvironments": {
                                  "description": "Issues from these environments do not start a run.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 64
                                  }
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "sentry"
                                },
                                "projectIds": {
                                  "minItems": 1,
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Sentry project IDs."
                                }
                              },
                              "required": [
                                "eventTypes",
                                "integrationAccountId",
                                "kind",
                                "projectIds"
                              ],
                              "description": "Runs on new or regressed Sentry issues in the selected projects."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "new_issue",
                                      "regression"
                                    ]
                                  },
                                  "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "errors"
                                },
                                "services": {
                                  "description": "Only issues from these `service.name` values start a run.",
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "eventTypes",
                                "kind"
                              ],
                              "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "axiom"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "signoz"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "honeycomb"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "betterstack"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "devrev"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "opened",
                                      "merged"
                                    ]
                                  },
                                  "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "github"
                                },
                                "repositoryIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "description": "Responder repository IDs from the GitHub connection."
                                }
                              },
                              "required": [
                                "eventTypes",
                                "integrationAccountId",
                                "kind",
                                "repositoryIds"
                              ],
                              "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "channelIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Discord channel IDs."
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "discord"
                                }
                              },
                              "required": [
                                "channelIds",
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when someone uses `/automate` in the selected Discord channels."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "cron": {
                                  "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "frequency": {
                                  "type": "string",
                                  "enum": [
                                    "hourly",
                                    "daily",
                                    "weekly",
                                    "custom"
                                  ]
                                },
                                "hour": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 23,
                                  "description": "Local hour for daily and weekly runs, 0 to 23."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "schedule"
                                },
                                "timezone": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "IANA time zone, such as Europe/Paris."
                                },
                                "weekday": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 6,
                                  "description": "Local day for weekly runs. 0 is Sunday."
                                }
                              },
                              "required": [
                                "frequency",
                                "hour",
                                "kind",
                                "timezone",
                                "weekday"
                              ],
                              "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "webhook"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                            }
                          ]
                        },
                        "description": "What starts a run. Each trigger starts runs on its own."
                      },
                      "workspaceSecretIds": {
                        "default": [],
                        "description": "Workspace secrets available to the agent.",
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      }
                    },
                    "required": [
                      "prompt",
                      "triggers"
                    ]
                  },
                  "description": {
                    "default": "",
                    "description": "A short description shown in the automation list.",
                    "type": "string",
                    "maxLength": 2000
                  },
                  "enabled": {
                    "default": true,
                    "description": "Whether triggers start runs. Defaults to `true`.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120,
                    "description": "Unique within the workspace."
                  }
                },
                "required": [
                  "configuration",
                  "name"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "automation": {
                      "type": "object",
                      "properties": {
                        "configuration": {
                          "type": "object",
                          "properties": {
                            "contextAccountIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Integration accounts the agent can read from, besides GitHub."
                            },
                            "harness": {
                              "type": "string",
                              "enum": [
                                "codex",
                                "claude_agent_sdk",
                                "opencode"
                              ],
                              "description": "The agent program that runs the model."
                            },
                            "maxModelRequests": {
                              "type": "integer",
                              "description": "Most model requests in one run."
                            },
                            "maxOutputTokensPerRequest": {
                              "type": "integer"
                            },
                            "maxRuntimeSeconds": {
                              "type": "integer"
                            },
                            "model": {
                              "type": "string"
                            },
                            "modelProvider": {
                              "type": "string",
                              "enum": [
                                "openai",
                                "anthropic",
                                "google",
                                "xai",
                                "mistral",
                                "deepseek"
                              ]
                            },
                            "notifications": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelId",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "description": "Slack channels that receive the result of scheduled, Sentry, Axiom, SigNoz, Honeycomb, Better Stack, and GitHub runs."
                            },
                            "prompt": {
                              "type": "string",
                              "description": "The agent instructions."
                            },
                            "repositoryIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "skillIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Workspace skills written to the sandbox for the agent to read."
                            },
                            "toolPolicy": {
                              "type": "string",
                              "const": "full"
                            },
                            "triggers": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Slack channel IDs, such as C0123456789."
                                      },
                                      "eventMode": {
                                        "type": "string",
                                        "enum": [
                                          "mentions",
                                          "every_message",
                                          "both"
                                        ],
                                        "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                      },
                                      "ignoredAuthors": {
                                        "description": "Slack people and apps whose messages do not start or continue a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "ignoredPhrases": {
                                        "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        }
                                      },
                                      "includedAuthors": {
                                        "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "eventMode",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on Slack messages in the selected channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new issues, regressions, or both."
                                      },
                                      "excludedEnvironments": {
                                        "description": "Issues from these environments do not start a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 64
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "sentry"
                                      },
                                      "projectIds": {
                                        "minItems": 1,
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Sentry project IDs."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "projectIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on new or regressed Sentry issues in the selected projects."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "errors"
                                      },
                                      "services": {
                                        "description": "Only issues from these `service.name` values start a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "axiom"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "signoz"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "honeycomb"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "betterstack"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "devrev"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "opened",
                                            "merged"
                                          ]
                                        },
                                        "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "github"
                                      },
                                      "repositoryIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "format": "uuid"
                                        },
                                        "description": "Responder repository IDs from the GitHub connection."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "repositoryIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Discord channel IDs."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "discord"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when someone uses `/automate` in the selected Discord channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "cron": {
                                        "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "frequency": {
                                        "type": "string",
                                        "enum": [
                                          "hourly",
                                          "daily",
                                          "weekly",
                                          "custom"
                                        ]
                                      },
                                      "hour": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 23,
                                        "description": "Local hour for daily and weekly runs, 0 to 23."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "schedule"
                                      },
                                      "timezone": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64,
                                        "description": "IANA time zone, such as Europe/Paris."
                                      },
                                      "weekday": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 6,
                                        "description": "Local day for weekly runs. 0 is Sunday."
                                      }
                                    },
                                    "required": [
                                      "frequency",
                                      "hour",
                                      "kind",
                                      "timezone",
                                      "weekday"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "webhook"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                                  }
                                ]
                              }
                            },
                            "workspaceSecretIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            }
                          },
                          "required": [
                            "contextAccountIds",
                            "harness",
                            "maxModelRequests",
                            "maxOutputTokensPerRequest",
                            "maxRuntimeSeconds",
                            "model",
                            "modelProvider",
                            "notifications",
                            "prompt",
                            "repositoryIds",
                            "skillIds",
                            "toolPolicy",
                            "triggers",
                            "workspaceSecretIds"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was created."
                        },
                        "description": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Automation ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was last changed."
                        },
                        "version": {
                          "type": "integer",
                          "description": "Increases each time the configuration is saved."
                        }
                      },
                      "required": [
                        "configuration",
                        "createdAt",
                        "description",
                        "enabled",
                        "id",
                        "name",
                        "updatedAt",
                        "version"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "automation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create an automation",
        "tags": [
          "Automations"
        ],
        "x-mcp-tool": "create_automation"
      }
    },
    "/automations/{automationId}": {
      "get": {
        "description": "Returns an automation and its current configuration.",
        "operationId": "get_automation",
        "parameters": [
          {
            "description": "Automation ID.",
            "in": "path",
            "name": "automationId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Automation ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "automation": {
                      "type": "object",
                      "properties": {
                        "configuration": {
                          "type": "object",
                          "properties": {
                            "contextAccountIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Integration accounts the agent can read from, besides GitHub."
                            },
                            "harness": {
                              "type": "string",
                              "enum": [
                                "codex",
                                "claude_agent_sdk",
                                "opencode"
                              ],
                              "description": "The agent program that runs the model."
                            },
                            "maxModelRequests": {
                              "type": "integer",
                              "description": "Most model requests in one run."
                            },
                            "maxOutputTokensPerRequest": {
                              "type": "integer"
                            },
                            "maxRuntimeSeconds": {
                              "type": "integer"
                            },
                            "model": {
                              "type": "string"
                            },
                            "modelProvider": {
                              "type": "string",
                              "enum": [
                                "openai",
                                "anthropic",
                                "google",
                                "xai",
                                "mistral",
                                "deepseek"
                              ]
                            },
                            "notifications": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelId",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "description": "Slack channels that receive the result of scheduled, Sentry, Axiom, SigNoz, Honeycomb, Better Stack, and GitHub runs."
                            },
                            "prompt": {
                              "type": "string",
                              "description": "The agent instructions."
                            },
                            "repositoryIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "skillIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Workspace skills written to the sandbox for the agent to read."
                            },
                            "toolPolicy": {
                              "type": "string",
                              "const": "full"
                            },
                            "triggers": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Slack channel IDs, such as C0123456789."
                                      },
                                      "eventMode": {
                                        "type": "string",
                                        "enum": [
                                          "mentions",
                                          "every_message",
                                          "both"
                                        ],
                                        "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                      },
                                      "ignoredAuthors": {
                                        "description": "Slack people and apps whose messages do not start or continue a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "ignoredPhrases": {
                                        "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        }
                                      },
                                      "includedAuthors": {
                                        "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "eventMode",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on Slack messages in the selected channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new issues, regressions, or both."
                                      },
                                      "excludedEnvironments": {
                                        "description": "Issues from these environments do not start a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 64
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "sentry"
                                      },
                                      "projectIds": {
                                        "minItems": 1,
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Sentry project IDs."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "projectIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on new or regressed Sentry issues in the selected projects."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "errors"
                                      },
                                      "services": {
                                        "description": "Only issues from these `service.name` values start a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "axiom"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "signoz"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "honeycomb"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "betterstack"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "devrev"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "opened",
                                            "merged"
                                          ]
                                        },
                                        "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "github"
                                      },
                                      "repositoryIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "format": "uuid"
                                        },
                                        "description": "Responder repository IDs from the GitHub connection."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "repositoryIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Discord channel IDs."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "discord"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when someone uses `/automate` in the selected Discord channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "cron": {
                                        "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "frequency": {
                                        "type": "string",
                                        "enum": [
                                          "hourly",
                                          "daily",
                                          "weekly",
                                          "custom"
                                        ]
                                      },
                                      "hour": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 23,
                                        "description": "Local hour for daily and weekly runs, 0 to 23."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "schedule"
                                      },
                                      "timezone": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64,
                                        "description": "IANA time zone, such as Europe/Paris."
                                      },
                                      "weekday": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 6,
                                        "description": "Local day for weekly runs. 0 is Sunday."
                                      }
                                    },
                                    "required": [
                                      "frequency",
                                      "hour",
                                      "kind",
                                      "timezone",
                                      "weekday"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "webhook"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                                  }
                                ]
                              }
                            },
                            "workspaceSecretIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            }
                          },
                          "required": [
                            "contextAccountIds",
                            "harness",
                            "maxModelRequests",
                            "maxOutputTokensPerRequest",
                            "maxRuntimeSeconds",
                            "model",
                            "modelProvider",
                            "notifications",
                            "prompt",
                            "repositoryIds",
                            "skillIds",
                            "toolPolicy",
                            "triggers",
                            "workspaceSecretIds"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was created."
                        },
                        "description": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Automation ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was last changed."
                        },
                        "version": {
                          "type": "integer",
                          "description": "Increases each time the configuration is saved."
                        }
                      },
                      "required": [
                        "configuration",
                        "createdAt",
                        "description",
                        "enabled",
                        "id",
                        "name",
                        "updatedAt",
                        "version"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "automation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get an automation",
        "tags": [
          "Automations"
        ],
        "x-mcp-tool": "get_automation"
      },
      "patch": {
        "description": "Changes an automation. Send only what changes. In `configuration`, each field you send replaces the current value, and fields you leave out are kept. Changing only `enabled` turns the automation on or off without saving a new version.",
        "operationId": "update_automation",
        "parameters": [
          {
            "description": "Automation ID.",
            "in": "path",
            "name": "automationId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Automation ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "configuration": {
                    "type": "object",
                    "properties": {
                      "contextAccountIds": {
                        "description": "Integration account IDs the agent can read from, besides GitHub.",
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "harness": {
                        "type": "string",
                        "enum": [
                          "codex",
                          "claude_agent_sdk",
                          "opencode"
                        ]
                      },
                      "maxModelRequests": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1000
                      },
                      "maxOutputTokensPerRequest": {
                        "type": "integer",
                        "minimum": 256,
                        "maximum": 100000
                      },
                      "maxRuntimeSeconds": {
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 3600
                      },
                      "model": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255,
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/-]*$"
                      },
                      "modelProvider": {
                        "type": "string",
                        "enum": [
                          "openai",
                          "anthropic",
                          "google",
                          "xai",
                          "mistral",
                          "deepseek"
                        ]
                      },
                      "notifications": {
                        "description": "Slack channels that receive the result of each scheduled, Sentry, Axiom, SigNoz, Honeycomb, Better Stack, or GitHub run.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 255
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "slack"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId",
                                "kind"
                              ]
                            }
                          ]
                        }
                      },
                      "prompt": {
                        "description": "The agent instructions.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50000
                      },
                      "repositoryIds": {
                        "description": "Repositories checked out in the sandbox.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "skillIds": {
                        "description": "Workspace skills written to the sandbox for the agent to read. Skills are managed on the Skills page.",
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      },
                      "toolPolicy": {
                        "type": "string",
                        "const": "full"
                      },
                      "triggers": {
                        "description": "What starts a run. Each trigger starts runs on its own.",
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Slack channel IDs, such as C0123456789."
                                },
                                "eventMode": {
                                  "type": "string",
                                  "enum": [
                                    "mentions",
                                    "every_message",
                                    "both"
                                  ],
                                  "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                },
                                "ignoredAuthors": {
                                  "description": "Slack people and apps whose messages do not start or continue a run.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                      },
                                      "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ]
                                  }
                                },
                                "ignoredPhrases": {
                                  "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 500
                                  }
                                },
                                "includedAuthors": {
                                  "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                      },
                                      "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "name"
                                    ]
                                  }
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "slack"
                                }
                              },
                              "required": [
                                "channelIds",
                                "eventMode",
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs on Slack messages in the selected channels."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "new_issue",
                                      "regression"
                                    ]
                                  },
                                  "description": "Run on new issues, regressions, or both."
                                },
                                "excludedEnvironments": {
                                  "description": "Issues from these environments do not start a run.",
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 64
                                  }
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "sentry"
                                },
                                "projectIds": {
                                  "minItems": 1,
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Sentry project IDs."
                                }
                              },
                              "required": [
                                "eventTypes",
                                "integrationAccountId",
                                "kind",
                                "projectIds"
                              ],
                              "description": "Runs on new or regressed Sentry issues in the selected projects."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "new_issue",
                                      "regression"
                                    ]
                                  },
                                  "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "errors"
                                },
                                "services": {
                                  "description": "Only issues from these `service.name` values start a run.",
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                }
                              },
                              "required": [
                                "eventTypes",
                                "kind"
                              ],
                              "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "axiom"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "signoz"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "honeycomb"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "betterstack"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "devrev"
                                }
                              },
                              "required": [
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "eventTypes": {
                                  "minItems": 1,
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "opened",
                                      "merged"
                                    ]
                                  },
                                  "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "github"
                                },
                                "repositoryIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "description": "Responder repository IDs from the GitHub connection."
                                }
                              },
                              "required": [
                                "eventTypes",
                                "integrationAccountId",
                                "kind",
                                "repositoryIds"
                              ],
                              "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "channelIds": {
                                  "minItems": 1,
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 255
                                  },
                                  "description": "Discord channel IDs."
                                },
                                "integrationAccountId": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "discord"
                                }
                              },
                              "required": [
                                "channelIds",
                                "integrationAccountId",
                                "kind"
                              ],
                              "description": "Runs when someone uses `/automate` in the selected Discord channels."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "cron": {
                                  "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "frequency": {
                                  "type": "string",
                                  "enum": [
                                    "hourly",
                                    "daily",
                                    "weekly",
                                    "custom"
                                  ]
                                },
                                "hour": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 23,
                                  "description": "Local hour for daily and weekly runs, 0 to 23."
                                },
                                "kind": {
                                  "type": "string",
                                  "const": "schedule"
                                },
                                "timezone": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64,
                                  "description": "IANA time zone, such as Europe/Paris."
                                },
                                "weekday": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 6,
                                  "description": "Local day for weekly runs. 0 is Sunday."
                                }
                              },
                              "required": [
                                "frequency",
                                "hour",
                                "kind",
                                "timezone",
                                "weekday"
                              ],
                              "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "webhook"
                                }
                              },
                              "required": [
                                "kind"
                              ],
                              "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                            }
                          ]
                        }
                      },
                      "workspaceSecretIds": {
                        "description": "Workspace secrets available to the agent.",
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid"
                        }
                      }
                    },
                    "description": "Configuration fields to replace. Fields you leave out keep their current value; a list you include replaces the whole list."
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "enabled": {
                    "description": "Whether triggers start runs.",
                    "type": "boolean"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "automation": {
                      "type": "object",
                      "properties": {
                        "configuration": {
                          "type": "object",
                          "properties": {
                            "contextAccountIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Integration accounts the agent can read from, besides GitHub."
                            },
                            "harness": {
                              "type": "string",
                              "enum": [
                                "codex",
                                "claude_agent_sdk",
                                "opencode"
                              ],
                              "description": "The agent program that runs the model."
                            },
                            "maxModelRequests": {
                              "type": "integer",
                              "description": "Most model requests in one run."
                            },
                            "maxOutputTokensPerRequest": {
                              "type": "integer"
                            },
                            "maxRuntimeSeconds": {
                              "type": "integer"
                            },
                            "model": {
                              "type": "string"
                            },
                            "modelProvider": {
                              "type": "string",
                              "enum": [
                                "openai",
                                "anthropic",
                                "google",
                                "xai",
                                "mistral",
                                "deepseek"
                              ]
                            },
                            "notifications": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelId": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelId",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false
                                  }
                                ]
                              },
                              "description": "Slack channels that receive the result of scheduled, Sentry, Axiom, SigNoz, Honeycomb, Better Stack, and GitHub runs."
                            },
                            "prompt": {
                              "type": "string",
                              "description": "The agent instructions."
                            },
                            "repositoryIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "skillIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "description": "Workspace skills written to the sandbox for the agent to read."
                            },
                            "toolPolicy": {
                              "type": "string",
                              "const": "full"
                            },
                            "triggers": {
                              "type": "array",
                              "items": {
                                "oneOf": [
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Slack channel IDs, such as C0123456789."
                                      },
                                      "eventMode": {
                                        "type": "string",
                                        "enum": [
                                          "mentions",
                                          "every_message",
                                          "both"
                                        ],
                                        "description": "Run when the app is mentioned, on every new message, or both. A thread reply starts a run only when it mentions the app or is also sent to the channel."
                                      },
                                      "ignoredAuthors": {
                                        "description": "Slack people and apps whose messages do not start or continue a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "ignoredPhrases": {
                                        "description": "Case-insensitive regular expressions. Messages whose text matches any of them do not start or continue a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 500
                                        }
                                      },
                                      "includedAuthors": {
                                        "description": "The only Slack people and apps whose messages start a run. Replies in a run's thread that mention the app still continue it.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "id": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255,
                                              "description": "Slack user ID, such as U0123456789, or app ID, such as A0123456789."
                                            },
                                            "name": {
                                              "type": "string",
                                              "minLength": 1,
                                              "maxLength": 255
                                            }
                                          },
                                          "required": [
                                            "id",
                                            "name"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "slack"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "eventMode",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on Slack messages in the selected channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new issues, regressions, or both."
                                      },
                                      "excludedEnvironments": {
                                        "description": "Issues from these environments do not start a run.",
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 64
                                        }
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "sentry"
                                      },
                                      "projectIds": {
                                        "minItems": 1,
                                        "maxItems": 100,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Sentry project IDs."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "projectIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on new or regressed Sentry issues in the selected projects."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "new_issue",
                                            "regression"
                                          ]
                                        },
                                        "description": "Run on new error issues, issues that occur again after being resolved, or both."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "errors"
                                      },
                                      "services": {
                                        "description": "Only issues from these `service.name` values start a run.",
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 200
                                        }
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when the workspace's telemetry opens a new error issue or reopens a resolved one. Needs telemetry."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "axiom"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when an Axiom monitor sends an alert to the connection's webhook."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "signoz"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a SigNoz alert fires and is sent to the connection's webhook notification channel."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "honeycomb"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Honeycomb trigger or SLO burn alert fires and notifies the connection's webhook recipient."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "betterstack"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a Better Stack incident starts and the connection's outgoing incident webhook receives it."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "devrev"
                                      }
                                    },
                                    "required": [
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a ticket is created in the connected DevRev organization. The run's final reply is posted as an internal comment on the ticket."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "eventTypes": {
                                        "minItems": 1,
                                        "maxItems": 2,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "opened",
                                            "merged"
                                          ]
                                        },
                                        "description": "Run when a pull request is opened, merged, or both. A draft counts as opened when it is marked ready for review."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "github"
                                      },
                                      "repositoryIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "format": "uuid"
                                        },
                                        "description": "Responder repository IDs from the GitHub connection."
                                      }
                                    },
                                    "required": [
                                      "eventTypes",
                                      "integrationAccountId",
                                      "kind",
                                      "repositoryIds"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a pull request is opened or merged in the selected GitHub repositories."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "channelIds": {
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "minLength": 1,
                                          "maxLength": 255
                                        },
                                        "description": "Discord channel IDs."
                                      },
                                      "integrationAccountId": {
                                        "type": "string",
                                        "format": "uuid"
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "discord"
                                      }
                                    },
                                    "required": [
                                      "channelIds",
                                      "integrationAccountId",
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when someone uses `/automate` in the selected Discord channels."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "cron": {
                                        "description": "Cron expression for custom runs, such as `0 9 * * 1-5`: minute, hour, day of month, month, and day of week, in the time zone.",
                                        "type": "string",
                                        "maxLength": 255
                                      },
                                      "frequency": {
                                        "type": "string",
                                        "enum": [
                                          "hourly",
                                          "daily",
                                          "weekly",
                                          "custom"
                                        ]
                                      },
                                      "hour": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 23,
                                        "description": "Local hour for daily and weekly runs, 0 to 23."
                                      },
                                      "kind": {
                                        "type": "string",
                                        "const": "schedule"
                                      },
                                      "timezone": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 64,
                                        "description": "IANA time zone, such as Europe/Paris."
                                      },
                                      "weekday": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 6,
                                        "description": "Local day for weekly runs. 0 is Sunday."
                                      }
                                    },
                                    "required": [
                                      "frequency",
                                      "hour",
                                      "kind",
                                      "timezone",
                                      "weekday"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs on the hour, at a local time each day or week, or on a custom cron expression."
                                  },
                                  {
                                    "type": "object",
                                    "properties": {
                                      "kind": {
                                        "type": "string",
                                        "const": "webhook"
                                      }
                                    },
                                    "required": [
                                      "kind"
                                    ],
                                    "additionalProperties": false,
                                    "description": "Runs when a POST request with the automation's webhook token reaches its webhook URL. The request body is the run's trigger payload."
                                  }
                                ]
                              }
                            },
                            "workspaceSecretIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            }
                          },
                          "required": [
                            "contextAccountIds",
                            "harness",
                            "maxModelRequests",
                            "maxOutputTokensPerRequest",
                            "maxRuntimeSeconds",
                            "model",
                            "modelProvider",
                            "notifications",
                            "prompt",
                            "repositoryIds",
                            "skillIds",
                            "toolPolicy",
                            "triggers",
                            "workspaceSecretIds"
                          ],
                          "additionalProperties": false
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was created."
                        },
                        "description": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Automation ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the automation was last changed."
                        },
                        "version": {
                          "type": "integer",
                          "description": "Increases each time the configuration is saved."
                        }
                      },
                      "required": [
                        "configuration",
                        "createdAt",
                        "description",
                        "enabled",
                        "id",
                        "name",
                        "updatedAt",
                        "version"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "automation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Update an automation",
        "tags": [
          "Automations"
        ],
        "x-mcp-tool": "update_automation"
      }
    },
    "/automations/{automationId}/webhook": {
      "get": {
        "description": "Returns the URL and bearer token for an automation's webhook trigger. A POST request to the URL with `Authorization: Bearer <token>` starts a run while the automation is on and has a `webhook` trigger. The request body is the run's trigger payload; a JSON body's `title` names the run. Requests with the same `Idempotency-Key` header start one run.",
        "operationId": "get_automation_webhook",
        "parameters": [
          {
            "description": "Automation ID.",
            "in": "path",
            "name": "automationId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Automation ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string",
                      "description": "Send as `Authorization: Bearer <token>`."
                    },
                    "url": {
                      "type": "string",
                      "description": "POST requests here start a run."
                    }
                  },
                  "required": [
                    "token",
                    "url"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get an automation's webhook",
        "tags": [
          "Automations"
        ],
        "x-mcp-tool": "get_automation_webhook"
      }
    },
    "/automations/{automationId}/runs": {
      "get": {
        "description": "Lists an automation's runs, newest first.",
        "operationId": "list_automation_runs",
        "parameters": [
          {
            "description": "Automation ID.",
            "in": "path",
            "name": "automationId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Automation ID."
            }
          },
          {
            "description": "Page number, starting at 1.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "description": "Page number, starting at 1.",
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            }
          },
          {
            "description": "Runs per page, up to 50.",
            "in": "query",
            "name": "pageSize",
            "required": false,
            "schema": {
              "default": 10,
              "description": "Runs per page, up to 50.",
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "page": {
                      "type": "integer"
                    },
                    "pageSize": {
                      "type": "integer"
                    },
                    "runs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "completedAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the run finished."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the run was created."
                          },
                          "failureCategory": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "failureMessage": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Run ID."
                          },
                          "inferenceUsage": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "costMicros": {
                                    "anyOf": [
                                      {
                                        "type": "integer"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ],
                                    "description": "Model cost in millionths of a US dollar. Null when a price is unknown."
                                  },
                                  "inputTokens": {
                                    "type": "integer"
                                  },
                                  "outputTokens": {
                                    "type": "integer"
                                  },
                                  "requests": {
                                    "type": "integer"
                                  }
                                },
                                "required": [
                                  "costMicros",
                                  "inputTokens",
                                  "outputTokens",
                                  "requests"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "number": {
                            "type": "integer",
                            "description": "The run's position in the automation's history, starting at 1."
                          },
                          "resultSummary": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The agent's final answer."
                          },
                          "startedAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the run started."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "running",
                              "succeeded",
                              "failed",
                              "cancelled"
                            ],
                            "description": "`pending` and `running` runs are active."
                          },
                          "trigger": {
                            "type": "object",
                            "properties": {
                              "provider": {
                                "type": "string",
                                "description": "What started the run: `manual`, `schedule`, `slack`, `sentry`, `errors`, `axiom`, `signoz`, `honeycomb`, `betterstack`, `devrev`, `github`, `discord`, or `webhook`."
                              },
                              "sourceUrl": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ],
                                "description": "A link to the event that started the run."
                              },
                              "title": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "provider",
                              "sourceUrl",
                              "title"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "completedAt",
                          "createdAt",
                          "failureCategory",
                          "failureMessage",
                          "id",
                          "inferenceUsage",
                          "number",
                          "resultSummary",
                          "startedAt",
                          "status",
                          "trigger"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "total": {
                      "type": "integer",
                      "description": "Runs across all pages."
                    }
                  },
                  "required": [
                    "page",
                    "pageSize",
                    "runs",
                    "total"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List runs",
        "tags": [
          "Runs"
        ],
        "x-mcp-tool": "list_automation_runs"
      },
      "post": {
        "description": "Starts a run now. With a `message`, the run starts as a chat: the agent gets the message as its request, and you can continue with follow-up messages.",
        "operationId": "start_automation_run",
        "parameters": [
          {
            "description": "Automation ID.",
            "in": "path",
            "name": "automationId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Automation ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "message": {
                    "description": "A request for the agent. Leave it out for a plain manual run.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "duplicate": {
                      "type": "boolean",
                      "description": "True when an identical run was already queued."
                    },
                    "runId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Run ID."
                    }
                  },
                  "required": [
                    "duplicate",
                    "runId"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Start a run",
        "tags": [
          "Runs"
        ],
        "x-mcp-tool": "start_automation_run"
      }
    },
    "/runs/{runId}": {
      "get": {
        "description": "Returns a run with its status, result, usage, and transcript events.",
        "operationId": "get_automation_run",
        "parameters": [
          {
            "description": "Run ID.",
            "in": "path",
            "name": "runId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Run ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "run": {
                      "type": "object",
                      "properties": {
                        "automationId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Automation ID."
                        },
                        "automationName": {
                          "type": "string"
                        },
                        "cancelRequestedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time",
                              "description": "When cancellation was requested."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "completedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time",
                              "description": "When the run finished."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the run was created."
                        },
                        "events": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "createdAt": {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the event was recorded."
                              },
                              "data": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "propertyNames": {
                                      "type": "string"
                                    },
                                    "additionalProperties": {}
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "id": {
                                "type": "integer"
                              },
                              "type": {
                                "type": "string",
                                "description": "For example `transcript`, `user_message`, or `action_succeeded`."
                              }
                            },
                            "required": [
                              "createdAt",
                              "data",
                              "id",
                              "type"
                            ],
                            "additionalProperties": false
                          },
                          "description": "The run's transcript and actions, oldest first."
                        },
                        "failureCategory": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "failureMessage": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Run ID."
                        },
                        "inferenceUsage": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "costMicros": {
                                  "anyOf": [
                                    {
                                      "type": "integer"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ],
                                  "description": "Model cost in millionths of a US dollar. Null when a price is unknown."
                                },
                                "inputTokens": {
                                  "type": "integer"
                                },
                                "outputTokens": {
                                  "type": "integer"
                                },
                                "requests": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "costMicros",
                                "inputTokens",
                                "outputTokens",
                                "requests"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "number": {
                          "type": "integer"
                        },
                        "resultSummary": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "startedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time",
                              "description": "When the run started."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "running",
                            "succeeded",
                            "failed",
                            "cancelled"
                          ],
                          "description": "`pending` and `running` runs are active."
                        },
                        "trigger": {
                          "type": "object",
                          "properties": {
                            "provider": {
                              "type": "string",
                              "description": "What started the run: `manual`, `schedule`, `slack`, `sentry`, `errors`, `axiom`, `signoz`, `honeycomb`, `betterstack`, `devrev`, `github`, `discord`, or `webhook`."
                            },
                            "sourceUrl": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "A link to the event that started the run."
                            },
                            "title": {
                              "type": "string"
                            },
                            "attributes": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "anyOf": [
                                  {
                                    "type": "string"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "boolean"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "description": "Details of the triggering event, such as a Slack channel or Sentry issue."
                            }
                          },
                          "required": [
                            "provider",
                            "sourceUrl",
                            "title",
                            "attributes"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "automationId",
                        "automationName",
                        "cancelRequestedAt",
                        "completedAt",
                        "createdAt",
                        "events",
                        "failureCategory",
                        "failureMessage",
                        "id",
                        "inferenceUsage",
                        "number",
                        "resultSummary",
                        "startedAt",
                        "status",
                        "trigger"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "run"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get a run",
        "tags": [
          "Runs"
        ],
        "x-mcp-tool": "get_automation_run"
      }
    },
    "/runs/{runId}/cancel": {
      "post": {
        "description": "Asks an active run to stop. The run ends as `cancelled`.",
        "operationId": "cancel_automation_run",
        "parameters": [
          {
            "description": "Run ID.",
            "in": "path",
            "name": "runId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Run ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "cancelRequested": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "cancelRequested"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Cancel a run",
        "tags": [
          "Runs"
        ],
        "x-mcp-tool": "cancel_automation_run"
      }
    },
    "/runs/{runId}/messages": {
      "post": {
        "description": "Sends a follow-up message to a finished run. The agent continues the same conversation in a new turn.",
        "operationId": "send_automation_run_message",
        "parameters": [
          {
            "description": "Run ID.",
            "in": "path",
            "name": "runId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Run ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20000,
                    "description": "The follow-up message."
                  }
                },
                "required": [
                  "message"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "queued": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "queued"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Send a follow-up message",
        "tags": [
          "Runs"
        ],
        "x-mcp-tool": "send_automation_run_message"
      }
    },
    "/tag-mode": {
      "get": {
        "description": "Returns tag mode settings: whether Slack mentions get answers, the prompt, and the repositories, integrations, and secrets it can use. Null when tag mode has never been set up.",
        "operationId": "get_tag_mode",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tagMode": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "contextAccountIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "contextResourceIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "enabled": {
                              "type": "boolean"
                            },
                            "instructions": {
                              "type": "string"
                            },
                            "model": {
                              "type": "string"
                            },
                            "repositoryIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "secretIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            }
                          },
                          "required": [
                            "contextAccountIds",
                            "contextResourceIds",
                            "enabled",
                            "instructions",
                            "model",
                            "repositoryIds",
                            "secretIds"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tagMode"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get tag mode",
        "tags": [
          "Tag mode"
        ],
        "x-mcp-tool": "get_tag_mode"
      },
      "patch": {
        "description": "Changes tag mode. Send only what changes; each list you send replaces the current selection. The first change starts tag mode on, with every connected context integration. Tag mode needs a Slack connection.",
        "operationId": "update_tag_mode",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "contextAccountIds": {
                    "description": "Integration account IDs tag mode can read from.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "contextResourceIds": {
                    "description": "Resource IDs, such as Vercel projects, tag mode can read from.",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "enabled": {
                    "type": "boolean"
                  },
                  "instructions": {
                    "description": "The prompt tag mode follows for every request.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 400000
                  },
                  "model": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  "repositoryIds": {
                    "description": "Repositories tag mode can read.",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "secretIds": {
                    "description": "Workspace secrets tag mode can use.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "tagMode": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "contextAccountIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "contextResourceIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "enabled": {
                              "type": "boolean"
                            },
                            "instructions": {
                              "type": "string"
                            },
                            "model": {
                              "type": "string"
                            },
                            "repositoryIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            },
                            "secretIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "format": "uuid"
                              }
                            }
                          },
                          "required": [
                            "contextAccountIds",
                            "contextResourceIds",
                            "enabled",
                            "instructions",
                            "model",
                            "repositoryIds",
                            "secretIds"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tagMode"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Update tag mode",
        "tags": [
          "Tag mode"
        ],
        "x-mcp-tool": "update_tag_mode"
      }
    },
    "/models": {
      "get": {
        "description": "Lists the models of one provider that automations can use with the usage included in your plan.",
        "operationId": "list_included_models",
        "parameters": [
          {
            "description": "The model provider.",
            "in": "query",
            "name": "provider",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "openai",
                "anthropic",
                "google",
                "xai",
                "mistral",
                "deepseek"
              ],
              "description": "The model provider."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "models": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "models"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List included models",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": "list_included_models"
      }
    },
    "/model-credentials": {
      "get": {
        "description": "Lists the workspace's model API keys and ChatGPT subscriptions. Key values are never returned.",
        "operationId": "list_model_credentials",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "modelCredentials": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "authType": {
                            "type": "string",
                            "enum": [
                              "api_key",
                              "chatgpt_subscription"
                            ]
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the credential was added."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Model credential ID."
                          },
                          "label": {
                            "type": "string"
                          },
                          "lastFour": {
                            "type": "string",
                            "description": "The last four characters of the API key."
                          },
                          "lastValidatedAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the credential was last tested."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "provider": {
                            "type": "string",
                            "enum": [
                              "openai",
                              "anthropic",
                              "google",
                              "xai",
                              "mistral",
                              "deepseek"
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "invalid"
                            ]
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the credential was last changed."
                          }
                        },
                        "required": [
                          "authType",
                          "createdAt",
                          "id",
                          "label",
                          "lastFour",
                          "lastValidatedAt",
                          "provider",
                          "status",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "modelCredentials"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List model credentials",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": "list_model_credentials"
      },
      "post": {
        "description": "Adds a model provider API key. Superlog checks the key with the provider before saving it. Every automation that uses this provider then runs on your key. Connect a ChatGPT subscription in the app.",
        "operationId": "create_model_credential",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4096,
                    "description": "The provider API key."
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120,
                    "description": "A name for the key, unique within the workspace."
                  },
                  "provider": {
                    "type": "string",
                    "enum": [
                      "openai",
                      "anthropic",
                      "google",
                      "xai",
                      "mistral",
                      "deepseek"
                    ]
                  }
                },
                "required": [
                  "apiKey",
                  "label",
                  "provider"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "modelCredential": {
                      "type": "object",
                      "properties": {
                        "authType": {
                          "type": "string",
                          "enum": [
                            "api_key",
                            "chatgpt_subscription"
                          ]
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the credential was added."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Model credential ID."
                        },
                        "label": {
                          "type": "string"
                        },
                        "lastFour": {
                          "type": "string",
                          "description": "The last four characters of the API key."
                        },
                        "lastValidatedAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time",
                              "description": "When the credential was last tested."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "provider": {
                          "type": "string",
                          "enum": [
                            "openai",
                            "anthropic",
                            "google",
                            "xai",
                            "mistral",
                            "deepseek"
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "active",
                            "invalid"
                          ]
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the credential was last changed."
                        }
                      },
                      "required": [
                        "authType",
                        "createdAt",
                        "id",
                        "label",
                        "lastFour",
                        "lastValidatedAt",
                        "provider",
                        "status",
                        "updatedAt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "modelCredential"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Add a model API key",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": null
      }
    },
    "/model-credentials/{credentialId}/rotate": {
      "post": {
        "description": "Replaces the key of a model API key credential, for example after you rotate it with the provider.",
        "operationId": "rotate_model_credential",
        "parameters": [
          {
            "description": "Model credential ID.",
            "in": "path",
            "name": "credentialId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Model credential ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4096,
                    "description": "The new provider API key."
                  }
                },
                "required": [
                  "apiKey"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rotated": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "rotated"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Replace a model API key",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": null
      }
    },
    "/model-credentials/{credentialId}/test": {
      "post": {
        "description": "Checks that a model credential works and can use a model. The credential's status is updated with the result.",
        "operationId": "test_model_credential",
        "parameters": [
          {
            "description": "Model credential ID.",
            "in": "path",
            "name": "credentialId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Model credential ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "model": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "description": "A model ID to check, such as `gpt-5.4`."
                  }
                },
                "required": [
                  "model"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "authenticationFailed": {
                      "type": "boolean",
                      "description": "True when the provider rejected the key."
                    },
                    "valid": {
                      "type": "boolean",
                      "description": "True when the key works and can use the model."
                    }
                  },
                  "required": [
                    "authenticationFailed",
                    "valid"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Test a model credential",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": "test_model_credential"
      }
    },
    "/model-credentials/{credentialId}/models": {
      "get": {
        "description": "Lists the models a model credential can use.",
        "operationId": "list_model_credential_models",
        "parameters": [
          {
            "description": "Model credential ID.",
            "in": "path",
            "name": "credentialId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Model credential ID."
            }
          },
          {
            "description": "For a ChatGPT subscription, `true` reloads the list instead of using the cached one.",
            "in": "query",
            "name": "refresh",
            "required": false,
            "schema": {
              "default": "false",
              "description": "For a ChatGPT subscription, `true` reloads the list instead of using the cached one.",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "models": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "models"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List a credential's models",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": "list_model_credential_models"
      }
    },
    "/model-credentials/{credentialId}": {
      "delete": {
        "description": "Removes a model credential. Automations that used it fall back to included usage.",
        "operationId": "delete_model_credential",
        "parameters": [
          {
            "description": "Model credential ID.",
            "in": "path",
            "name": "credentialId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Model credential ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Remove a model credential",
        "tags": [
          "Models"
        ],
        "x-mcp-tool": "delete_model_credential"
      }
    },
    "/secrets": {
      "get": {
        "description": "Lists workspace secrets. Secret values are never returned.",
        "operationId": "list_secrets",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "secrets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "allowedHosts": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "When the secret was stored."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Workspace secret ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "The environment variable name."
                          }
                        },
                        "required": [
                          "allowedHosts",
                          "createdAt",
                          "id",
                          "name"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "secrets"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List workspace secrets",
        "tags": [
          "Secrets"
        ],
        "x-mcp-tool": "list_secrets"
      },
      "post": {
        "description": "Stores a workspace secret. Agents see the environment variable `name` with a placeholder value, and Superlog substitutes the real value only in requests to the allowed hosts. The value cannot be read back.",
        "operationId": "create_secret",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[A-Z_][A-Z0-9_]*$",
                    "description": "The environment variable name, such as `METRICS_API_KEY`."
                  },
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 65536,
                    "description": "The secret value, up to 64 KB."
                  },
                  "allowedHosts": {
                    "description": "1 to 20 hostnames without a scheme, path, or port. A leading `*.` matches subdomains.",
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 253,
                      "pattern": "^(?:\\*\\.)?[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$"
                    }
                  }
                },
                "required": [
                  "name",
                  "value",
                  "allowedHosts"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "secret": {
                      "type": "object",
                      "properties": {
                        "allowedHosts": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the secret was stored."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Workspace secret ID."
                        },
                        "name": {
                          "type": "string",
                          "description": "The environment variable name."
                        }
                      },
                      "required": [
                        "allowedHosts",
                        "createdAt",
                        "id",
                        "name"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "secret"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create a workspace secret",
        "tags": [
          "Secrets"
        ],
        "x-mcp-tool": null
      }
    },
    "/telemetry/logs/search": {
      "post": {
        "description": "Returns the workspace's OpenTelemetry logs in a time window, newest first. Error logs include the recorded exception type, message, and stack trace.",
        "operationId": "query_logs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "range": {
                    "default": "1h",
                    "description": "How far back from now to read, when `since` is not given.",
                    "type": "string",
                    "enum": [
                      "15m",
                      "1h",
                      "6h",
                      "24h",
                      "7d"
                    ]
                  },
                  "since": {
                    "description": "Start of the window. Overrides `range`.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "until": {
                    "description": "End of the window. Defaults to now. Windows are at most 30 days.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "attributes": {
                    "description": "Exact matches on log record attributes, such as `event.name`.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ]
                    }
                  },
                  "limit": {
                    "default": 50,
                    "description": "Most rows to return.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500
                  },
                  "resourceAttributes": {
                    "description": "Filters on resource attributes of the service that sent the data, such as `deployment.environment`.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "op": {
                          "description": "Defaults to `eq`.",
                          "type": "string",
                          "enum": [
                            "eq",
                            "neq",
                            "not_contains"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ]
                    }
                  },
                  "search": {
                    "description": "Case-insensitive text in the log body or event name.",
                    "type": "string",
                    "maxLength": 500
                  },
                  "service": {
                    "description": "Only this `service.name`.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "severity": {
                    "description": "A level such as `ERROR`, `WARN`, or `INFO`.",
                    "type": "string",
                    "maxLength": 40
                  },
                  "traceId": {
                    "description": "Only logs written in this trace.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{32}$"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "logs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "body": {
                            "type": "string"
                          },
                          "eventName": {
                            "type": "string",
                            "description": "The OpenTelemetry event name, such as `browser.navigation`. Events usually have no body."
                          },
                          "exception": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "message": {
                                    "type": "string"
                                  },
                                  "stacktrace": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "message",
                                  "stacktrace",
                                  "type"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The recorded exception, when there is one."
                          },
                          "resourceAttributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "service": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "string"
                          },
                          "severityNumber": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "spanId": {
                            "type": "string"
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "UTC."
                          },
                          "traceId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "attributes",
                          "body",
                          "eventName",
                          "exception",
                          "resourceAttributes",
                          "service",
                          "severity",
                          "severityNumber",
                          "spanId",
                          "timestamp",
                          "traceId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "since": {
                      "type": "string"
                    },
                    "until": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "logs",
                    "since",
                    "until"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Search logs",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "query_logs"
      }
    },
    "/telemetry/traces/search": {
      "post": {
        "description": "Returns the workspace's OpenTelemetry spans in a time window, newest first. Spans that recorded an exception include its type, message, and stack trace.",
        "operationId": "query_traces",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "range": {
                    "default": "1h",
                    "description": "How far back from now to read, when `since` is not given.",
                    "type": "string",
                    "enum": [
                      "15m",
                      "1h",
                      "6h",
                      "24h",
                      "7d"
                    ]
                  },
                  "since": {
                    "description": "Start of the window. Overrides `range`.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "until": {
                    "description": "End of the window. Defaults to now. Windows are at most 30 days.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "attributes": {
                    "description": "Exact matches on span attributes, such as `http.route` or `http.response.status_code`. HTTP status codes live here, not in `statusCode`.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ]
                    }
                  },
                  "limit": {
                    "default": 50,
                    "description": "Most rows to return.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500
                  },
                  "minDurationMs": {
                    "description": "Only spans at least this long.",
                    "type": "number",
                    "minimum": 0,
                    "maximum": 3600000
                  },
                  "name": {
                    "description": "Only spans with this name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "resourceAttributes": {
                    "description": "Filters on resource attributes of the service that sent the data, such as `deployment.environment`.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "op": {
                          "description": "Defaults to `eq`.",
                          "type": "string",
                          "enum": [
                            "eq",
                            "neq",
                            "not_contains"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ]
                    }
                  },
                  "service": {
                    "description": "Only this `service.name`.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "statusCode": {
                    "description": "The OpenTelemetry span status. HTTP servers set ERROR only for 5xx responses; 4xx responses stay UNSET.",
                    "type": "string",
                    "enum": [
                      "STATUS_CODE_OK",
                      "STATUS_CODE_ERROR",
                      "STATUS_CODE_UNSET"
                    ]
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "since": {
                      "type": "string"
                    },
                    "spans": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "durationMs": {
                            "type": "number"
                          },
                          "exception": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "message": {
                                    "type": "string"
                                  },
                                  "stacktrace": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "message",
                                  "stacktrace",
                                  "type"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The recorded exception, when there is one."
                          },
                          "kind": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "parentSpanId": {
                            "type": "string"
                          },
                          "resourceAttributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "service": {
                            "type": "string"
                          },
                          "spanId": {
                            "type": "string"
                          },
                          "statusCode": {
                            "type": "string"
                          },
                          "statusMessage": {
                            "type": "string"
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "Span start, UTC."
                          },
                          "traceId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "attributes",
                          "durationMs",
                          "exception",
                          "kind",
                          "name",
                          "parentSpanId",
                          "resourceAttributes",
                          "service",
                          "spanId",
                          "statusCode",
                          "statusMessage",
                          "timestamp",
                          "traceId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "until": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "since",
                    "spans",
                    "until"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Search spans",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "query_traces"
      }
    },
    "/telemetry/traces/{traceId}": {
      "get": {
        "description": "Returns every span of one trace in start order, and the logs written during it.",
        "operationId": "get_trace",
        "parameters": [
          {
            "description": "A 32-character hexadecimal trace ID.",
            "in": "path",
            "name": "traceId",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{32}$",
              "description": "A 32-character hexadecimal trace ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "logs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "body": {
                            "type": "string"
                          },
                          "eventName": {
                            "type": "string",
                            "description": "The OpenTelemetry event name, such as `browser.navigation`. Events usually have no body."
                          },
                          "exception": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "message": {
                                    "type": "string"
                                  },
                                  "stacktrace": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "message",
                                  "stacktrace",
                                  "type"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The recorded exception, when there is one."
                          },
                          "resourceAttributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "service": {
                            "type": "string"
                          },
                          "severity": {
                            "type": "string"
                          },
                          "severityNumber": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "spanId": {
                            "type": "string"
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "UTC."
                          },
                          "traceId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "attributes",
                          "body",
                          "eventName",
                          "exception",
                          "resourceAttributes",
                          "service",
                          "severity",
                          "severityNumber",
                          "spanId",
                          "timestamp",
                          "traceId"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "spans": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "attributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "durationMs": {
                            "type": "number"
                          },
                          "exception": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "message": {
                                    "type": "string"
                                  },
                                  "stacktrace": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "message",
                                  "stacktrace",
                                  "type"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The recorded exception, when there is one."
                          },
                          "kind": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "parentSpanId": {
                            "type": "string"
                          },
                          "resourceAttributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "service": {
                            "type": "string"
                          },
                          "spanId": {
                            "type": "string"
                          },
                          "statusCode": {
                            "type": "string"
                          },
                          "statusMessage": {
                            "type": "string"
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "Span start, UTC."
                          },
                          "traceId": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "attributes",
                          "durationMs",
                          "exception",
                          "kind",
                          "name",
                          "parentSpanId",
                          "resourceAttributes",
                          "service",
                          "spanId",
                          "statusCode",
                          "statusMessage",
                          "timestamp",
                          "traceId"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "logs",
                    "spans"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get a trace",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "get_trace"
      }
    },
    "/telemetry/metrics/search": {
      "post": {
        "description": "Returns the workspace's recent OpenTelemetry metric points in a time window, newest first, across gauges, sums, histograms, and summaries. Gauge and sum points carry a `value`; histogram and summary points carry `count` and `sum` instead.",
        "operationId": "query_metrics",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "range": {
                    "default": "1h",
                    "description": "How far back from now to read, when `since` is not given.",
                    "type": "string",
                    "enum": [
                      "15m",
                      "1h",
                      "6h",
                      "24h",
                      "7d"
                    ]
                  },
                  "since": {
                    "description": "Start of the window. Overrides `range`.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "until": {
                    "description": "End of the window. Defaults to now. Windows are at most 30 days.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "limit": {
                    "default": 100,
                    "description": "Most rows to return.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 500
                  },
                  "name": {
                    "description": "Only this metric.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "resourceAttributes": {
                    "description": "Filters on resource attributes of the service that sent the data, such as `deployment.environment`.",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "value": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "op": {
                          "description": "Defaults to `eq`.",
                          "type": "string",
                          "enum": [
                            "eq",
                            "neq",
                            "not_contains"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ]
                    }
                  },
                  "service": {
                    "description": "Only this `service.name`.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "points": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "aggregationTemporality": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "The point's dimensions, such as route or status."
                          },
                          "count": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Observations, for histograms and summaries."
                          },
                          "isMonotonic": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "gauge",
                              "sum",
                              "histogram",
                              "exponential_histogram",
                              "summary"
                            ]
                          },
                          "max": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "min": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "resourceAttributes": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "service": {
                            "type": "string"
                          },
                          "startTime": {
                            "type": "string",
                            "description": "UTC."
                          },
                          "sum": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Sum of observations, for histograms and summaries."
                          },
                          "timestamp": {
                            "type": "string",
                            "description": "UTC."
                          },
                          "unit": {
                            "type": "string"
                          },
                          "value": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The value of a gauge or sum point."
                          }
                        },
                        "required": [
                          "aggregationTemporality",
                          "attributes",
                          "count",
                          "isMonotonic",
                          "kind",
                          "max",
                          "min",
                          "name",
                          "resourceAttributes",
                          "service",
                          "startTime",
                          "sum",
                          "timestamp",
                          "unit",
                          "value"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "since": {
                      "type": "string"
                    },
                    "until": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "points",
                    "since",
                    "until"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Read metric points",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "query_metrics"
      }
    },
    "/telemetry/services": {
      "get": {
        "description": "Lists the services that sent logs, traces, or metrics in a time window.",
        "operationId": "list_services",
        "parameters": [
          {
            "description": "How far back from now to read, when `since` is not given.",
            "in": "query",
            "name": "range",
            "required": false,
            "schema": {
              "default": "1h",
              "description": "How far back from now to read, when `since` is not given.",
              "type": "string",
              "enum": [
                "15m",
                "1h",
                "6h",
                "24h",
                "7d"
              ]
            }
          },
          {
            "description": "Start of the window. Overrides `range`.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "description": "Start of the window. Overrides `range`.",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "description": "End of the window. Defaults to now. Windows are at most 30 days.",
            "in": "query",
            "name": "until",
            "required": false,
            "schema": {
              "description": "End of the window. Defaults to now. Windows are at most 30 days.",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "since": {
                      "type": "string"
                    },
                    "until": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "services",
                    "since",
                    "until"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List services",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "list_services"
      }
    },
    "/ingest-keys": {
      "get": {
        "description": "Lists the workspace's ingest keys, newest first, with when each one last sent telemetry. Key values are not returned.",
        "operationId": "list_ingest_keys",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "endpoint": {
                      "type": "string",
                      "description": "The OTLP/HTTP endpoint the keys send to."
                    },
                    "keys": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "createdAt": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          },
                          "lastUsedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When the key last sent telemetry. Null until it is used."
                          },
                          "name": {
                            "type": "string"
                          },
                          "prefix": {
                            "type": "string",
                            "description": "The start of the key, to tell keys apart."
                          }
                        },
                        "required": [
                          "createdAt",
                          "id",
                          "lastUsedAt",
                          "name",
                          "prefix"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "endpoint",
                    "keys"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List ingest keys",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "list_ingest_keys"
      },
      "post": {
        "description": "Creates a key that applications send logs, traces, and metrics with, and returns its value once. The key can only add telemetry to this workspace. Put it in the app's environment or secret manager, never in a committed file. Browser apps may embed it.",
        "operationId": "create_ingest_key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120,
                    "description": "What the key is for, such as the service or environment."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "endpoint": {
                      "type": "string",
                      "description": "The OTLP/HTTP endpoint. SDKs add /v1/logs, /v1/traces, and /v1/metrics."
                    },
                    "environment": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string"
                      },
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "OpenTelemetry SDK settings for the key."
                    },
                    "key": {
                      "type": "object",
                      "properties": {
                        "createdAt": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        },
                        "lastUsedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the key last sent telemetry. Null until it is used."
                        },
                        "name": {
                          "type": "string"
                        },
                        "prefix": {
                          "type": "string",
                          "description": "The start of the key, to tell keys apart."
                        }
                      },
                      "required": [
                        "createdAt",
                        "id",
                        "lastUsedAt",
                        "name",
                        "prefix"
                      ],
                      "additionalProperties": false
                    },
                    "token": {
                      "type": "string",
                      "description": "The key. It is not shown again."
                    }
                  },
                  "required": [
                    "endpoint",
                    "environment",
                    "key",
                    "token"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create an ingest key",
        "tags": [
          "Telemetry"
        ],
        "x-mcp-tool": "create_ingest_key"
      }
    },
    "/error-issues": {
      "get": {
        "description": "Lists the workspace's error issues, most recently seen first. Each issue groups exceptions with the same type, normalized message, and application frames.",
        "operationId": "list_error_issues",
        "parameters": [
          {
            "description": "Most issues to return.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 25,
              "description": "Most issues to return.",
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "description": "Case-insensitive text in the title, top frame, or exception type.",
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "description": "Case-insensitive text in the title, top frame, or exception type.",
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          {
            "description": "Only issues from this `service.name`.",
            "in": "query",
            "name": "service",
            "required": false,
            "schema": {
              "description": "Only issues from this `service.name`.",
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            }
          },
          {
            "description": "Defaults to `open`.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "open",
              "description": "Defaults to `open`.",
              "type": "string",
              "enum": [
                "open",
                "resolved",
                "silenced",
                "all"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "eventCount": {
                            "type": "number",
                            "description": "Occurrences since the issue was first seen."
                          },
                          "exceptionType": {
                            "type": "string"
                          },
                          "firstSeenAt": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "span",
                              "log"
                            ],
                            "description": "Whether the first occurrence was a span exception event or an error log."
                          },
                          "lastSeenAt": {
                            "type": "string"
                          },
                          "regressedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When the issue last occurred again after being resolved."
                          },
                          "service": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "open",
                              "resolved",
                              "silenced"
                            ]
                          },
                          "statusChangedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "title": {
                            "type": "string"
                          },
                          "topFrame": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The innermost application frame, as `function@path`."
                          },
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "eventCount",
                          "exceptionType",
                          "firstSeenAt",
                          "id",
                          "kind",
                          "lastSeenAt",
                          "regressedAt",
                          "service",
                          "status",
                          "statusChangedAt",
                          "title",
                          "topFrame",
                          "url"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "issues"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List error issues",
        "tags": [
          "Errors"
        ],
        "x-mcp-tool": "list_error_issues"
      }
    },
    "/error-issues/{issueId}": {
      "get": {
        "description": "Returns an error issue with its newest occurrence, including the stack trace, and its occurrences per day.",
        "operationId": "get_error_issue",
        "parameters": [
          {
            "description": "Error issue ID.",
            "in": "path",
            "name": "issueId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Error issue ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "issue": {
                      "type": "object",
                      "properties": {
                        "eventCount": {
                          "type": "number",
                          "description": "Occurrences since the issue was first seen."
                        },
                        "exceptionType": {
                          "type": "string"
                        },
                        "firstSeenAt": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "span",
                            "log"
                          ],
                          "description": "Whether the first occurrence was a span exception event or an error log."
                        },
                        "lastSeenAt": {
                          "type": "string"
                        },
                        "regressedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the issue last occurred again after being resolved."
                        },
                        "service": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "open",
                            "resolved",
                            "silenced"
                          ]
                        },
                        "statusChangedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "title": {
                          "type": "string"
                        },
                        "topFrame": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The innermost application frame, as `function@path`."
                        },
                        "url": {
                          "type": "string"
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "day": {
                                "type": "string"
                              },
                              "eventCount": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "day",
                              "eventCount"
                            ],
                            "additionalProperties": false
                          },
                          "description": "Occurrences per UTC day over the last 30 days. Days without occurrences are left out."
                        },
                        "fingerprint": {
                          "type": "string"
                        },
                        "frames": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The application frames the issue is grouped by, innermost first."
                        },
                        "lastSample": {
                          "type": "object",
                          "properties": {
                            "attributes": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "type": "string"
                              }
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "span",
                                "log"
                              ]
                            },
                            "message": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "resourceAttributes": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "type": "string"
                              }
                            },
                            "seenAt": {
                              "type": "string"
                            },
                            "service": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "severity": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "spanId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "spanName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "stacktrace": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "traceId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "attributes",
                            "kind",
                            "message",
                            "resourceAttributes",
                            "seenAt",
                            "service",
                            "severity",
                            "spanId",
                            "spanName",
                            "stacktrace",
                            "traceId"
                          ],
                          "additionalProperties": false,
                          "description": "The newest occurrence. Follow its `traceId` with get_trace."
                        },
                        "message": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "eventCount",
                        "exceptionType",
                        "firstSeenAt",
                        "id",
                        "kind",
                        "lastSeenAt",
                        "regressedAt",
                        "service",
                        "status",
                        "statusChangedAt",
                        "title",
                        "topFrame",
                        "url",
                        "days",
                        "fingerprint",
                        "frames",
                        "lastSample",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "issue"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get an error issue",
        "tags": [
          "Errors"
        ],
        "x-mcp-tool": "get_error_issue"
      },
      "patch": {
        "description": "Sets an error issue's status. A resolved issue opens again when it occurs after being resolved; a silenced issue only counts its occurrences.",
        "operationId": "update_error_issue",
        "parameters": [
          {
            "description": "Error issue ID.",
            "in": "path",
            "name": "issueId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Error issue ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "open",
                      "resolved",
                      "silenced"
                    ]
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "issue": {
                      "type": "object",
                      "properties": {
                        "eventCount": {
                          "type": "number",
                          "description": "Occurrences since the issue was first seen."
                        },
                        "exceptionType": {
                          "type": "string"
                        },
                        "firstSeenAt": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "span",
                            "log"
                          ],
                          "description": "Whether the first occurrence was a span exception event or an error log."
                        },
                        "lastSeenAt": {
                          "type": "string"
                        },
                        "regressedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the issue last occurred again after being resolved."
                        },
                        "service": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "open",
                            "resolved",
                            "silenced"
                          ]
                        },
                        "statusChangedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "title": {
                          "type": "string"
                        },
                        "topFrame": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The innermost application frame, as `function@path`."
                        },
                        "url": {
                          "type": "string"
                        },
                        "days": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "day": {
                                "type": "string"
                              },
                              "eventCount": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "day",
                              "eventCount"
                            ],
                            "additionalProperties": false
                          },
                          "description": "Occurrences per UTC day over the last 30 days. Days without occurrences are left out."
                        },
                        "fingerprint": {
                          "type": "string"
                        },
                        "frames": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The application frames the issue is grouped by, innermost first."
                        },
                        "lastSample": {
                          "type": "object",
                          "properties": {
                            "attributes": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "type": "string"
                              }
                            },
                            "kind": {
                              "type": "string",
                              "enum": [
                                "span",
                                "log"
                              ]
                            },
                            "message": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "resourceAttributes": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {
                                "type": "string"
                              }
                            },
                            "seenAt": {
                              "type": "string"
                            },
                            "service": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "severity": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "spanId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "spanName": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "stacktrace": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "traceId": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "attributes",
                            "kind",
                            "message",
                            "resourceAttributes",
                            "seenAt",
                            "service",
                            "severity",
                            "spanId",
                            "spanName",
                            "stacktrace",
                            "traceId"
                          ],
                          "additionalProperties": false,
                          "description": "The newest occurrence. Follow its `traceId` with get_trace."
                        },
                        "message": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "eventCount",
                        "exceptionType",
                        "firstSeenAt",
                        "id",
                        "kind",
                        "lastSeenAt",
                        "regressedAt",
                        "service",
                        "status",
                        "statusChangedAt",
                        "title",
                        "topFrame",
                        "url",
                        "days",
                        "fingerprint",
                        "frames",
                        "lastSample",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "issue"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Resolve, silence, or reopen an error issue",
        "tags": [
          "Errors"
        ],
        "x-mcp-tool": "update_error_issue"
      }
    },
    "/error-notifications": {
      "get": {
        "description": "Returns whether new and regressed error issues post to Slack, and to which channel. Workspace owners and admins only.",
        "operationId": "get_error_notifications",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifications": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "enabled",
                        "slack"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "notifications"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get error notifications",
        "tags": [
          "Errors"
        ],
        "x-mcp-tool": "get_error_notifications"
      },
      "patch": {
        "description": "Posts each new error issue, and each resolved issue that occurs again, to one Slack channel. For a private channel, invite the Superlog app first. Earlier errors are not posted. Workspace owners and admins only.",
        "operationId": "update_error_notifications",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "slack": {
                    "description": "Required to turn notifications on. Keeps the current channel when left out.",
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "channelId": {
                            "type": "string",
                            "pattern": "^[CG][A-Z0-9]+$",
                            "description": "The Slack channel ID: the `externalId` of a `slack_channel` resource."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The ID of the Slack integration the channel belongs to."
                          }
                        },
                        "required": [
                          "channelId",
                          "integrationAccountId"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "enabled"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifications": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "enabled",
                        "slack"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "notifications"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Turn error notifications on or off",
        "tags": [
          "Errors"
        ],
        "x-mcp-tool": "update_error_notifications"
      }
    },
    "/dashboards": {
      "get": {
        "description": "Lists the workspace's dashboards, most recently changed first, with how many widgets each has.",
        "operationId": "list_dashboards",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dashboards": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Dashboard ID."
                          },
                          "name": {
                            "type": "string"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "widgetCount": {
                            "type": "integer"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "updatedAt",
                          "url",
                          "widgetCount"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "dashboards"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List dashboards",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "list_dashboards"
      },
      "post": {
        "description": "Creates a dashboard, optionally with variables and widgets. Widgets can also be added to it afterward.",
        "operationId": "create_dashboard",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "variables": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "attributeKey": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "defaultValue": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 120
                        },
                        "multi": {
                          "type": "boolean"
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 60,
                          "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
                        },
                        "options": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 500
                          }
                        }
                      },
                      "required": [
                        "name",
                        "options"
                      ]
                    },
                    "description": "Dropdowns shown on the dashboard. A widget filter uses the selected value when its value is `$name` or `${name}`, such as `{ key: \"deployment.environment\", value: \"$env\" }`. `options` lists the choices; leave it empty to type a value. `defaultValue` must be one of `options` when there are any. `multi` allows several values. `attributeKey` is the attribute the variable usually filters."
                  },
                  "widgets": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "config": {
                          "type": "object",
                          "properties": {
                            "aggregation": {
                              "type": "string",
                              "enum": [
                                "count",
                                "count_distinct",
                                "sum",
                                "avg",
                                "min",
                                "max",
                                "p50",
                                "p90",
                                "p95",
                                "p99"
                              ]
                            },
                            "chartType": {
                              "type": "string",
                              "enum": [
                                "line",
                                "bar"
                              ]
                            },
                            "compare": {
                              "type": "string",
                              "enum": [
                                "previous_period"
                              ]
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 500
                            },
                            "display": {
                              "type": "string",
                              "enum": [
                                "timeseries",
                                "number",
                                "bar_list",
                                "table"
                              ]
                            },
                            "field": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "filter": {
                              "default": {},
                              "type": "object",
                              "properties": {
                                "resourceAttrs": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "key": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "op": {
                                        "type": "string",
                                        "enum": [
                                          "eq",
                                          "neq",
                                          "not_contains"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "key",
                                      "value"
                                    ]
                                  }
                                }
                              }
                            },
                            "groupBy": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "legendPosition": {
                              "type": "string",
                              "enum": [
                                "side",
                                "bottom"
                              ]
                            },
                            "limit": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 500
                            },
                            "markdown": {
                              "type": "string",
                              "maxLength": 20000
                            },
                            "metricKind": {
                              "type": "string",
                              "enum": [
                                "gauge",
                                "sum",
                                "histogram",
                                "exponential_histogram",
                                "summary"
                              ]
                            },
                            "metricName": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "metricUnit": {
                              "type": "string",
                              "maxLength": 100
                            },
                            "showLegend": {
                              "type": "boolean"
                            },
                            "showXAxis": {
                              "type": "boolean"
                            },
                            "showYAxis": {
                              "type": "boolean"
                            },
                            "source": {
                              "type": "string",
                              "enum": [
                                "logs",
                                "traces"
                              ]
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "none",
                                "duration_ms",
                                "duration_s",
                                "bytes",
                                "percent",
                                "usd"
                              ]
                            }
                          },
                          "description": "What the widget reads and how it shows it. `source` is `logs` or `traces`. `filter.resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `aggregation` defaults to `count`; other aggregations read `field`, which is `duration` or an attribute key. `groupBy` splits the result into series by an attribute key. `display` is `timeseries`, `number`, `bar_list`, or `table`. Metric widgets need `metricName`."
                        },
                        "id": {
                          "description": "Keeps the widget with this ID. Leave it out to add a new widget.",
                          "type": "string",
                          "format": "uuid"
                        },
                        "layout": {
                          "description": "Position on a 12-column grid: `x` 0 to 11, `w` 1 to 12, and `y` and `h` in rows. Charts are usually 6 wide and 4 high, tables 12 by 6, and text 4 by 5. Defaults to the standard size for the type, below the others.",
                          "type": "object",
                          "properties": {
                            "h": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 100
                            },
                            "w": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 12
                            },
                            "x": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 11
                            },
                            "y": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 100000
                            }
                          },
                          "required": [
                            "h",
                            "w",
                            "x",
                            "y"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "timeseries_count",
                            "timeseries_metric",
                            "log_table",
                            "trace_table",
                            "markdown"
                          ],
                          "description": "`timeseries_count` counts or aggregates logs or spans, `timeseries_metric` charts one metric, `log_table` and `trace_table` list matching logs or traces, and `markdown` shows text."
                        }
                      },
                      "required": [
                        "config",
                        "title",
                        "type"
                      ]
                    },
                    "description": "Every widget on the dashboard, in order. The list replaces the dashboard's widgets: widgets left out are removed."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dashboard": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Dashboard ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The dashboard in Superlog."
                        },
                        "variables": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "widgets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "config": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {},
                                "description": "The widget's settings."
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "description": "Widget ID."
                              },
                              "layout": {
                                "type": "object",
                                "properties": {
                                  "h": {
                                    "type": "number"
                                  },
                                  "w": {
                                    "type": "number"
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "h",
                                  "w",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "position": {
                                "type": "integer"
                              },
                              "title": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "timeseries_count",
                                  "timeseries_metric",
                                  "log_table",
                                  "trace_table",
                                  "markdown"
                                ]
                              }
                            },
                            "required": [
                              "config",
                              "id",
                              "layout",
                              "position",
                              "title",
                              "type"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "updatedAt",
                        "url",
                        "variables",
                        "widgets"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "dashboard"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create a dashboard",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "create_dashboard"
      }
    },
    "/dashboards/{dashboardId}": {
      "get": {
        "description": "Returns a dashboard with its variables and every widget's type, settings, and position.",
        "operationId": "get_dashboard",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dashboard": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Dashboard ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The dashboard in Superlog."
                        },
                        "variables": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "widgets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "config": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {},
                                "description": "The widget's settings."
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "description": "Widget ID."
                              },
                              "layout": {
                                "type": "object",
                                "properties": {
                                  "h": {
                                    "type": "number"
                                  },
                                  "w": {
                                    "type": "number"
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "h",
                                  "w",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "position": {
                                "type": "integer"
                              },
                              "title": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "timeseries_count",
                                  "timeseries_metric",
                                  "log_table",
                                  "trace_table",
                                  "markdown"
                                ]
                              }
                            },
                            "required": [
                              "config",
                              "id",
                              "layout",
                              "position",
                              "title",
                              "type"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "updatedAt",
                        "url",
                        "variables",
                        "widgets"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "dashboard"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get a dashboard",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "get_dashboard"
      },
      "patch": {
        "description": "Changes a dashboard's name, variables, or widgets. `variables` and `widgets` each replace the whole list, so include everything to keep. Read the dashboard first to get its widget IDs.",
        "operationId": "update_dashboard",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "variables": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "attributeKey": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "defaultValue": {
                          "type": "string",
                          "maxLength": 500
                        },
                        "label": {
                          "type": "string",
                          "maxLength": 120
                        },
                        "multi": {
                          "type": "boolean"
                        },
                        "name": {
                          "type": "string",
                          "maxLength": 60,
                          "pattern": "^[a-zA-Z][a-zA-Z0-9_]*$"
                        },
                        "options": {
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 500
                          }
                        }
                      },
                      "required": [
                        "name",
                        "options"
                      ]
                    },
                    "description": "Dropdowns shown on the dashboard. A widget filter uses the selected value when its value is `$name` or `${name}`, such as `{ key: \"deployment.environment\", value: \"$env\" }`. `options` lists the choices; leave it empty to type a value. `defaultValue` must be one of `options` when there are any. `multi` allows several values. `attributeKey` is the attribute the variable usually filters."
                  },
                  "widgets": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "config": {
                          "type": "object",
                          "properties": {
                            "aggregation": {
                              "type": "string",
                              "enum": [
                                "count",
                                "count_distinct",
                                "sum",
                                "avg",
                                "min",
                                "max",
                                "p50",
                                "p90",
                                "p95",
                                "p99"
                              ]
                            },
                            "chartType": {
                              "type": "string",
                              "enum": [
                                "line",
                                "bar"
                              ]
                            },
                            "compare": {
                              "type": "string",
                              "enum": [
                                "previous_period"
                              ]
                            },
                            "description": {
                              "type": "string",
                              "maxLength": 500
                            },
                            "display": {
                              "type": "string",
                              "enum": [
                                "timeseries",
                                "number",
                                "bar_list",
                                "table"
                              ]
                            },
                            "field": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "filter": {
                              "default": {},
                              "type": "object",
                              "properties": {
                                "resourceAttrs": {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "key": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 200
                                      },
                                      "op": {
                                        "type": "string",
                                        "enum": [
                                          "eq",
                                          "neq",
                                          "not_contains"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "maxLength": 500
                                      }
                                    },
                                    "required": [
                                      "key",
                                      "value"
                                    ]
                                  }
                                }
                              }
                            },
                            "groupBy": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "legendPosition": {
                              "type": "string",
                              "enum": [
                                "side",
                                "bottom"
                              ]
                            },
                            "limit": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 500
                            },
                            "markdown": {
                              "type": "string",
                              "maxLength": 20000
                            },
                            "metricKind": {
                              "type": "string",
                              "enum": [
                                "gauge",
                                "sum",
                                "histogram",
                                "exponential_histogram",
                                "summary"
                              ]
                            },
                            "metricName": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "metricUnit": {
                              "type": "string",
                              "maxLength": 100
                            },
                            "showLegend": {
                              "type": "boolean"
                            },
                            "showXAxis": {
                              "type": "boolean"
                            },
                            "showYAxis": {
                              "type": "boolean"
                            },
                            "source": {
                              "type": "string",
                              "enum": [
                                "logs",
                                "traces"
                              ]
                            },
                            "unit": {
                              "type": "string",
                              "enum": [
                                "none",
                                "duration_ms",
                                "duration_s",
                                "bytes",
                                "percent",
                                "usd"
                              ]
                            }
                          },
                          "description": "What the widget reads and how it shows it. `source` is `logs` or `traces`. `filter.resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `aggregation` defaults to `count`; other aggregations read `field`, which is `duration` or an attribute key. `groupBy` splits the result into series by an attribute key. `display` is `timeseries`, `number`, `bar_list`, or `table`. Metric widgets need `metricName`."
                        },
                        "id": {
                          "description": "Keeps the widget with this ID. Leave it out to add a new widget.",
                          "type": "string",
                          "format": "uuid"
                        },
                        "layout": {
                          "description": "Position on a 12-column grid: `x` 0 to 11, `w` 1 to 12, and `y` and `h` in rows. Charts are usually 6 wide and 4 high, tables 12 by 6, and text 4 by 5. Defaults to the standard size for the type, below the others.",
                          "type": "object",
                          "properties": {
                            "h": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 100
                            },
                            "w": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 12
                            },
                            "x": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 11
                            },
                            "y": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 100000
                            }
                          },
                          "required": [
                            "h",
                            "w",
                            "x",
                            "y"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "timeseries_count",
                            "timeseries_metric",
                            "log_table",
                            "trace_table",
                            "markdown"
                          ],
                          "description": "`timeseries_count` counts or aggregates logs or spans, `timeseries_metric` charts one metric, `log_table` and `trace_table` list matching logs or traces, and `markdown` shows text."
                        }
                      },
                      "required": [
                        "config",
                        "title",
                        "type"
                      ]
                    },
                    "description": "Every widget on the dashboard, in order. The list replaces the dashboard's widgets: widgets left out are removed."
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dashboard": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Dashboard ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The dashboard in Superlog."
                        },
                        "variables": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "widgets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "config": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {},
                                "description": "The widget's settings."
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "description": "Widget ID."
                              },
                              "layout": {
                                "type": "object",
                                "properties": {
                                  "h": {
                                    "type": "number"
                                  },
                                  "w": {
                                    "type": "number"
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "h",
                                  "w",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "position": {
                                "type": "integer"
                              },
                              "title": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "timeseries_count",
                                  "timeseries_metric",
                                  "log_table",
                                  "trace_table",
                                  "markdown"
                                ]
                              }
                            },
                            "required": [
                              "config",
                              "id",
                              "layout",
                              "position",
                              "title",
                              "type"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "updatedAt",
                        "url",
                        "variables",
                        "widgets"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "dashboard"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Change a dashboard",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "update_dashboard"
      },
      "delete": {
        "description": "Deletes a dashboard and all of its widgets.",
        "operationId": "delete_dashboard",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete a dashboard",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "delete_dashboard"
      }
    },
    "/dashboards/{dashboardId}/widgets": {
      "post": {
        "description": "Adds a chart, table, or text widget to a dashboard. Without a layout, the widget gets the standard size for its type below the others.",
        "operationId": "add_dashboard_widget",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "config": {
                    "type": "object",
                    "properties": {
                      "aggregation": {
                        "type": "string",
                        "enum": [
                          "count",
                          "count_distinct",
                          "sum",
                          "avg",
                          "min",
                          "max",
                          "p50",
                          "p90",
                          "p95",
                          "p99"
                        ]
                      },
                      "chartType": {
                        "type": "string",
                        "enum": [
                          "line",
                          "bar"
                        ]
                      },
                      "compare": {
                        "type": "string",
                        "enum": [
                          "previous_period"
                        ]
                      },
                      "description": {
                        "type": "string",
                        "maxLength": 500
                      },
                      "display": {
                        "type": "string",
                        "enum": [
                          "timeseries",
                          "number",
                          "bar_list",
                          "table"
                        ]
                      },
                      "field": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "filter": {
                        "default": {},
                        "type": "object",
                        "properties": {
                          "resourceAttrs": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "op": {
                                  "type": "string",
                                  "enum": [
                                    "eq",
                                    "neq",
                                    "not_contains"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "key",
                                "value"
                              ]
                            }
                          }
                        }
                      },
                      "groupBy": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "legendPosition": {
                        "type": "string",
                        "enum": [
                          "side",
                          "bottom"
                        ]
                      },
                      "limit": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 500
                      },
                      "markdown": {
                        "type": "string",
                        "maxLength": 20000
                      },
                      "metricKind": {
                        "type": "string",
                        "enum": [
                          "gauge",
                          "sum",
                          "histogram",
                          "exponential_histogram",
                          "summary"
                        ]
                      },
                      "metricName": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "metricUnit": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "showLegend": {
                        "type": "boolean"
                      },
                      "showXAxis": {
                        "type": "boolean"
                      },
                      "showYAxis": {
                        "type": "boolean"
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "logs",
                          "traces"
                        ]
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "none",
                          "duration_ms",
                          "duration_s",
                          "bytes",
                          "percent",
                          "usd"
                        ]
                      }
                    },
                    "description": "What the widget reads and how it shows it. `source` is `logs` or `traces`. `filter.resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `aggregation` defaults to `count`; other aggregations read `field`, which is `duration` or an attribute key. `groupBy` splits the result into series by an attribute key. `display` is `timeseries`, `number`, `bar_list`, or `table`. Metric widgets need `metricName`."
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "h": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100
                      },
                      "w": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12
                      },
                      "x": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 11
                      },
                      "y": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000
                      }
                    },
                    "required": [
                      "h",
                      "w",
                      "x",
                      "y"
                    ],
                    "description": "Position on a 12-column grid: `x` 0 to 11, `w` 1 to 12, and `y` and `h` in rows. Charts are usually 6 wide and 4 high, tables 12 by 6, and text 4 by 5."
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "timeseries_count",
                      "timeseries_metric",
                      "log_table",
                      "trace_table",
                      "markdown"
                    ],
                    "description": "`timeseries_count` counts or aggregates logs or spans, `timeseries_metric` charts one metric, `log_table` and `trace_table` list matching logs or traces, and `markdown` shows text."
                  }
                },
                "required": [
                  "config",
                  "title",
                  "type"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "widget": {
                      "type": "object",
                      "properties": {
                        "config": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {},
                          "description": "The widget's settings."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Widget ID."
                        },
                        "layout": {
                          "type": "object",
                          "properties": {
                            "h": {
                              "type": "number"
                            },
                            "w": {
                              "type": "number"
                            },
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "h",
                            "w",
                            "x",
                            "y"
                          ],
                          "additionalProperties": false
                        },
                        "position": {
                          "type": "integer"
                        },
                        "title": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "timeseries_count",
                            "timeseries_metric",
                            "log_table",
                            "trace_table",
                            "markdown"
                          ]
                        }
                      },
                      "required": [
                        "config",
                        "id",
                        "layout",
                        "position",
                        "title",
                        "type"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "widget"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Add a widget to a dashboard",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "add_dashboard_widget"
      }
    },
    "/dashboards/{dashboardId}/widgets/{widgetId}": {
      "patch": {
        "description": "Changes a widget's title, settings, or position. `config` replaces all of the widget's settings, so include every setting to keep.",
        "operationId": "update_dashboard_widget",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          },
          {
            "description": "Widget ID.",
            "in": "path",
            "name": "widgetId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Widget ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "config": {
                    "type": "object",
                    "properties": {
                      "aggregation": {
                        "type": "string",
                        "enum": [
                          "count",
                          "count_distinct",
                          "sum",
                          "avg",
                          "min",
                          "max",
                          "p50",
                          "p90",
                          "p95",
                          "p99"
                        ]
                      },
                      "chartType": {
                        "type": "string",
                        "enum": [
                          "line",
                          "bar"
                        ]
                      },
                      "compare": {
                        "type": "string",
                        "enum": [
                          "previous_period"
                        ]
                      },
                      "description": {
                        "type": "string",
                        "maxLength": 500
                      },
                      "display": {
                        "type": "string",
                        "enum": [
                          "timeseries",
                          "number",
                          "bar_list",
                          "table"
                        ]
                      },
                      "field": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "filter": {
                        "default": {},
                        "type": "object",
                        "properties": {
                          "resourceAttrs": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                },
                                "op": {
                                  "type": "string",
                                  "enum": [
                                    "eq",
                                    "neq",
                                    "not_contains"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "maxLength": 500
                                }
                              },
                              "required": [
                                "key",
                                "value"
                              ]
                            }
                          }
                        }
                      },
                      "groupBy": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "legendPosition": {
                        "type": "string",
                        "enum": [
                          "side",
                          "bottom"
                        ]
                      },
                      "limit": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 500
                      },
                      "markdown": {
                        "type": "string",
                        "maxLength": 20000
                      },
                      "metricKind": {
                        "type": "string",
                        "enum": [
                          "gauge",
                          "sum",
                          "histogram",
                          "exponential_histogram",
                          "summary"
                        ]
                      },
                      "metricName": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "metricUnit": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "showLegend": {
                        "type": "boolean"
                      },
                      "showXAxis": {
                        "type": "boolean"
                      },
                      "showYAxis": {
                        "type": "boolean"
                      },
                      "source": {
                        "type": "string",
                        "enum": [
                          "logs",
                          "traces"
                        ]
                      },
                      "unit": {
                        "type": "string",
                        "enum": [
                          "none",
                          "duration_ms",
                          "duration_s",
                          "bytes",
                          "percent",
                          "usd"
                        ]
                      }
                    },
                    "description": "What the widget reads and how it shows it. `source` is `logs` or `traces`. `filter.resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `aggregation` defaults to `count`; other aggregations read `field`, which is `duration` or an attribute key. `groupBy` splits the result into series by an attribute key. `display` is `timeseries`, `number`, `bar_list`, or `table`. Metric widgets need `metricName`."
                  },
                  "layout": {
                    "type": "object",
                    "properties": {
                      "h": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100
                      },
                      "w": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 12
                      },
                      "x": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 11
                      },
                      "y": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000
                      }
                    },
                    "required": [
                      "h",
                      "w",
                      "x",
                      "y"
                    ],
                    "description": "Position on a 12-column grid: `x` 0 to 11, `w` 1 to 12, and `y` and `h` in rows. Charts are usually 6 wide and 4 high, tables 12 by 6, and text 4 by 5."
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "widget": {
                      "type": "object",
                      "properties": {
                        "config": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {},
                          "description": "The widget's settings."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Widget ID."
                        },
                        "layout": {
                          "type": "object",
                          "properties": {
                            "h": {
                              "type": "number"
                            },
                            "w": {
                              "type": "number"
                            },
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "h",
                            "w",
                            "x",
                            "y"
                          ],
                          "additionalProperties": false
                        },
                        "position": {
                          "type": "integer"
                        },
                        "title": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "timeseries_count",
                            "timeseries_metric",
                            "log_table",
                            "trace_table",
                            "markdown"
                          ]
                        }
                      },
                      "required": [
                        "config",
                        "id",
                        "layout",
                        "position",
                        "title",
                        "type"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "widget"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Change a dashboard widget",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "update_dashboard_widget"
      },
      "delete": {
        "description": "Removes one widget from a dashboard.",
        "operationId": "delete_dashboard_widget",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          },
          {
            "description": "Widget ID.",
            "in": "path",
            "name": "widgetId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Widget ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Remove a dashboard widget",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "delete_dashboard_widget"
      }
    },
    "/dashboards/{dashboardId}/layout": {
      "patch": {
        "description": "Sets the position and size of several widgets on one dashboard at once. Widgets left out keep their place.",
        "operationId": "update_dashboard_layout",
        "parameters": [
          {
            "description": "Dashboard ID.",
            "in": "path",
            "name": "dashboardId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Dashboard ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "widgets": {
                    "minItems": 1,
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Widget ID."
                        },
                        "layout": {
                          "type": "object",
                          "properties": {
                            "h": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 100
                            },
                            "w": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 12
                            },
                            "x": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 11
                            },
                            "y": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 100000
                            }
                          },
                          "required": [
                            "h",
                            "w",
                            "x",
                            "y"
                          ],
                          "description": "Position on a 12-column grid: `x` 0 to 11, `w` 1 to 12, and `y` and `h` in rows. Charts are usually 6 wide and 4 high, tables 12 by 6, and text 4 by 5."
                        }
                      },
                      "required": [
                        "id",
                        "layout"
                      ]
                    }
                  }
                },
                "required": [
                  "widgets"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dashboard": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Dashboard ID."
                        },
                        "name": {
                          "type": "string"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The dashboard in Superlog."
                        },
                        "variables": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {}
                          }
                        },
                        "widgets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "config": {
                                "type": "object",
                                "propertyNames": {
                                  "type": "string"
                                },
                                "additionalProperties": {},
                                "description": "The widget's settings."
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "description": "Widget ID."
                              },
                              "layout": {
                                "type": "object",
                                "properties": {
                                  "h": {
                                    "type": "number"
                                  },
                                  "w": {
                                    "type": "number"
                                  },
                                  "x": {
                                    "type": "number"
                                  },
                                  "y": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "h",
                                  "w",
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "position": {
                                "type": "integer"
                              },
                              "title": {
                                "type": "string"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "timeseries_count",
                                  "timeseries_metric",
                                  "log_table",
                                  "trace_table",
                                  "markdown"
                                ]
                              }
                            },
                            "required": [
                              "config",
                              "id",
                              "layout",
                              "position",
                              "title",
                              "type"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "updatedAt",
                        "url",
                        "variables",
                        "widgets"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "dashboard"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Move and resize dashboard widgets",
        "tags": [
          "Dashboards"
        ],
        "x-mcp-tool": "update_dashboard_layout"
      }
    },
    "/alerts": {
      "get": {
        "description": "Lists the workspace's alerts by name, with each one's rule, Slack channel, and how many groups are firing now.",
        "operationId": "list_alerts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "alerts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "aggregation": {
                            "type": "string",
                            "enum": [
                              "count",
                              "count_distinct",
                              "sum",
                              "avg",
                              "min",
                              "max",
                              "p50",
                              "p90",
                              "p95",
                              "p99"
                            ],
                            "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                          },
                          "comparator": {
                            "type": "string",
                            "enum": [
                              "gt",
                              "lt"
                            ],
                            "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                          },
                          "field": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 200
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                          },
                          "filter": {
                            "type": "object",
                            "properties": {
                              "metricKind": {
                                "type": "string",
                                "enum": [
                                  "gauge",
                                  "sum",
                                  "histogram",
                                  "exponential_histogram",
                                  "summary"
                                ]
                              },
                              "metricUnit": {
                                "type": "string",
                                "maxLength": 100
                              },
                              "minDurationMs": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 3600000
                              },
                              "resourceAttrs": {
                                "maxItems": 50,
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "key": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 200
                                    },
                                    "op": {
                                      "type": "string",
                                      "enum": [
                                        "eq",
                                        "neq",
                                        "not_contains"
                                      ]
                                    },
                                    "value": {
                                      "type": "string",
                                      "maxLength": 500
                                    }
                                  },
                                  "required": [
                                    "key",
                                    "value"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "service": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "severity": {
                                "type": "string",
                                "maxLength": 50
                              },
                              "spanName": {
                                "type": "string",
                                "maxLength": 200
                              },
                              "statusCode": {
                                "type": "string",
                                "maxLength": 50
                              }
                            },
                            "additionalProperties": false,
                            "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                          },
                          "groupBy": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 200
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                          },
                          "groupMode": {
                            "type": "string",
                            "enum": [
                              "single",
                              "per_group"
                            ],
                            "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately."
                          },
                          "metricName": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 200
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The metric to read when `source` is `metric`."
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "logs",
                              "traces",
                              "metric"
                            ],
                            "description": "`logs`, `traces` (spans), or `metric`."
                          },
                          "threshold": {
                            "type": "number"
                          },
                          "windowMinutes": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1440,
                            "description": "How many minutes of data each check reads."
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "evaluationIntervalSeconds": {
                            "type": "integer"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Alert ID."
                          },
                          "lastError": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Why the last check failed, if it did."
                          },
                          "lastEvaluatedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "slack": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "channelId": {
                                    "type": "string"
                                  },
                                  "integrationAccountId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "channelId",
                                  "integrationAccountId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri",
                            "description": "The alert in Superlog."
                          },
                          "firingGroups": {
                            "type": "integer",
                            "description": "Activations open now."
                          }
                        },
                        "required": [
                          "aggregation",
                          "comparator",
                          "field",
                          "filter",
                          "groupBy",
                          "groupMode",
                          "metricName",
                          "source",
                          "threshold",
                          "windowMinutes",
                          "createdAt",
                          "enabled",
                          "evaluationIntervalSeconds",
                          "id",
                          "lastError",
                          "lastEvaluatedAt",
                          "name",
                          "slack",
                          "updatedAt",
                          "url",
                          "firingGroups"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "alerts"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List alerts",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "list_alerts"
      },
      "post": {
        "description": "Creates a threshold alert on logs, spans, or a metric. While the value is past the threshold, the alert posts once to its Slack channel and posts the recovery in the same thread.",
        "operationId": "create_alert",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "aggregation": {
                    "type": "string",
                    "enum": [
                      "count",
                      "count_distinct",
                      "sum",
                      "avg",
                      "min",
                      "max",
                      "p50",
                      "p90",
                      "p95",
                      "p99"
                    ],
                    "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                  },
                  "comparator": {
                    "type": "string",
                    "enum": [
                      "gt",
                      "lt"
                    ],
                    "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                  },
                  "field": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                  },
                  "filter": {
                    "type": "object",
                    "properties": {
                      "metricKind": {
                        "type": "string",
                        "enum": [
                          "gauge",
                          "sum",
                          "histogram",
                          "exponential_histogram",
                          "summary"
                        ]
                      },
                      "metricUnit": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "minDurationMs": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 3600000
                      },
                      "resourceAttrs": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "op": {
                              "type": "string",
                              "enum": [
                                "eq",
                                "neq",
                                "not_contains"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "key",
                            "value"
                          ]
                        }
                      },
                      "service": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "severity": {
                        "type": "string",
                        "maxLength": 50
                      },
                      "spanName": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "statusCode": {
                        "type": "string",
                        "maxLength": 50
                      }
                    },
                    "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                  },
                  "groupBy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                  },
                  "groupMode": {
                    "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately. Defaults to `single`.",
                    "type": "string",
                    "enum": [
                      "single",
                      "per_group"
                    ]
                  },
                  "metricName": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The metric to read when `source` is `metric`."
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "logs",
                      "traces",
                      "metric"
                    ],
                    "description": "`logs`, `traces` (spans), or `metric`."
                  },
                  "threshold": {
                    "type": "number"
                  },
                  "windowMinutes": {
                    "description": "How many minutes of data each check reads. Defaults to 5.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1440
                  },
                  "enabled": {
                    "description": "A disabled alert is not checked. Defaults to true.",
                    "type": "boolean"
                  },
                  "evaluationIntervalSeconds": {
                    "description": "How often the alert is checked. Defaults to 60.",
                    "type": "integer",
                    "minimum": 60,
                    "maximum": 3600
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "slack": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "channelId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The Slack channel ID: the `externalId` of a `slack_channel` resource."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The ID of the Slack integration the channel belongs to."
                          }
                        },
                        "required": [
                          "channelId",
                          "integrationAccountId"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Where firing and recovery messages are posted. Without a channel the alert only records its activations."
                  }
                },
                "required": [
                  "aggregation",
                  "comparator",
                  "source",
                  "threshold",
                  "name"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "alert": {
                      "type": "object",
                      "properties": {
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "count",
                            "count_distinct",
                            "sum",
                            "avg",
                            "min",
                            "max",
                            "p50",
                            "p90",
                            "p95",
                            "p99"
                          ],
                          "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                        },
                        "comparator": {
                          "type": "string",
                          "enum": [
                            "gt",
                            "lt"
                          ],
                          "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                        },
                        "field": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                        },
                        "filter": {
                          "type": "object",
                          "properties": {
                            "metricKind": {
                              "type": "string",
                              "enum": [
                                "gauge",
                                "sum",
                                "histogram",
                                "exponential_histogram",
                                "summary"
                              ]
                            },
                            "metricUnit": {
                              "type": "string",
                              "maxLength": 100
                            },
                            "minDurationMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            "resourceAttrs": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "op": {
                                    "type": "string",
                                    "enum": [
                                      "eq",
                                      "neq",
                                      "not_contains"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "key",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "service": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "severity": {
                              "type": "string",
                              "maxLength": 50
                            },
                            "spanName": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "statusCode": {
                              "type": "string",
                              "maxLength": 50
                            }
                          },
                          "additionalProperties": false,
                          "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                        },
                        "groupBy": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                        },
                        "groupMode": {
                          "type": "string",
                          "enum": [
                            "single",
                            "per_group"
                          ],
                          "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately."
                        },
                        "metricName": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The metric to read when `source` is `metric`."
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "logs",
                            "traces",
                            "metric"
                          ],
                          "description": "`logs`, `traces` (spans), or `metric`."
                        },
                        "threshold": {
                          "type": "number"
                        },
                        "windowMinutes": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 1440,
                          "description": "How many minutes of data each check reads."
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "evaluationIntervalSeconds": {
                          "type": "integer"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Alert ID."
                        },
                        "lastError": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Why the last check failed, if it did."
                        },
                        "lastEvaluatedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The alert in Superlog."
                        }
                      },
                      "required": [
                        "aggregation",
                        "comparator",
                        "field",
                        "filter",
                        "groupBy",
                        "groupMode",
                        "metricName",
                        "source",
                        "threshold",
                        "windowMinutes",
                        "createdAt",
                        "enabled",
                        "evaluationIntervalSeconds",
                        "id",
                        "lastError",
                        "lastEvaluatedAt",
                        "name",
                        "slack",
                        "updatedAt",
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "alert"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create an alert",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "create_alert"
      }
    },
    "/alerts/{alertId}": {
      "get": {
        "description": "Returns an alert with its 20 most recent activations. An activation is one period during which the alert, or one of its groups, was past the threshold.",
        "operationId": "get_alert",
        "parameters": [
          {
            "description": "Alert ID.",
            "in": "path",
            "name": "alertId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Alert ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "activations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "endedAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "endReason": {
                            "description": "`configuration_changed` when the rule changed or was disabled while it fired.",
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "recovered",
                                  "configuration_changed"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "groupKey": {
                            "type": "string",
                            "description": "The `groupBy` value, or empty for a single total."
                          },
                          "id": {
                            "type": "string"
                          },
                          "lastValue": {
                            "type": "number"
                          },
                          "openValue": {
                            "type": "number"
                          },
                          "peakValue": {
                            "type": "number"
                          },
                          "startedAt": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "firing",
                              "resolved"
                            ]
                          }
                        },
                        "required": [
                          "endedAt",
                          "groupKey",
                          "id",
                          "lastValue",
                          "openValue",
                          "peakValue",
                          "startedAt",
                          "state"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "alert": {
                      "type": "object",
                      "properties": {
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "count",
                            "count_distinct",
                            "sum",
                            "avg",
                            "min",
                            "max",
                            "p50",
                            "p90",
                            "p95",
                            "p99"
                          ],
                          "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                        },
                        "comparator": {
                          "type": "string",
                          "enum": [
                            "gt",
                            "lt"
                          ],
                          "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                        },
                        "field": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                        },
                        "filter": {
                          "type": "object",
                          "properties": {
                            "metricKind": {
                              "type": "string",
                              "enum": [
                                "gauge",
                                "sum",
                                "histogram",
                                "exponential_histogram",
                                "summary"
                              ]
                            },
                            "metricUnit": {
                              "type": "string",
                              "maxLength": 100
                            },
                            "minDurationMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            "resourceAttrs": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "op": {
                                    "type": "string",
                                    "enum": [
                                      "eq",
                                      "neq",
                                      "not_contains"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "key",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "service": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "severity": {
                              "type": "string",
                              "maxLength": 50
                            },
                            "spanName": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "statusCode": {
                              "type": "string",
                              "maxLength": 50
                            }
                          },
                          "additionalProperties": false,
                          "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                        },
                        "groupBy": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                        },
                        "groupMode": {
                          "type": "string",
                          "enum": [
                            "single",
                            "per_group"
                          ],
                          "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately."
                        },
                        "metricName": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The metric to read when `source` is `metric`."
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "logs",
                            "traces",
                            "metric"
                          ],
                          "description": "`logs`, `traces` (spans), or `metric`."
                        },
                        "threshold": {
                          "type": "number"
                        },
                        "windowMinutes": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 1440,
                          "description": "How many minutes of data each check reads."
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "evaluationIntervalSeconds": {
                          "type": "integer"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Alert ID."
                        },
                        "lastError": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Why the last check failed, if it did."
                        },
                        "lastEvaluatedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The alert in Superlog."
                        }
                      },
                      "required": [
                        "aggregation",
                        "comparator",
                        "field",
                        "filter",
                        "groupBy",
                        "groupMode",
                        "metricName",
                        "source",
                        "threshold",
                        "windowMinutes",
                        "createdAt",
                        "enabled",
                        "evaluationIntervalSeconds",
                        "id",
                        "lastError",
                        "lastEvaluatedAt",
                        "name",
                        "slack",
                        "updatedAt",
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "activations",
                    "alert"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get an alert",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "get_alert"
      },
      "patch": {
        "description": "Changes the fields you send and keeps the rest. `filter` replaces the whole filter. Changing what the alert reads or its threshold, or disabling it, ends its open activations without posting a recovery; the next check opens new ones where the value is still past the threshold.",
        "operationId": "update_alert",
        "parameters": [
          {
            "description": "Alert ID.",
            "in": "path",
            "name": "alertId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Alert ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "aggregation": {
                    "type": "string",
                    "enum": [
                      "count",
                      "count_distinct",
                      "sum",
                      "avg",
                      "min",
                      "max",
                      "p50",
                      "p90",
                      "p95",
                      "p99"
                    ],
                    "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                  },
                  "comparator": {
                    "type": "string",
                    "enum": [
                      "gt",
                      "lt"
                    ],
                    "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                  },
                  "field": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                  },
                  "filter": {
                    "type": "object",
                    "properties": {
                      "metricKind": {
                        "type": "string",
                        "enum": [
                          "gauge",
                          "sum",
                          "histogram",
                          "exponential_histogram",
                          "summary"
                        ]
                      },
                      "metricUnit": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "minDurationMs": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 3600000
                      },
                      "resourceAttrs": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "op": {
                              "type": "string",
                              "enum": [
                                "eq",
                                "neq",
                                "not_contains"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "key",
                            "value"
                          ]
                        }
                      },
                      "service": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "severity": {
                        "type": "string",
                        "maxLength": 50
                      },
                      "spanName": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "statusCode": {
                        "type": "string",
                        "maxLength": 50
                      }
                    },
                    "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                  },
                  "groupBy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                  },
                  "groupMode": {
                    "type": "string",
                    "enum": [
                      "single",
                      "per_group"
                    ],
                    "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately."
                  },
                  "metricName": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The metric to read when `source` is `metric`."
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "logs",
                      "traces",
                      "metric"
                    ],
                    "description": "`logs`, `traces` (spans), or `metric`."
                  },
                  "threshold": {
                    "type": "number"
                  },
                  "windowMinutes": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1440,
                    "description": "How many minutes of data each check reads."
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "A disabled alert is not checked."
                  },
                  "evaluationIntervalSeconds": {
                    "type": "integer",
                    "minimum": 60,
                    "maximum": 3600,
                    "description": "How often the alert is checked."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "slack": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "channelId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64,
                            "description": "The Slack channel ID: the `externalId` of a `slack_channel` resource."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The ID of the Slack integration the channel belongs to."
                          }
                        },
                        "required": [
                          "channelId",
                          "integrationAccountId"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Where firing and recovery messages are posted. Without a channel the alert only records its activations."
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "alert": {
                      "type": "object",
                      "properties": {
                        "aggregation": {
                          "type": "string",
                          "enum": [
                            "count",
                            "count_distinct",
                            "sum",
                            "avg",
                            "min",
                            "max",
                            "p50",
                            "p90",
                            "p95",
                            "p99"
                          ],
                          "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                        },
                        "comparator": {
                          "type": "string",
                          "enum": [
                            "gt",
                            "lt"
                          ],
                          "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                        },
                        "field": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                        },
                        "filter": {
                          "type": "object",
                          "properties": {
                            "metricKind": {
                              "type": "string",
                              "enum": [
                                "gauge",
                                "sum",
                                "histogram",
                                "exponential_histogram",
                                "summary"
                              ]
                            },
                            "metricUnit": {
                              "type": "string",
                              "maxLength": 100
                            },
                            "minDurationMs": {
                              "type": "number",
                              "minimum": 0,
                              "maximum": 3600000
                            },
                            "resourceAttrs": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "key": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  },
                                  "op": {
                                    "type": "string",
                                    "enum": [
                                      "eq",
                                      "neq",
                                      "not_contains"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "maxLength": 500
                                  }
                                },
                                "required": [
                                  "key",
                                  "value"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "service": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "severity": {
                              "type": "string",
                              "maxLength": 50
                            },
                            "spanName": {
                              "type": "string",
                              "maxLength": 200
                            },
                            "statusCode": {
                              "type": "string",
                              "maxLength": 50
                            }
                          },
                          "additionalProperties": false,
                          "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                        },
                        "groupBy": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                        },
                        "groupMode": {
                          "type": "string",
                          "enum": [
                            "single",
                            "per_group"
                          ],
                          "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately."
                        },
                        "metricName": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 200
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The metric to read when `source` is `metric`."
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "logs",
                            "traces",
                            "metric"
                          ],
                          "description": "`logs`, `traces` (spans), or `metric`."
                        },
                        "threshold": {
                          "type": "number"
                        },
                        "windowMinutes": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 1440,
                          "description": "How many minutes of data each check reads."
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "evaluationIntervalSeconds": {
                          "type": "integer"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Alert ID."
                        },
                        "lastError": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Why the last check failed, if it did."
                        },
                        "lastEvaluatedAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string",
                          "format": "uri",
                          "description": "The alert in Superlog."
                        }
                      },
                      "required": [
                        "aggregation",
                        "comparator",
                        "field",
                        "filter",
                        "groupBy",
                        "groupMode",
                        "metricName",
                        "source",
                        "threshold",
                        "windowMinutes",
                        "createdAt",
                        "enabled",
                        "evaluationIntervalSeconds",
                        "id",
                        "lastError",
                        "lastEvaluatedAt",
                        "name",
                        "slack",
                        "updatedAt",
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "alert"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Change an alert",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "update_alert"
      },
      "delete": {
        "description": "Deletes an alert and its activation history.",
        "operationId": "delete_alert",
        "parameters": [
          {
            "description": "Alert ID.",
            "in": "path",
            "name": "alertId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Alert ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete an alert",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "delete_alert"
      }
    },
    "/slack-channels": {
      "get": {
        "description": "Lists the Slack channels alerts and synthetic checks can post to: public channels, and private channels the Superlog app is in.",
        "operationId": "list_slack_channels",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "channels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "accountName": {
                            "type": "string",
                            "description": "The Slack workspace's name."
                          },
                          "channelId": {
                            "type": "string",
                            "description": "The `channelId` to use in an alert's or check's `slack`."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "description": "The `integrationAccountId` to use in an alert's or check's `slack`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The channel name, without `#`."
                          },
                          "private": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "accountName",
                          "channelId",
                          "integrationAccountId",
                          "name",
                          "private"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "channels"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List Slack channels for alerts",
        "tags": [
          "Integrations"
        ],
        "x-mcp-tool": "list_slack_channels"
      }
    },
    "/alerts/preview": {
      "post": {
        "description": "Reads the current window of a draft rule without saving it, and returns each group's value and whether it is past the threshold, those past it first. Use it to choose a threshold.",
        "operationId": "preview_alert",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "aggregation": {
                    "type": "string",
                    "enum": [
                      "count",
                      "count_distinct",
                      "sum",
                      "avg",
                      "min",
                      "max",
                      "p50",
                      "p90",
                      "p95",
                      "p99"
                    ],
                    "description": "`count` counts matching logs or spans; other aggregations read `field`. Metrics use `sum` or `avg`."
                  },
                  "comparator": {
                    "type": "string",
                    "enum": [
                      "gt",
                      "lt"
                    ],
                    "description": "`gt` fires when the value is above `threshold`, `lt` when it is below."
                  },
                  "field": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "What a log or span aggregation other than `count` reads: `duration`, an attribute key, or an AI usage field such as `ai:cost`."
                  },
                  "filter": {
                    "type": "object",
                    "properties": {
                      "metricKind": {
                        "type": "string",
                        "enum": [
                          "gauge",
                          "sum",
                          "histogram",
                          "exponential_histogram",
                          "summary"
                        ]
                      },
                      "metricUnit": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "minDurationMs": {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 3600000
                      },
                      "resourceAttrs": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            },
                            "op": {
                              "type": "string",
                              "enum": [
                                "eq",
                                "neq",
                                "not_contains"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "maxLength": 500
                            }
                          },
                          "required": [
                            "key",
                            "value"
                          ]
                        }
                      },
                      "service": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "severity": {
                        "type": "string",
                        "maxLength": 50
                      },
                      "spanName": {
                        "type": "string",
                        "maxLength": 200
                      },
                      "statusCode": {
                        "type": "string",
                        "maxLength": 50
                      }
                    },
                    "description": "Narrows the data the alert reads. `resourceAttrs` keys may start with `resource.`, `span.`, `log.`, or `field.`; a bare key is a resource attribute. `service`, `severity`, `spanName`, `statusCode`, and `minDurationMs` match those fields of a log or span."
                  },
                  "groupBy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The attribute key to split by when `groupMode` is `per_group`, such as `service.name`."
                  },
                  "groupMode": {
                    "description": "`single` checks one total. `per_group` checks each `groupBy` value and fires for each one separately. Defaults to `single`.",
                    "type": "string",
                    "enum": [
                      "single",
                      "per_group"
                    ]
                  },
                  "metricName": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The metric to read when `source` is `metric`."
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "logs",
                      "traces",
                      "metric"
                    ],
                    "description": "`logs`, `traces` (spans), or `metric`."
                  },
                  "threshold": {
                    "type": "number"
                  },
                  "windowMinutes": {
                    "description": "How many minutes of data each check reads. Defaults to 5.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1440
                  }
                },
                "required": [
                  "aggregation",
                  "comparator",
                  "source",
                  "threshold"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "evaluations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "breaching": {
                            "type": "boolean"
                          },
                          "groupKey": {
                            "type": "string"
                          },
                          "value": {
                            "type": "number"
                          }
                        },
                        "required": [
                          "breaching",
                          "groupKey",
                          "value"
                        ],
                        "additionalProperties": false
                      },
                      "description": "At most 50 groups. Empty when a rule other than a count, distinct count, or sum has no data in the window."
                    }
                  },
                  "required": [
                    "evaluations"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Preview an alert rule",
        "tags": [
          "Alerts"
        ],
        "x-mcp-tool": "preview_alert"
      }
    },
    "/synthetic-checks": {
      "get": {
        "description": "Lists the workspace's synthetic checks by name, with each one's request, assertions, last status, and uptime over the last day.",
        "operationId": "list_synthetic_checks",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "checks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "assertions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string"
                                },
                                "kind": {
                                  "type": "string",
                                  "enum": [
                                    "status_code",
                                    "response_time",
                                    "header",
                                    "body",
                                    "json_path",
                                    "certificate_expiry"
                                  ]
                                },
                                "op": {
                                  "type": "string",
                                  "enum": [
                                    "eq",
                                    "neq",
                                    "lt",
                                    "gt",
                                    "contains",
                                    "not_contains",
                                    "exists",
                                    "not_exists"
                                  ]
                                },
                                "severity": {
                                  "type": "string",
                                  "enum": [
                                    "critical",
                                    "degraded"
                                  ]
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "kind",
                                "op",
                                "severity",
                                "value"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "body": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "failuresToAlert": {
                            "type": "integer"
                          },
                          "followRedirects": {
                            "type": "boolean"
                          },
                          "headers": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "secret": {
                                  "type": "boolean"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "name",
                                "secret",
                                "value"
                              ],
                              "additionalProperties": false
                            },
                            "description": "A secret header's value is always empty."
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Synthetic check ID."
                          },
                          "intervalSeconds": {
                            "type": "integer"
                          },
                          "lastRunAt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "lastStatus": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "passed",
                                  "degraded",
                                  "failed"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "method": {
                            "type": "string",
                            "enum": [
                              "GET",
                              "HEAD",
                              "POST",
                              "PUT",
                              "PATCH",
                              "DELETE",
                              "OPTIONS"
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "retries": {
                            "type": "integer"
                          },
                          "slack": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "channelId": {
                                    "type": "string"
                                  },
                                  "integrationAccountId": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "channelId",
                                  "integrationAccountId"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "statusSince": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "When the check reached its last status."
                          },
                          "timeoutMs": {
                            "type": "integer"
                          },
                          "updatedAt": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "webUrl": {
                            "type": "string",
                            "format": "uri",
                            "description": "The check in Superlog."
                          },
                          "uptime": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The share of runs in the last day that did not fail, from 0 to 1."
                          }
                        },
                        "required": [
                          "assertions",
                          "body",
                          "createdAt",
                          "enabled",
                          "failuresToAlert",
                          "followRedirects",
                          "headers",
                          "id",
                          "intervalSeconds",
                          "lastRunAt",
                          "lastStatus",
                          "method",
                          "name",
                          "retries",
                          "slack",
                          "statusSince",
                          "timeoutMs",
                          "updatedAt",
                          "url",
                          "webUrl",
                          "uptime"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "checks"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List synthetic checks",
        "tags": [
          "Synthetics"
        ],
        "x-mcp-tool": "list_synthetic_checks"
      },
      "post": {
        "description": "Creates a check that requests a URL on a schedule and checks the response. After `failuresToAlert` failed runs in a row it posts to its Slack channel, and posts the recovery in the same thread. Defaults: GET, every 300 seconds, a 10 second timeout, 1 retry, alert after 1 failure, follow redirects, enabled.",
        "operationId": "create_synthetic_check",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "assertions": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "description": "The header name for `header`, or the JSON path for `json_path`, such as `$.status`.",
                          "type": "string",
                          "maxLength": 500
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "status_code",
                            "response_time",
                            "header",
                            "body",
                            "json_path",
                            "certificate_expiry"
                          ],
                          "description": "What the assertion reads: the status code, response time in ms, a header, the body text, a JSON path, or days until the TLS certificate expires."
                        },
                        "op": {
                          "type": "string",
                          "enum": [
                            "eq",
                            "neq",
                            "lt",
                            "gt",
                            "contains",
                            "not_contains",
                            "exists",
                            "not_exists"
                          ],
                          "description": "`status_code` takes eq, neq, lt, gt; `response_time` lt; `header` eq, neq, contains, not_contains, exists, not_exists; `body` contains, not_contains; `json_path` all; `certificate_expiry` gt."
                        },
                        "severity": {
                          "description": "A failed `critical` assertion fails the run; a `degraded` one marks it degraded. Defaults to `critical`.",
                          "type": "string",
                          "enum": [
                            "critical",
                            "degraded"
                          ]
                        },
                        "value": {
                          "description": "Compared with the response. A status code may be a class such as `2xx`.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "kind",
                        "op"
                      ]
                    },
                    "description": "Checks on the response. Without any, a run passes when the request completes."
                  },
                  "body": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 65536
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The request body. Not for GET or HEAD."
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "A disabled check does not run."
                  },
                  "failuresToAlert": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10,
                    "description": "Failed runs in a row before the check posts to Slack."
                  },
                  "followRedirects": {
                    "type": "boolean"
                  },
                  "headers": {
                    "maxItems": 30,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "secret": {
                          "description": "Stores the value encrypted and never returns it. Defaults to false.",
                          "type": "boolean"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 8192
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The header value. For a secret header, null keeps the saved value while the URL keeps its host. MCP clients can only send null for a secret."
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    },
                    "description": "Request headers. The list replaces the saved headers."
                  },
                  "intervalSeconds": {
                    "type": "integer",
                    "description": "How often the check runs: one of 60, 300, 900, 1800, 3600 seconds."
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "HEAD",
                      "POST",
                      "PUT",
                      "PATCH",
                      "DELETE",
                      "OPTIONS"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "retries": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2,
                    "description": "Immediate retries before a run counts as failed."
                  },
                  "slack": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "channelId": {
                            "type": "string",
                            "maxLength": 64,
                            "description": "The Slack channel ID: the `channelId` of a channel alerts can post to."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The ID of the Slack integration the channel belongs to."
                          }
                        },
                        "required": [
                          "channelId",
                          "integrationAccountId"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Where failures and recoveries are posted. Without a channel the check only records its runs."
                  },
                  "timeoutMs": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 30000
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "The full HTTP or HTTPS URL to request."
                  }
                },
                "required": [
                  "name",
                  "url"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "check": {
                      "type": "object",
                      "properties": {
                        "assertions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "status_code",
                                  "response_time",
                                  "header",
                                  "body",
                                  "json_path",
                                  "certificate_expiry"
                                ]
                              },
                              "op": {
                                "type": "string",
                                "enum": [
                                  "eq",
                                  "neq",
                                  "lt",
                                  "gt",
                                  "contains",
                                  "not_contains",
                                  "exists",
                                  "not_exists"
                                ]
                              },
                              "severity": {
                                "type": "string",
                                "enum": [
                                  "critical",
                                  "degraded"
                                ]
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "op",
                              "severity",
                              "value"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "body": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "failuresToAlert": {
                          "type": "integer"
                        },
                        "followRedirects": {
                          "type": "boolean"
                        },
                        "headers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "secret": {
                                "type": "boolean"
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "secret",
                              "value"
                            ],
                            "additionalProperties": false
                          },
                          "description": "A secret header's value is always empty."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Synthetic check ID."
                        },
                        "intervalSeconds": {
                          "type": "integer"
                        },
                        "lastRunAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lastStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "passed",
                                "degraded",
                                "failed"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "GET",
                            "HEAD",
                            "POST",
                            "PUT",
                            "PATCH",
                            "DELETE",
                            "OPTIONS"
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "retries": {
                          "type": "integer"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "statusSince": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the check reached its last status."
                        },
                        "timeoutMs": {
                          "type": "integer"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "webUrl": {
                          "type": "string",
                          "format": "uri",
                          "description": "The check in Superlog."
                        }
                      },
                      "required": [
                        "assertions",
                        "body",
                        "createdAt",
                        "enabled",
                        "failuresToAlert",
                        "followRedirects",
                        "headers",
                        "id",
                        "intervalSeconds",
                        "lastRunAt",
                        "lastStatus",
                        "method",
                        "name",
                        "retries",
                        "slack",
                        "statusSince",
                        "timeoutMs",
                        "updatedAt",
                        "url",
                        "webUrl"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "check"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create a synthetic check",
        "tags": [
          "Synthetics"
        ],
        "x-mcp-tool": "create_synthetic_check"
      }
    },
    "/synthetic-checks/{checkId}": {
      "get": {
        "description": "Returns a synthetic check. Secret header values are not returned.",
        "operationId": "get_synthetic_check",
        "parameters": [
          {
            "description": "Synthetic check ID.",
            "in": "path",
            "name": "checkId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Synthetic check ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "check": {
                      "type": "object",
                      "properties": {
                        "assertions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "status_code",
                                  "response_time",
                                  "header",
                                  "body",
                                  "json_path",
                                  "certificate_expiry"
                                ]
                              },
                              "op": {
                                "type": "string",
                                "enum": [
                                  "eq",
                                  "neq",
                                  "lt",
                                  "gt",
                                  "contains",
                                  "not_contains",
                                  "exists",
                                  "not_exists"
                                ]
                              },
                              "severity": {
                                "type": "string",
                                "enum": [
                                  "critical",
                                  "degraded"
                                ]
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "op",
                              "severity",
                              "value"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "body": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "failuresToAlert": {
                          "type": "integer"
                        },
                        "followRedirects": {
                          "type": "boolean"
                        },
                        "headers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "secret": {
                                "type": "boolean"
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "secret",
                              "value"
                            ],
                            "additionalProperties": false
                          },
                          "description": "A secret header's value is always empty."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Synthetic check ID."
                        },
                        "intervalSeconds": {
                          "type": "integer"
                        },
                        "lastRunAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lastStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "passed",
                                "degraded",
                                "failed"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "GET",
                            "HEAD",
                            "POST",
                            "PUT",
                            "PATCH",
                            "DELETE",
                            "OPTIONS"
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "retries": {
                          "type": "integer"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "statusSince": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the check reached its last status."
                        },
                        "timeoutMs": {
                          "type": "integer"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "webUrl": {
                          "type": "string",
                          "format": "uri",
                          "description": "The check in Superlog."
                        }
                      },
                      "required": [
                        "assertions",
                        "body",
                        "createdAt",
                        "enabled",
                        "failuresToAlert",
                        "followRedirects",
                        "headers",
                        "id",
                        "intervalSeconds",
                        "lastRunAt",
                        "lastStatus",
                        "method",
                        "name",
                        "retries",
                        "slack",
                        "statusSince",
                        "timeoutMs",
                        "updatedAt",
                        "url",
                        "webUrl"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "check"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get a synthetic check",
        "tags": [
          "Synthetics"
        ],
        "x-mcp-tool": "get_synthetic_check"
      },
      "patch": {
        "description": "Changes the fields you send and keeps the rest. `headers` and `assertions` each replace the whole list. Changing the request or assertions, or disabling the check, ends its open failure without posting a recovery.",
        "operationId": "update_synthetic_check",
        "parameters": [
          {
            "description": "Synthetic check ID.",
            "in": "path",
            "name": "checkId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Synthetic check ID."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "assertions": {
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "description": "The header name for `header`, or the JSON path for `json_path`, such as `$.status`.",
                          "type": "string",
                          "maxLength": 500
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "status_code",
                            "response_time",
                            "header",
                            "body",
                            "json_path",
                            "certificate_expiry"
                          ],
                          "description": "What the assertion reads: the status code, response time in ms, a header, the body text, a JSON path, or days until the TLS certificate expires."
                        },
                        "op": {
                          "type": "string",
                          "enum": [
                            "eq",
                            "neq",
                            "lt",
                            "gt",
                            "contains",
                            "not_contains",
                            "exists",
                            "not_exists"
                          ],
                          "description": "`status_code` takes eq, neq, lt, gt; `response_time` lt; `header` eq, neq, contains, not_contains, exists, not_exists; `body` contains, not_contains; `json_path` all; `certificate_expiry` gt."
                        },
                        "severity": {
                          "description": "A failed `critical` assertion fails the run; a `degraded` one marks it degraded. Defaults to `critical`.",
                          "type": "string",
                          "enum": [
                            "critical",
                            "degraded"
                          ]
                        },
                        "value": {
                          "description": "Compared with the response. A status code may be a class such as `2xx`.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "required": [
                        "kind",
                        "op"
                      ]
                    },
                    "description": "Checks on the response. Without any, a run passes when the request completes."
                  },
                  "body": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 65536
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The request body. Not for GET or HEAD."
                  },
                  "enabled": {
                    "type": "boolean",
                    "description": "A disabled check does not run."
                  },
                  "failuresToAlert": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 10,
                    "description": "Failed runs in a row before the check posts to Slack."
                  },
                  "followRedirects": {
                    "type": "boolean"
                  },
                  "headers": {
                    "maxItems": 30,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "maxLength": 200
                        },
                        "secret": {
                          "description": "Stores the value encrypted and never returns it. Defaults to false.",
                          "type": "boolean"
                        },
                        "value": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 8192
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The header value. For a secret header, null keeps the saved value while the URL keeps its host. MCP clients can only send null for a secret."
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ]
                    },
                    "description": "Request headers. The list replaces the saved headers."
                  },
                  "intervalSeconds": {
                    "type": "integer",
                    "description": "How often the check runs: one of 60, 300, 900, 1800, 3600 seconds."
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "GET",
                      "HEAD",
                      "POST",
                      "PUT",
                      "PATCH",
                      "DELETE",
                      "OPTIONS"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "retries": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2,
                    "description": "Immediate retries before a run counts as failed."
                  },
                  "slack": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "channelId": {
                            "type": "string",
                            "maxLength": 64,
                            "description": "The Slack channel ID: the `channelId` of a channel alerts can post to."
                          },
                          "integrationAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The ID of the Slack integration the channel belongs to."
                          }
                        },
                        "required": [
                          "channelId",
                          "integrationAccountId"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "Where failures and recoveries are posted. Without a channel the check only records its runs."
                  },
                  "timeoutMs": {
                    "type": "integer",
                    "minimum": 1000,
                    "maximum": 30000
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 2048,
                    "description": "The full HTTP or HTTPS URL to request."
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "check": {
                      "type": "object",
                      "properties": {
                        "assertions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "kind": {
                                "type": "string",
                                "enum": [
                                  "status_code",
                                  "response_time",
                                  "header",
                                  "body",
                                  "json_path",
                                  "certificate_expiry"
                                ]
                              },
                              "op": {
                                "type": "string",
                                "enum": [
                                  "eq",
                                  "neq",
                                  "lt",
                                  "gt",
                                  "contains",
                                  "not_contains",
                                  "exists",
                                  "not_exists"
                                ]
                              },
                              "severity": {
                                "type": "string",
                                "enum": [
                                  "critical",
                                  "degraded"
                                ]
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "kind",
                              "op",
                              "severity",
                              "value"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "body": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "createdAt": {
                          "type": "string"
                        },
                        "enabled": {
                          "type": "boolean"
                        },
                        "failuresToAlert": {
                          "type": "integer"
                        },
                        "followRedirects": {
                          "type": "boolean"
                        },
                        "headers": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "secret": {
                                "type": "boolean"
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "secret",
                              "value"
                            ],
                            "additionalProperties": false
                          },
                          "description": "A secret header's value is always empty."
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "Synthetic check ID."
                        },
                        "intervalSeconds": {
                          "type": "integer"
                        },
                        "lastRunAt": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lastStatus": {
                          "anyOf": [
                            {
                              "type": "string",
                              "enum": [
                                "passed",
                                "degraded",
                                "failed"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "method": {
                          "type": "string",
                          "enum": [
                            "GET",
                            "HEAD",
                            "POST",
                            "PUT",
                            "PATCH",
                            "DELETE",
                            "OPTIONS"
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "retries": {
                          "type": "integer"
                        },
                        "slack": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "channelId": {
                                  "type": "string"
                                },
                                "integrationAccountId": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "channelId",
                                "integrationAccountId"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "statusSince": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "When the check reached its last status."
                        },
                        "timeoutMs": {
                          "type": "integer"
                        },
                        "updatedAt": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "webUrl": {
                          "type": "string",
                          "format": "uri",
                          "description": "The check in Superlog."
                        }
                      },
                      "required": [
                        "assertions",
                        "body",
                        "createdAt",
                        "enabled",
                        "failuresToAlert",
                        "followRedirects",
                        "headers",
                        "id",
                        "intervalSeconds",
                        "lastRunAt",
                        "lastStatus",
                        "method",
                        "name",
                        "retries",
                        "slack",
                        "statusSince",
                        "timeoutMs",
                        "updatedAt",
                        "url",
                        "webUrl"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "check"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Change a synthetic check",
        "tags": [
          "Synthetics"
        ],
        "x-mcp-tool": "update_synthetic_check"
      },
      "delete": {
        "description": "Deletes a synthetic check and its run history.",
        "operationId": "delete_synthetic_check",
        "parameters": [
          {
            "description": "Synthetic check ID.",
            "in": "path",
            "name": "checkId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "description": "Synthetic check ID."
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "const": true
                    }
                  },
                  "required": [
                    "deleted"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The resource does not exist in this workspace, or the feature it belongs to is not enabled."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request conflicts with the current state, such as a name already in use."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete a synthetic check",
        "tags": [
          "Synthetics"
        ],
        "x-mcp-tool": "delete_synthetic_check"
      }
    },
    "/terraform": {
      "get": {
        "description": "Returns Terraform configuration for the superloglabs/superlog provider that describes the workspace's alerts, dashboards, and synthetic checks, with an import block for each one, so applying it adopts the existing objects instead of creating copies. Without IDs it exports everything; with IDs it exports only those. Secret header values become sensitive variables to fill in.",
        "operationId": "export_terraform",
        "parameters": [
          {
            "description": "Comma-separated alert IDs to export.",
            "in": "query",
            "name": "alertIds",
            "required": false,
            "schema": {
              "description": "Comma-separated alert IDs to export.",
              "type": "string",
              "maxLength": 20000
            }
          },
          {
            "description": "Comma-separated dashboard IDs to export.",
            "in": "query",
            "name": "dashboardIds",
            "required": false,
            "schema": {
              "description": "Comma-separated dashboard IDs to export.",
              "type": "string",
              "maxLength": 20000
            }
          },
          {
            "description": "Comma-separated synthetic check IDs to export.",
            "in": "query",
            "name": "syntheticCheckIds",
            "required": false,
            "schema": {
              "description": "Comma-separated synthetic check IDs to export.",
              "type": "string",
              "maxLength": 20000
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hcl": {
                      "type": "string",
                      "description": "The configuration, for a file such as `superlog.tf`."
                    },
                    "resources": {
                      "type": "integer",
                      "description": "How many alerts, dashboards, and checks it describes."
                    }
                  },
                  "required": [
                    "hcl",
                    "resources"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The request is invalid. `issues` lists each invalid field."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "The API key is missing, revoked, or its creator left the workspace."
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Export to Terraform",
        "tags": [
          "Terraform"
        ],
        "x-mcp-tool": "export_terraform"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://superlog.sh/api/v1"
    }
  ],
  "tags": [
    {
      "description": "Connected integrations and the IDs automations and tag mode use.",
      "name": "Integrations"
    },
    {
      "description": "The workspace and its members.",
      "name": "Workspace"
    },
    {
      "description": "Keys that authenticate the management API and MCP server.",
      "name": "API keys"
    },
    {
      "description": "Create and change automations.",
      "name": "Automations"
    },
    {
      "description": "Start, follow, and cancel automation runs.",
      "name": "Runs"
    },
    {
      "description": "What Superlog can use and change when someone mentions it in Slack.",
      "name": "Tag mode"
    },
    {
      "description": "Model API keys, subscriptions, and available models.",
      "name": "Models"
    },
    {
      "description": "Credentials agents can use without seeing them.",
      "name": "Secrets"
    },
    {
      "description": "Read the workspace's logs, traces, and metrics.",
      "name": "Telemetry"
    },
    {
      "description": "Exceptions in the workspace's telemetry, grouped into issues by fingerprint.",
      "name": "Errors"
    },
    {
      "description": "Create and change dashboards over the workspace's telemetry.",
      "name": "Dashboards"
    },
    {
      "description": "Threshold alerts on the workspace's telemetry that post to Slack.",
      "name": "Alerts"
    },
    {
      "description": "HTTP checks that request a URL on a schedule and post failures to Slack.",
      "name": "Synthetics"
    },
    {
      "description": "Configuration for the superloglabs/superlog Terraform provider.",
      "name": "Terraform"
    }
  ]
}
