Tool Schema

Complete JSON Schema for Mnemosyne tools exposed to agents.

mnemosyne_remember

{
"name": "mnemosyne_remember",
"description": "Store information in long-term memory. Use for facts, preferences, decisions, and observations that should persist across sessions.",
"parameters": {
  "type": "object",
  "required": ["content"],
  "properties": {
    "content": {
      "type": "string",
      "description": "The information to store. Be specific and self-contained."
    },
    "source": {
      "type": "string",
      "description": "Origin of the memory (e.g., 'conversation', 'tool', 'inference')."
    },
    "importance": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "0.0 = transient, 1.0 = critical. High importance memories are promoted to Episodic Memory during consolidation."
    },
    "scope": {
      "type": "string",
      "enum": ["session", "global"],
      "description": "Session-scoped or globally visible."
    },
    "valid_until": {
      "type": "string",
      "description": "ISO 8601 timestamp for automatic expiry."
    },
    "extract_entities": {
      "type": "boolean",
      "description": "Auto-extract named entities into knowledge graph triples."
    },
    "extract": {
      "type": "boolean",
      "description": "Auto-extract factual statements into knowledge graph triples."
    },
    "author_id": {
      "type": "string",
      "description": "Identifier of the author who created this memory."
    },
    "author_type": {
      "type": "string",
      "enum": ["human", "agent", "system"],
      "description": "Category of the author who created this memory."
    },
    "channel_id": {
      "type": "string",
      "description": "Channel identifier for contextual scoping."
    }
  }
}
}

mnemosyne_recall

{
"name": "mnemosyne_recall",
"description": "Retrieve relevant memories from long-term storage. Use when you need context about past interactions, user preferences, or established facts.",
"parameters": {
  "type": "object",
  "required": ["query"],
  "properties": {
    "query": {
      "type": "string",
      "description": "Natural language description of what you're looking for."
    },
    "top_k": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 5,
      "description": "Maximum number of memories to retrieve."
    },
    "author_id": {
      "type": "string",
      "description": "Filter by specific author. (v2.1)"
    },
    "author_type": {
      "type": "string",
      "enum": ["human", "agent", "system"],
      "description": "Filter by author category. (v2.1)"
    },
    "channel_id": {
      "type": "string",
      "description": "Filter by channel for cross-session recall. (v2.1)"
    },
    "vec_weight": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Weight for vector similarity in scoring."
    },
    "fts_weight": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Weight for full-text search in scoring."
    },
    "importance_weight": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Weight for importance score in retrieval ranking."
    }
  }
}
}

mnemosyne_sleep

{
"name": "mnemosyne_sleep",
"description": "Run sleep consolidation to promote Working Memory entries to Episodic and Semantic memory. Triggers summarization and importance-based promotion. Also runs tiered degradation after consolidation.",
"parameters": {
  "type": "object",
  "properties": {
    "dry_run": {
      "type": "boolean",
      "description": "If true, preview what would happen without making changes."
    },
    "bank": {
      "type": "string",
      "description": "Target memory bank for consolidation (default: the active bank)."
    }
  }
}
}

mnemosyne_get_stats

{
"name": "mnemosyne_get_stats",
"description": "Get memory system statistics including entry counts across all memory stores, database size, and consolidation status.",
"parameters": {
  "type": "object",
  "properties": {
    "bank": {
      "type": "string",
      "description": "Target memory bank for statistics (default: all banks)."
    }
  }
}
}

mnemosyne_forget

{
"name": "mnemosyne_forget",
"description": "Delete a specific memory by ID. Use when information is wrong, outdated, or explicitly requested to be removed. Unlike invalidate, this permanently removes the memory.",
"parameters": {
  "type": "object",
  "required": ["memory_id"],
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "The memory ID to permanently delete."
    }
  }
}
}

mnemosyne_update

{
"name": "mnemosyne_update",
"description": "Update an existing memory's content or importance. Only the fields you provide will be changed.",
"parameters": {
  "type": "object",
  "required": ["memory_id"],
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "The memory ID to update."
    },
    "content": {
      "type": "string",
      "description": "New content for the memory."
    },
    "importance": {
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "description": "Updated importance score."
    }
  }
}
}

mnemosyne_invalidate

{
"name": "mnemosyne_invalidate",
"description": "Mark a specific memory as invalidated. Use when information is outdated, incorrect, or explicitly requested to be removed.",
"parameters": {
  "type": "object",
  "required": ["memory_id"],
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "The memory ID to invalidate."
    },
    "replacement_id": {
      "type": "string",
      "description": "Optional replacement memory ID to supersede the invalidated one."
    }
  }
}
}

mnemosyne_triple_add

{
"name": "mnemosyne_triple_add",
"description": "Store a structured fact as a subject-predicate-object triple in the temporal knowledge graph. Use for precise, relational knowledge that benefits from graph queries.",
"parameters": {
  "type": "object",
  "required": ["subject", "predicate", "object"],
  "properties": {
    "subject": {
      "type": "string",
      "description": "The entity the fact is about."
    },
    "predicate": {
      "type": "string",
      "description": "The relationship or property. Use consistent predicates for the same concept."
    },
    "object": {
      "type": "string",
      "description": "The value or target entity."
    }
  }
}
}

mnemosyne_triple_query

{
"name": "mnemosyne_triple_query",
"description": "Query the temporal knowledge graph for structured facts. Use for precise lookups and relationship traversal.",
"parameters": {
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Filter by subject entity."
    },
    "predicate": {
      "type": "string",
      "description": "Filter by relationship type."
    },
    "object": {
      "type": "string",
      "description": "Filter by value or target entity."
    },
    "as_of": {
      "type": "string",
      "description": "ISO 8601 timestamp for point-in-time query. Returns facts valid as of this time."
    }
  }
}
}

mnemosyne_scratchpad_write

{
"name": "mnemosyne_scratchpad_write",
"description": "Write to the temporary scratchpad workspace for chain-of-thought and planning.",
"parameters": {
  "type": "object",
  "required": ["content"],
  "properties": {
    "content": {
      "type": "string",
      "description": "Content to write to the scratchpad."
    }
  }
}
}

mnemosyne_scratchpad_read

{
"name": "mnemosyne_scratchpad_read",
"description": "Read all entries from the temporary scratchpad workspace.",
"parameters": {
  "type": "object",
  "properties": {}
}
}

mnemosyne_scratchpad_clear

{
"name": "mnemosyne_scratchpad_clear",
"description": "Clear all entries from the scratchpad workspace.",
"parameters": {
  "type": "object",
  "properties": {}
}
}

mnemosyne_export

{
"name": "mnemosyne_export",
"description": "Export memories to a file for backup or migration.",
"parameters": {
  "type": "object",
  "required": ["output_path"],
  "properties": {
    "output_path": {
      "type": "string",
      "description": "File path for export (JSON format)."
    }
  }
}
}

mnemosyne_import

{
"name": "mnemosyne_import",
"description": "Import memories from a previously exported file.",
"parameters": {
  "type": "object",
  "required": ["input_path"],
  "properties": {
    "input_path": {
      "type": "string",
      "description": "File path to import from (JSON format)."
    }
  }
}
}

mnemosyne_diagnose

{
"name": "mnemosyne_diagnose",
"description": "Run diagnostic checks on the memory system: database integrity, index health, storage stats.",
"parameters": {
  "type": "object",
  "properties": {}
}
}

Tool Selection Guide

MCP vs Hermes Plugin Tools

MCP-native tools (available via mnemosyne serve --mcp): mnemosyne_remember, mnemosyne_recall, mnemosyne_sleep, mnemosyne_get_stats, mnemosyne_scratchpad_write, mnemosyne_scratchpad_read, mnemosyne_scratchpad_clear.

Hermes plugin tools (available via Hermes Agent plugin): mnemosyne_forget, mnemosyne_update, mnemosyne_invalidate, mnemosyne_export, mnemosyne_import, mnemosyne_triple_add, mnemosyne_triple_query, mnemosyne_diagnose.

GoalToolExample
Store general infomnemosyne_rememberUser preferences, decisions
Retrieve contextmnemosyne_recall"What did we decide?"
Consolidate memoriesmnemosyne_sleepEnd-of-session cleanup
Check system healthmnemosyne_get_statsMemory counts, DB size
Run diagnosticsmnemosyne_diagnoseDB integrity, index health
Remove bad datamnemosyne_invalidateOutdated information
Permanently delete memorymnemosyne_forgetWrong information, retractions
Update existing memorymnemosyne_updateCorrect facts, promote inferences
Store relational factsmnemosyne_triple_addTeam structure, dependencies
Precise lookupmnemosyne_triple_query"Who reports to Carol?"
Export memoriesmnemosyne_exportBackup, migration
Import memoriesmnemosyne_importRestore from backup
Write scratchpadmnemosyne_scratchpad_writeChain-of-thought planning
Read scratchpadmnemosyne_scratchpad_readReview planning notes
Clear scratchpadmnemosyne_scratchpad_clearReset workspace
Schema Validation

Tool calls are validated against these schemas before execution. Invalid parameters return a structured error that the agent can use to self-correct.