Persistent agent memory paid per call via x402 USDC. Your wallet is your private memory namespace.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Export memories in YOUR payer-wallet namespace (up to 1000/call, newest first; use offset to page through namespaces >1000). Your data is yours. Includes superseded_by so history is exportable. Paid: $0.01 via x402.
row offset for paging past the first 1000 (default 0)
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Export memories in YOUR payer-wallet namespace (up to 1000/call, newest first; use offset to page through namespaces >1000). Your data is yours. Includes superseded_by so history is exportable. Paid: $0.01 via x402.
| Argument | Type | Description |
|---|---|---|
| offset | integer | row offset for paging past the first 1000 (default 0) |
{
"type": "object",
"properties": {
"offset": {
"type": "integer",
"description": "row offset for paging past the first 1000 (default 0)"
}
}
}Delete memories by id from YOUR namespace (or a namespace you hold a write/rw grant for). Max 100 ids per call. Paid: $0.001 per call via x402.
| Argument | Type | Description |
|---|---|---|
| ids* | array | memory ids to delete (max 100) |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "memory ids to delete (max 100)"
}
}
}Bulk-write memories into YOUR namespace (max 200/call, content <=8k chars each). Accepts the exact shape memory_export emits, so a whole namespace can move in with one paid call. Embeds best-effort; missing embeddings are backfilled hourly. Paid: $0.01 flat via x402.
| Argument | Type | Description |
|---|---|---|
| memories* | array | up to 200 items |
{
"type": "object",
"required": [
"memories"
],
"properties": {
"memories": {
"type": "array",
"items": {
"type": "object",
"required": [
"content"
],
"properties": {
"ts": {
"type": "number"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string"
}
}
},
"description": "up to 200 items"
}
}
}Semantic search over YOUR stored memories (payer-wallet namespace). Returns top-k by embedding similarity. Paid: $0.002 per search via x402.
| Argument | Type | Description |
|---|---|---|
| k | integer | max results (default 5, cap 20) |
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"k": {
"type": "integer",
"description": "max results (default 5, cap 20)"
},
"query": {
"type": "string"
}
}
}FREE (no payment): semantic search over YOUR namespace, proven by an EIP-191 personal_sign. Same wallet_auth scheme as memory_write_free. Capped at 500 searches / rolling 30 days per wallet.
| Argument | Type | Description |
|---|---|---|
| k | integer | max results (default 5, cap 20) |
| query* | string | |
| wallet_auth* | string | base64 JSON {address,ts,signature} |
{
"type": "object",
"required": [
"query",
"wallet_auth"
],
"properties": {
"k": {
"type": "integer",
"description": "max results (default 5, cap 20)"
},
"query": {
"type": "string"
},
"wallet_auth": {
"type": "string",
"description": "base64 JSON {address,ts,signature}"
}
}
}FREE: count + last-write timestamp for any wallet namespace. Content is never returned on the free tier.
| Argument | Type | Description |
|---|---|---|
| namespace* | string | wallet address |
{
"type": "object",
"required": [
"namespace"
],
"properties": {
"namespace": {
"type": "string",
"description": "wallet address"
}
}
}Store a memory permanently. Namespaced to YOUR paying wallet — your wallet is your private memory store. Semantic-indexed for later search. Optional supersedes=[ids] marks prior memories in your namespace as superseded by this one (excluded from search, still visible in export with their superseded_by id) — a Zep-style update-in-place without ever losing history. Paid: $0.001 per write via x402 (payment in _meta['x402/payment']).
| Argument | Type | Description |
|---|---|---|
| tags | array | |
| content* | string | The memory text (max 8000 chars) |
| supersedes | array | ids of prior memories (same namespace) that this write supersedes |
{
"type": "object",
"required": [
"content"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string",
"description": "The memory text (max 8000 chars)"
},
"supersedes": {
"type": "array",
"items": {
"type": "integer"
},
"description": "ids of prior memories (same namespace) that this write supersedes"
}
}
}FREE (no payment): store a memory in YOUR namespace, proven by an EIP-191 personal_sign instead of an x402 payment. wallet_auth = base64 JSON {address,ts,signature} where signature = personal_sign of 'borismem-free:<address>:<ts>' (ts within 600s). Writes to the SAME namespace paid calls use. Capped at 1000 writes / rolling 30 days per wallet; over cap returns an error pointing to the paid tier.
| Argument | Type | Description |
|---|---|---|
| tags | array | |
| content* | string | The memory text (max 8000 chars) |
| wallet_auth* | string | base64 JSON {address,ts,signature} -- see description |
{
"type": "object",
"required": [
"content",
"wallet_auth"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string",
"description": "The memory text (max 8000 chars)"
},
"wallet_auth": {
"type": "string",
"description": "base64 JSON {address,ts,signature} -- see description"
}
}
}