Curb Cut Mcp

io.github.parthsevak2由 GitHub 帳號 parthsevak2 發布v1.0.0更新於 Oct 24, 2026

Workplace accommodation options, cost evidence and drafts. Looks up and drafts; never sends.

已驗證STDIO僅桌面效率與工作流商業與電商

概覽

AI 產生的概覽

Curb Cut 的本機 MCP 伺服器,讓助理查詢職場合理調整選項與成本依據並草擬申請,但從不代為送出。

可以做什麼
  • 查詢某個 Curb Cut 部署中的職場合理調整選項與成本依據
  • 用當事人自己的話草擬調整申請,並附上網站網址與支援信箱,方便本人自行送出
  • 在無法完成時轉交無障礙服務台的人工處理
  • 共五個工具,皆不能代為送出、提交或儲存訊息
適用情境
適合員工想透過自己的助理了解調整選項與成本資料、並準備一份申請,同時不揭露診斷資訊、也不打算直接送出的情境。適用於已部署 Curb Cut Salesforce 組織並設有服務台的安裝環境。
執行需求
透過 npx 以 stdio 在本機執行(需 Node.js)。需要一個 Curb Cut Salesforce 組織及 Salesforce CLI,SF_ORG_ALIAS 指定組織別名(預設 curbcut),CLI 安裝在非慣用位置時使用 SF_CLI_MODULES。CURB_CUT_SITE 與 CURB_CUT_SUPPORT_EMAIL 提供草稿中引用的網站網址與支援信箱,TWILIO_NUMBER 為選用。未宣告身分驗證。
安裝前請注意
草稿是供本人自行送出的,伺服器無法送出,不應把草稿視為已提交。調整申請涉及身心障礙與健康資訊,需留意傳給助理的內容,並維持不記錄診斷的做法。伺服器依賴本機已設定的 Salesforce 組織與 CLI 憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Curb Cut Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Curb Cut

Curb Cut lets any worker ask for a workplace accommodation in their own words, on the web with no login, by text or a call from a basic phone, by email, in a Slack DM, or through their own assistant, without ever disclosing a diagnosis. An Agentforce agent holds the conversation; deterministic Apex decides what is stored and sent; a person on the access desk answers. First place, Builder Track, Agentforce for Good Hackathon, Dreamforce 2026.

git clone https://github.com/parthsevak2/curb-cutcd curb-cutpython3 tests/invariants.py     # 521 structural checks, offline, about a second

Feel it before you read anything: type one sentence at parthsevak2.github.io/curb-cut/try.html and watch the product's own ranking answer, entirely in your browser. The landing page with the films is parthsevak2.github.io/curb-cut, and a print-ready break-room poster is poster.html.

The story behind it, ten minutes: https://parthsevak2.github.io/curb-cut/story.html

To install it into your own Salesforce org, follow DEPLOY.md. It needs Agentforce enabled; text and voice also need your own Twilio number and a small relay (channels/), and Slack needs the app created in your workspace from the manifest. Four Custom Labels carry your deployment's number, site URL and support address.

Why it exists

The process for requesting a disability accommodation is itself an accessibility barrier.

To get help you must first navigate a system designed by and for people without your disability. Find the policy. Learn its vocabulary. Hold a corporate login. Complete a form. And disclose something you may be afraid to disclose, to a stranger, in writing, in a language that may not be your first.

Cost usually isn't the barrier.

The film, 4 minutes 59 seconds, with every channel shown live: https://youtu.be/yleHLiwWRKA. A 26-second recording of trying the ask page: https://drive.google.com/file/d/13NApu8rq3MpJjuGG2yzKuJ2P02tKWwGx/view. A three-minute cut: https://drive.google.com/file/d/1Loqum6Kbk1noQazJDKrrVEnHzoU3biMD/view

EvidenceSource
Across 655 large employers in 2025 the median share of staff who told their employer about a disability was 3.5%, and it did not rise. By 2026, 98% of them report accommodation programmes.Disability:IN 2025 Disability Index and 2026 results
In 2025, 22.8% of Americans with a disability were employed against 65.2% without, and 30% of those working were part time against 17%.US BLS, People with a Disability 2025, released 3 March 2026
61 of every 100 accommodations cost the employer nothing. Median one-time cost of the rest: $300.JAN employer survey, 5,406 employers, Jan 2019 to Dec 2024
More than a third of employed Canadians with a disability had an accommodation need go unmet in 2022.Statistics Canada, Canadian Survey on Disability
The GC Workplace Accessibility Passport already implements "ask once, not forever", and only for federal public servants.Government of Canada

Curb Cut is an Agentforce agent whose principal is the worker, not the employer.


The demo deployment, September 2026

The hackathon deployment below is kept as a record of what judges tested. The demo org and its number retire with the hackathon; your install has its own addresses on every row.

SurfaceAddressState
Webhttps://curbcut-dev-ed.develop.my.salesforce-sites.com/curbcutlive
Ask (the whole flow, no phone)/curbcut/asklive
Privacy/curbcut/privacylive
Terms/curbcut/termslive
SMSa Twilio number the deployment ownslive, through a relay we run beside the org
Voicethe same Twilio numberbuilt, speech in and out
Emailinbound service CurbCutInbound, address in Setup → Email Serviceslive
Slacknode channels/slack-app.mjs, Socket Mode, DM only, never sendslive in a real workspace; manifest in channels/slack-manifest.json
AgentCurb_Cut v7, Curb_Cut_Desk v5both active
Console (internal)/lightning/app/Curb_Cut_Console, home tab /lightning/n/Curb_Cut_Home, org login neededlive
Why now/curbcut/whylive
Messaging programme/curbcut/messaginglive
MCP servernode channels/mcp-server.mjs5 tools, none of which can send
Any relay or assistantPOST /services/apexrest/curbcut/v1/message/one door every channel above shares

The console is the half of this that nobody demos. Every promise the assistant makes about a person reaching a human being is worthless unless a human being has somewhere to stand. Human_Handoff__c was creating records that said "a person is picking this up" with no surface for that person.

Console surfaceWhat it is for
On Duty (app home)Three queues in the order they should be worked, with standing orders above them
Waiting for a personSomeone asked for a human and is currently getting silence
Awaiting a decisionApproved requests an employer has not answered, nearest deadline first
Needs an interpreterSigned video, waiting on a person, never machine translated
Curb Cut Overview (dashboard)Where the system is failing people, in five panels
Record feedsTwo people often work one request, so the conversation lives on the record

Nothing in the console shows a diagnosis, because there is no field for one. An operator who is asked what a person has can only answer that nobody knows and nobody can find out.

The four principles

  1. The agent's principal is the worker. Nothing leaves that the person did not personally approve.
  2. No channel is the real one. Text, voice, email and web are equal front doors.
  3. Ask before you disclose. A real answer without identifying yourself or naming anything about your body.
  4. Ask once, not forever. Standing preferences travel ahead of you.

What is deliberately not built

  • No automated sign language. ASL is a complete language; recognition is unsolved. Signed video routes to a human, with immediate text acknowledgement so nobody waits in silence.
  • No diagnosis field. It isn't encrypted or restricted. It's absent. CI fails the build if anyone adds one.
  • No phone fallback, ever. Reachable_By__c accepts a message channel or email, and the code refuses a telephone number.
  • No inference. Nothing is profiled or predicted. Every signal is one the person set.

Verification

Nothing below is asserted from memory. Each number is the output of the command beside it, and tests/sync_counts.py rewrites the published counts from the invariant suite's own output so they cannot drift.

147 Apex tests                 sf apex run test -o curbcut -l RunLocalTests554 structural invariants      python3 tests/invariants.py            ~1s, no org517 accessibility checks       python3 tests/a11y_audit.py            against the live pages122 Sa11y checks               npm run test:a11y                      Salesforce's own axe-core matcher 34 accessibility-tree checks  node tests/ax_tree_audit.mjs           what a screen reader is handed 34 controls by keyboard       node tests/keyboard_walk.mjs           real Tab presses; set CURB_CUT_SITE 21 responsible-AI checks      python3 tests/rai_self_check.py        against Salesforce's five guidelines 28 contrast checks            python3 tests/contrast_audit.py        both themes, from the tokens 16 reading-level checks       python3 tests/reading_level_audit.py 76 link and copy checks       python3 tests/link_and_copy_audit.py23/23 adversarial assertions   node tests/headless_agent_api.mjs && python3 tests/score_adversarial.py

Two of those suites break their own checks on purpose and assert each one goes red (--selftest). A suite that cannot fail proves nothing about the code it passes. The adversarial suite once scored 21 of 23, and both failures were published with their transcripts rather than averaged away; the agent's refusal wording and the scorer have since converged, and the suite passes whole. The habit stands: a miss gets reported, never smoothed.

Repository map

PathWhat
force-app/main/default/objects/9 objects, 61 fields, 31 list views, and no field for a diagnosis
force-app/main/default/classes/19 Apex classes + 15 test classes
force-app/main/default/lwc/5 Lightning Web Components, each with a Sa11y suite beside it
force-app/main/default/aiAuthoringBundles/two Agent Scripts: Curb_Cut public, Curb_Cut_Desk internal
force-app/main/default/pages/ components/ sites/the public site, six pages, anonymous
force-app/main/default/emailservices/inbound email channel
force-app/main/default/applications/ tabs/ flexipages/the internal console
force-app/main/default/reports/ dashboards/five reports and the overview dashboard, no names anywhere
channels/SMS + voice relay, Slack app (Socket Mode), MCP server, Twilio configuration
tests/the twelve suites above, plus screen_reader_walk.mjs, which writes docs/SCREEN-READER-WALK.md
deck/the deck as source; the built copy lives in docs/hackathon/
docs/hackathon/the September 2026 hackathon record: judge guides, reflections, deck, stills
legal/privacy and terms source
docs/architecture, BRD, evidence, audience, decisions, the two audit reports

Start with docs/ARCHITECTURE.md, then CRITIQUE.md, which is where the honest list of what is still weak lives.

Documentation

DocumentPurpose
docs/ARCHITECTURE.mdHow it fits together, with diagrams
docs/BRD.mdBusiness requirements and traceability
docs/ROADMAP.mdWhat is next, and what was rejected
docs/DECISIONS.mdEvery significant call and why
docs/EVIDENCE.mdEvery public figure, with source, denominator and caveat
docs/AGENT-INTERFACES.mdHeadless, MCP, agent-to-agent, and the profile we will not build
CRITIQUE.mdWhat is still wrong
FINDINGS.mdAdversarial run results
CI.mdPipeline and invariants
DEPLOY.mdDeployment

Built by Parth Sevak. Welland, Ontario, Canada. Agentforce for Good, Dreamforce 2026 · Builder Track · Abilityforce.

License

Apache 2.0. The accommodation library ships in the repo with a source citation on every row. Use it, fork it, run it in your own org.

來源:README.md,提交 1b65585

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 29, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分