Store Data in Neotoma
SkillFiles & storageStore structured entities or files in Neotoma memory with proper provenance and relationship linking.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Store Data in Neotoma skill
What this skill tells your AI
The instructions your AI receives, as published by markmhendrickson/neotoma in skills/store-data/SKILL.md and read by ahel’s review.
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_identifierfor names, emails, or identifiers. - Use
retrieve_entitieswith entity_type filter for related records.
- Use
-
Extract entities from the user's message or attached files.
- Use descriptive
entity_typevalues (contact, task, event, transaction, receipt, note, etc.). - Include ALL fields from the source data; unknown fields go to raw_fragments automatically.
- Use descriptive
-
Store with a single call when possible.
- Use the MCP
storetool for entities-only, file-only (bytes → content-addressed source row), or combined file + entities + optionalinterpretation. - Always include
idempotency_keyfor replay safety.
- Use the MCP
-
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_typeswith 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.
Signals
- GitHub stars
- 32
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
store-data- Source
- github.com/markmhendrickson/neotoma