원클릭으로
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