mcpField
C
curb-cut-mcp

curb-cut-mcp

本地服务
github.com/parthsevak2商业与营销03 周前更新

关于 curb-cut-mcp

curb-cut-mcp 为工作场所无障碍便利申请提供信息查询和草稿生成,服务于希望以自己的方式提出申请的员工。它不发送消息,也不收集诊断信息,并将需要人工处理的请求交给工作人员。

主要功能

  1. 01查询便利方案与费用依据
  2. 02起草申请内容但不发送
  3. 03支持多种申请渠道
  4. 04不设置诊断信息字段
  5. 05提供人工处理队列

适用场景

  1. 01查找可能适用的工作场所便利方案
  2. 02了解方案的费用证据
  3. 03准备便利申请草稿
  4. 04将需要人工协助的请求转交工作人员

MCP 相关

MCP 服务提供 5 个工具,用于查询和起草;这些工具均不能发送消息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"parthsevak2-curb-cut": {
"command": "npx",
"args": [
"-y",
"curb-cut-mcp"
],
"env": {
"SF_ORG_ALIAS": "<SF_ORG_ALIAS>",
"CURB_CUT_SITE": "<CURB_CUT_SITE>",
"TWILIO_NUMBER": "<TWILIO_NUMBER>",
"CURB_CUT_SUPPORT_EMAIL": "<CURB_CUT_SUPPORT_EMAIL>",
"SF_CLI_MODULES": "<SF_CLI_MODULES>"
}
}
}
}
启动命令npx -y curb-cut-mcp
需要配置的环境变量
SF_ORG_ALIASSalesforce CLI alias of the Curb Cut org. Defaults to curbcut.
CURB_CUT_SITEPublic URL of this installation's Curb Cut site, quoted when a draft tells the person where they can send it themselves.
TWILIO_NUMBERSMS number of this installation, offered next to the site as another way the person can send for themselves.
CURB_CUT_SUPPORT_EMAILAddress given when a human handoff cannot be completed.
SF_CLI_MODULESOverride for the Salesforce CLI's node_modules/@salesforce directory when the CLI is installed somewhere unusual.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcurb-cut-mcp1.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Curb Cut

Curb Cut 让任何员工都能用自己的话申请职场便利措施:无需登录即可通过网页申请,也可以使用普通电话发短信或打电话、发送电子邮件、在 Slack 中发送私信,或通过自己的助手申请,而且无需透露诊断信息。Agentforce Agent 负责对话;由确定性的 Apex 决定存储和发送哪些内容;无障碍服务台的工作人员负责回复。Dreamforce 2026 Agentforce for Good 黑客马拉松 Builder Track 第一名。

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

**先亲自体验,再阅读介绍:**在 parthsevak2.github.io/curb-cut/try.html 输入一句话,看看产品自己的排序答案如何在浏览器中生成。 展示影片的着陆页位于 parthsevak2.github.io/curb-cut, 可直接打印并张贴在休息室的海报位于 poster.html。

了解背后的故事,只需 10 分钟:https://parthsevak2.github.io/curb-cut/story.html

若要将其部署到自己的 Salesforce 组织,请按照 DEPLOY.md 操作。 需要启用 Agentforce;短信和语音功能还需要你自己的 Twilio 号码和一个小型中继(channels/),Slack 则需要根据清单在你的工作区中创建应用。四个自定义标签用于存储部署所需的号码、网站 URL 和支持地址。

为什么要做这个项目

申请残障便利措施的流程本身,就是一道无障碍障碍。

要获得帮助,你必须先使用一个由没有你所患残障的人设计、且为他们服务的系统。找到相关政策,弄懂其中的术语,拥有公司登录账号,填写表格。还得把你可能不敢透露的事情,以书面形式告诉陌生人,而且沟通语言可能不是你的母语。

通常,费用并不是障碍。

影片时长 4 分 59 秒,实时展示所有渠道:https://youtu.be/yleHLiwWRKA。体验申请页面的 26 秒录屏:https://drive.google.com/file/d/13NApu8rq3MpJjuGG2yzKuJ2P02tKWwGx/view。三分钟剪辑版:https://drive.google.com/file/d/1Loqum6Kbk1noQazJDKrrVEnHzoU3biMD/view

证据来源
在 2025 年的 655 家大型雇主中,向雇主说明自己有残障的员工比例中位数为 3.5%,且没有上升。截至 2026 年,其中 98% 的雇主表示已设立便利措施计划。Disability:IN 2025 Disability Index 和 2026 results
2025 年,美国残障人士的就业率为 22.8%,而非残障人士为 65.2%;在就业的残障人士中,30% 从事兼职工作,而非残障人士为 17%。US BLS, People with a Disability 2025,于 2026 年 3 月 3 日发布
每 100 项便利措施中,有 61 项 对雇主而言无需花费任何成本。其余措施的一次性成本中位数为 $300。JAN employer survey,共调查 5,406 家雇主,时间为 2019 年 1 月至 2024 年 12 月
2022 年,在职加拿大残障人士中,超过三分之一 的便利措施需求未得到满足。Statistics Canada,《加拿大残障调查》
GC Workplace Accessibility Passport 已经实现了“申请一次,长期有效”,但仅面向联邦公务员。Government of Canada

Curb Cut 是一个 Agentforce Agent,它的首要服务对象是员工,而非雇主。


2026 年 9 月的演示部署

下面的黑客马拉松部署记录了评审实际测试过的内容。演示组织及其号码会随黑客马拉松结束而停用;你的安装在每一行都有自己的地址。

界面地址状态
Webhttps://curbcut-dev-ed.develop.my.salesforce-sites.com/curbcut正常运行
提问(完整流程,无电话)/curbcut/ask正常运行
隐私/curbcut/privacy正常运行
条款/curbcut/terms正常运行
SMS部署所拥有的 Twilio 号码正常运行,通过我们在组织旁运行的中继
语音同一个 Twilio 号码已构建,支持语音输入和输出
电子邮件入站服务 CurbCutInbound,地址位于 Setup → Email Services正常运行
Slacknode channels/slack-app.mjs,Socket Mode,仅限私信,不会发送消息在实际工作区中正常运行;清单位于 channels/slack-manifest.json
AgentCurb_Cut v7,Curb_Cut_Desk v5均已激活
控制台(内部)/lightning/app/Curb_Cut_Console,主页选项卡 /lightning/n/Curb_Cut_Home,需要组织登录正常运行
为什么是现在/curbcut/why正常运行
消息计划/curbcut/messaging正常运行
MCP 服务node channels/mcp-server.mjs5 个工具,均无法发送消息
任何中继或助手POST /services/apexrest/curbcut/v1/message/上述每个渠道共用的入口

没人演示的那一半,就是控制台。除非人类有地方可以接手,否则助手承诺有人会联系当事人就毫无价值。Human_Handoff__c 会创建记录,声称“有人正在接手”,但没有任何界面供那个人使用。

控制台界面用途
值班中(应用主页)三个队列,按处理顺序排列,其上方显示常设指令
等待人工处理有人要求联系人工,目前却只能等候
等待决策已获批准但雇主尚未答复的请求,按截止时间从近到远排列
需要口译员已签名的视频正在等待人工处理,绝不使用机器翻译
Curb Cut 概览(仪表板)通过五个面板查看系统在哪些方面让人失望
记录动态一个请求通常由两个人共同处理,因此对话会保存在记录中

控制台不会显示任何诊断信息,因为根本没有相关字段。如果有人询问某人患有什么病,操作员只能回答没人知道,也没人能查明。

四项原则

  1. Agent 的首要服务对象是员工。 未经当事人亲自批准,任何内容都不会发出。
  2. 没有哪个渠道才算真正的渠道。 文本、语音、电子邮件和 Web 都是平等的入口。
  3. 披露信息前先征求同意。 无需表明身份,也无需透露任何身体状况,就能得到切实的答复。
  4. 只问一次,不要没完没了地问。 常设偏好会提前随你一同传递。

刻意未构建的内容

  • 没有自动手语识别。 ASL 是一种完整的语言;目前尚无法解决识别问题。签名视频会转给人工处理,并立即以文本确认收到,让人不必一直等候。
  • 没有诊断字段。 该信息既未加密,也未设访问限制,因此直接不设此字段。如果有人添加诊断字段,CI 会导致构建失败。
  • 绝不使用电话作为备用方式。 Reachable_By__c 只接受消息渠道或电子邮件,代码会拒绝电话号码。
  • 不作任何推断。 不会对任何内容建立档案或进行预测。每一项信号都由当事人自行设置。

验证

以下内容没有任何一项是凭记忆断言的。每个数字都是旁边命令的输出,tests/sync_counts.py 会根据不变量测试套件自身的输出重写已发布的计数,确保它们不会偏离。

147 Apex tests                 sf apex run test -o curbcut -l RunLocalTests
554 structural invariants      python3 tests/invariants.py            ~1s, no org
517 accessibility checks       python3 tests/a11y_audit.py            against the live pages
122 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.py
23/23 adversarial assertions   node tests/headless_agent_api.mjs && python3 tests/score_adversarial.py

其中两个测试套件会故意让自身检查失败,并断言每项都会报错(--selftest)。一个无法失败的测试套件无法证明它所测试的代码没有问题。对抗性测试套件曾获得 21/23 分;两项失败都连同记录一并公布,而没有被平均掉。此后,Agent 的拒绝措辞与评分器逐渐趋于一致,测试套件现已全部通过。我们坚持这一做法:出现失误就如实报告,绝不粉饰。

仓库结构

路径内容
force-app/main/default/objects/9 个对象、61 个字段、31 个列表视图,不含任何诊断字段
force-app/main/default/classes/19 个 Apex 类 + 15 个测试类
force-app/main/default/lwc/5 个 Lightning Web Components,每个组件旁都有一个 Sa11y 测试套件
force-app/main/default/aiAuthoringBundles/两个 Agent Scripts:Curb_Cut 为公开版,Curb_Cut_Desk 为内部版
force-app/main/default/pages/ components/ sites/公共网站、六个页面,面向匿名用户
force-app/main/default/emailservices/入站电子邮件渠道
force-app/main/default/applications/ tabs/ flexipages/内部控制台
force-app/main/default/reports/ dashboards/五份报告和总览仪表板,不含任何名称
channels/SMS + 语音中继、Slack 应用(Socket Mode)、MCP 服务、Twilio 配置
tests/上述十二个测试套件,以及生成 docs/SCREEN-READER-WALK.md 的 screen_reader_walk.mjs
deck/演示文稿源文件;构建后的副本位于 docs/hackathon/
docs/hackathon/2026 年 9 月黑客松记录:评审指南、反思、演示文稿、静帧
legal/隐私和条款源文件
docs/架构、BRD、证据、受众、决策和两份审计报告

请先阅读 docs/ARCHITECTURE.md,再阅读 CRITIQUE.md,其中列出了仍然薄弱之处。

文档

文档用途
docs/ARCHITECTURE.md系统如何协同运作,并附有图示
docs/BRD.md业务需求和可追溯性
docs/ROADMAP.md下一步计划,以及已否决的方案
docs/DECISIONS.md每项重大决策及其缘由
docs/EVIDENCE.md每个公开数据,附来源、分母和注意事项
docs/AGENT-INTERFACES.md无头模式、MCP、Agent 间交互,以及我们不会构建的配置文件
CRITIQUE.md仍然存在的问题
FINDINGS.md对抗性测试运行结果
CI.md流水线和不变量
DEPLOY.md部署

由 Parth Sevak 构建。加拿大安大略省韦兰。 Agentforce for Good,Dreamforce 2026 · Builder Track · Abilityforce。

许可证

Apache 2.0。无障碍资源库随仓库一并提供,每一行都附有来源引用。可使用、分叉,也可在自己的组织中运行。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。