4.7 KiB
4.7 KiB
version, name, label, description, language, inputs
| version | name | label | description | language | inputs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3 | email_db | Email Database | Query, search, aggregate, and manage the user's email database. Use this tool to answer questions about emails, find messages by sender/domain/date/content, get statistics, and delete emails. The database is a local SQLite copy of the user's synced Gmail. All actions default to inbox scope — use folder parameter to query other folders like sent, spam, trash, or 'all' for everything. | typescript |
|
Email Database Tool
Query and manage the user's local email database (SQLite).
Available Actions
- query: Run a raw SELECT query against the database. Use
sqlparameter. - search: Full-text search across subject, from, and snippet. Use
searchparameter. Combine withdomain,sender,before,afterfor filtering. - stats: Get email statistics — total count, top domains, top senders, date range.
- count: Count emails matching filters (
domain,sender,before,after). - domains: List all sender domains with email counts, sorted by frequency.
- senders: List all senders with email counts, sorted by frequency.
- attachments: Search attachments by type, filename, sender, etc. Use
content_typefor type filtering (e.g.imagefor all images,image/jpegfor specific type). Combine withdomain,sender,before,after,search. - attachment-types: List all attachment content types with counts.
- delete: Delete emails matching filters. Requires at least one of:
domain,sender,before,after, orsql(with DELETE statement).
Database Schema
emails (
id TEXT PRIMARY KEY,
integration TEXT, -- source: 'gmail', 'outlook', etc.
email_account TEXT, -- which account: 'user@gmail.com'
from_name TEXT, -- sender display name
from_address TEXT, -- sender email (lowercase)
from_domain TEXT, -- domain extracted from sender
to_address TEXT,
cc TEXT,
subject TEXT,
date TEXT, -- ISO 8601
snippet TEXT,
html TEXT,
text_body TEXT,
attachment_count INTEGER,
read INTEGER,
deleted INTEGER,
labels TEXT -- comma-separated label list (e.g. 'INBOX,UNREAD,CATEGORY_UPDATES')
)
attachments (
email_id TEXT,
idx INTEGER,
filename TEXT,
size INTEGER,
content_type TEXT
)
Examples
- Search for invoices (inbox only):
action: "search", search: "invoice" - Search sent emails for invoices:
action: "search", search: "invoice", folder: "sent" - Search all folders:
action: "search", search: "invoice", folder: "all" - Count emails from a domain:
action: "count", domain: "newsletter.com" - Delete all emails from a domain:
action: "delete", domain: "spam.com" - Top 10 domains:
action: "domains", limit: 10 - Stats for spam folder:
action: "stats", folder: "spam" - List attachment types:
action: "attachment-types" - Find image attachments:
action: "attachments", content_type: "image" - Find PDFs from a sender:
action: "attachments", content_type: "application/pdf", sender: "boss@company.com" - Custom query:
action: "query", sql: "SELECT from_domain, COUNT(*) as n FROM emails GROUP BY from_domain HAVING n > 50 ORDER BY n DESC"