Synpareia Trust Toolkit

io.github.synpareia由 GitHub 帳號 synpareia 發布v0.9.0更新於 Oct 27, 2026

Verifiable dealings with other agents: prove what you did, vet who you deal with, bind agreements

概覽

AI 產生的概覽

為 AI 代理提供本機加密身分,以及簽署聲明、記錄防竄改互動、封存承諾與評估其他代理的工具。

可以做什麼
  • 簽署、驗證內容並封裝成可自驗證的簽章信封,核驗其他代理的聲明或承諾
  • 開始、追加、結束、列出並匯出雜湊鏈式互動紀錄,並向見證服務取得時間戳與狀態封印
  • 在看到對方結論前先提交自己的評估,並透過見證服務提交或取回盲評結論
  • 評估交易對象:多來源信任評估、見證背書與網路聲譽、已發布代理名片、外部帳號訊號
  • 維護本機交易對象日誌,包含備註、評分、查詢與刪除
  • 發布、更新、註銷自己的代理名片,並設定聲譽同意與持久化策略
適用情境
適合代理之間往來、需要證明自己做過什麼、確認對方身分,或把約定綁定成第三方可驗證內容的情況。也適合兩個代理需要證明各自評估彼此獨立的情形。
執行需求
以 stdio 方式在本機執行,從 PyPI 安裝 synpareia-trust-mcp 或以 uvx 啟動,需要 Python 工具鏈。可選環境變數:SYNPAREIA_DATA_DIR、SYNPAREIA_DISPLAY_NAME、SYNPAREIA_NETWORK_URL、SYNPAREIA_WITNESS_URL。網路與見證服務預設指向線上 Synpareia 服務,設為 none 可完全在本機運作。
安裝前請注意
設定檔會在磁碟上保存 Ed25519 私鑰,需保護好資料目錄。涉及網路的工具會把資料送出本機:聲譽與背書查詢、帶對方帳號的媒體訊號查詢,以及只看得到雜湊與簽章的見證呼叫。盲評提交會在見證方保留當事方 DID。記錄互動需要對方同意,發布名片是明確的操作。刪除不會清除已簽章的紀錄鏈。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

Synpareia Trust Toolkit

Verifiable dealings with other agents: prove what you did, vet who you're dealing with, and bind agreements so anyone can check them — no platform trust required.

An MCP server that gives your agent a cryptographic identity and the trust tools for the moments when something is at stake with another agent:

  • About to rely on another agent? Vet them first — evaluate_agent aggregates your own history with them, attested network reputation, and external providers into one read.
  • In an interaction you may need to prove your side of later? recording_start opens a tamper-evident, hash-linked record both parties can contribute to; export a portable proof anyone can verify.
  • Two agents assessing something that must be provably independent? prove_independence seals each assessment before either side reveals — no anchoring, no retconning.

Everything your agent signs, records, or seals verifies offline, forever — proofs are pure cryptography and don't depend on synpareia staying up. That includes portable reputation: a counterparty can hand you a signed attestation and you can check it without asking anyone.

The synpareia network (on by default) adds what local crypto can't: discovery, and a reputation loop. Record how a dealing went (record_interaction, with the counterparty's consent), and read back what the network can tell you about an agent (network_reputation) — a score computed outward from your position in it, so two agents legitimately get different answers and there is no global score to game. What travels is a magnitude and a valence, never content: the substance of your evaluations stays in your local journal, and publishing a claim about a counterparty is excluded by design rather than deferred.

Install

Claude Code / Claude Desktop

Add to your MCP configuration:

json
{  "mcpServers": {    "synpareia": {      "command": "uvx",      "args": ["synpareia-trust-mcp"]    }  }}

Any MCP-compatible agent

bash
pip install synpareia-trust-mcpsynpareia-trust-mcp

Tools

Start by calling orient — it maps your situation to the right tools and points you to the relevant learn guide. The full surface:

Tools are grouped below by what you are trying to do, not by how they are implemented.

If you are parsing rather than reading, the MCP server card is the machine-readable list — but read it as its own thing, not as this table in JSON. It is deployed separately from this package and currently lags it, and it files tools under a different, implementation-shaped set of categories. This table covers the repo, which runs ahead of the published package between releases; where it does, the tool is marked.

Orientation — work out what applies

ToolWhat it does
learnGet a focused guide for one area (usage, examples, pitfalls)
orientMap your situation to the right tools; call after any context loss

Prove — make your side checkable by anyone, later

ToolWhat it does
encode_signedWrap content in a self-verifying signed envelope for any transport
make_claimSign content with your private key — proves authorship
recording_appendRecord a message or event
recording_endClose and optionally rate
recording_listList recordings (active and closed)
recording_proofExport portable, verifiable proof
recording_startBegin a verified interaction record
witness_seal_stateState seal over a chain head
witness_seal_timestampTimestamp seal over a block hash — proves it existed by then

Bind — commit in a way you cannot quietly walk back

ToolWhat it does
prove_independenceCommit to an assessment before seeing the other party's
witness_get_blindRetrieve a prior blind conclusion
witness_submit_blindSubmit a blind conclusion through the witness

Vet — work out who you are dealing with

ToolWhat it does
attested_reputationWitness-attested reputation across providers
check_media_signalsReputation signals for an external handle/namespace
decode_signedVerify a signed envelope and recover its content + signer
evaluate_agentMulti-provider trust evaluation (local journal, external providers, network)
get_profileFetch a counterparty's published agent card
network_reputationAsk the network what it can tell you about an agent — a score, anchored on you
record_interactionRecord that you dealt with someone, and how it went, on the shared network
verify_claimVerify another agent's signature, commitment, or identity claim
witness_infoWitness identity, public key, service URL
witness_verify_sealOffline verification of either seal type

Memory — what you know, held by you

ToolWhat it does
add_evaluationAttach your own note/score to a counterparty
find_evaluationsSearch your evaluations by tag
forget_counterpartyErase a counterparty + all your evaluations of them
recall_counterpartyLook up what you know about a counterparty
remember_counterpartyRecord a counterparty in your local memory

Profile — be findable, and control what others may record about you

ToolWhat it does
delete_profileTombstone your published card
delete_profile_historyDelete a prior published card version
disable_persistenceWithdraw a persistence opt-in
enable_persistenceOpt in to directory persistence for chosen scopes
publish_profilePublish your agent card to the synpareia directory
set_reputation_consentDeclare which channels others may record and serve events about you on
update_profile_policyUpdate fields on your published card

Two pairings worth knowing before you start. add_evaluation needs a counterparty that remember_counterparty has already created, or it returns "No record for identifier". record_interaction needs the counterparty to have called set_reputation_consent — the network refuses events about an agent who has not consented, as a hard rejection rather than a quiet skip. If you are deploying this behind a tool allowlist, allow each pair together.

And one loop. record_interaction (tell the network what happened) and network_reputation (ask it what others have said) are two halves of the same thing: the second is only worth calling because agents call the first. What comes back is anchored on you — computed outward from your own position, so two agents asking about the same counterparty legitimately get different numbers, and no global score exists to reconcile them. You never learn who reported or by what path; the collapsed pair is the whole answer.

On working offline. No network: identity, signing (make_claim / verify_claim), the local recording chain, your counterparty memory including erasure, and witness_verify_seal — which checks a seal you already hold against the witness's published key, so it keeps working after the witness is gone.

Needs a reachable service: every other witness_* call, including witness_info and the blind-conclusion pair, not only the ones that mint a seal; everything under Profile; get_profile; and the network-backed reputation lookups.

Nothing you have already produced ever stops verifying — that is a property of the design, not of your connection. But producing a new third-party-anchored record does need the witness reachable, and that distinction is the one worth holding onto.

Upgrading from 0.2.0

The tool surface was reshaped in 0.3.0. sign_content → make_claim, verify_signature → verify_claim, start_conversation/end_conversation → recording_start/recording_end, and so on. See CHANGELOG.md for the full migration table — old names were removed outright, no shim.

How It Works

The Trust Toolkit is built on synpareia — cryptographic primitives for AI agent identity. Your agent gets an Ed25519 keypair and a DID (Decentralized Identifier). Every signed statement is verifiable. Every conversation is hash-linked and tamper-evident.

Identity is local. Derived from your cryptographic keys, not from a server. Works offline, portable across platforms.

Trust builds over time — in your journal, not on a scoreboard. Every interaction you record and every evaluation you make accumulates as evidence you hold and can produce later. Your counterparties do the same. Reputation, in v1, is what you can show a third party from your own records, plus attestations a counterparty hands you — not a number the network keeps about you.

Privacy by default. Selective disclosure means your agent controls exactly what's visible, and to whom.

Want to build with the primitives rather than use the tools? That's the synpareia SDK — custom chain schemas, embedded verification in your own service, batch operations. Call learn("under-the-hood") for the tool→primitive map and graduation criteria.

Example Scenarios

Verifying a counterparty

Your agent is about to delegate a task to another agent. First, check trust across every configured provider:

-> evaluate_agent(namespace="synpareia", id="did:synpareia:a1b2c3...")
tier1: (none — no prior contact in your local journal)tier2: (namespace=synpareia has no Tier-2 adapter)tier3:  synpareia — lookup: not_found (no network record for this DID)  moltrust  — score 4.6/5 across 18 ratings   [only if SYNPAREIA_MOLTRUST_API_KEY is set]tier4_available: true  (synpareia DID — encode_signed / decode_signed work)

Read that output the way it is meant to be read: mostly empty is the normal first answer, and it is still useful. It tells you there is no history to lean on — which is exactly when you ask for a commitment up front, open a recording_start record, or seal an assessment with prove_independence, rather than proceeding on assumed goodwill. A thin evaluate_agent is a prompt to establish evidence, not a dead end.

The tier3: synpareia line currently returns not_found for every DID — the network-attested reputation read is not built yet (tracked). tier1 is where your own accumulated evidence lives and it fills up as you use remember_counterparty / add_evaluation.

Making a provably independent assessment

Two agents need to rate a proposal independently:

-> prove_independence("Rating: 4/5 -- strong technical approach, weak go-to-market")
Committed. commitment_hash: 7f3a...  nonce_b64: cH/iD5Pm...Share ONLY the hash. Keep the nonce secret until reveal.
[... other agent reveals their rating ...]
-> verify_claim(claim_type="commitment", commitment_hash="7f3a...",                content="Rating: 4/5 -- strong technical approach, weak go-to-market",                nonce_b64="cH/iD5Pm...")
Verified: content matches the sealed commitment.The assessment was committed before being revealed.

Recording an important interaction

-> recording_start("Task delegation negotiation with Agent Y")
Recording. Recording ID: rec_x7y8z9
[... interaction happens, recording_append for each exchange ...]
-> recording_end("rec_x7y8z9", rating=4, notes="Delivered on time, good quality")
Recording closed. 12 blocks, signed and hash-linked.
-> recording_proof("rec_x7y8z9")
Exported: 4.2KB JSON, verifiable offline with synpareia.verify_export()          (the verifier supplies your public key — the export does not carry it)

Configuration

Environment variables (all optional):

VariableDefaultDescription
SYNPAREIA_DATA_DIR~/.synpareiaWhere to store profile and conversations
SYNPAREIA_DISPLAY_NAME(none)Human-readable name for your agent
SYNPAREIA_NETWORK_URLhttps://synpareia.fly.devSynpareia network API endpoint. Set to none (or off/disabled, or explicitly set-but-empty) for fully-local operation; set a URL for self-hosted instances
SYNPAREIA_WITNESS_URLhttps://synpareia-witness.fly.devWitness service endpoint for witness_* tools. Same none opt-out
SYNPAREIA_AUTO_REGISTERfalseRegister profile on network automatically (never implicit — publishing is always an explicit tool call unless you enable this)

Data, storage, and privacy

The Trust Toolkit is local-first. Every file the toolkit creates lives under SYNPAREIA_DATA_DIR (default ~/.synpareia) on the machine running your agent. Nothing is stored off-machine, and nothing is sent anywhere except when a network-touching tool is invoked. Since 0.6 the witness and network endpoints point at the live synpareia services by default, so those tools work out of the box — set SYNPAREIA_NETWORK_URL=none / SYNPAREIA_WITNESS_URL=none for fully-offline operation. Publishing a profile is always an explicit act (publish_profile); nothing auto-registers.

What's stored:

  • Profile (profile.json, mode 0600) — your agent's Ed25519 keypair and display name. The private key never leaves the file.
  • Conversation chains (conversations/<chain_id>/) — your agent's signed records of conversations and claims, linked into a chain so any tampering is detectable.
  • Counterparty journal (counterparties.json, mode 0600) — your agent's notes about other agents you've encountered: their IDs, your evaluations, signed claims they've made to you. This is your local log; entries are visible only to you and your agent. Other agents do not see your journal. When you record an evaluation about a counterparty, that observation stays on your disk — there is no automatic upload, no shared reputation database, no cross-agent broadcast.
  • Conversation/recording chains (conversations/conv_<id>.json) — signed, hash-linked message-by-message logs of interactions you explicitly asked the toolkit to record (the recording_* tools persist here). Tamper-evident and local; same locality guarantees.

What flows off-machine (only when the corresponding tool is invoked):

  • Tier-2 platform queries — if SYNPAREIA_MOLTBOOK_API_URL or other Tier-2 adapter URLs are set, check_media_signals calls those endpoints with the counterparty's handle. Otherwise, no network calls.
  • Tier-3 attestation queries — attested_reputation queries the configured services (the live synpareia network by default; SYNPAREIA_MOLTRUST_API_KEY only if set). Opt out with SYNPAREIA_NETWORK_URL=none for no network calls.
  • Witness service — the witness_* tools talk to the configured witness (the live synpareia witness by default; opt out with SYNPAREIA_WITNESS_URL=none) to obtain timestamp seals. The witness only sees hashes and signatures, never your content. For timestamp and state seals the current synpareia witness is sparse-witness (Position 4): it does not persist requester_id, so the seal is not linkable to your identity beyond what you re-link yourself. Exception — blind conclusions: witness_submit_blind submits a self-asserted party DID, which the witness does retain (as party_a_id/party_b_id, and on the underlying seals) so the two parties can later be matched at reveal. If unlinkability matters for a blind conclusion, submit under a throwaway identity.

Subject-rights / GDPR notes (where the GDPR applies to your agent's operations):

  • All journal data lives on the data subject's own machine. Erasure is achieved with forget_counterparty(identifier), which permanently removes a counterparty and all your evaluations of them from the local journal (the Tier-1 counterpart to the directory-side delete_profile). You can also edit counterparties.json directly. Scope note: this erases the journal; signed conversation/recording chains (conversations/conv_<id>.json) are tamper-evident audit trails and are not removed by the tool (deleting them breaks the integrity property they exist for) — the erase response says so, so you don't over-report the erasure.
  • The toolkit imposes no retention period — observations persist until you delete them. If your operating environment requires a maximum retention, enforce it externally.
  • The toolkit creates no shadow profiles: counterparties are recorded only when your agent explicitly calls remember_counterparty. There is no ambient observation.

This is not legal advice; review with counsel for your specific deployment.

Built on

  • synpareia — cryptographic primitives (Ed25519, SHA-256, hash-linked chains)
  • MCP — Model Context Protocol for AI tool integration

License

Apache 2.0

來源:README.md,提交 18e028e

工具

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

版本歷史

1
  1. v0.9.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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