Skip to content

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.

Deletes · 28Changes · 6

46 tools: 28 can delete or cancel things, 6 change things and 12 only read.

Scanned Oct 21, 2026

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/sse

Tools

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
  • shared_memoryShared world-memory (one-write, all-see) operations: set, get, 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
    Shared world-memory (one-write, all-see) operations: set, get, list, delete.

    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
  • 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/sse

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.