# io.github.agenticmail/mcp (npm · @agenticmail/mcp)

Real email and SMS for AI agents — send mail, receive verification codes, drive a real inbox.

- Trust score: 62/100 (medium)
- Change this week: +56
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `@agenticmail/mcp`: 62/100 (this document), [markdown](https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp.md), [page](https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp)

## Channel facts

- Registry: `npm`
- Package: `@agenticmail/mcp`
- Version: `0.5.59`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects this package.
  - No install/post-install scripts declared.
  - Dependency health was assessed across the 176 of 180 dependencies we could resolve, so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 69 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 5238 tokens (~83/item across 63 items; 62 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add agenticmail-mcp -- npx -y @agenticmail/mcp
```

### Codex

```bash
codex mcp add agenticmail-mcp -- npx -y @agenticmail/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "agenticmail-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@agenticmail/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add agenticmail-mcp --command npx --arg -y --arg @agenticmail/mcp
```

### Hermes

```yaml
mcp_servers:
  agenticmail-mcp:
    command: "npx"
    args: ["-y", "@agenticmail/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "agenticmail-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agenticmail/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 62, +1)

- [functional improvement] Security disclosure: fail → pass

### 2026-08-06 (score 61, +31)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: good

### 2026-08-05 (score 30, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-08-04 (score 30, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-08-03 (score 30, +10)

- [security regression] CVE-2026-57495 affects this package: high
- [security regression] CVE-2026-50287 affects this package: high
- [security regression] GHSA-p6gq-j5cr-w38f affects this package: high
- [security regression] CVE-2026-47255 affects this package: high
- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare.
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Capabilities: Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake.
- [functional] Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess.
- [functional] Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess.
- [functional] Licence: MIT

### 2026-08-02 (score 20, −1)

- [functional regression] Security disclosure: fail → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-08-01 (score 21, +15)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 6, −18)

- [security regression] Malware scan: pass → unverified

## MCP tools (62)

### `send_email` (~148 tokens)

Send an email from the agent's mailbox. External emails are scanned for sensitive content. HIGH severity detections are BLOCKED and held for owner approval. Your owner will be notified and must approve blocked emails. You CANNOT bypass the outbound guard.

Input parameters:

- `attachments` (array): File attachments
- `cc` (string): CC recipients (optional)
- `html` (string): HTML body (optional)
- `inReplyTo` (string): Message-ID to reply to (optional)
- `references` (array): Message-IDs for threading (optional)
- `subject` (string, required): Email subject line
- `text` (string): Plain text body
- `to` (string, required): Recipient email address

### `list_inbox` (~53 tokens)

List recent emails in the agent's inbox

Input parameters:

- `limit` (number): Maximum number of messages to return (default: 20)
- `offset` (number): Number of messages to skip (default: 0)

### `read_email` (~34 tokens)

Read the full content of a specific email by its UID

Input parameters:

- `uid` (number, required): The UID of the email to read

### `delete_email` (~29 tokens)

Delete an email by its UID

Input parameters:

- `uid` (number, required): The UID of the email to delete

### `search_emails` (~182 tokens)

Search emails by criteria (from, to, subject, text, date range). By default searches the local inbox only. Set searchRelay=true to also search the connected Gmail/Outlook account — results include relay UIDs that can be imported with import_relay_email.

Input parameters:

- `before` (string): Messages before date (ISO 8601)
- `from` (string): Filter by sender address
- `searchRelay` (boolean): Also search the connected Gmail/Outlook account (default: false). Use this to find past emails from the user's main inbox.
- `seen` (boolean): Filter by read/unread status
- `since` (string): Messages since date (ISO 8601)
- `subject` (string): Filter by subject keyword
- `text` (string): Search body text
- `to` (string): Filter by recipient address

### `import_relay_email` (~94 tokens)

Import an email from the connected Gmail/Outlook account into the agent's local inbox. This downloads the full message with all headers (Message-ID, In-Reply-To, References) so you can continue the thread using reply_email. Use search_emails with searchRelay=true first to find the relay UID.

Input parameters:

- `uid` (number, required): The relay UID of the email to import (from search_emails relay results)

### `reply_email` (~107 tokens)

Reply to an email. Fetches the original message, auto-fills To, Subject (Re:), In-Reply-To, and References, then sends with quoted body. Outbound guard applies — HIGH severity content is held for review.

Input parameters:

- `html` (string): HTML reply (optional)
- `replyAll` (boolean): Reply to all recipients (default: false)
- `text` (string, required): Your reply text
- `uid` (number, required): UID of the email to reply to

### `forward_email` (~63 tokens)

Forward an email to another recipient. Outbound guard applies — HIGH severity content is held for review.

Input parameters:

- `text` (string): Additional message (optional)
- `to` (string, required): Recipient to forward to
- `uid` (number, required): UID of the email to forward

### `move_email` (~65 tokens)

Move an email to another folder (e.g., Trash, Archive)

Input parameters:

- `from` (string): Source folder (default: INBOX)
- `to` (string, required): Destination folder (e.g., Trash, Archive)
- `uid` (number, required): UID of the email to move

### `mark_unread` (~26 tokens)

Mark an email as unread

Input parameters:

- `uid` (number, required): UID of the email

### `mark_read` (~25 tokens)

Mark an email as read

Input parameters:

- `uid` (number, required): UID of the email

### `list_folders` (~16 tokens)

List all mail folders/mailboxes

### `list_folder` (~62 tokens)

List messages in a specific folder

Input parameters:

- `folder` (string, required): Folder path (e.g., INBOX, Trash, Sent)
- `limit` (number): Max messages (default: 20)
- `offset` (number): Skip messages (default: 0)

### `batch_delete` (~42 tokens)

Delete multiple emails by UIDs

Input parameters:

- `folder` (string): Folder (default: INBOX)
- `uids` (array, required): Array of UIDs to delete

### `batch_mark_read` (~44 tokens)

Mark multiple emails as read

Input parameters:

- `folder` (string): Folder (default: INBOX)
- `uids` (array, required): Array of UIDs to mark as read

### `manage_contacts` (~62 tokens)

List, add, or delete contacts

Input parameters:

- `action` (string, required): Action to perform
- `email` (string): Contact email (for add)
- `id` (string): Contact ID (for delete)
- `name` (string): Contact name (for add)

### `manage_drafts` (~82 tokens)

List, create, update, send, or delete drafts

Input parameters:

- `action` (string, required): Action to perform
- `id` (string): Draft ID (for update/send/delete)
- `subject` (string): Subject (for create/update)
- `text` (string): Body text (for create/update)
- `to` (string): Recipient (for create/update)

### `manage_scheduled` (~158 tokens)

Manage scheduled emails: create a new scheduled email, list pending ones, or cancel one. Accepts flexible time formats for create: ISO 8601, relative ("in 30 minutes"), named ("tomorrow 8am"), day-based ("next monday 9am"), or human-friendly ("02-14-2026 3:30 PM EST").

Input parameters:

- `action` (string, required): Action to perform (default: create)
- `id` (string): Scheduled email ID (for cancel)
- `sendAt` (string): When to send (for create)
- `subject` (string): Email subject (for create)
- `text` (string): Body text (for create)
- `to` (string): Recipient email (for create)

### `create_folder` (~36 tokens)

Create a new mail folder for organizing emails

Input parameters:

- `name` (string, required): Folder name (e.g., Projects, Clients, Newsletters)

### `manage_tags` (~135 tokens)

Create, list, delete tags, tag/untag messages, get messages by tag, or get all tags for a specific message.

Input parameters:

- `action` (string, required): Action to perform
- `color` (string): Tag color hex code (for create, e.g. #ff0000)
- `folder` (string): Folder the message is in (default: INBOX)
- `id` (string): Tag ID (for delete, tag_message, untag_message, get_messages)
- `name` (string): Tag name (for create)
- `uid` (number): Message UID (for tag_message, untag_message)

### `create_account` (~63 tokens)

Create a new agent email account (requires master API key)

Input parameters:

- `domain` (string): Email domain (default: localhost)
- `name` (string, required): Agent name (will be used as email local part)
- `role` (string): Agent role (default: secretary)

### `setup_email_relay` (~269 tokens)

Configure Gmail/Outlook relay for sending real internet email (requires master API key). BEGINNER-FRIENDLY: Just needs a Gmail/Outlook email + app password. Agents send as user+agentname@gmail.com. Automatically creates a default agent (secretary) unless skipped. Best for: quick setup, personal use, no domain needed.

Input parameters:

- `agentName` (string): Name for the default agent (default: secretary). This becomes the email sub-address, e.g., user+secretary@gmail.com
- `agentRole` (string): Role for the default agent (default: secretary)
- `email` (string, required): Your real email address (e.g., user@gmail.com)
- `imapHost` (string): IMAP host (auto-filled for gmail/outlook)
- `imapPort` (number): IMAP port (auto-filled for gmail/outlook)
- `password` (string, required): App password (not your regular password)
- `provider` (string, required): Email provider (gmail, outlook, or custom)
- `skipDefaultAgent` (boolean): Skip creating the default agent (default: false)
- `smtpHost` (string): SMTP host (auto-filled for gmail/outlook)
- `smtpPort` (number): SMTP port (auto-filled for gmail/outlook)

### `setup_email_domain` (~213 tokens)

Set up a custom domain for real internet email via Cloudflare (requires master API key). ADVANCED: Requires Cloudflare account, API token, and a domain. Emails send from agent@yourdomain.com with full DKIM/SPF/DMARC. Optionally configures Gmail SMTP as outbound relay (recommended for residential IPs). After setup with gmailRelay, use setup_gmail_alias for each agent.

Input parameters:

- `cloudflareAccountId` (string, required): Cloudflare account ID
- `cloudflareToken` (string, required): Cloudflare API token (Zone>Zone>Read, Zone>DNS>Edit, Zone>Email Routing Rules>Edit, Account>Cloudflare Tunnel>Edit, Account>Workers Scripts>Edit; optional: Account>Registrar: Domains>Edit for domain…
- `domain` (string): Domain to use (if already owned)
- `gmailRelay` (object): Gmail SMTP relay for outbound delivery (recommended for residential IPs without PTR records)
- `purchase` (object): Purchase a new domain (if domain not provided)

### `setup_guide` (~50 tokens)

Get a comparison of email setup modes (Relay vs Domain) with difficulty levels, requirements, pros/cons, and step-by-step instructions. Show this to users who want to set up real internet email.

### `setup_gmail_alias` (~117 tokens)

Get step-by-step instructions (with exact field values) to add an agent email as a Gmail "Send mail as" alias. Returns the Gmail settings URL and all field values. Required after domain mode setup with gmailRelay to show correct From address. The agent can automate this via browser tools or present instructions to the user.

Input parameters:

- `agentDisplayName` (string): Display name for the alias (defaults to agent name)
- `agentEmail` (string, required): Agent email to add as alias (e.g., secretary@yourdomain.com)

### `setup_payment` (~57 tokens)

Get instructions for adding a payment method to Cloudflare (required before purchasing domains). Returns Option A (self-service link) and Option B (browser automation steps). Card details go directly to Cloudflare — never stored by 🎀 AgenticMail.

### `purchase_domain` (~104 tokens)

Search for available domains via Cloudflare Registrar (requires master API key). NOTE: Cloudflare API only supports READ access — domains must be purchased manually at https://dash.cloudflare.com or from another registrar (then point nameservers to Cloudflare).

Input parameters:

- `keywords` (array, required): Keywords to search for (e.g., ["mybot", "aimail"])
- `tld` (string): Preferred TLD (default: checks .com, .net, .io, .dev)

### `check_gateway_status` (~26 tokens)

Check the current email gateway status — relay mode, domain mode, or not configured

### `send_test_email` (~39 tokens)

Send a test email through the gateway to verify configuration (requires master API key)

Input parameters:

- `to` (string, required): Email address to send the test to

### `list_agents` (~36 tokens)

List all AI agents in the system with their email addresses and roles. Use this to discover which agents you can communicate with via message_agent.

### `message_agent` (~110 tokens)

Send a message to another AI agent by name. The message is delivered to their email inbox. Use list_agents first to see available agents. This is the primary way for agents to coordinate and share information with each other.

Input parameters:

- `agent` (string, required): Name of the recipient agent (e.g. "researcher", "writer")
- `priority` (string): Priority level (default: normal)
- `subject` (string, required): Message subject — describe the purpose clearly
- `text` (string, required): Message body

### `check_messages` (~41 tokens)

Check for new unread messages from other agents or external senders. Returns a summary of pending communications. Use this to stay aware of requests and coordinate with other agents.

### `delete_agent` (~62 tokens)

Delete an agent account. Archives all emails and generates a deletion report before removing the account permanently. Returns the deletion summary. Requires master API key.

Input parameters:

- `name` (string, required): Name of the agent to delete
- `reason` (string): Reason for deletion (optional)

### `deletion_reports` (~51 tokens)

List past agent deletion reports or retrieve a specific report by ID. Shows archived email summaries from deleted agents. Requires master API key.

Input parameters:

- `id` (string): Deletion report ID (omit to list all reports)

### `manage_signatures` (~80 tokens)

List, create, or delete email signatures

Input parameters:

- `action` (string, required): Action to perform
- `id` (string): Signature ID (for delete)
- `isDefault` (boolean): Set as default signature (for create)
- `name` (string): Signature name (for create)
- `text` (string): Signature text content (for create)

### `manage_templates` (~76 tokens)

List, create, or delete email templates

Input parameters:

- `action` (string, required): Action to perform
- `id` (string): Template ID (for delete)
- `name` (string): Template name (for create)
- `subject` (string): Template subject (for create)
- `text` (string): Template body text (for create)

### `batch_mark_unread` (~45 tokens)

Mark multiple emails as unread

Input parameters:

- `folder` (string): Folder (default: INBOX)
- `uids` (array, required): Array of UIDs to mark as unread

### `batch_move` (~59 tokens)

Move multiple emails to another folder

Input parameters:

- `from` (string): Source folder (default: INBOX)
- `to` (string, required): Destination folder (e.g., Trash, Archive)
- `uids` (array, required): Array of UIDs to move

### `whoami` (~25 tokens)

Get the current agent's account info — name, email, role, and metadata

### `update_metadata` (~38 tokens)

Update the current agent's metadata. Merges provided keys with existing metadata.

Input parameters:

- `metadata` (object, required): Metadata key-value pairs to set or update

### `check_health` (~18 tokens)

Check 🎀 AgenticMail server health status

### `wait_for_email` (~83 tokens)

Wait for a new email or task notification using push notifications (SSE). Blocks until an email arrives, a task is assigned to you, or timeout is reached. Much more efficient than polling — use this when waiting for a reply or a task from another agent.

Input parameters:

- `timeout` (number): Max seconds to wait (default: 120, max: 300)

### `batch_read` (~56 tokens)

Read multiple emails at once by UIDs. Returns full parsed content for each message in a single call.

Input parameters:

- `folder` (string): Folder (default: INBOX)
- `uids` (array, required): Array of UIDs to read

### `inbox_digest` (~103 tokens)

Get a compact inbox digest with subject, sender, date, flags and text preview for each message. More efficient than listing then reading individually.

Input parameters:

- `folder` (string): Folder (default: INBOX)
- `limit` (number): Max messages (default: 20, max: 50)
- `offset` (number): Skip messages (default: 0)
- `previewLength` (number): Preview text length (default: 200, max: 500)

### `template_send` (~82 tokens)

Send an email using a saved template with variable substitution. Variables like {{name}} are replaced.

Input parameters:

- `bcc` (string): BCC recipients
- `cc` (string): CC recipients
- `id` (string, required): Template ID
- `to` (string, required): Recipient email
- `variables` (object): Variables to substitute: { name: "Alice" }

### `manage_rules` (~126 tokens)

Manage server-side email rules that auto-process incoming messages (move, tag, mark read, delete).

Input parameters:

- `action` (string, required): Action to perform
- `actions` (object): Actions on match: { move_to?, mark_read?, delete?, add_tags? }
- `conditions` (object): Match conditions: { from_contains?, subject_contains?, subject_regex?, to_contains?, has_attachment? }
- `id` (string): Rule ID (for delete)
- `name` (string): Rule name (for create)
- `priority` (number): Higher priority rules match first (for create)

### `cleanup_agents` (~94 tokens)

List or remove inactive non-persistent agent accounts (requires master API key)

Input parameters:

- `action` (string, required): Action to perform
- `agentId` (string): Agent ID (for set_persistent)
- `dryRun` (boolean): Preview without deleting (for cleanup)
- `hours` (number): Inactivity threshold in hours (default: 24)
- `persistent` (boolean): Set persistent flag (for set_persistent)

### `check_tasks` (~67 tokens)

Check for pending tasks assigned to you (or a specific agent) or tasks you assigned to others

Input parameters:

- `assignee` (string): Check tasks for a specific agent by name (only for incoming direction)
- `direction` (string): incoming (assigned to me) or outgoing (I assigned)

### `claim_task` (~27 tokens)

Claim a pending task assigned to you

Input parameters:

- `id` (string, required): Task ID to claim

### `submit_result` (~40 tokens)

Submit the result for a claimed task, marking it as completed

Input parameters:

- `id` (string, required): Task ID
- `result` (object): Task result data

### `call_agent` (~94 tokens)

Synchronous RPC: assign a task to another agent, notify them via email (wakes wait_for_email), and wait for the result. Times out after specified duration.

Input parameters:

- `payload` (object): Additional data
- `target` (string, required): Name of the agent to call
- `task` (string, required): Task description
- `timeout` (number): Max seconds to wait (default: 180, max: 300)

### `manage_spam` (~138 tokens)

Manage spam: list spam folder, report a message as spam, mark as not-spam, or get the spam score of a message. Emails are auto-scored on arrival; high-scoring messages are moved to Spam automatically.

Input parameters:

- `action` (string, required): Action to perform
- `folder` (string): Source folder (for report/score, default: INBOX)
- `limit` (number): Max messages to list (for list, default: 20)
- `offset` (number): Skip messages (for list, default: 0)
- `uid` (number): Message UID (for report, not_spam, score)

### `manage_pending_emails` (~87 tokens)

Check the status of pending outbound emails blocked by the outbound guard. You can list all your pending emails or get details of a specific one. You CANNOT approve or reject — only the owner can do that.

Input parameters:

- `action` (string, required): Action to perform (list or get only — approve/reject require owner)
- `id` (string): Pending email ID (required for get)

### `sms_setup` (~89 tokens)

Configure SMS/phone number access via Google Voice. The user must have a Google Voice account with SMS-to-email forwarding enabled. This gives the agent a phone number for receiving verification codes and sending texts.

Input parameters:

- `forwardingEmail` (string): Email address Google Voice forwards SMS to (defaults to agent email)
- `phoneNumber` (string, required): Google Voice phone number (e.g. +12125551234)

### `sms_send` (~66 tokens)

Send an SMS text message via Google Voice. Records the message and provides instructions for sending via Google Voice web interface. The agent can automate the actual send using browser automation on voice.google.com.

Input parameters:

- `body` (string, required): Text message body
- `to` (string, required): Recipient phone number

### `sms_messages` (~66 tokens)

List SMS messages (inbound and outbound). Use direction filter to see only received or sent messages.

Input parameters:

- `direction` (string): Filter by direction
- `limit` (number): Max messages (default: 20)
- `offset` (number): Skip messages (default: 0)

### `sms_check_code` (~69 tokens)

Check for recent verification/OTP codes received via SMS. Scans inbound SMS for common code patterns (6-digit, 4-digit, alphanumeric). Use this after requesting a verification code during sign-up flows.

Input parameters:

- `minutes` (number): How many minutes back to check (default: 10)

### `sms_parse_email` (~73 tokens)

Parse an SMS from a forwarded Google Voice email. Use this when you receive an email from Google Voice containing an SMS. Extracts the sender number, message body, and any verification codes.

Input parameters:

- `emailBody` (string, required): The email body text to parse
- `emailFrom` (string): The email sender address

### `storage` (~679 tokens)

Full database management system for agents. 28 actions: DDL (create/alter/drop/clone/rename tables & columns), DML (insert/upsert/query/aggregate/update/delete/truncate), indexing (create/list/drop/reindex), import/export (JSON/CSV, conflict handling), raw SQL, maintenance (stats/vacuum/analyze/explain), archiving. WHERE supports operators: $gt, $gte, $lt, $lte, $ne, $like, $ilike, $in, $not_in, $is_null, $between. Works on SQLite, Postgres, MySQL, Turso.

Input parameters:

- `action` (string, required): create_table, list_tables, describe_table, insert, upsert, query, aggregate, update, delete_rows, truncate, drop_table, clone_table, rename_table, rename_column, add_column, drop_column, create_index…
- `column` (object): For add_column: {name, type, ...}
- `columnName` (string): For drop_column
- `columns` (array): For create_table: [{name, type, required?, default?, unique?, primaryKey?, references?: {table, column, onDelete?}, check?}]
- `conflictColumn` (string): For upsert/import
- `description` (string): For create_table: human-readable description
- `distinct` (boolean): SELECT DISTINCT
- `format` (string): For export: json|csv
- `groupBy` (string): GROUP BY clause
- `having` (string): HAVING clause
- `includeArchived` (boolean): For list_tables
- `includeData` (boolean): For clone_table
- `includeShared` (boolean): For list_tables
- `indexColumns` (array): For create_index
- `indexName` (string): For create/drop_index
- `indexUnique` (boolean): For create_index
- `indexWhere` (string): Partial index condition
- `indexes` (array): For create_table: [{columns, unique?, name?, where?}]
- `limit` (number): Max rows
- `newName` (string): For rename_table/rename_column/clone_table
- `offset` (number): Skip rows
- `oldName` (string): For rename_column
- `onConflict` (string): For import: skip|replace|error
- `operations` (array): For aggregate: [{fn: count|sum|avg|min|max|count_distinct, column?, alias?}]
- `orderBy` (string): ORDER BY clause
- `params` (array): For sql/explain: query params
- `rows` (array): For insert/upsert/import: row objects
- `selectColumns` (array): Specific columns to select
- `set` (object): For update: {column: newValue}
- `shared` (boolean): For create_table: shared across agents
- `sql` (string): For sql/explain: raw SQL
- `table` (string): Table name
- `timestamps` (boolean): For create_table: auto-add created_at/updated_at (default: true)
- `where` (object): Filter conditions with operator support

### `sms_config` (~34 tokens)

Get the current SMS/phone number configuration for this agent. Shows whether SMS is enabled, the phone number, and forwarding email.

### `sms_read_voice` (~49 tokens)

Get instructions and URL for reading SMS directly from Google Voice web (FASTEST method). Returns the voice.google.com URL and guidance for browser-based SMS reading. Primary method - much faster than email forwarding.

### `sms_record` (~61 tokens)

Record an SMS message read from Google Voice web or any other source. Saves to SMS database and extracts verification codes. Use after reading a message from voice.google.com.

Input parameters:

- `body` (string, required): SMS message text
- `from` (string, required): Sender phone number

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp#diagnostics

## Score history

- 2026-08-07: 62
- 2026-08-06: 61
- 2026-08-05: 30
- 2026-08-04: 30
- 2026-08-03: 30
- 2026-08-02: 20
- 2026-08-01: 21
- 2026-07-31: 6
- 2026-07-29: 24
- 2026-07-28: 24
- 2026-07-27: 24

## Links

- npm package: https://www.npmjs.com/package/@agenticmail/mcp
- Socket report: https://socket.dev/npm/package/@agenticmail/mcp
- Repository: https://github.com/agenticmail/agenticmail
- Changelog RSS feed: https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp.json
- HTML version of this page: https://verifymcp.io/servers/agenticmail-mcp/agenticmail-mcp
