io. github. jyswee/ agenticmemory
by jyswee · remote · local (npm) · no sign-in to list tools · v1.10.0 · published by GitHub user jyswee
Persistent memory for AI agents — history, context, semantic search, queues. 46 tools, stdio/SSE.
46 tools: 28 can delete or cancel things, 6 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels28Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things6Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport sse agenticmemory https://mcp.agenticmemory.ai/sseTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
46 tools
Deletes or cancels 28Claude Code: deny
context_deleteDelete a context key.No findings
Why it is in this group
- The name "context_delete" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a context key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
context_setSet a key-value context entry.No findings
Why it is in this group
- The name "context_set" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Set a key-value context entry. Stores structured data (JSON or string).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
entityEntity (knowledge-graph node) operations: upsert (create), get, update, delete.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Entity (knowledge-graph node) operations: upsert (create), get, update, delete.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
entries_add_batchAppend multiple journal entries in one call.No findings
Why it is in this group
- The name "entries_add_batch" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Append multiple journal entries in one call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
entrySingle-entry operations on the tagged/versioned journal: add, get, update, versions, restore.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Single-entry operations on the tagged/versioned journal: add, get, update, versions, restore.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
knowledgeKnowledge-base operations: create (with documents), list, delete, query (smart retrieval).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Knowledge-base operations: create (with documents), list, delete, query (smart retrieval).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
kv_hashHash operations (Redis-hash semantics, write-through durable): set, get (whole hash), keys, get_field, del_field, delete, setnx (atomic set-if-absent), cas (atomic compare-and-set)…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Hash operations (Redis-hash semantics, write-through durable): set, get (whole hash), keys, get_field, del_field, delete, setnx (atomic set-if-absent), cas (atomic compare-and-set).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
kv_setSet operations (Redis-set semantics): add, members (with size), contains, remove, delete.No findings
Why it is in this group
- The name "kv_set" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Set operations (Redis-set semantics): add, members (with size), contains, remove, delete.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
kv_stringString operations with optional TTL (survives rebuild): set, get (includes remaining ttlMs), delete.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it String operations with optional TTL (survives rebuild): set, get (includes remaining ttlMs), delete.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
memory_clearClear all messages in a memory space.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Clear all messages in a memory space.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
memory_storeStore a message in conversation history.No findings
Why it is in this group
- The name "memory_store" says "store": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Store a message in conversation history. Use for remembering what just happened.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
memory_store_batchStore multiple messages at once.No findings
Why it is in this group
- The name "memory_store_batch" says "store": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Store multiple messages at once.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_ackAcknowledge a leased envelope (deletes it permanently).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Acknowledge a leased envelope (deletes it permanently).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_dlqDead-letter queue operations: push a failed envelope, or list DLQ items.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Dead-letter queue operations: push a failed envelope, or list DLQ items.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_leaseNon-destructive lease (at-least-once): take the oldest envelope with a visibility timeout.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Non-destructive lease (at-least-once): take the oldest envelope with a visibility timeout. Returns {item, leaseToken, deadline}. Ack with queue_ack, requeue with queue_nack.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_nackNegative-acknowledge a leased envelope (requeues it to the tail).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Negative-acknowledge a leased envelope (requeues it to the tail).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_popDequeue the oldest envelope from a FIFO queue (returns null if empty).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Dequeue the oldest envelope from a FIFO queue (returns null if empty). Set wait (max 25s) to long-poll for the next envelope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
queue_pushEnqueue a JSON envelope onto a FIFO queue in a memory space.No findings
Why it is in this group
- The name "queue_push" says "push": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Enqueue a JSON envelope onto a FIFO queue in a memory space. Use to send work/events to other agents sharing the space.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
scratchpad_setSet the scratchpad content for a memory space (ephemeral working memory).No findings
Why it is in this group
- The name "scratchpad_set" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Set the scratchpad content for a memory space (ephemeral working memory).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
space_importRestore a space from an export payload.No findings
Why it is in this group
- The name "space_import" says "import": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Restore a space from an export payload. Mode: empty-only (default), merge, or replace.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
spaces_createCreate a new memory space.No findings
Why it is in this group
- The name "spaces_create" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Create a new memory space.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
state_setReplace a space's single JSON state snapshot.No findings
Why it is in this group
- The name "state_set" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Replace a space's single JSON state snapshot.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
stream_appendAppend an entry to a stream (XADD).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Append an entry to a stream (XADD). Returns the entry ID.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
stream_deleteDelete a stream entirely (hot + durable) — irreversible.No findings
Why it is in this group
- The name "stream_delete" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a stream entirely (hot + durable) — irreversible.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
stream_groupConsumer-group operations on a stream: create, destroy, read (XREADGROUP), ack (XACK), pending (XPENDING), claim (XCLAIM/XAUTOCLAIM).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Consumer-group operations on a stream: create, destroy, read (XREADGROUP), ack (XACK), pending (XPENDING), claim (XCLAIM/XAUTOCLAIM).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
threadThread (conversation grouping) operations: create, get, update, delete.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Thread (conversation grouping) operations: create, get, update, delete.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
webhookPer-space webhook subscriptions: create, list, delete.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Per-space webhook subscriptions: create, list, delete.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: true
Changes things 6Claude Code: ask
memory_bootstrapLoad full context in one call: recent messages, entries, context, scratchpad.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Load full context in one call: recent messages, entries, context, scratchpad. Run this at session start.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
memory_bootstrap_batchParallel bulk fetch: named context keys, entities, and optional semantic results in one call.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Parallel bulk fetch: named context keys, entities, and optional semantic results in one call.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
memory_recallRecall recent messages from conversation history.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Recall recent messages from conversation history. Returns newest first.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
queue_peekPeek at a queue without consuming: returns length and the head envelope.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Peek at a queue without consuming: returns length and the head envelope.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
space_exportExport all data in a space (all primitives, schema v2) as a restorable payload.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Export all data in a space (all primitives, schema v2) as a restorable payload.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
stream_infoStream info: length and consumer groups (XLEN + XINFO GROUPS).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Stream info: length and consumer groups (XLEN + XINFO GROUPS).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 12Claude Code: allow
context_getGet a context value by key.No findings
Why it is in this group
- The name "context_get" says "get": a word for reading.
Description, as the server wrote it Get a context value by key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
context_listList all context keys and values in a space.No findings
Why it is in this group
- The name "context_list" says "list": a word for reading.
Description, as the server wrote it List all context keys and values in a space.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
entities_listList entities in a memory space, optionally filtered.No findings
Why it is in this group
- The name "entities_list" says "list": a word for reading.
Description, as the server wrote it List entities in a memory space, optionally filtered.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
entries_listList long-term memory entries.No findings
Why it is in this group
- The name "entries_list" says "list": a word for reading.
Description, as the server wrote it List long-term memory entries. Filter by tags.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
memory_searchSemantic search across past conversations.No findings
Why it is in this group
- The name "memory_search" says "search": a word for reading.
Description, as the server wrote it Semantic search across past conversations. Finds by meaning, not keywords.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
scratchpad_getGet the scratchpad content from a memory space.No findings
Why it is in this group
- The name "scratchpad_get" says "get": a word for reading.
Description, as the server wrote it Get the scratchpad content from a memory space.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
spaces_getGet a single memory space (config, usage counters).No findings
Why it is in this group
- The name "spaces_get" says "get": a word for reading.
Description, as the server wrote it Get a single memory space (config, usage counters).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
spaces_listList all memory spaces owned by this API key.No findings
Why it is in this group
- The name "spaces_list" says "list": a word for reading.
Description, as the server wrote it List all memory spaces owned by this API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
state_getGet a space's single JSON state snapshot.No findings
Why it is in this group
- The name "state_get" says "get": a word for reading.
Description, as the server wrote it Get a space's single JSON state snapshot.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
stream_readRanged read from a stream (XRANGE/XREVRANGE).No findings
Why it is in this group
- The name "stream_read" says "read": a word for reading.
Description, as the server wrote it Ranged read from a stream (XRANGE/XREVRANGE).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
threads_listList threads in a memory space, optionally filtered by status.No findings
Why it is in this group
- The name "threads_list" says "list": a word for reading.
Description, as the server wrote it List threads in a memory space, optionally filtered by status.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
usage_getGet current usage vs plan limits for the authenticated tenant.No findings
Why it is in this group
- The name "usage_get" says "get": a word for reading.
Description, as the server wrote it Get current usage vs plan limits for the authenticated tenant.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.10.0. Values in angle brackets are yours to fill in.
claude mcp add --transport sse agenticmemory https://mcp.agenticmemory.ai/sseRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__agenticmemory__memory_search",
"mcp__agenticmemory__context_get",
"mcp__agenticmemory__context_list",
"mcp__agenticmemory__entries_list",
"mcp__agenticmemory__spaces_list",
"mcp__agenticmemory__scratchpad_get",
"mcp__agenticmemory__spaces_get",
"mcp__agenticmemory__entities_list",
"mcp__agenticmemory__threads_list",
"mcp__agenticmemory__state_get",
"mcp__agenticmemory__stream_read",
"mcp__agenticmemory__usage_get"
],
"ask": [
"mcp__agenticmemory__memory_recall",
"mcp__agenticmemory__queue_peek",
"mcp__agenticmemory__memory_bootstrap",
"mcp__agenticmemory__memory_bootstrap_batch",
"mcp__agenticmemory__space_export",
"mcp__agenticmemory__stream_info"
],
"deny": [
"mcp__agenticmemory__memory_store",
"mcp__agenticmemory__memory_store_batch",
"mcp__agenticmemory__memory_clear",
"mcp__agenticmemory__context_set",
"mcp__agenticmemory__context_delete",
"mcp__agenticmemory__spaces_create",
"mcp__agenticmemory__queue_push",
"mcp__agenticmemory__queue_pop",
"mcp__agenticmemory__scratchpad_set",
"mcp__agenticmemory__space_import",
"mcp__agenticmemory__entry",
"mcp__agenticmemory__entries_add_batch",
"mcp__agenticmemory__entity",
"mcp__agenticmemory__thread",
"mcp__agenticmemory__state_set",
"mcp__agenticmemory__shared_memory",
"mcp__agenticmemory__queue_lease",
"mcp__agenticmemory__queue_ack",
"mcp__agenticmemory__queue_nack",
"mcp__agenticmemory__queue_dlq",
"mcp__agenticmemory__stream_append",
"mcp__agenticmemory__stream_delete",
"mcp__agenticmemory__stream_group",
"mcp__agenticmemory__kv_hash",
"mcp__agenticmemory__kv_string",
"mcp__agenticmemory__kv_set",
"mcp__agenticmemory__webhook",
"mcp__agenticmemory__knowledge"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as agenticmemory. Review it before you use it.
