Remember Email
SkillDocs & knowledgeImport emails into persistent memory. Configure an email MCP, discover and preview emails, extract contacts, tasks, events, and transactions.
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 Remember Email skill
What this skill tells your AI
The instructions your AI receives, as published by markmhendrickson/neotoma in skills/remember-email/SKILL.md and read by ahel’s review.
Import emails into Neotoma memory with full provenance. Extracts contacts, tasks, events, transactions, and other entities from email content.
When to use
When the user wants to persist emails and the entities they contain (contacts, commitments, tasks, events, financial transactions) into durable memory.
Prerequisites
Run the ensure-neotoma skill first if Neotoma is not yet installed or configured in your current harness.
An email MCP server must be configured (e.g. Gmail MCP). If one is not available, this skill guides the user through configuration.
Workflow
Phase 0: Verify Neotoma and email MCP
- Confirm Neotoma MCP is connected (call
get_session_identity). - Check if an email MCP is configured (e.g.
search_emailstool available). - If no email MCP is configured, guide the user:
- For Gmail: add the Gmail MCP server to the harness config and authenticate via OAuth.
- For other providers: check if an IMAP-capable MCP is available.
Phase 1: Discover emails
- Ask the user what to import:
- Recent emails (last N days/weeks)
- Emails from specific senders
- Emails matching a search query
- All emails in a folder/label
- Use
search_emailsto list matching messages. - Present a summary: count, date range, top senders.
Phase 2: Preview and confirm
- Show the user a preview of what will be imported:
- Number of emails
- Entity types that will be extracted (contacts, tasks, events, transactions)
- Estimated entities per email
- Ask for confirmation before proceeding.
Phase 3: Hydrate and extract
For each email (up to ~10 per turn, per depth-of-capture scope cap):
- Call the detail endpoint (
read_email) to get the full body, headers, and attachment metadata. - Extract entities from the email content:
- Contacts: sender, recipients, anyone mentioned by name+email
- Tasks: action items, requests, commitments ("please send", "I need", deadlines)
- Events: meetings, calls, scheduled items with dates
- Transactions: invoices, receipts, payment confirmations with amounts and currencies
- Set
data_sourceper email using the message ID:"Gmail read_email id=<message_id> <ISO-date>" - Include
source_quoteon each extracted entity with the relevant snippet from the email body.
Phase 4: Store with provenance
Use a single store call per email batch:
- Include the conversation, user message, and all extracted entities in the entities array.
- Set per-entity
data_sourcewith unique message IDs to avoid heuristic merging. - Batch REFERS_TO relationships from the user message to each extracted entity.
- Apply existing-entity correction if a contact or entity already exists (same name+email).
Phase 5: Report results
Summarize what was stored:
- Number of emails processed
- Entities created/updated by type (contacts, tasks, events, transactions)
- Offer to continue with more emails if the batch was capped.
Do not
- Import emails without user confirmation.
- Echo full email bodies into the chat (sensitivity rule — store the body but summarize in the reply).
- Create duplicate contacts — always check for existing records by name or email before storing.
- Skip
data_sourceon entities — every entity must trace back to a specific email.
Signals
- GitHub stars
- 32
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
remember-email- Source
- github.com/markmhendrickson/neotoma