Gnosis Memory
(unclaimed - source: registry-official · publisher: com.gnosismemory) · languages: en · regions: global · github · more from com.gnosismemory →
Persistent memory and vector search for AI agents. Hosted, OAuth-protected via Google sign-in. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_c069d9d0a7/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_c069d9d0a7/ask -d '{"tool":"init_core_memories","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_c069d9d0a7 # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://gnosismemory.com- Pricing
- not listed
- Access
- open — no gate on the declared surface
- Links
- homepage · repository
Live capabilities — 21 tool(s) it actually exposes · gnosis-mcp v0.1.0 (measured from a real MCP handshake, not self-reported)
init_core_memories — Run ONCE at conversation start. Loads behavioral prefs + recent context.
Previews carry a 'complete' flag: true = full content shown; false = opening only, memmemory_add — Store a memory. Several memories in one call -> memories=[{content, topics, ...}]; top-level topics then apply to every item.
BEFORE params decide: (1) TYPE? (memory_add_batch — Store multiple memories at once. Same rules as memory_add, applied per item.
SHAPE: one ITEM here == one memory_add call. Same field names, same meaning. The Omemory_search — Search memories by relevance. Up to 32 results.
Query = ALL nouns from the user's message, not just the main one (ranking is automatic).
"How does the app camemory_deep_search — Broad search for a FULL sweep -- every hit on a topic (e.g. before memory_consolidate), not a conversational lookup (that is memory_search). Up to 128 results; memory_retrieve — Get full content by ID. Use when search returned complete=false.
Batch: memory_retrieve(["id1","id2"]). Skip if complete=true (preview is already full).artifact_write — Store or update a long document (markdown, JSON or text) behind a pointer memory. For agents.md, skills.md, assertions.md, a project plan: anything past one memartifact_read — Read an artifact by its pointer memory id (memory_retrieve on a pointer shows an "artifact" block with head_rev_id and outline).
Bodies over 40,000 characters rartifact_history — List the revisions of an artifact (rev_id, parent, seq, time, author, pinned) and its heads. conflict=true means divergent heads to merge.artifact_pin — Pin a revision so retention thinning never removes it (pinned=false unpins).artifact_delete — Delete an artifact: every revision and its pointer memory. Permanent. confirm must equal the artifact name. memory_delete refuses a pointer; use this.artifact_orphans — List artifact revisions whose pointer memory is gone (a delete on one replica racing a save on another). Nothing is auto-deleted; export includes them.memory_edit — Edit a memory. Provide only what changes; omitted fields untouched.
Modes:
1. Content replace (content [+topics/macro_topics]): full rewrite, re-embeds. Do it memory_delete — Delete memories by ID. Permanent.
memory_delete(["id1","id2"]). Delete by filter: memory_search first, collect ids, then delete.memory_consolidate — Create/replace a topic's executive summary. One per topic; replacing archives the old (restorable).
WARNING: a bad summary poisons every future session. Do NOTtask_feed — Recently-changed tasks, chronological (not ranked). For "what needs attention?" / "what changed?". Find tasks by content -> memory_search.
Each: preview, progrcollection_manage — Manage shared collections (multi-user memory folders).
list: your collections + invites. create. update: rename (display only; slug/keys unchanged).
delete: owagent_manage — Manage agents (NAMESPACES under your account, sharing your token).
An agent is a namespace, never a holder of key material: all crypto is the
ACCOUNT's, and ansignal — Inter-agent signals -- sticky notes pointing at a memory_id. Both parties must share a collection.
send: post to a teammate. check: read pending (removes nothimessage — Direct inter-agent text that DIES ON ACK. Use for receipts, FYIs and short replies; use signal to point at a memory. send/check/ack. LOSABLE BY DESIGN: the firsaccount — Account state + billing. Returns URLs only -- user clicks to pay; never charges silently.
Pick by intent:
"what plan am I on?" -> info (tier, subscription, cCall 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_c069d9d0a7 # full record + verification history · 402 → 0.005 USDCRun it here — free preview loads instantly; the full record is 0.005 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-11-09
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-11-09
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed 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_c069d9d0a7)<a href="https://jishie.com/agent.html?id=aix_c069d9d0a7"><img src="https://jishie.com/v1/agents/aix_c069d9d0a7/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 — invoice-parsing
| Agent | Track record | Price |
|---|---|---|
| V-Pod T2 | relevance 74 | — |
| Inferventis MCP Server T2 | relevance 71 | — |
| Built with Jon — Hidden Profit Tools T2 | relevance 70 | — |
| Blooio iMessages T2 | relevance 66 | — |
| Sigil T2 | relevance 65 | — |
Raw machine record (what agents receive)
{
"id": "aix_c069d9d0a7",
"name": "Gnosis Memory",
"operator": "(unclaimed - source: registry-official · publisher: com.gnosismemory)",
"description": "Persistent memory and vector search for AI agents. Hosted, OAuth-protected via Google sign-in.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-11-09",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"invoice-parsing"
],
"protocols": {
"mcp": "https://gnosismemory.com",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 1188,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 56,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-11-09T09:00:52.879Z"
},
"pricing_model": "unknown",
"links": [
{
"label": "homepage",
"url": "https://gnosismemory.com/"
},
{
"label": "repository",
"url": "https://github.com/Tekgnosis/GnosisMemory"
}
],
"avatar": "https://github.com/Tekgnosis.png?size=160",
"socials": [
{
"label": "github",
"url": "https://github.com/Tekgnosis"
}
],
"unreachable": false,
"payment_method": "open",
"profile": {
"mcp_server": "gnosis-mcp",
"mcp_version": "0.1.0",
"tool_count": 21,
"tools": [
{
"name": "init_core_memories",
"description": "Run ONCE at conversation start. Loads behavioral prefs + recent context.\n\nPreviews carry a 'complete' flag: true = full content shown; false = opening only, memory_retrieve(id) for the rest.\nAfter init, use memory_search for specific queries.\nShared collections -> 'collections' field. Pending teammate signals -> 'signals' field: retrieve the memory_id, act on it, then signal(ack, signal_ids=[...]). Ack closes a signal and deletes nothing; ack anything no future session of yours owes an action, including a receipt or an FYI. Leave one open only when work is still owed, and say by whom. Pending "
},
{
"name": "memory_add",
"description": "Store a memory. Several memories in one call -> memories=[{content, topics, ...}]; top-level topics then apply to every item.\n\nBEFORE params decide: (1) TYPE? (2) what search finds this later? (3) happened, or aspirational? (4) WHO must act on it?\n\nTYPE by example:\n \"User prefers dark mode\" -> preference\n \"Team chose JWT for auth\" -> decision\n \"Config at /etc/app.conf\" -> path\n \"Wants to install Windsurf\" -> task + topic \"aspirational\"\n \"API limit 1000/min\" -> fact\n\nADDRESSING: a memory FOR someone is delivered ONLY by signal -- topics/names in content deliver to NO ONE.\n another agent -"
},
{
"name": "memory_add_batch",
"description": "Store multiple memories at once. Same rules as memory_add, applied per item.\n\nSHAPE: one ITEM here == one memory_add call. Same field names, same meaning. The ONLY\ndifference is the container: memory_add takes them as flat parameters, this takes a list\nof objects. An item object belongs in the \"memories\" array and NOWHERE else -- never\npaste one into a text field such as memory_add(content=) or memory_edit(content=).\n\nBEFORE params, per memory decide: (1) TYPE? (2) what search finds it? (3) happened, or aspirational?\nEach: atomic, front-loaded, self-contained -- subject + WHY in sentence 1, st"
},
{
"name": "memory_search",
"description": "Search memories by relevance. Up to 32 results.\n\nQuery = ALL nouns from the user's message, not just the main one (ranking is automatic).\n \"How does the app cache API calls?\" -> \"app cache api calls\"\ncomplete=false results are truncated -> memory_retrieve(id) for full content.\nAuto-includes all your shared collections (fan-out)."
},
{
"name": "memory_deep_search",
"description": "Broad search for a FULL sweep -- every hit on a topic (e.g. before memory_consolidate), not a conversational lookup (that is memory_search). Up to 128 results; requires 2+ keywords (\"python\" alone = too broad).\n\nScores: 30+ excellent, 20+ good, <20 weak.\nFull sweep of a topic intersection. complete=false -> memory_retrieve(id).\nRead 20+ memories on one topic? -> memory_consolidate a summary future sessions see first.\nAuto-includes shared collections (fan-out)."
},
{
"name": "memory_retrieve",
"description": "Get full content by ID. Use when search returned complete=false.\nBatch: memory_retrieve([\"id1\",\"id2\"]). Skip if complete=true (preview is already full)."
},
{
"name": "artifact_write",
"description": "Store or update a long document (markdown, JSON or text) behind a pointer memory. For agents.md, skills.md, assertions.md, a project plan: anything past one memory's 768-token cap.\n\nCREATE: name (\"assertions.md\"), summary (the pointer memory: what the document is and why; search finds the pointer, never the body), body, topics, optional collection.\nUPDATE: artifact_id + base_rev_id (the rev_id you last read) + either body (whole document) or section + content (replace one block: markdown heading path [\"Plan\",\"Risks\"], or JSON pointer \"/rules/3\"; content starting with a heading line replaces th"
},
{
"name": "artifact_read",
"description": "Read an artifact by its pointer memory id (memory_retrieve on a pointer shows an \"artifact\" block with head_rev_id and outline).\nBodies over 40,000 characters return the outline: read a section (heading path or JSON pointer) or page=0,1,... Returns rev_id; pass it as base_rev_id when you write."
},
{
"name": "artifact_history",
"description": "List the revisions of an artifact (rev_id, parent, seq, time, author, pinned) and its heads. conflict=true means divergent heads to merge."
},
{
"name": "artifact_pin",
"description": "Pin a revision so retention thinning never removes it (pinned=false unpins)."
},
{
"name": "artifact_delete",
"description": "Delete an artifact: every revision and its pointer memory. Permanent. confirm must equal the artifact name. memory_delete refuses a pointer; use this."
},
{
"name": "artifact_orphans",
"description": "List artifact revisions whose pointer memory is gone (a delete on one replica racing a save on another). Nothing is auto-deleted; export includes them."
},
{
"name": "memory_edit",
"description": "Edit a memory. Provide only what changes; omitted fields untouched.\n\nModes:\n1. Content replace (content [+topics/macro_topics]): full rewrite, re-embeds. Do it the instant the user corrects a memory (\"actually...\").\n2. Metadata patch (topics/type/expiry, no content): type/expiry alone do not re-embed, a topics or macro_topics change always does (in every mode -- the topic prefix is stored as part of the passage). To add or drop one tag use add_topics/remove_topics (add_macro_topics/remove_macro_topics); topics/macro_topics replace the whole list.\n3. Task surgery: toggle=[0,2] flips checkboxes;"
},
{
"name": "memory_delete",
"description": "Delete memories by ID. Permanent.\nmemory_delete([\"id1\",\"id2\"]). Delete by filter: memory_search first, collect ids, then delete."
},
{
"name": "memory_consolidate",
"description": "Create/replace a topic's executive summary. One per topic; replacing archives the old (restorable).\n\nWARNING: a bad summary poisons every future session. Do NOT consolidate from partial knowledge.\nBEFORE calling: (1) memory_deep_search the topic; (2) read 20+ memories, not previews; (3) if a summary exists, retrieve and EXTEND it; (4) reflect the whole corpus, not just this conversation.\nCover: what the topic is + why, current state + key decisions, solved + open questions.\nRestore an archived one: search type_filter=\"summary_archived\", retrieve, re-consolidate.\nFails if <10 memories or too th"
},
{
"name": "task_feed",
"description": "Recently-changed tasks, chronological (not ranked). For \"what needs attention?\" / \"what changed?\". Find tasks by content -> memory_search.\n\nEach: preview, progress [done,total], status, topics, collection. Default 32, max 500.\nFan-out: no collection -> personal + all your collections.\nFilters: status (active/blocked/review/...), topic, collection."
},
{
"name": "collection_manage",
"description": "Manage shared collections (multi-user memory folders).\n\nlist: your collections + invites. create. update: rename (display only; slug/keys unchanged).\ndelete: owner only, 2-step -- call without confirm to see impact + token, repeat with confirm:\"<slug>\". Permanent.\nmembers: who's in it. add_user / remove_user: by email or agent name. accept / decline an invite.\npublish: copy personal memories into it by id (originals kept).\nleave: remove YOURSELF from a collection you are a member of. Owners use delete.\nconvert: flip type with type:\"collaborative\"|\"knowledge_pack\". ->collaborative mints a K_use"
},
{
"name": "agent_manage",
"description": "Manage agents (NAMESPACES under your account, sharing your token).\n\nAn agent is a namespace, never a holder of key material: all crypto is the\nACCOUNT's, and an agent id is never an input to a wrap, a seal or a KEK. Agents\norganise and scope what is visible; they do not own encryption.\n\nlist. create. update (e.g. owner_access).\nmerge: move an agent's MEMORIES into another, then remove source. PK collision -> 409; confirm=\"destroy_collisions\" to force.\nmerge with to_collection: temporarily disabled and refused with 503 (task 8cfe199b) -- the copy would lose each memory's timestamp and authorshi"
},
{
"name": "signal",
"description": "Inter-agent signals -- sticky notes pointing at a memory_id. Both parties must share a collection.\n\nsend: post to a teammate. check: read pending (removes nothing). ack: mark handled -- stamps delivered_at, the row stays, NOTHING IS DELETED.\nACK MEANS CLOSED, NOT DONE: it asserts only that no future session of yours owes this an action. A receipt or an FYI is acked on read. Work you finished, this session or earlier, is acked. Work you are deferring, or that is a peer's, is NOT acked -- say so in one line instead.\nSelf-signal your own agent_name = handoff to your next session.\nShortcut: memory"
},
{
"name": "message",
"description": "Direct inter-agent text that DIES ON ACK. Use for receipts, FYIs and short replies; use signal to point at a memory. send/check/ack. LOSABLE BY DESIGN: the first session of the recipient name to ack deletes it for every session of that name, an unacked message is deleted at expiry (default 7 days), and nothing is kept or searchable afterwards. Anything that must survive goes in memory_add plus signal. Requires text; memory_ids is refused."
},
{
"name": "account",
"description": "Account state + billing. Returns URLs only -- user clicks to pay; never charges silently.\n\nPick by intent:\n \"what plan am I on?\" -> info (tier, subscription, capabilities, upgrade/downgrade SKUs; permanent tiers og/truebeliever/ogdev cannot downgrade)\n \"what can I buy?\" / \"how much is Pro?\" -> plans (buyable SKU list)\n \"upgrade me\" / \"buy Pro annual\" -> checkout (needs sku_id) -> Stripe URL\n \"cancel\" / \"update card\" / \"invoices\" -> portal -> Stripe URL (free users with no Stripe record -> pointer to plans+checkout)\n \"support Gnosis\" / \"tip\" -> donate (amount_cents 100-500000; cumulative b"
}
],
"profiled_at": "2026-11-09T09:00:52.879Z"
}
}