Sorry MCP by usefulapi

Read status pages and incidents; make confirmed public changes and manage individual subscribers.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,015Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (4.70% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "sorry-app": {
      "url": "https://sorry-app.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://sorry-app.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (21)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢sorryapp_list_pages

List the status pages the API token's user can access: id, name, state (operational/degraded/...), timezone, locale, support contacts, notification channels. The id is the page_id every other tool takes. Sorry: GET /v1/pages.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_get_page(page_id, include)

Get one status page, optionally with related resources embedded (brand, components, custom_domain, notices, notices.updates, theme). Sorry: GET /v1/pages/{page_id}?include=...

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "include": {
      "description": "Related resources to embed in the reply.",
      "maxItems": 7,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "brand",
          "components",
          "custom_domain",
          "notices",
          "notices.updates",
          "notices.components",
          "theme"
        ]
      }
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_components(page_id)

List a status page's components (the parts of your service shown on the page): id, name, description, state (operational/degraded/partially-degraded), position, parent_id. Sorry: GET /v1/pages/{page_id}/components.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_get_component(page_id, component_id)

Get one component of a status page. Sorry: GET /v1/pages/{page_id}/components/{component_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "component_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The component id."
    }
  },
  "required": [
    "page_id",
    "component_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_notices(page_id, state, type, subject_contains, created_after, ...)

List a status page's notices (incidents = type unplanned, maintenance = type planned): id, type, state, timeline_state, subject, synopsis, began/ended times, public link. Optional filters and embedded updates/components. Sorry: GET /v1/pages/{page_id}/notices.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "state": {
      "description": "Only notices in this state (planned: scheduled, cancelled, underway, complete; unplanned: investigating, identified, recovering, resolved, false_alarm).",
      "type": "string",
      "enum": [
        "scheduled",
        "cancelled",
        "underway",
        "complete",
        "investigating",
        "identified",
        "recovering",
        "resolved",
        "false_alarm"
      ]
    },
    "type": {
      "description": "planned = maintenance, unplanned = incident.",
      "type": "string",
      "enum": [
        "planned",
        "unplanned"
      ]
    },
    "subject_contains": {
      "description": "Only notices whose subject contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "created_after": {
      "description": "Only notices created after this ISO 8601 date or datetime.",
      "type": "string",
      "minLength": 4,
      "maxLength": 40
    },
    "include": {
      "description": "Embed each notice's components and/or updates.",
      "maxItems": 2,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "components",
          "updates"
        ]
      }
    },
    "page": {
      "description": "Page number, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_get_notice(page_id, notice_id, include)

Get one notice (incident or maintenance) with its state, times and public link. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    },
    "include": {
      "description": "Embed the notice's components and/or updates.",
      "maxItems": 2,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "components",
          "updates"
        ]
      }
    }
  },
  "required": [
    "page_id",
    "notice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_notice_updates(page_id, notice_id)

List the updates (timeline comments) of one notice: id, content, should_publish, public link, times. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}/updates.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    }
  },
  "required": [
    "page_id",
    "notice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_get_notice_update(page_id, notice_id, update_id)

Get one update of a notice. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}/updates/{update_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    },
    "update_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The update id."
    }
  },
  "required": [
    "page_id",
    "notice_id",
    "update_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_notice_templates(page_id, name_contains, component_name_contains)

List the page's notice templates (reusable subject + opening comment for new incidents or maintenance): id, name, subject, initial_comment, optional component_id. Returns the vendor-default template page; paging controls are withheld pending a verified request contract. Sorry: GET /v1/pages/{page_id}/notice_templates.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "name_contains": {
      "description": "Only templates whose name contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "component_name_contains": {
      "description": "Only templates scoped to a component whose name contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_update_templates(page_id, name_contains, component_name_contains)

List the page's update templates (reusable text for one notice update): id, name, content, optional component_id. Returns the vendor-default template page; paging controls are withheld pending a verified request contract. Sorry: GET /v1/pages/{page_id}/update_templates.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "name_contains": {
      "description": "Only templates whose name contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "component_name_contains": {
      "description": "Only templates scoped to a component whose name contains this text.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_subscribers(page_id, component_id, include, page, per_page)

List a status page's subscribers (people and channels notified of notices): id, email, phone number, name, company, tags, created time. Webhook URLs of Slack/Teams subscribers are redacted. Contains personal data. Sorry: GET /v1/pages/{page_id}/subscribers.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "component_id": {
      "description": "Only subscribers to this component (plus those subscribed to all components).",
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ]
    },
    "include": {
      "description": "Embed each subscriber's components.",
      "maxItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "components"
        ]
      }
    },
    "page": {
      "description": "Page number, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 10000
    },
    "per_page": {
      "description": "Results per page (Sorry's default for subscribers is 500).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "page_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_get_subscriber(page_id, subscriber_id)

Get one subscriber of a status page (personal data; webhook URLs redacted). Sorry: GET /v1/pages/{page_id}/subscribers/{subscriber_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "subscriber_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The subscriber id."
    }
  },
  "required": [
    "page_id",
    "subscriber_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢sorryapp_list_timezones

List the timezone names Sorry accepts for a status page (name and GMT offset label). Sorry: GET /v1/timezones.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_create_component(page_id, confirm, name, description)

WRITE: add a component to a status page. It appears on the PUBLIC status page immediately, as operational. Sorry: POST /v1/pages/{page_id}/components.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Component name, e.g. API."
    },
    "description": {
      "description": "Optional text shown next to the name.",
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "page_id",
    "confirm",
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_update_component(page_id, confirm, component_id, name, description)

WRITE: rename a component or change its description on the PUBLIC status page (overwrites the previous value). It cannot change the component's state: state follows open notices (use the notice tools). Sorry: PATCH /v1/pages/{page_id}/components/{component_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "component_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The component id."
    },
    "name": {
      "description": "New name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "description": "New description.",
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "page_id",
    "confirm",
    "component_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_create_incident(page_id, confirm, subject, initial_comment, component_ids, ...)

WRITE: open an incident (an unplanned notice) on the status page. These changes are PUBLIC on the status page, including publish=false. publish=true additionally requests delivery to subscribers and integrations (email, SMS, Slack, Teams, X); vendor SMS/notification charges may apply. Confirm the content and audience first. It marks the listed components degraded on the PUBLIC page. Starts in the investigating state. Sorry: POST /v1/pages/{page_id}/notices with type=unplanned.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Incident title, e.g. API performance issues."
    },
    "initial_comment": {
      "description": "First update shown on the incident (public).",
      "type": "string",
      "maxLength": 10000
    },
    "component_ids": {
      "description": "Ids of the affected components (from sorryapp_list_components). While the notice is open they show as degraded.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        ]
      }
    },
    "publish": {
      "description": "should_publish: true also sends this out to subscribers and integrations (email, SMS, Slack, Teams, X). Default false: sent as should_publish=false to suppress the requested broadcast. The notice/change is still public; this does not make a private draft.",
      "type": "boolean"
    }
  },
  "required": [
    "page_id",
    "confirm",
    "subject"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_create_maintenance(page_id, confirm, subject, initial_comment, begins_at_date, ...)

WRITE: schedule maintenance (a planned notice) on the status page. These changes are PUBLIC on the status page, including publish=false. publish=true additionally requests delivery to subscribers and integrations (email, SMS, Slack, Teams, X); vendor SMS/notification charges may apply. Confirm the content and audience first. Sorry: POST /v1/pages/{page_id}/notices with type=planned.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Maintenance title."
    },
    "initial_comment": {
      "description": "First update shown on the notice (public).",
      "type": "string",
      "maxLength": 10000
    },
    "begins_at_date": {
      "description": "Start date, YYYY-MM-DD (in the status page's timezone).",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "begins_at_time": {
      "description": "Start time, 24-hour HH:MM:SS.",
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$"
    },
    "duration_in_minutes": {
      "description": "Expected length of the maintenance in minutes.",
      "type": "integer",
      "minimum": 1,
      "maximum": 525600
    },
    "should_automate_schedule": {
      "description": "true: Sorry moves the notice to underway and complete at the scheduled times.",
      "type": "boolean"
    },
    "component_ids": {
      "description": "Ids of the affected components (from sorryapp_list_components). While the notice is open they show as degraded.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        ]
      }
    },
    "publish": {
      "description": "should_publish: true also sends this out to subscribers and integrations (email, SMS, Slack, Teams, X). Default false: sent as should_publish=false to suppress the requested broadcast. The notice/change is still public; this does not make a private draft.",
      "type": "boolean"
    }
  },
  "required": [
    "page_id",
    "confirm",
    "subject"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_update_notice(page_id, confirm, notice_id, state, subject, ...)

WRITE: change a notice: its subject, state (for example resolved), affected components, schedule, and/or add a comment (an update) to its timeline. These changes are PUBLIC on the status page, including publish=false. publish=true additionally requests delivery to subscribers and integrations (email, SMS, Slack, Teams, X); vendor SMS/notification charges may apply. Confirm the content and audience first. Fields you pass overwrite the previous values. Sorry: PATCH /v1/pages/{page_id}/notices/{notice_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    },
    "state": {
      "description": "New state. Planned: scheduled, cancelled, underway, complete. Unplanned: investigating, identified, recovering, resolved, false_alarm.",
      "type": "string",
      "enum": [
        "scheduled",
        "cancelled",
        "underway",
        "complete",
        "investigating",
        "identified",
        "recovering",
        "resolved",
        "false_alarm"
      ]
    },
    "subject": {
      "description": "New subject.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "additional_comment": {
      "description": "A new public update to add to the notice timeline. publish controls the requested subscriber/integration broadcast; false still changes the public page.",
      "type": "string",
      "maxLength": 10000
    },
    "component_ids": {
      "description": "Ids of the affected components (from sorryapp_list_components). While the notice is open they show as degraded.",
      "maxItems": 100,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        ]
      }
    },
    "begins_at_date": {
      "description": "Planned notices only: new start date YYYY-MM-DD.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "begins_at_time": {
      "description": "Planned notices only: new start time HH:MM:SS.",
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$"
    },
    "duration_in_minutes": {
      "description": "Planned notices only: new duration in minutes.",
      "type": "integer",
      "minimum": 1,
      "maximum": 525600
    },
    "publish": {
      "description": "should_publish: true also sends this out to subscribers and integrations (email, SMS, Slack, Teams, X). Default false: sent as should_publish=false to suppress the requested broadcast. The notice/change is still public; this does not make a private draft.",
      "type": "boolean"
    }
  },
  "required": [
    "page_id",
    "confirm",
    "notice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_create_notice_update(page_id, notice_id, content, confirm_publish)

WRITE: add one update (a comment) to a notice's timeline. It is PUBLIC on the status page, and Sorry's docs say a new update is also published to the page's configured integrations (email, SMS, Slack, Teams, X). The docs list no switch to suppress that on this endpoint, so confirm_publish=true is required; this endpoint has no exposed suppression switch. Sorry: POST /v1/pages/{page_id}/notices/{notice_id}/updates.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000,
      "description": "The update text."
    },
    "confirm_publish": {
      "type": "boolean",
      "const": true,
      "description": "Must be true. Confirms you understand the update is published on the PUBLIC status page and pushed to subscribers and configured integrations (email, SMS, Slack, Teams, X): Sorry's docs offer no way to add an update without that."
    }
  },
  "required": [
    "page_id",
    "notice_id",
    "content",
    "confirm_publish"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_edit_notice_update(page_id, confirm, notice_id, update_id, content)

WRITE: rewrite the text of an existing notice update on the PUBLIC status page (overwrites the previous text; the old text is not kept). Sorry: PATCH /v1/pages/{page_id}/notices/{notice_id}/updates/{update_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "notice_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The notice id."
    },
    "update_id": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        },
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      ],
      "description": "The update id."
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000,
      "description": "The new text."
    }
  },
  "required": [
    "page_id",
    "confirm",
    "notice_id",
    "update_id",
    "content"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴sorryapp_create_subscriber(page_id, confirm, email, phone_number, component_ids)

WRITE: add ONE subscriber (an email address and/or a phone number) to a status page. From then on that person is emailed/texted about notices published on the page, and Sorry may send them a confirmation. Add only people who asked to be notified. No bulk import. Sorry: POST /v1/pages/{page_id}/subscribers.

Input Schema

{
  "type": "object",
  "properties": {
    "page_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The status page id, e.g. 12ab34cd (from sorryapp_list_pages)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user approved this public status change or subscriber addition and any requested notification."
    },
    "email": {
      "description": "The subscriber's email address.",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone_number": {
      "description": "Phone number with the international country code, e.g. +441234567890.",
      "type": "string",
      "pattern": "^\\+[0-9 ()-]{6,20}$"
    },
    "component_ids": {
      "description": "Subscribe to only these components (default: all components).",
      "maxItems": 100,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        ]
      }
    }
  },
  "required": [
    "page_id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded21 tools