Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Read status pages and incidents; make confirmed public changes and manage individual subscribers.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://sorry-app.usefulapi.io/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http sorry-app https://sorry-app.usefulapi.io/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"sorry-app": {
"url": "https://sorry-app.usefulapi.io/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"sorry-app": {
"type": "http",
"url": "https://sorry-app.usefulapi.io/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://sorry-app.usefulapi.io/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
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
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน usefulapi.io แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 19 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 21 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.7.3) เข้า registry เมื่อวาน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Safe Fetch
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า 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.
MCP server for fetching URLs, safe against SSRF, DNS rebinding, and redirect-to-internal attacks.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.