Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read status pages and incidents; make confirmed public changes and manage individual subscribers.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://sorry-app.usefulapi.io/mcpRun this in your terminal
claude mcp add --transport http sorry-app https://sorry-app.usefulapi.io/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sorry-app": {
"url": "https://sorry-app.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"sorry-app": {
"type": "http",
"url": "https://sorry-app.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://sorry-app.usefulapi.io/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
sorryapp_list_pagesList 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.
sorryapp_get_pageGet one status page, optionally with related resources embedded (brand, components, custom_domain, notices, notices.updates, theme). Sorry: GET /v1/pages/{page_id}?include=...
sorryapp_list_componentsList 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.
sorryapp_get_componentGet one component of a status page. Sorry: GET /v1/pages/{page_id}/components/{component_id}.
sorryapp_list_noticesList 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.
sorryapp_get_noticeGet one notice (incident or maintenance) with its state, times and public link. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}.
sorryapp_list_notice_updatesList the updates (timeline comments) of one notice: id, content, should_publish, public link, times. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}/updates.
sorryapp_get_notice_updateGet one update of a notice. Sorry: GET /v1/pages/{page_id}/notices/{notice_id}/updates/{update_id}.
sorryapp_list_notice_templatesList 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: GE
sorryapp_list_update_templatesList 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.
sorryapp_list_subscribersList 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.
sorryapp_get_subscriberGet one subscriber of a status page (personal data; webhook URLs redacted). Sorry: GET /v1/pages/{page_id}/subscribers/{subscriber_id}.
sorryapp_list_timezonesList the timezone names Sorry accepts for a status page (name and GMT offset label). Sorry: GET /v1/timezones.
sorryapp_create_componentWRITE: add a component to a status page. It appears on the PUBLIC status page immediately, as operational. Sorry: POST /v1/pages/{page_id}/components.
sorryapp_update_componentWRITE: 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}.
sorryapp_create_incidentWRITE: 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 a
sorryapp_create_maintenanceWRITE: 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
sorryapp_update_noticeWRITE: 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
sorryapp_create_notice_updateWRITE: 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 confir
sorryapp_edit_notice_updateWRITE: 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}.
sorryapp_create_subscriberWRITE: 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/p
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain usefulapi.io (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 19 ms (HTTP 200)
No sign-in needed
Read 21 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.7.3) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, 오늘냥이 (Oneul Nyangi)
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Real cat photos, diaries, profiles, age and food reference calculators, and breeds.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
https://sorry-app.usefulapi.io/mcp.claude mcp add --transport http sorry-app https://sorry-app.usefulapi.io/mcp, then run /mcp to log in.{
"mcpServers": { "sorry-app": { "url": "https://sorry-app.usefulapi.io/mcp" } } }
Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Sorry credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/sorry-app/
| Tool | Type | What it does |
|---|---|---|
sorryapp_list_pages | read | List status pages |
sorryapp_get_page | read | Get status page |
sorryapp_list_components | read | List components |
sorryapp_get_component | read | Get component |
sorryapp_list_notices | read | List notices |
sorryapp_get_notice | read | Get notice |
sorryapp_list_notice_updates | read | List notice updates |
sorryapp_get_notice_update | read | Get notice update |
sorryapp_list_notice_templates | read | List notice templates |
sorryapp_list_update_templates | read | List update templates |
sorryapp_list_subscribers | read | List subscribers |
sorryapp_get_subscriber | read | Get subscriber |
sorryapp_list_timezones | read | List timezones |
sorryapp_create_component | write | Create component |
sorryapp_update_component | write | Update component |
sorryapp_create_incident | write | Create incident notice |
sorryapp_create_maintenance | write | Create maintenance notice |
sorryapp_update_notice | write | Update notice |
sorryapp_create_notice_update | write | Add notice update |
sorryapp_edit_notice_update | write | Edit notice update |
sorryapp_create_subscriber | write | Add one subscriber |
sorryapp_usage_status | meta | Usage status (free-tier meter) |
sorryapp_request_feature | meta | Request a missing feature |
sorryapp_upgrade | meta | Upgrade to Pro or Pro+ |
sorryapp_cancel_subscription | meta | Cancel the Pro subscription |
read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.
| Plan | Price | Limit |
|---|---|---|
| Free (per connected Sorry API token) | $0 | 50 tool calls / month |
| Pro (per connected Sorry API token) | $9/mo or $90/yr (2 months free) | Unlimited* |
\*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to support@usefulapi.io.
Pro covers this server only. Subscribe with sorryapp_upgrade (it returns a Stripe Checkout link). Cancel any time with sorryapp_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running sorryapp_upgrade before then undoes the cancel. Or write to support@usefulapi.io.
MIT
Create a token in Sorry under My Account → API Tokens. This independent connector uses customer-authorized API access, with no claimed vendor endorsement or partner status. Your vendor subscription, API eligibility, quotas and notification/SMS charges remain separate. Sorry documents 10 requests per second per API token.
The token is encrypted for authorized API calls. Requested status records and subscriber contact details reach your chosen AI client and LLM provider. Credential fields, connected-token values and Slack/Teams webhook URLs are redacted. Revoke the token in Sorry to stop access; disconnect UsefulAPI to end this connection.
Usage and billing follow this token. Rotation creates a new UsefulAPI identity and does not automatically transfer Pro. Cancel the old UsefulAPI plan before rotation or contact support before changing the token.
Every write requires explicit confirmation. Components, notices and notice updates are public. publish=false requests suppression of the subscriber/integration broadcast; it does not make a private draft. publish=true additionally requests delivery through configured email, SMS, Slack, Teams or X channels. Vendor automations may also react to a public change, so review its content and audience.
The separate new-notice-update tool exposes no verified suppression switch and requires explicit broadcast confirmation. Adding a subscriber enables future notifications to that address or phone number. The connector does not delete resources or import/remove subscriber lists.
No vendor call is automatically replayed. After a timeout or uncertain response, check Sorry before repeating a write: duplicate calls can duplicate public records or notifications. A valid response record id is required before reporting an acknowledged change.
Notice lists support the documented page parameter, and subscriber lists support page/per_page. Template tools return the vendor-default page with documented filters; template paging and notice per_page controls are withheld pending verified request contracts. Maintenance times are sent as HH:MM:SS in the status page’s timezone.
The 21 tools were checked against current vendor documentation and local mocks. Missing/nonexistent-token checks received the vendor’s JSON401. No authenticated customer reads, real public status changes, subscriber additions or notifications were tested.