Synpareia Trust Toolkit
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNPAREIA_DATA_DIR | No | Where to store profile and conversations | ~/.synpareia |
| SYNPAREIA_NETWORK_URL | No | Synpareia network API endpoint. Set to 'none' for fully-local operation. | https://synpareia.fly.dev |
| SYNPAREIA_WITNESS_URL | No | Witness service endpoint. Set to 'none' to opt out. | https://synpareia-witness.fly.dev |
| SYNPAREIA_DISPLAY_NAME | No | Human-readable name for your agent | |
| SYNPAREIA_AUTO_REGISTER | No | Auto-register profile on network (never implicit unless enabled). | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| attested_reputationA | Query signed reputation for a counterparty from attestation networks (Tier 3).
Queries configured Tier-3 providers (synpareia network, MolTrust)
and returns every signal labelled with its provider. Absent config
returns a structured Returns |
| prove_independenceA | Seal your assessment before seeing others'. Share ONLY commitment_hash. Keep nonce_b64 secret until reveal. Verify with verify_claim(claim_type='commitment', ...). |
| publish_profileA | Build, sign, and publish your agent card to the directory. Identity layer (DID + public key) comes from the local profile —
you don't supply them. Other fields are operator-controlled.
Returns Persistence opt-in is set separately via Requires |
| get_profileA | Fetch a counterparty's published agent card by DID. Returns the existence-layer view |
| update_profile_policyA | Update one or more card fields and re-publish. Loads the last-published card from disk, applies the supplied
overrides, signs, publishes. Fields not supplied are preserved.
Persistence opt-in is preserved across updates — withdraw it
explicitly via Returns |
| record_interactionA | Record that you dealt with another agent, and optionally how it went. This writes to the shared network, not your local journal. Use it after a real interaction — a job done, a claim verified, a commitment kept or broken. This tool records no content. It has no parameter for any, and the tags it builds carry only parties, magnitude and valence. That now holds at the network level too, not just for this tool. The v1 tag
allowlist's one free-ish key, The honest residual: a slug is short, but it is still chosen by the author, so a
careless one can say more than it should. The bound makes content-shaped values
impossible, not careless ones — this tool sidesteps that entirely by emitting no
If the counterparty has not opted in, this fails and that is not an
error in your request. Agents must grant standing consent (via
Requires |
| network_reputationA | Ask the network what it can tell you about another agent. The other half of You get two, and they are read together:
Check The answer is yours specifically. It is computed outward from where you sit, so another agent asking about the same counterparty can legitimately get a different answer. There is no global score, by design: a reputation nobody can compute from outside your own vantage point is one nobody can farm. You get no names. Not who reported, not through whom it reached you, not how many hops away. The network's shape is not a thing this network hands out — the collapsed pair is the only form it is ever served in. Advisory. Nothing here ranks, thresholds or decides. It is one input to
your judgement; An unknown agent comes back Requires |
| set_reputation_consentA | Declare which channels others may record — and serve — events about you on. Without this, you are un-recordable. The network refuses any event whose data-subject has not consented: a counterparty trying to attest something about you gets a hard rejection, not a quiet skip. Publishing a card is not consent; this is. Two independent axes, because they are two different decisions:
Granting record-without-deliver is a real and useful middle state: counterparties build a private picture, strangers read nothing. Granting deliver-without-record does nothing — there is nothing to serve. Common channels: Withdrawal is prospective: removing a channel stops future un-co-signed recording, and does not erase what was already recorded under a valid grant. Use the erasure tools for that. Omitting an argument leaves that axis unchanged. Pass Requires a previously-published card on disk. |
| enable_persistenceA | Opt into non-erasure persistence and re-publish.
The opt-in is recorded with the current timestamp and re-published
in the next card. Withdrawal via Requires a previously-published card on disk. |
| disable_persistenceA | Withdraw the persistence opt-in and re-publish. Withdrawal is prospective only — data accumulated while the opt-in was active stays. After withdrawal, future erasure calls succeed. Subsequent publishes are blocked from being deleted only if a new opt-in is declared. |
| delete_profile_historyA | Tombstone a single card-version row in the operator's history. Returns |
| delete_profileA | Cascade-tombstone every history row for the operator's profile. Same persistence-opt-in semantics as
Local cached card stays on disk for inspection (the file holds
what was last published) but is annotated with
|
| make_claimA | Sign content with your private key, creating a verifiable claim. The result always contains the signature and the verification instructions a third party needs. If |
| verify_claimA | Verify a claim. Types: 'signature' (content+sig+key), 'identity' (did+key), 'commitment' (hash+content+nonce). For 'identity', the DID may be passed as either |
| check_media_signalsA | Query media-platform reputation signals for a counterparty (Tier 2).
v1 ships with the Moltbook adapter. Other namespaces return a
Signals are self-reported by the platform and labelled with
|
| orientB | Map your situation to the right trust tools. Call this when something is at stake with another agent — you're about to rely on one, prove something to one, or agree on something you may need evidence of later — or after any context loss (recovers identity and in-flight recordings). |
| learnA | Load a detailed guide for one area, or the recipe for one interaction Form. Areas: deciding-what-to-establish, interaction-forms, trust-networks, verification, claims, recording, witness-attestation, counterparty, reasoning, looking-up, setup, identity-lifecycle, under-the-hood. Forms are keyed 'form-*' and indexed by learn('interaction-forms'). |
| remember_counterpartyA | Create or update a Tier-1 local record for a counterparty.
Returns the record dict including the local |
| recall_counterpartyA | Look up a counterparty in the Tier-1 local journal (read-only). Accepts either a record identifier ( Zero matches returns an empty list; no error. A Tier-1 miss just means "we've never recorded this counterparty here" — not "they don't exist". |
| add_evaluationA | Attach an agent-written evaluation to an existing counterparty record.
|
| forget_counterpartyA | Erase a counterparty and all your evaluations of them from the local journal. Permanently removes the Tier-1 record matched by Scope — read this before reporting an erasure to a data subject: this
erases the journal record only. Signed conversation/recording chains
(stored in Erasure is idempotent: forgetting an identifier that isn't (or is no
longer) in the journal returns |
| find_evaluationsA | Search Tier-1 evaluations across all counterparties by tag. Returns every matching evaluation annotated with its record's
Useful patterns: |
| recording_startA | Begin a tamper-evident recording of an interaction. Creates a hash-linked chain rooted at your identity. Subsequent
Returns a Pass |
| recording_appendA | Append a signed, hash-linked block to an active recording. Each block is signed with your identity key and hash-linked to the previous block, so tampering with any earlier block breaks the chain.
|
| recording_endA | Finalize a recording and persist the chain. After this call the chain is closed — no further Optional |
| recording_proofA | Export a recording as an independently verifiable proof bundle. Returns the full hash-linked chain as JSON. Anyone with the proof and the public keys of the signing parties can verify it offline with no further calls to you or this toolkit: Safe to share the proof bundle — it contains only what you recorded plus signatures. It does not contain your private key. |
| recording_listA | List recordings that are currently in progress (not yet ended). A lightweight peek — useful if you've lost track of an in-flight
|
| encode_signedA | Wrap Produces a self-contained string that any recipient -- even one that
has never seen your DID before -- can verify with Returns |
| decode_signedA | Unwrap a synpareia-signed envelope (Tier 4). Returns a structured dict -- never raises. Shape: {content, signer_did, valid, verified_at, synpareia_validated}
|
| evaluate_agentA | Evaluate a counterparty across every configured tier. Pass
Returns |
| witness_infoA | Fetch the witness service's identity and public key. The witness is an independent third party that signs attestations
(timestamp seals, state seals, blind conclusions). Retrieve its
public key here once, then use it with Returns |
| witness_seal_timestampA | Ask the witness to timestamp a block — proof it existed at this moment. Pass the block's content hash (hex). The witness signs the hash with
its private key and returns a Use this to create evidence that a decision, claim, or observation predates some later event — a cryptographic "I knew this by T" signed by an independent third party, not by you. |
| witness_seal_stateA | Checkpoint a chain's current state with the witness. Pass the chain id and its current head hash (hex). The witness signs the pair together, creating proof that the chain was in this exact state at the witnessed time. Useful for proving that a chain has not been retconned: if anyone later claims "your chain never contained X", a state seal whose head commits to the block containing X refutes them. |
| witness_verify_sealA | Verify a witness seal offline — no calls to the witness service. Easiest call: feed the fields from a For timestamp seals: pass Returns |
| witness_submit_blindA | Submit your committed assessment to a blind conclusion exchange. A "blind conclusion" lets two parties independently commit to assessments (reviews, votes, estimates) before seeing each other's — evidence that neither party's answer was anchored by the other's. Flow:
Note: the witness does not verify the requester identity submitted with a commitment — identity binding is the caller's self-asserted claim in v1 (until Phase-2 anonymous credentials), so verify the counterparty's reveal against their known key, not the slot label. |
| witness_get_blindA | Check the status of a blind conclusion exchange. Pair to Note: party identities on a conclusion are self-asserted in v1 — the witness does not verify who occupies each slot. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/synpareia/trust-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server