mcpField
A
Attest proxy

Attest proxy

本地服务
dev-prathap.github.io安全15 周前更新

关于 Attest proxy

Attest 为 Agent 现有工具执行的操作提供策略检查、人工审批、验证和审计记录。其 MCP 代理可置于任意 MCP 服务前,无需改变实际执行操作的工具。

主要功能

  1. 01策略检查与人工审批门控
  2. 02从源系统回读并验证
  3. 03哈希链防篡改日志
  4. 04Python 与 TypeScript SDK
  5. 05日志导出与签名检查点

适用场景

  1. 01为外部操作设置审批
  2. 02确认 CRM 写入是否实际生效
  3. 03记录 Agent 操作证据
  4. 04审计经 MCP 服务执行的操作

MCP 相关

Attest 提供零代码代理,可在任意 MCP 服务前加入策略、审批、验证和记录,也提供验证服务。操作仍由底层工具执行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"dev-prathap-attest-proxy": {
"command": "uvx",
"args": [
"attestlayer"
],
"env": {
"ATTEST_POLICY": "<ATTEST_POLICY>",
"ATTEST_LEDGER": "<ATTEST_LEDGER>",
"ATTEST_INBOX_URL": "<ATTEST_INBOX_URL>",
"SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
"ATTEST_SLACK_CHANNEL": "<ATTEST_SLACK_CHANNEL>"
}
}
}
}
启动命令uvx attestlayer
需要配置的环境变量
ATTEST_POLICYPath to a policy YAML
ATTEST_LEDGERLedger SQLite path (default .attest/ledger.sqlite)
ATTEST_INBOX_URLURL of the confirm inbox (attest serve) linked from Slack cards
SLACK_BOT_TOKEN密钥Slack bot token for confirm cards
ATTEST_SLACK_CHANNELSlack channel for confirm cards

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

安装包
pypiattestlayer0.1.0

工具

还没有获取到工具列表

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

详细介绍

Attest — 证明你的 AI Agent 实际做了什么

ci pypi npm docs license

决策 → 把关 → 验证 → 证明。 你的 Agent 发送邮件、更新 CRM、转移资金。 Attest 会决定它是否可以执行,在关键操作前要求人工把关,从事实来源系统中读取数据以确认操作确实发生,并记录无篡改迹象的证据。

Attest 永远不会执行你的操作,执行操作的是你的工具。因此,它从第一天起就能与任何应用和任何框架配合使用。

你的 Agent 说操作成功了。真的吗?

两次完全相同的 CRM 写入,工具都报告成功,也都经人工批准:

$ attest ledger
#2  2026-09-19 10:16:46  someweirdcrm.create → leads   ask  approved  unverified   a09e7641db12
#1  2026-09-19 10:16:46  someweirdcrm.create → leads   ask  approved  verified     77a6d99a60f6

第二次读取回来的数据完全匹配。第一次则不然,账本会指出不一致的字段:

{ "level": "unverified", "matched": false,
  "evidence": { "compared": 4, "exists": true, "failed": ["stage"],
    "fields": { "stage": { "want": "qualified", "got": "new", "ok": false } } } }

跟踪记录会显示两步都成功。这个差异就是整个产品的价值所在。

安装

pip install attestlayer          # Python
npm  install attestlayer         # TypeScript — byte-identical ledger format
import attest

@attest.action(system="gmail", verb="send", target="to")
def send_email(to, subject, body): ...
import { Attest } from "attestlayer";

const at = new Attest({ agent: "followup-agent@v3", readers: { gmail: process.env.GMAIL_TOKEN! } });
const sendEmail = at.wrap({ system: "gmail", verb: "send", target: "to" },
                          async ({ to, subject, body }) => gmail.send({ to, subject, body }));

改动就这些。现在,首次向外发送操作会暂停并等待人工确认;账本记录的状态为 acknowledged,如果 Attest 能使用 Agent 自己的凭据读取回数据,则为 verified(Attest(readers={"gmail": service}))。你的代码其他部分无需改动。

分层验证,绝不夸大结果

每条记录都会准确说明检查到什么程度。无法执行的检查绝不会被包装成通过。

级别含义
verified从事实来源系统读取回数据,且字段匹配
verified-custom运行了你自己的检查,且检查通过
acknowledged操作已被接受,但此处无法执行读取回查
attested-only已记录,但没有可用于此操作的验证器
unverified检查结果与声明矛盾

只有出现矛盾时,状态才会标记为 unverified。缺少凭据、只有只读权限或动词不受支持时,状态会降级为 acknowledged,因为“无法检查”和“操作没有发生”是两回事。

接入方式

接入点方式
装饰器 / 包装器@attest.action(...) · at.wrap(...)
LangGraph工具节点包装器,将把关设为图中断
OpenAI Agents · Claude Agent SDK · CrewAI · DeerFlowattest/ 中的适配器
MCP在任何服务前部署零代码代理,另提供验证服务
HTTP 网关将出站流量指向该网关,无需 SDK
仅用 API自行 POST 描述符

人工确认会发送到团队日常使用的地方:Slack、Web 收件箱、Webhook、LangGraph 中断或控制台。审批者可以在批准前编辑参数,编辑操作也会被记录。

记录本身

采用哈希链式账本,本地使用 SQLite,云端按组织使用 Postgres。签名检查点让你可以清理旧记录,同时仍能验证链。支持可选的 Ed25519 签名,以及将记录锚定到文件、git 仓库或 HTTP 端点。导出格式包括 JSON、CSV、IETF draft-sharif-agent-audit-trail JSONL 格式,以及 EU AI Act 事件日志包。

每次操作的开销约为 1/6 毫秒,测量结果见 benchmarks/(已发布的数据)。

在本地试用

python examples/unknown_app.py                         # an app Attest has never seen, L1 → L3
ATTEST_AUTO_APPROVE=1 python examples/langgraph_agent.py
cd deploy && cp .env.example .env && docker compose up  # cloud API :8400 + dashboard :3400

Attest Cloud

SDK 采用 MIT 许可证,可独立搭配本地账本使用。Attest Cloud 提供共享账本、确认收件箱、带版本的组织策略、Agent 密钥和合规导出。你的供应商令牌不会传到这里:回读在你的进程中使用你自己的凭据完成,只会发送哈希和预览内容。 你可以从 deploy/ 自托管,或阅读 DEPLOY.md。

安装渠道

渠道方式
PyPIpip install attestlayer → attest、attest-mcp、attest-mcp-server、attest-gateway
npmnpm install attestlayer
MCP Registryio.github.dev-prathap/attest(验证服务) · io.github.dev-prathap/attest-proxy(零代码代理)
Smitheryattestlayer/attest
Claude Desktop最新版本中的 attest-<version>.mcpb
Dockerghcr.io/dev-prathap/attest-api · ghcr.io/dev-prathap/attest-dashboard

文档

完整文档请见 dev-prathap.github.io/ATTEST — 快速入门 · 验证级别 · 策略 · 回读示例 · 账本与导出 · 加固

仓库

路径内容
attest/Python SDK — 描述符、策略、账本、验证阶梯、门控、适配器、MCP 代理、CLI
packages/attest-ts/TypeScript SDK — 使用相同的规范哈希,并通过针对 Python 的测试夹具验证
cloud/Attest Cloud — FastAPI + Postgres:组织、密钥、策略版本、账本、确认收件箱、导出
dashboard/Next.js 仪表板 — 账本深入查看、确认收件箱、策略和密钥
examples/未知应用、LangGraph、OpenAI Agents、MCP 配置、仅 API、云
deploy/Dockerfile 和 compose
benchmarks/该层每项操作的开销
docs/文档站点源文件及设计说明
pytest -q && (cd cloud && pytest -q)     # 355 + 37 offline tests
pytest tests/live                        # 8 live suites; need real credentials, skipped without them

贡献

回读示例是最容易上手的部分:每个示例都会教 Attest 如何在一个新应用中确认写入操作,只需使用该应用的读取 API。请参阅 CONTRIBUTING.md,如需报告漏洞,请参阅 SECURITY.md。

原则

  • 我们绝不执行你的操作。由你的工具执行;我们负责决策、门控、验证和记录。
  • 覆盖范围是普遍的。每一行都会如实标明分层的验证深度。
  • 采用 MIT 许可证的开源 SDK。共享账本、收件箱、策略和导出功能由付费云服务提供。

设计说明

公开记录产品背后的思考:愿景 · 产品 · 通用适配器 · 架构 · 市场 · 构建计划 · 决策 · 阶段计划

渊源

Attest 的核心机制提取自两个实际运行的代码库:DO(策略引擎、回读验证对、证据账本)和 DeerFlow(工具回执、验证模式、MCP 和聊天渠道适配器)。它们可与真实的 Gmail、Slack、HubSpot、Notion、Linear 和 Google Workspace 配合运行。Attest 在 tests/live/ 中为这些系统提供了自己的实时测试套件;这些测试需要真实凭据,没有凭据时会跳过。

评论

支持 Markdown

第一次接触 MCP?

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

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