From better-email-mcp
Identifies emails needing follow-up: unanswered sent emails after specified days, flagged unreplied messages; cross-references folders and drafts contextual reply responses.
npx claudepluginhub n24q02m/claude-plugins --plugin better-email-mcpThis skill uses the workspace's default tool permissions.
Find emails that need follow-up and draft contextual responses.
Identifies emails needing follow-up: unanswered sent emails after specified days, flagged unreplied messages; cross-references folders and drafts contextual reply responses.
Guides Apple Mail inbox triage, organization, replies, and cleanup using MCP tools like get_inbox_overview, move_email, and batch operations for productivity workflows.
Guides Apple Mail inbox triage, organization, replies, and cleanup using MCP tools like get_inbox_overview, search_emails, move_email, and update_email_status for inbox zero.
Share bugs, ideas, or general feedback.
Find emails that need follow-up and draft contextual responses.
Find emails you sent that received no reply after N days:
Search Sent folder for emails sent N+ days ago:
messages(action="search", query="SINCE 2026-03-16 BEFORE 2026-03-20", folder="Sent", account="...")
Cross-reference Inbox for replies:
Re: prefix):
messages(action="search", query="SUBJECT \"Re: <original subject>\" FROM <recipient>")Present candidates with context:
No reply after 5 days:
1. "API Integration Proposal" to partner@company.com (sent Mar 18)
Original: Asked about timeline for API access
2. "Invoice #2024-003" to client@business.com (sent Mar 16)
Original: Sent invoice, requested payment confirmation
Find received emails you flagged/starred but never responded to:
messages(action="search", query="FLAGGED", account="...")
Then for each flagged email, check Sent folder for a reply with matching subject. If none found, it needs attention.
For each follow-up candidate:
Read the original thread to get full context
Decide reply type:
Use reply (not new message) when following up on existing threads:
send(action="reply", message_id="<original_msg_id>", body="<follow-up text>")
Only use send(action="send") for new conversations.
Follow-up tone guidelines:
Check all accounts, same as inbox-review:
messages(action="list_accounts")
# Iterate each account's Sent folder