公民mcp
政府网站的WebMCP抽象层——为任何州或联邦服务安装适配器,让人工智能代理代表公民浏览表单、检查资格和提交申请。
   
______________________________________________________________________
问题
政府网站是为人们点击表格而建立的。试图帮助公民导航的人工智能代理必须求助于屏幕截图解析、脆弱的DOM抓取和脆弱的点击序列——烧毁令牌、在每次UI更新时中断,并让最需要帮助的人失望。
与此同时,构建这些门户的供应商没有动机公开API。采购锁定意味着集成层永远无法构建。
解决方案
civic-mcp 注入薄薄的 WebMCP 通过Chrome扩展程序将抽象层导入政府网站。该站点公开了结构化的、可调用的工具,而不是由代理猜测单击哪个按钮,代理直接使用它们。
没有后端更改。没有供应商合作。没有多年API开发项目。
Before: agent → screenshot → vision model → click → hope it worked
After: agent → civic-mcp → registerTool() → execute() → structured JSON适配器由社区贡献并独立维护,每个政府站点一个。你只安装你需要的东西。
______________________________________________________________________
快速开始
先决条件
- Chrome 146+(或Chrome Canary)
- 启用 用于测试的WebMCP 在
chrome://flags
安装扩展
# Option 1: Chrome Web Store (coming soon)
# Option 2: Build from source
git clone https://github.com/civic-mcp/civic-mcp.git
cd civic-mcp
npm install
npm run build:extension然后加载 packages/extension/dist 作为未打包的扩展,通过 chrome://extensions.
安装适配器
打开扩展弹出窗口并单击 浏览适配器,或通过CLI安装:
npm install -g @civic-mcp/cli
civic-mcp install gov.colorado.peak
civic-mcp install gov.california.getcalfresh
civic-mcp install gov.federal.ssa连接到AI代理
通过Chrome DevTools桥连接任何兼容MCP的客户端(Claude Desktop、Cursor、自定义代理):
{
"mcpServers": {
"civic-mcp": {
"command": "npx",
"args": ["@mcp-b/chrome-devtools-mcp@latest"]
}
}
}然后在Chrome中打开Colorado PEAK并询问Claude:
*“检查科罗拉多州一个月收入2400美元的3口之家是否有资格获得SNAP和医疗补助。”*
______________________________________________________________________
可用适配器
国家福利
| 适配器 | 状态 | 程序 | 状态 |
|---|---|---|---|
gov.colorado.peak | 科罗拉多州 | SNAP、医疗补助、科罗拉多工厂、CHP+ | ✅ 已验证 |
gov.california.getcalfresh | 加利福尼亚州 | CalFresh(SNAP) | ✅ 已验证 |
gov.michigan.bridges | 密歇根州 | SNAP、医疗补助、现金 | 🔄 回顾中 |
gov.texas.yourtexasbenefits | 德克萨斯州 | SNAP、TANF、医疗补助、CHIP | 🔄 回顾中 |
联邦服务
| 适配器 | 代理 | 服务 | 状态 |
|---|---|---|---|
gov.federal.ssa | 社会保障管理 | 福利、残疾、医疗保险 | 🚧 计划中 |
gov.federal.va | 退伍军人事务部 | 福利、医疗保健 | 🚧 计划中 |
gov.federal.benefits | Benefits.gov | 多程序筛选器 | 🚧 计划中 |
______________________________________________________________________
仓库结构
civic-mcp/
├── packages/
│ ├── extension/ # Chrome extension (core runtime)
│ │ ├── src/
│ │ │ ├── core/ # Plugin loader, sandbox, registry client
│ │ │ ├── ui/ # Popup, marketplace, settings
│ │ │ └── background/ # Service worker
│ │ └── manifest.json
│ ├── cli/ # civic-mcp CLI for adapter development
│ ├── sdk/ # Adapter development SDK + types
│ └── testing/ # Test harness for adapter authors
├── adapters/ # Community-contributed site adapters
│ ├── gov.colorado.peak/
│ ├── gov.california.getcalfresh/
│ └── .../
├── registry/ # Adapter registry metadata
│ ├── registry.json # Master adapter list
│ └── verified.json # Verified publisher list
├── docs/ # Documentation site source
└── scripts/ # Build and maintenance scripts______________________________________________________________________
编写适配器
适配器是公民mcp的核心。任何人都可以写一个。最简单的适配器是 纯JSON --不需要JavaScript。
声明式适配器(推荐)
{
"id": "gov.example.benefits",
"name": "Example State Benefits",
"version": "1.0.0",
"domains": ["benefits.example.gov"],
"declarative": true,
"tools": [
{
"name": "check_eligibility",
"description": "Pre-screen eligibility for state benefits",
"navigation": {
"url": "https://benefits.example.gov/screener",
"waitForSelector": "form#screener"
},
"inputs": {
"householdSize": {
"selector": "input[name='household_size']",
"type": "number",
"required": true
},
"monthlyIncome": {
"selector": "input[name='monthly_income']",
"type": "number",
"required": true
}
},
"submit": { "selector": "button[type='submit']" },
"output": {
"eligible": { "selector": ".result .eligible", "type": "boolean" },
"message": { "selector": ".result .message", "type": "text" }
}
}
],
"permissions": {
"required": ["read:forms", "write:forms"]
}
}JavaScript适配器(复杂工作流)
// adapters/gov.example.benefits/adapter.js
export default {
id: 'gov.example.benefits',
async init(context) {
// Called once when adapter loads on the target page
},
tools: [
{
name: 'start_application',
description: 'Begin a new benefits application',
inputSchema: {
type: 'object',
properties: {
firstName: { type: 'string' },
lastName: { type: 'string' },
dateOfBirth: { type: 'string', format: 'date' },
},
required: ['firstName', 'lastName', 'dateOfBirth'],
},
async execute(params, context) {
const { page, storage, notify } = context;
await page.navigate('https://benefits.example.gov/apply');
await page.fillField('input[name="first_name"]', params.firstName);
await page.fillField('input[name="last_name"]', params.lastName);
await page.fillField('input[name="dob"]', params.dateOfBirth);
await page.click('button#continue');
const appId = await page.getText('.confirmation-number');
return { success: true, applicationId: appId };
},
},
],
};脚手架新适配器
civic-mcp create adapter
? Adapter ID: gov.newstate.portal
? Name: New State Benefits Portal
? Website: https://portal.newstate.gov
? Programs: SNAP, Medicaid
✓ Created adapters/gov.newstate.portal/______________________________________________________________________
安全模型
适配器信任级别
| 级别 | 谁 | 审核 | 能力 |
|---|---|---|---|
| 🔵 官方 | 政府机构 | 审计+数字签名 | 所有操作 |
| 🟢 已验证 | 已知的公民技术组织 | 维护人员的代码审查 | 标准操作 |
| 🟡 社区 | 任何人 | 自动扫描+同行评审 | 标准操作 |
沙盒保证
所有适配器都在安全沙箱中运行,而不管信任级别如何。适配器 不能:
- 呼叫
eval(),Function(),或new Function() - 制造
fetch()声明域之外的请求 - 访问
navigator.modelContext直接 - 读取或写入Cookie
- 访问其他适配器的存储
- 加载外部脚本
适配器只能通过受控设备进行交互 context API-相当于登录人员可以手动执行的操作。
报告安全问题
通过以下方式私下报告漏洞 安全.md.做 不 公开安全漏洞问题。
______________________________________________________________________
贡献
我们欢迎各种捐助。
贡献一个适配器 --影响最大的贡献。看 适配器开发指南.
civic-mcp create adapter # scaffold
civic-mcp test # test locally
civic-mcp publish # submit to registry改进核心扩展 --看 包/扩展/贡献.md.
改进文档 --看 docs/CONTRIBUTING.md.
报告错误或请求适配器 --使用 .
______________________________________________________________________
治理
公民mcp由公民技术组织联盟维护。核心决策是通过以下方式做出的 RFC流程适配器审查由特定领域的工作组处理。
______________________________________________________________________
为什么选择AGPL-3.0?
政府服务是公共产品。使它们更容易访问的软件也应该是一种公共产品。
AGPL确保任何将公民mcp部署为网络服务的人,包括政府供应商和SaaS提供商,都必须将他们的改进贡献给公共资源。MIT或Apache将允许供应商对此进行分叉,添加专有适配器,并出售对它们的访问权限,从而完全重新创建我们试图打破的锁定。
AGPL关上了那扇门。使用该扩展的个人用户和政府机构不受影响——只有当您将修改后的版本作为服务为他人运行时,许可证才会激活。
______________________________________________________________________
路线图
| 里程碑 | 目标 | 状态 |
|---|---|---|
| 核心扩展+插件加载器 | 2026年第一季度 | 🔄 进行中 |
| CLI工具+适配器SDK | 2026年第1季度 | 🔄 进行中 |
| 5个经过验证的适配器 | 2026年第2季度 | 🚧 计划中 |
| Chrome网上商店发布 | 2026年第二季度 | 🚧 计划中 |
| 25个状态适配器 | 2026年第3季度 | 🚧 计划中 |
| 联邦机构适配器 | 2026年第四季度 | 🚧 计划中 |
| 适配器认证计划 | 2026年第4季度 | 🚧 计划中 |
______________________________________________________________________
相关项目
- WebMCP规范 --这是建立在W3C标准草案之上的
- 模型上下文协议 --Anthropic的代理工具协议
- mcp-b/chrome开发工具mcp --用于WebMCP的Chrome DevTools桥
- 美国代码 --公民技术生态系统
- 纳瓦PBC --政府数字服务
______________________________________________________________________
许可证
版权所有©2026公民mcp贡献者
此程序是自由软件:您可以根据 GNU Affero通用公共许可证 由自由软件基金会发布的许可证版本3,或(由您选择)任何更高版本。
分发此程序是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的暗示保证。看 许可证 了解更多详情。
______________________________________________________________________
*civil mcp是一个独立的开源项目。它不隶属于任何政府机构,也不受任何政府机构的认可或运营。*
