
Sequesign
io.github.Sequesign由 GitHub 账号 Sequesign 发布v0.4.1更新于 Oct 24, 2026
Cryptographically verifiable receipts of an agent's delegated work, verified offline.
概览
Sequesign 让 MCP 智能体把受托工作记录为签名动作链,封装成可加密验证的凭据,并可离线校验该凭据。
- 可以做什么
- 开启并管理记录会话,可将凭据绑定到策略上下文,并按会话选择 direct 或 managed 模式。追加带哈希证据的签名动作,并附加本地签名的审批或交易对方证明。封装并见证凭据,然后运行 SDK 自带的校验。离线校验已封装凭据:本地完整性自检、使用已公布见证密钥的第三方校验,或通过凭据 URL 校验经纪商存储的副本。由其他参与方或另一台机器对已封装包附加延迟审批与对方确认。
- 适用场景
- 适用于智能体执行受托工作、之后需要审计或举证的情形,例如审批、退款、供应商确认,或任何需要可离线验证、带时间戳的“谁做了什么”记录。也适合多方流程:一方记录、另一方审批、第三方确认。
- 运行要求
- 通过 npx 以 stdio 在本地运行(需要 Node.js)。managed 模式需要 SEQUESIGN_API_KEY 与 SEQUESIGN_AGENT_PRIVATE_KEY,后者须在 Sequesign 控制台中注册到该 API 密钥。direct 模式无需账户,但仍会向托管见证服务发送签名请求,除非另行配置见证 URL,否则需要 SEQUESIGN_API_KEY。需要访问见证、经纪商与控制台端点的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Sequesign,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
@sequesign/mcp
A Model Context Protocol server for Sequesign — let an MCP-capable agent produce a cryptographically verifiable receipt of its own delegated work, then verify it offline.
It is a thin local-stdio wrapper over @sequesign/sdk. The
agent's signing key never leaves the machine: in direct mode the SDK signs each
action locally and the hosted witness only co-signs a hash.
Tools
Choosing a mode per session
The server default is SEQUESIGN_MODE, but sequesign_start_session accepts a
mode argument (direct or managed) so one running server can do both
without editing config. A mode: "managed" session still requires the managed
secrets (SEQUESIGN_API_KEY + SEQUESIGN_AGENT_PRIVATE_KEY); the call fails
fast if they're absent.
Verifying the stored (registered-identity) receipt
In managed mode the broker stamps the registered agent_identity_attestation
into the stored receipt, not the local envelope — so a local verify reads
self_asserted. Pass the receipt_url from finalize as receiptUrl to
sequesign_verify: it fetches the stored receipt (using SEQUESIGN_API_KEY),
verifies it against your local package, and auto-fetches the published witness
and registration anchors, so the result shows external trust and the
registered identity.
Multi-party / deferred attestation (after sealing)
sequesign_approve_receipt and sequesign_countersign_receipt attest to a
receipt that's already finalized, without modifying it. Each produces a
detached satellite that's bound to the sealed receipt by hash, independently
witnessed at its own time, and written to the package's attestations.jsonl
sidecar; the verifier folds a valid satellite into the same approval/counterparty
leg as an in-receipt one. They take the sealed packageDirectory (not a live
session), so a different party — even a different model on a different machine,
as long as it has the package — can approve or countersign later. This is the
basis for a multi-party flow: one agent records and seals the work, a second
party approves it, a third confirms it — three independent, timestamped
signatures on one receipt.
Binding to the registered (stored) receipt. By default a satellite binds to
the local receipt.json. In managed mode the broker-stored copy carries the
registered agent_identity_attestation (a different hash), so pass the
receipt_url as receiptUrl to approve_receipt / countersign_receipt:
the tool fetches the stored receipt (authenticated, origin-allowlisted) and
binds the satellite to it. A later sequesign_verify --receiptUrl then shows
the registered identity AND the folded approval/counterparty legs on one
receipt. Set the satellite's mode to match how the receipt was sealed.
Convergence note (cross-platform). The broker does not store satellites
— a sealed satellite is appended to the local package's attestations.jsonl.
So for parties on different machines/platforms to converge on one verifiable
receipt, the .sequesign package must travel between them (an orchestrator
moves it, each appends its satellite). Independent submission with server-side
satellite storage is a future broker capability.
Vouching (verified parties)
sequesign_record_approval and sequesign_record_counterparty_attestation
mint an ephemeral key when you don't pass one, so the leg verifies as
present_unverified. To get a present_verified (vouched) leg, enroll the
party's key with the platform first and pass both the enrolled private key PEM
and the returned identityProofRef. Then sequesign_verify flips the leg to
present_verified when given the platform's published registration keys.
Configuration
All configuration is via environment variables:
Sessions are held in memory for the life of the process. A
sessionIddoes not survive a server restart orsequesign_finalize.
Install
As a Claude Desktop Extension (.mcpb) — recommended
The one-click path: download sequesign.mcpb from the
GitHub releases and open it
with Claude Desktop (Settings → Extensions → install from file). Desktop renders
a setup form from the manifest's user_config; fill in:
Secrets go to the OS keychain (never the manifest), and blank optional fields
fall back to their defaults. The bundle is self-contained — no npm/node
project setup required. Where do the API key and agent key come from? See
Getting your keys below.
Building the .mcpb from source:
The build bundles the server and all dependencies into a single file with
esbuild and copies the protocol registry/schemas/profiles next to it, then packs
and validates via @anthropic-ai/mcpb. Attach the resulting .mcpb (and its
printed SHA-256) to a GitHub release.
Releasing to npm and the official MCP registry is automated — see PUBLISHING.md.
Via npm
For non-Desktop MCP clients (or if you prefer managing config yourself), install from npm and configure via environment variables — see Usage below.
Getting your keys (and which identity you get)
The two secrets — your API key and your agent private key — come from the Sequesign dashboard's Create-API-key flow. The key you use in managed mode must be the one registered to your API key.
Managed mode — registered identity
Create an API key in the dashboard (Settings → API keys → Create key). Registration is off by default, so you must opt in:
- Enable "Register this key with an agent public key" (the checkbox in the create dialog — it's unchecked by default; without it you get a plain API key and no private-key PEM, which is not enough for managed mode).
- Choose "Generate keypair (recommended)". The dashboard then generates an Ed25519 keypair in your browser (the private key never reaches our servers), registers the public key to your account (the platform signs a registration record bound to its fingerprint), and shows you the private-key PEM once — download it then.
- Copy the API key and that private-key PEM.
Paste both into the setup form (or set SEQUESIGN_API_KEY and
SEQUESIGN_AGENT_PRIVATE_KEY). Reuse them across installs and machines — you do
not make a new key each time.
Bring your own key (advanced). Instead of "Generate keypair", you can pick "Bring your own public key (advanced)" and paste the public PEM of a key you generated yourself (e.g. in an HSM). You hold the private key; the platform records the public half. Fully supported in managed mode.
The broker accepts only the agent key your API key is registered to — whether the dashboard generated it or you brought your own. An unregistered key (generated locally and never registered) is rejected (
agent_public_key_not_registered). That's the rule: the key must be on file against your API key, and that binding happens at API-key creation.
Verifying the broker-stored receipt then shows a registered agent identity
(see the receiptUrl verify path below).
Direct mode — self-asserted identity
Direct mode has no account and no registration. The agent key only proves continuity (the same signer produced these receipts), not a platform-vouched identity. Two choices:
- Leave the key blank → the server mints a fresh ephemeral key per session.
Good for quick, one-off, anonymous-but-verifiable receipts; each receipt has a
different
self_assertedkey. - Paste a fixed PEM → one stable identity reused across sessions. Any
Ed25519 PKCS#8 PEM works (e.g. the one the dashboard can generate for you, or
openssl genpkey -algorithm ed25519). It staysself_assertedunless that key is the one registered to yourSEQUESIGN_API_KEY: in that case the witness (which authenticates the same key) confirms the match and the receipt verifies as a registered identity — direct signing and a registered identity. (The witness also rejects signing under a key that isn't the one registered to your API key, so an API key can't mint receipts under an unregistered key.)
Usage
Add it to an MCP client (e.g. Claude Desktop) as a stdio server:
Or run it directly:
Example prompts
Drop these into any MCP-capable agent (Claude Desktop, etc.) once the server is configured. They're written the way you'd actually ask — the agent picks the tools.
1. Record and seal a single piece of work, then verify it.
Using Sequesign, open a session for task
q3-refund-reviewdelegated by[email protected], record an actionrefund_approvedwith the evidence{ "invoice": "INV-2231", "amount_usd": 480, "reason": "duplicate charge" }, then finalize the receipt and verify it. Tell me the package directory and whether it verified.
Exercises start_session → record_action → finalize → verify (the local
integrity self-check).
2. Multi-party: one agent records, two others attest after the fact.
The receipt at
<packageDirectory>is already sealed. Have Sequesign attach an approval to it as[email protected](a human reviewer), then attach a counterparty confirmation asvendor-globexfor therefund_approvedaction with purposerefund_amount_confirmation. Then verify the package and show me the approval and counterparty legs.
Exercises approve_receipt and countersign_receipt (deferred satellites bound
to an already-finalized receipt), then verify. A different party — even a
different model on another machine that has the package — can run these.
3. Verify the broker-stored, registered-identity copy (managed mode).
I finalized a managed-mode receipt; its
receipt_urlis<receipt_url>and the local package is at<packageDirectory>. Use Sequesign to verify the stored receipt against my package and tell me whether it shows external trust and a registered agent identity.
Exercises verify with receiptUrl — fetches the authoritative stored
envelope (carrying the registered agent_identity_attestation), auto-fetches
the published witness + registration anchors, and reports external trust plus
the registered identity.
Example flow
sequesign_start_session→{ taskId, delegatorId, policyContext }→ returnssessionId.sequesign_record_action→{ sessionId, actionType, evidence }→ returnsactionId.- (optional)
sequesign_record_counterparty_attestation→{ sessionId, counterpartyId, attestedActionId, attestationPurpose }. - (optional)
sequesign_record_approval→{ sessionId, approverId, approvedActionType, approvalContext }. sequesign_finalize→{ sessionId }→ returns the package directory + verification summary.sequesign_verify→{ packageDirectory }→ re-verify offline any time.
License
Apache-2.0
来源:README.md,提交 04871ce
工具
0版本历史
1- v0.4.1最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分