store
Store structured entities and file content in Neotoma's deterministic state layer, supporting both data types in one request with content-addressed deduplication.
Instructions
Unified storing for structured, file-backed, or combined payloads in one request. Choose path by source: file- or resource-sourced (attachment/file to preserve) → use file_content+mime_type or file_path; conversation- or tool-sourced (chat or other MCP) → use entities. You may send both entities and file input in the same call. File inputs are stored raw with content-addressed SHA-256 deduplication; the server does not perform AI interpretation during store. Agents should parse and extract entities first when they need structured data from a file, then send those entities alongside the raw file. IMPORTANT FOR STRUCTURED DATA: Include ALL fields from source data. Schema fields go to observations; non-schema fields go to raw_fragments for future schema expansion.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| entities | No | ||
| relationships | No | Optional. Create relationships between entities in this request. Indices refer to the entities array (0-based). | |
| source_priority | No | ||
| idempotency_key | No | Required for structured path, optional for unstructured-only path. | |
| file_idempotency_key | No | Optional idempotency key for file path when sending structured + unstructured in one call. | |
| file_content | No | Base64-encoded file content. Use file_path for local files instead of base64 encoding. | |
| file_path | No | Local file path (alternative to file_content). If provided, file will be read from filesystem. MIME type will be auto-detected from extension if not provided. Works in local environments (Cursor, Claude Code) where MCP server has filesystem access. Does NOT work in web-based environments (claude.ai, chatgpt.com) - use file_content for those. | |
| mime_type | No | MIME type (e.g., 'application/pdf', 'text/csv') - required with file_content, optional with file_path (auto-detected from extension) | |
| original_filename | No | Original filename or source label (optional). For unstructured: auto-detected from file_path if not provided. For structured (entities): omit when data is agent-provided (no file origin); the source will have no filename. Pass only when mirroring a real file name or when a display label is desired. | |
| user_id | No |