.claude/skills/email-summary/SKILL.md
Summarize emails from Gmail and Exchange accounts for a specified time period and save to a local markdown file. Categorizes emails into actionable groups: Tasks, Response Needed, Informational, and Other. Use this skill whenever the user wants to: get an email digest, summarize recent emails, create an email report, review emails from a date range, or export email summaries. Triggers: "email summary", "summarize emails", "email digest", "email report", "what emails", "recent emails summary", "emails from last week", "email roundup".
npx skillsauth add johncarpenter/knowledge-base email-summaryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Summarize emails from configured Gmail and Exchange accounts, categorize them by action type, and save to a local markdown file in operations/emails/.
| Tool | Purpose |
|---|---|
| mcp__gmail__gmail_list_accounts | List configured Gmail accounts |
| mcp__gmail__gmail_search | Search emails with Gmail query syntax |
| mcp__gmail__gmail_get_thread | Get full email thread by ID |
| mcp__gmail__gmail_summarize | Get thread content formatted for summarization |
| Tool | Purpose |
|---|---|
| mcp__exchange__exchange_list_accounts | List configured Exchange accounts |
| mcp__exchange__exchange_search | Search emails with KQL syntax |
| mcp__exchange__exchange_get_message | Get full message details |
| mcp__exchange__exchange_get_thread | Get conversation thread |
Ask the user for the date range if not specified. Common patterns:
mcp__gmail__gmail_list_accounts()
mcp__exchange__exchange_list_accounts()
Present the list and confirm which accounts to include (default: all).
Gmail (use date query syntax):
mcp__gmail__gmail_search(account="<name>", query="after:2026/01/01 before:2026/01/08", max_results=50, include_body=true)
Exchange (use KQL syntax):
mcp__exchange__exchange_search(account="<name>", query="received:2026-01-01..2026-01-07", max_results=50, include_body=true)
Review each email and assign to ONE category:
| Category | Criteria | Examples | |---|---|---| | Tasks | Explicit action required, assignments, deadlines | "Please complete by Friday", "Action required", task assignments | | Response Needed | Awaiting your reply, questions directed at you | Direct questions, meeting requests pending response, approval requests | | Informational | FYI, newsletters, updates, notifications | Status updates, automated notifications, newsletters, announcements | | Other | Doesn't fit above categories | Spam, promotional, unclear intent |
Filename convention: YYYY-MM-DD-email-summary.md (use end date of range)
Output location: operations/emails/
Markdown format:
# Email Summary: [Start Date] to [End Date]
**Generated:** YYYY-MM-DD HH:MM
**Accounts:** account1, account2, account3
**Total Emails:** N
---
## Tasks That Need To Be Done
| Source | From | Subject | Date | Details |
|--------|------|---------|------|---------|
| Gmail/Exchange | [email protected] | Subject line | YYYY-MM-DD | Brief description of task required |
### Task Details
#### [Subject Line]
- **From:** [email protected]
- **Date:** YYYY-MM-DD
- **Account:** Gmail (account-name) / Exchange (account-name)
- **Action Required:** [Clear description of what needs to be done]
- **Deadline:** [If mentioned]
---
## Response Needed
| Source | From | Subject | Date | Details |
|--------|------|---------|------|---------|
| Gmail/Exchange | [email protected] | Subject line | YYYY-MM-DD | What response is needed |
### Response Details
#### [Subject Line]
- **From:** [email protected]
- **Date:** YYYY-MM-DD
- **Account:** Gmail (account-name) / Exchange (account-name)
- **Question/Request:** [What they're asking]
---
## Informational
| Source | From | Subject | Date | Summary |
|--------|------|---------|------|---------|
| Gmail/Exchange | [email protected] | Subject line | YYYY-MM-DD | One-line summary |
---
## Other
| Source | From | Subject | Date | Notes |
|--------|------|---------|------|-------|
| Gmail/Exchange | [email protected] | Subject line | YYYY-MM-DD | Why categorized here |
---
## Statistics
- **Tasks:** N emails
- **Response Needed:** N emails
- **Informational:** N emails
- **Other:** N emails
Write the file to operations/emails/YYYY-MM-DD-email-summary.md and confirm the path to the user.
after:YYYY/MM/DD — emails after datebefore:YYYY/MM/DD — emails before datenewer_than:7d — last 7 daysolder_than:1d — older than 1 dayreceived:YYYY-MM-DD — specific datereceived:YYYY-MM-DD..YYYY-MM-DD — date rangereceived>=YYYY-MM-DD — on or after dateimportance:high (Exchange) or is:important (Gmail) first.gmail_get_thread or exchange_get_thread for full conversation context when categorization is unclear.tools
Generate FinOps cost comparison report using cloud-doctor MCP for Suncorp Azure subscriptions
tools
Query, retrieve, and save Granola meeting notes and summaries locally using the proofgeist Granola MCP server (local cache-based). Use this skill whenever the user wants to: search or find past meetings, get meeting summaries or transcripts, copy meeting notes to local markdown files, review what was discussed in a meeting, look up action items or decisions from meetings, export meeting data, or analyze meeting patterns. Triggers: "meeting notes", "meeting summary", "what was discussed", "find the meeting", "copy meeting notes", "export meeting", "meeting transcript", "action items from meeting", "last meeting", "recent meetings", "meeting with [person]", "granola".
tools
Backup today's Granola meeting notes to local markdown files, organized by client folder. Uses Granola folder metadata to route meetings to appropriate client directories. Run this as part of an evening workflow to archive meeting notes, summaries, and action items. Triggers: "backup meetings", "save today's meetings", "archive meetings", "evening backup", "download meeting notes", "sync meetings", "meeting backup".
tools
Search, retrieve, and index local markdown knowledgebase files using the QMD CLI. Use this skill whenever the user wants to: search a local knowledgebase of markdown files, retrieve specific documents or passages from indexed collections, index or re-index a directory of .md files, check the status of the knowledge index, or perform any knowledge retrieval task against local documentation. Triggers: "search the knowledgebase", "find in docs", "index my files", "look up", "search notes", "retrieve document", "knowledge search", "what does the docs say about", "find information about", "re-index", "update the index".