| name | store-data |
| description | Store structured entities or files in Neotoma memory with proper provenance and relationship linking. |
| triggers | ["store this","remember this","save to neotoma","persist","store entities"] |
Store Data in Neotoma
When to use
When the user wants to persist structured data (contacts, tasks, events, transactions, notes, etc.) or files (PDFs, CSVs, images) into Neotoma's memory layer.
Workflow
-
Check for existing records before storing to avoid duplicates.
- Use
retrieve_entity_by_identifier for names, emails, or identifiers.
- Use
retrieve_entities with entity_type filter for related records.
-
Extract entities from the user's message or attached files.
- Use descriptive
entity_type values (contact, task, event, transaction, receipt, note, etc.).
- Include ALL fields from the source data; unknown fields go to raw_fragments automatically.
-
Store with a single call when possible.
- Use the MCP
store tool for entities-only, file-only (bytes → content-addressed source row), or combined file + entities + optional interpretation.
- Always include
idempotency_key for replay safety.
-
Link related entities using create_relationship.
- PART_OF: message belongs to conversation, item belongs to container.
- REFERS_TO: message references an entity.
- EMBEDS: container holds an asset (file).
- SUPERSEDES: new version replaces old.
-
Confirm storage using memory-related language ("stored in memory", "will remember").
Entity type discovery
Before inventing a new entity_type, check what schemas already exist:
- Use
list_entity_types with a keyword search.
- If no match, use a descriptive snake_case type; Neotoma auto-creates the schema.
Required fields
idempotency_key: unique per store call (e.g. conversation-{id}-{turn}-{timestamp})
entity_type: descriptive type for each entity
- All source fields: include everything, not just known schema fields
Do not
- Skip the duplicate check for named entities (people, companies, places).
- Omit fields from source data because they are not in the schema.
- Store without an idempotency_key.