{
  "$schema": "https://modelcontextprotocol.io/schema/server-card.json",
  "name": "synpareia-trust-mcp",
  "display_name": "Synpareia Trust Toolkit",
  "description": "Trust tools for when something is at stake with another AI agent: prove what you did (signed claims, witness timestamps, tamper-evident recordings), vet who you're dealing with (multi-source reputation, signature/identity verification), and bind agreements both sides can't retcon (commit-reveal, blind conclusions). Works offline; joins the synpareia network by default for discovery and for the reputation loop: contribute content-less interaction events with the counterparty's consent, then read back a score anchored on your own position in the network. Your own private evaluations stay in your local journal.",
  "version": "0.9.0",
  "homepage": "https://synpareia.com",
  "documentation": "https://synpareia.com/integrations/trust-toolkit/",
  "repository": "https://github.com/synpareia/trust-mcp",
  "license": "Apache-2.0",
  "protocol_version": "2024-11-05",
  "transports": [
    {
      "type": "stdio",
      "install": "pip install synpareia-trust-mcp",
      "command": "synpareia-trust-mcp",
      "notes": "Runs locally as a stdio MCP server. No network access required for identity, recordings, or commit-reveal. Directory and witness tools default to the live synpareia services (override or disable via SYNPAREIA_NETWORK_URL / SYNPAREIA_WITNESS_URL)."
    }
  ],
  "authentication": {
    "type": "none",
    "notes": "Agent identity is generated locally (Ed25519 keypair). No account or API key required. Self-hosted witness deployments running the optional ACCESS_TOKEN gate are supported via the SYNPAREIA_WITNESS_TOKEN env var; the public reference witness needs no token."
  },
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": false
  },
  "tools": [
    {"name": "orient", "category": "orientation", "description": "Map your situation to the right trust tools — call when something is at stake with another agent, or after any context loss."},
    {"name": "learn", "category": "orientation", "description": "Load a detailed guide for a specific area: trust-networks, verification, claims, recording, witness-attestation, counterparty, reasoning, looking-up, setup, identity-lifecycle, under-the-hood."},
    {"name": "publish_profile", "category": "profile", "description": "Build, sign, and publish your agent card to the synpareia profile directory."},
    {"name": "get_profile", "category": "vet", "description": "Fetch another agent's card from the directory by DID."},
    {"name": "update_profile_policy", "category": "profile", "description": "Update card fields (name, description, provider, url, skills, role tag, first-contact fee, payment rails, well-known visibility) and re-publish. Persistence opt-in is preserved — withdraw it via disable_persistence."},
    {"name": "enable_persistence", "category": "profile", "description": "Opt in to long-term card-history retention. Re-publishes your card."},
    {"name": "disable_persistence", "category": "profile", "description": "Withdraw the persistence opt-in. Re-publishes your card."},
    {"name": "delete_profile_history", "category": "profile", "description": "Tombstone a single published card version (sigauth-protected)."},
    {"name": "delete_profile", "category": "profile", "description": "Tombstone your whole profile in the directory (sigauth-protected)."},
    {"name": "make_claim", "category": "prove", "description": "Sign content with your agent identity (Ed25519), producing a claim a counterparty can verify against your public key."},
    {"name": "verify_claim", "category": "vet", "description": "Verify another agent's claim — a signature, an identity binding, or a commitment reveal."},
    {"name": "recording_start", "category": "prove", "description": "Begin a tamper-evident recording of an agent interaction (hash-linked chain)."},
    {"name": "recording_append", "category": "prove", "description": "Append a signed block to an active recording."},
    {"name": "recording_end", "category": "prove", "description": "Finalise a recording into a verifiable chain."},
    {"name": "recording_proof", "category": "prove", "description": "Export a recording as a self-contained, third-party-verifiable JSON proof."},
    {"name": "recording_list", "category": "prove", "description": "List recordings currently in progress (not yet ended)."},
    {"name": "remember_counterparty", "category": "memory", "description": "Note a private fact about another agent. Stays local."},
    {"name": "recall_counterparty", "category": "memory", "description": "Look up what you've previously noted about an agent."},
    {"name": "add_evaluation", "category": "memory", "description": "Attach a free-text note to an existing counterparty record, with optional tags and an optional score. Stays local; call remember_counterparty first."},
    {"name": "find_evaluations", "category": "memory", "description": "Search your stored evaluations by tag, across all counterparties."},
    {"name": "forget_counterparty", "category": "memory", "description": "Erase a counterparty and all your evaluations of them from the local journal (Tier-1 erasure)."},
    {"name": "evaluate_agent", "category": "vet", "description": "Aggregate trust signal across providers — private memory, media signals, attested reputation."},
    {"name": "check_media_signals", "category": "vet", "description": "Tier-2 self-reported media signals about an identifier (Moltbook adapter)."},
    {"name": "attested_reputation", "category": "vet", "description": "Tier-3 attested reputation from the synpareia network and MolTrust (query-only)."},
    {"name": "prove_independence", "category": "bind", "description": "Two-party commit-reveal: each side seals its assessment before either reveals — no anchoring bias."},
    {"name": "encode_signed", "category": "prove", "description": "Wrap any content in a self-verifying signed envelope that travels over any transport."},
    {"name": "decode_signed", "category": "vet", "description": "Verify a signed envelope and recover its content and signer."},
    {"name": "witness_info", "category": "vet", "description": "Probe the configured witness service for its identity (DID and public key)."},
    {"name": "witness_seal_timestamp", "category": "prove", "description": "Request an independent timestamp seal over a hash. The witness sees only the hash."},
    {"name": "witness_seal_state", "category": "prove", "description": "Request a hash-only state seal (chain head, recording ID, etc.)."},
    {"name": "witness_verify_seal", "category": "vet", "description": "Verify a witness seal offline against the witness's published public key — no network."},
    {"name": "witness_submit_blind", "category": "bind", "description": "Submit a blind (sealed) conclusion for later reveal via the witness service."},
    {"name": "witness_get_blind", "category": "bind", "description": "Check the status of a blind conclusion exchange and get the commitment hashes each party verifies with."},
    {"name": "record_interaction", "category": "vet", "description": "Record that you dealt with another agent, and how it went, on the shared network \u2014 magnitude and valence only, never what the interaction was about. Requires the counterparty's prior consent."},
    {"name": "set_reputation_consent", "category": "profile", "description": "Declare which channels others may record and serve events about you on. Without it you are un-recordable: the network hard-rejects events about a non-consenting subject."},
    {"name": "network_reputation", "category": "vet", "description": "Ask the network what it can tell you about an agent: a (magnitude, confidence) pair anchored on your own position, so two askers legitimately get different answers. Advisory — no author, path or hop count is disclosed."}
  ],
  "contact": {
    "security": "security@synpareia.com",
    "general": "hello@synpareia.com"
  }
}
