ワンクリックで
memory-email-ingest
Ingest emails from calendar contacts using Gmail MCP tools — calendar-gated to prevent spam/noise
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Ingest emails from calendar contacts using Gmail MCP tools — calendar-gated to prevent spam/noise
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Ingest Bubbles AI meeting summaries from Gmail into the memory knowledge base
Pull Google Calendar events via MCP tools and extract attendees into the memory-kb contact registry
Manually compile daily logs into knowledge articles and run structural lint
Ingest recently modified Google Docs into the memory knowledge base with email correlation
Query the personal knowledge base — ask questions about past decisions, meetings, and context
Ingest Slack DMs and important channel messages into the memory knowledge base
| name | memory-email-ingest |
| description | Ingest emails from calendar contacts using Gmail MCP tools — calendar-gated to prevent spam/noise |
| user_invocable | true |
Ingest emails ONLY from people Jesse has meetings with. Uses Gmail MCP tools (not Chrome).
The calendar contacts file must exist at /Users/jesseanglen/Documents/RandomStuff/memory-kb/state/calendar-contacts.json.
If it doesn't exist or has zero contacts, report "No calendar contacts found. Run /memory-calendar-ingest first." and exit.
Read calendar contacts from /Users/jesseanglen/Documents/RandomStuff/memory-kb/state/calendar-contacts.json.
Read email state from /Users/jesseanglen/Documents/RandomStuff/memory-kb/state/email-state.json (create if missing).
Extract the list of known contact email addresses.
Use gmail_search_messages to find emails from known contacts.
Build the query: after:YYYY/MM/DD from:({email1 OR email2 OR email3 ...})
The after: date should be the last_checked_timestamp from email state, or 3 days ago if first run.
If there are many contacts (50+), split into multiple gmail_search_messages calls with batches of ~25 emails each.
Set maxResults to 50.
For each message returned by the search, use gmail_read_message with the messageId to get full content.
Extract:
Skip trivial emails:
For each sender email, check calendar-contacts.json for their last_seen date.
Use this to populate the related_event field — connects the email to the meeting context.
For each substantive email, append to /Users/jesseanglen/Documents/RandomStuff/memory-kb/daily/YYYY-MM-DD.md:
## Email from sender@example.com @ HH:MM PT
**source:** email
**subject:** [Subject line]
**from:** Name <email>
**related_event:** [Most recent event with this contact, from calendar-contacts.json]
### Key Content
- [Summary of important information, decisions, or requests]
- [Action items mentioned]
- [Important context or commitments]
### Action Items
- [ ] [Any follow-up tasks identified]
If the daily log doesn't exist, create it with header # Daily Log: YYYY-MM-DD.
Track processed email message IDs in email-state.json (keep last 500).
Before appending, check for duplicate entries in the daily log (same subject + sender + date).
Write to /Users/jesseanglen/Documents/RandomStuff/memory-kb/state/email-state.json:
{
"last_checked_timestamp": "ISO timestamp",
"total_runs": N,
"last_run": {
"timestamp": "ISO",
"emails_found": N,
"emails_ingested": N,
"contacts_matched": N,
"status": "success"
},
"processed_message_ids": ["id1", "id2"]
}
"Email ingest complete. Found X emails from calendar contacts, ingested Y substantive entries."
gmail_search_messages and gmail_read_message MCP tools — NO Chrome browser neededcalendar-contacts.json — this is the core spam filter