API Reference

memory_store

Store a new memory node in the knowledge graph

memory_store

Store a new memory node in the knowledge graph.

Parameters

The memory content to store. Should be a clear, complete statement that can be understood without context.

Category of the memory node. You define your own types — common examples: person, project, decision, fact, preference, event.

Additional key-value pairs for structured data. Keys should be strings; values can be strings, numbers, booleans, or arrays.

Array of existing node IDs to create edges to. Creates undirected edges from the new node to each specified node.

Target graph for the node. Defaults to your account’s default graph.

Example request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "memory_store",
    "arguments": {
      "content": "Sarah Chen is the tech lead for Project Phoenix",
      "node_type": "assignment",
      "metadata": {
        "person": "Sarah Chen",
        "project": "Phoenix",
        "role": "tech_lead",
        "start_date": "2026-01"
      },
      "relationships": ["node_sarah_abc123", "node_phoenix_def456"]
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "id": "node_xyz789",
    "status": "created",
    "created_at": "2026-03-03T14:30:00Z",
    "edges_created": 2
  }
}

Response fields

FieldTypeDescription
idstringUnique identifier for the created node
statusstringAlways "created" on success
created_atstringISO 8601 timestamp
edges_creatednumberCount of edges created via relationships

Errors

CodeDescription
INVALID_PARAMETERMissing content or invalid parameter type
NODE_NOT_FOUNDA node ID in relationships doesn’t exist
NODE_LIMIT_EXCEEDEDAccount has reached node limit
GRAPH_NOT_FOUNDSpecified graph_id doesn’t exist

Notes

Free operation — Creating nodes doesn’t count against your query limit.

Write complete content — Nodes should be understandable without relationships. Instead of “She prefers Slack”, write “Sarah Chen prefers async communication via Slack”.

Avoid duplicatesmemory_store always creates a new node. Check for existing memories with memory_recall first if you want to update instead.

Hyperedges

To create a hyperedge (multi-way relationship), include the hyperedge parameter:

{
  "arguments": {
    "content": "Q3 planning decision",
    "node_type": "decision",
    "hyperedge": {
      "nodes": ["node_sarah", "node_marcus", "node_phoenix", "node_q3"],
      "edge_type": "decision_context"
    }
  }
}

This creates a new node AND a hyperedge connecting it with all specified nodes.

Idempotency

memory_store is not idempotent — calling it twice with identical arguments creates two separate nodes. If you need idempotent behavior, implement client-side deduplication using content hashing.