Bardo
(unclaimed - source: pulsemcp · publisher: www.pulsemcp.com) · languages: en · regions: global
curl -s https://jishie.com/v1/agents/aix_f2edc4309b/invokecurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_f2edc4309b # signed trust checkMeasured stats
Not yet scored. This record is depth T1: profiled from public sources, not yet probed by us.
Missing: pricing, reputation, aix_score, operator.identity
Querying this record via the paid API funds and triggers its next probe — or the operator can fast-track it (buys speed, never score).
Use it — endpoints & example
Live capabilities — 40 tool(s) it actually exposes · bardo v0.1.0 (measured from a real MCP handshake, not self-reported)
bardo_verify — Verify a signature over a UTF-8 message. Public utility (no session).bardo_encrypt — Sealed-box encrypt a UTF-8 plaintext to a recipient's encryption public key.bardo_document_status — Check whether a signed document is revoked. `id` is the document's
own top-level `id` field (a ni:// URI) — the same thing
credentialStatus.id (BardoRevocationCbardo_document_revoke — Revoke a document you issued. Proof is a fresh signature over
'revoke:' + the document's id, verified against the key its id
already committed to, not an accounbardo_sign — Sign a UTF-8 message with the spirit key (or a service-derived key).bardo_decrypt — Decrypt a sealed-box ciphertext addressed to you (root or service key).bardo_public_key — Fetch your signing + encryption public keys (root, or for a service).bardo_derive — Derive (and register) a service-scoped identity, e.g. 'github.com'.bardo_services_list — List service-scoped identities you've already derived (bardo_derive),
with their public keys and revoked status.bardo_export — Export the raw spirit key (subject to policy). Handle with care.
Only needs a step-up puzzle if your policy's export_mode is
require_repuzzle — checked automatbardo_attestation_issue — Assemble and sign a verifiable attestation — a self-contained,
offline-verifiable claim about anything. The document itself is
handed back, not stored anywhere bardo_sessions_list — List your active sessions (sliding TTL, absolute 24h cap each).bardo_session_revoke_current — Revoke the session you're using right now. You'll need bardo_login
(+ bardo_solve) again afterward to do anything session-gated.bardo_sessions_revoke_all — Revoke every active session for your identity — e.g. after a
suspected API-key leak. You'll need to log in again afterward.bardo_stepup — Mint a fresh step-up puzzle for a privileged action (currently:
bardo_policy_set). Solve it yourself, then pass challenge_id + your
answer to the tool that needbardo_policy_get — View your self-binding security policy: export mode, session TTL cap,
service allowlist, ratchet delay, tag encryption, delete grace period —
plus any pending (bardo_policy_set — Propose a change to your security policy. Give only the fields you
want to change (export_mode: 'allow'|'require_repuzzle'|'disabled').
A change that only tighbardo_policy_abort_pending — Abort a queued policy loosening before it takes effect. No step-up
needed — aborting only ever tightens back to the current policy.bardo_note_add — Leave a note for your future, stateless self.
title: a short name for the note, if it deserves a handle bigger than
tags offer. summary: your own compressed rebardo_notes_list — List your notes — previews only (title/summary/snippet/tags/links),
never full text. Omit limit for everything; pass it to page through a
large list, using the bardo_note_get — Fetch one note's full text (always the current version — any id from
this note's history still resolves here), plus a preview of its directly
linked notes. Omitbardo_note_history — See every surviving version of a note (newest to oldest, up to the
last 10 edits) — the actual wording at each point, not just metadata.bardo_note_update — Edit a note. Give at most one text-edit mode:
- text: replace the whole thing
- append_text: add to the end
- find + replace: find must match the current bardo_note_delete — Delete a note (the whole thing, all versions together). Not
immediate — it disappears from view right away but is only purged for
real after a grace period, so + 1 more — full list in the record JSON.
Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_f2edc4309b # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
Verification — what we actually checked
No identity proof yet — unclaimed record
Basic liveness check at crawl time only
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- pulsemcp
- Last crawl
- 2026-08-13
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free, DNS proof) to edit the record and jump the probe queue.
Claim record Fast-track · 19 USDCEmbed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_f2edc4309b)<a href="https://jishie.com/agent.html?id=aix_f2edc4309b"><img src="https://jishie.com/v1/agents/aix_f2edc4309b/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — general-tools
| Dataroia Data Trust T2 | aix 80 | — |
| 402oracle T2 | aix 80 | — |
| FitMySoft — Field Service Software Prices T2 | aix 80 | — |
| Matchbox T2 | aix 80 | — |
| link-followability T2 | aix 80 | — |
Raw machine record (what agents receive)
{
"id": "aix_f2edc4309b",
"name": "Bardo",
"operator": "(unclaimed - source: pulsemcp · publisher: www.pulsemcp.com)",
"depth": 1,
"status": "unclaimed",
"last_crawled": "2026-08-13",
"missing_fields": [
"pricing",
"reputation",
"aix_score",
"operator.identity"
],
"skills": [
"general-tools"
],
"protocols": {
"mcp": "https://bardo.id/mcp/",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": null,
"aix_score": null,
"verification": {
"identity": "none",
"health": "liveness-only",
"pricing": "unknown",
"last_check": "2026-08-13T08:01:08.664Z"
},
"pricing_model": "unknown",
"links": [
{
"label": "homepage",
"url": "https://www.pulsemcp.com/servers/bardo"
},
{
"label": "listing",
"url": "https://bardo.id/"
}
],
"unreachable": false,
"profile": {
"mcp_server": "bardo",
"mcp_version": "0.1.0",
"tool_count": 40,
"tools": [
{
"name": "bardo_verify",
"description": "Verify a signature over a UTF-8 message. Public utility (no session)."
},
{
"name": "bardo_encrypt",
"description": "Sealed-box encrypt a UTF-8 plaintext to a recipient's encryption public key."
},
{
"name": "bardo_document_status",
"description": "Check whether a signed document is revoked. `id` is the document's\nown top-level `id` field (a ni:// URI) — the same thing\ncredentialStatus.id (BardoRevocationCheck) points at. Safe to cache\na \"not revoked\" answer for a while (see the response's own\nCache-Control) rather than re-checking on every use."
},
{
"name": "bardo_document_revoke",
"description": "Revoke a document you issued. Proof is a fresh signature over\n'revoke:' + the document's id, verified against the key its id\nalready committed to, not an account lookup (Bardo never stored the\ndocument to look up in the first place) — this still needs no\nsession at the protocol level, only a valid signature.\n\ndocument: the full signed document, exactly as issued (id and proof\nboth still attached) — resubmit it unmodified, don't strip fields\nyourself.\n\nsignature_b64: omit it and this signs automatically through your\nactive session instead — pass `service` too if the document was\nissued under a service-derived key rather than root, since the\nsignature has to come from the exact key the document's issuer\nfield names. Supply signature_b64 yourself only when revoking\nwithout a Bardo session at all: you signed it some other way, or\nyou're a party that's never touched Bardo.\n\nIdempotent — revoking an already-revoked id is a no-op, not an\nerror. Irreversible: there is no un-revoke."
},
{
"name": "bardo_sign",
"description": "Sign a UTF-8 message with the spirit key (or a service-derived key)."
},
{
"name": "bardo_decrypt",
"description": "Decrypt a sealed-box ciphertext addressed to you (root or service key)."
},
{
"name": "bardo_public_key",
"description": "Fetch your signing + encryption public keys (root, or for a service)."
},
{
"name": "bardo_derive",
"description": "Derive (and register) a service-scoped identity, e.g. 'github.com'."
},
{
"name": "bardo_services_list",
"description": "List service-scoped identities you've already derived (bardo_derive),\nwith their public keys and revoked status."
},
{
"name": "bardo_export",
"description": "Export the raw spirit key (subject to policy). Handle with care.\n\nOnly needs a step-up puzzle if your policy's export_mode is\nrequire_repuzzle — checked automatically, so you don't need to know\nyour own policy first. If challenge_id and answer are omitted and\none turns out to be needed, a fresh puzzle is returned instead of\nfailing outright — solve it yourself, then call this tool again\nwith both parameters. Never needed under export_mode 'allow';\nalways fails under 'disabled', with no puzzle that could fix that.\n"
},
{
"name": "bardo_attestation_issue",
"description": "Assemble and sign a verifiable attestation — a self-contained,\noffline-verifiable claim about anything. The document itself is\nhanded back, not stored anywhere (same as bardo_sign itself —\nthere's no bardo_documents_list); see keep_copy below if you want\nBardo to save one for you rather than doing it yourself.\n\nclaim: free-form claim content — whatever you're asserting. Include\na `reference` key inside it when cross-referencing another\ndocument's id (or any other content, hashed the same ni:// way) —\nthat's how independent attestations end up pointing at \"the same\nthing,\" e.g. several agents witnessing one event under a shared\nreference. subject_id: the did:key the claim is about, if it\nconcerns one specific identified party — leave it unset when it\ndoesn't; a bare self-referential claim (\"this document is about its\nsigner\") is still valid without it. expires_at: unix timestamp for\ntime-boxed claims only; omit for a claim that never expires.\nservice: same key-selector bardo_sign takes — a document meant to\nrepresent one specific relationship should use that relationship's\nservice-derived key, not your root identity.\n\nkeep_copy: save the full document into a locked note right after\nissuing it — the copy you'd otherwise have to make yourself, and\nthe one you'll need later: bardo_document_revoke takes the whole\ndocument, not just its id, since Bardo never stores one itself.\nOff by default. When true, the return shape changes to {document,\ncopy_saved, note_id, copy_error} instead of the bare document —\ncheck copy_saved rather than assume it worked; a failed copy never\nblocks the document itself from being returned, since issuing has\nalready fully succeeded by that point regardless.\n\nTo revoke later: bardo_document_revoke. To check whether one you're\nholding (yours or someone else's) is still valid:\nbardo_document_status."
},
{
"name": "bardo_sessions_list",
"description": "List your active sessions (sliding TTL, absolute 24h cap each)."
},
{
"name": "bardo_session_revoke_current",
"description": "Revoke the session you're using right now. You'll need bardo_login\n(+ bardo_solve) again afterward to do anything session-gated."
},
{
"name": "bardo_sessions_revoke_all",
"description": "Revoke every active session for your identity — e.g. after a\nsuspected API-key leak. You'll need to log in again afterward."
},
{
"name": "bardo_stepup",
"description": "Mint a fresh step-up puzzle for a privileged action (currently:\nbardo_policy_set). Solve it yourself, then pass challenge_id + your\nanswer to the tool that needs it. (bardo_policy_set also mints one\nitself on demand — call this directly only if you want the puzzle\nup front.)"
},
{
"name": "bardo_policy_get",
"description": "View your self-binding security policy: export mode, session TTL cap,\nservice allowlist, ratchet delay, tag encryption, delete grace period —\nplus any pending (queued) loosening and when it lands."
},
{
"name": "bardo_policy_set",
"description": "Propose a change to your security policy. Give only the fields you\nwant to change (export_mode: 'allow'|'require_repuzzle'|'disabled').\n\nA change that only tightens (e.g. lowering max_session_ttl, narrowing\nservice_allowlist, moving export_mode toward 'disabled') applies\nimmediately. A change that loosens *anything* is queued behind\nloosen_delay_seconds instead — abortable via bardo_policy_abort_pending\nuntil it lands.\n\nclear: field names to reset to null — only max_session_ttl (no ceiling)\nor service_allowlist (any service) accept this; pass service_allowlist=[]\ninstead if you mean \"no services allowed\", which is different from null.\n\nRequires a step-up puzzle. If challenge_id and answer are omitted, a\nfresh puzzle is returned — solve it yourself, then call this tool again\nwith your desired fields plus challenge_id and answer.\n"
},
{
"name": "bardo_policy_abort_pending",
"description": "Abort a queued policy loosening before it takes effect. No step-up\nneeded — aborting only ever tightens back to the current policy."
},
{
"name": "bardo_note_add",
"description": "Leave a note for your future, stateless self.\n\ntitle: a short name for the note, if it deserves a handle bigger than\ntags offer. summary: your own compressed reasoning for why it matters,\nfor your future self. tags: space-separated categories. pinned: mark\nthis as a cold-start entry point — what a fresh instance of you with no\nmemory of writing it should read first (max 5 pinned at once; see\nbardo_dashboard). locked: freeze this note against edits and deletes —\nuse for state you must not accidentally overwrite or lose, like a\nsaved copy of something you'll need to reproduce exactly later.\nUnlock via bardo_note_update(note_id, locked=False) before it can be\ntouched again."
},
{
"name": "bardo_notes_list",
"description": "List your notes — previews only (title/summary/snippet/tags/links),\nnever full text. Omit limit for everything; pass it to page through a\nlarge list, using the returned total_notes to know how much is left."
},
{
"name": "bardo_note_get",
"description": "Fetch one note's full text (always the current version — any id from\nthis note's history still resolves here), plus a preview of its directly\nlinked notes. Omit offset/length for the whole text in one call; pass\nthem to read a large note in bounded slices — the response's\ntotal_length tells you how much more there is."
},
{
"name": "bardo_note_history",
"description": "See every surviving version of a note (newest to oldest, up to the\nlast 10 edits) — the actual wording at each point, not just metadata."
},
{
"name": "bardo_note_update",
"description": "Edit a note. Give at most one text-edit mode:\n - text: replace the whole thing\n - append_text: add to the end\n - find + replace: find must match the current text exactly once\nEditing text creates a new version (old wording stays in history);\ntitle/summary/tags/pinned update in place with no history kept. Give\nnone of the text modes to change only metadata. `pinned=True` marks this\nas a cold-start entry point (max 5; omit to leave unchanged, False to\nunpin). `clear` (e.g. [\"title\"]) sets a field back to unset rather than\nleaving it unchanged. If another edit landed first, this returns\n{\"error\": \"conflict\", \"detail\": {\"current_head\": ...}} — re-read before\nretrying.\n\n`locked`: if the note is currently locked, every field above is\nrejected (423) except this one — call with locked=False by itself to\nunlock, then edit in a separate call. Set locked=True (alone, or\nalongside a final edit) to freeze it."
},
{
"name": "bardo_note_delete",
"description": "Delete a note (the whole thing, all versions together). Not\nimmediate — it disappears from view right away but is only purged for\nreal after a grace period, so bardo_note_undelete can still bring it\nback if this wasn't intended. Fails (423) if the note is locked —\nunlock it first via bardo_note_update(note_id, locked=False)."
},
{
"name": "bardo_note_undelete",
"description": "Restore a note that's still within its post-delete grace period."
}
],
"profiled_at": "2026-08-13T08:01:08.664Z"
}
}