Files
platform/seed/tools/email-db/TOOL.md
T
2026-02-27 08:27:43 +00:00

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
action sql search domain sender before after content_type folder limit
type description
string Action to perform: query, search, stats, count, domains, senders, attachments, attachment-types, delete
type description optional
string Raw SQL query for the 'query' action. Only SELECT statements are allowed unless action is 'delete'. true
type description optional
string Search term for the 'search' action. Searches subject, from, and snippet fields. true
type description optional
string Domain to filter by (e.g. 'newsletter.example.com') for search, count, or delete actions. true
type description optional
string Sender email address to filter by for search, count, or delete actions. true
type description optional
string ISO date string — only include emails before this date. true
type description optional
string ISO date string — only include emails after this date. true
type description optional
string Attachment content type filter. Full MIME type (e.g. 'image/jpeg') or just the type prefix (e.g. 'image' matches all image types). Used with 'attachments' action. true
type description optional
string Gmail folder/label to scope results. Defaults to 'inbox'. Use 'all' for all folders. Common values: inbox, sent, spam, trash. true
type description optional
number Maximum number of results to return (default 20, max 100). true

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 sql parameter.
  • search: Full-text search across subject, from, and snippet. Use search parameter. Combine with domain, sender, before, after for 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_type for type filtering (e.g. image for all images, image/jpeg for specific type). Combine with domain, 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, or sql (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"