MCP server: One MCP server.

SentFromAI

@sentfromRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Email for AI agents: inboxes, send/reply/forward, search, threads, webhooks — 21 SentFromAI tools.

Sending emailv0.4.1MITJavaScript
Freeno charge per call

One address for any MCP client. You sign in at clerk.sentfrom.ai once, after adding it.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

What it asks for at sign-in

Access toReadChange
Your identity
Profile
Email address
User

From the sign-in at clerk.sentfrom.ai, as the endpoint publishes it. You approve it there.

Tools

None listed · checked 12 Oct 2026

Odel could not list its tools without signing in.

Try it in the Inspector
README4 min read

sentfromai-mcp

npm MCP registry License: MIT

MCP server for SentFromAI — email infrastructure for AI agents.

Gives any MCP-capable agent (Claude Code, Claude Desktop, Cursor, VS Code, Gemini CLI, Codex, OpenClaw, or your own MCP host) email as native tools: create inboxes, send, reply, forward, search, read threads, manage drafts, custom domains, webhooks, and allow/block rules — 21 tools, each a thin wrapper over the SentFromAI REST API. Every tool carries MCP annotations (read-only / write / send / delete) so hosts can group them and confirm the irreversible ones.

Use an existing SentFromAI API key (sf_live_…), or follow the agent setup guide to bootstrap an inbox through REST when agent signup is enabled. New agent accounts can receive and read before their human claims them; sending and other changes require that claim. The console remains available for human signup.

Let your agent install it

Paste this into your agent (Claude Code, OpenClaw, Gemini CLI, any MCP-capable agent):

text
Set up email for yourself: https://docs.sentfrom.ai/agent-install.md

Bootstrap uses POST /v1/agent-signups, not an MCP tool: MCP requires the key returned by signup. Save a random Idempotency-Key before the request and reuse it with the same body for retries within the replay window. Save the response privately; give its claim_url only to your operator in your existing chat. GET /v1/account reports current capabilities; POST /v1/account/claim-link refreshes a link with the original API key. Claiming preserves the inbox and key.

Use your host's protected credential configuration. Never put a real key in chat, shell commands, source control or logs. Configure SENTFROMAI_API_KEY in the stdio server environment privately before starting it; examples below show placeholders only. For hosted MCP, configure its Bearer header privately. This onboarding flow needs the matching API and console rollout; the package itself does not create accounts or bypass account limits.

Install

Claude Code

As a plugin (asks for the key when you enable it, and adds a skill that teaches Claude email etiquette):

bash
claude plugin marketplace add sentfromai/sentfromai-mcp
claude plugin install sentfromai@sentfromai

Or as a plain MCP server:

bash
claude mcp add sentfromai -- npx -y sentfromai-mcp

Claude Desktop, Cursor, Windsurf, Cline, any JSON-config host

json
{
  "mcpServers": {
    "sentfromai": {
      "command": "npx",
      "args": ["-y", "sentfromai-mcp"],
      "env": { "SENTFROMAI_API_KEY": "sf_live_…" }
    }
  }
}

Cursor one-click (then paste your key into the generated config): Install in Cursor

Cursor and Grok Bot (plugin)

Install SentFromAI from the Cursor Marketplace; Grok Bot lists the same plugin under Settings, Plugins. It connects to the hosted endpoint and asks for your API key on install. To try it before it is listed, copy this repo into ~/.cursor/plugins/local/sentfromai and reload Cursor.

VS Code

Add npx -y sentfromai-mcp through VS Code's MCP configuration and enter SENTFROMAI_API_KEY in a protected input.

Gemini CLI

bash
gemini extensions install https://github.com/sentfromai/sentfromai-mcp

Gemini asks for the API key on install and keeps it in your keychain.

Codex CLI

bash
codex mcp add sentfromai -- npx -y sentfromai-mcp

OpenClaw

bash
openclaw mcp add sentfromai --command npx --arg -y --arg sentfromai-mcp
openclaw skills install git:sentfromai/sentfromai-mcp

Full guide: docs.sentfrom.ai/frameworks/openclaw.

Hosted endpoint (no install)

The same 21 tools are served over Streamable HTTP at https://api.sentfrom.ai/mcp for hosts that only speak remote MCP (claude.ai connectors, ChatGPT apps, Meta Muse, Cursor remote servers, MCP Inspector). Authenticate with Authorization: Bearer sf_live_… (an x-api-key header also works), or let OAuth-capable hosts sign you in: the endpoint publishes RFC 9728 resource metadata pointing at SentFromAI's authorization server.

bash
claude mcp add --transport http sentfromai https://api.sentfrom.ai/mcp

Tools

AreaToolsAnnotation
Inboxescreate_inbox · list_inboxes · delete_inboxwrite · read · delete
Messagessend_message · reply_to_message · forward_messagesend (irreversible, open world)
get_message · search_messagesread
Threadslist_threads · get_threadread
Draftscreate_draft · send_draft · list_draftswrite · send · read
Domainsadd_domain · get_domainwrite · read
Webhookscreate_webhook · list_webhooks · delete_webhookwrite · read · delete
Allow/blockadd_address_rule · list_address_rules · delete_address_rulewrite · read · delete

Replies thread correctly (In-Reply-To/References set automatically), search supports keyword, semantic, and hybrid modes, and sends respect the same idempotency and suppression rules as the REST API. API failures come back as tool results with isError and the HTTP status, so the model can read a 401 (bad key) or 402 (plan limit) and tell you instead of retrying.

Configuration

Env varRequiredDefault
SENTFROMAI_API_KEYyes—
SENTFROMAI_BASE_URLnohttps://api.sentfrom.ai

Programmatic use

The tools are exported so you can embed them in your own MCP host or transport:

js
import { createServer, TOOLS, callTool, createApi } from 'sentfromai-mcp'

const server = createServer({ apiKey: process.env.SENTFROMAI_API_KEY })
await server.connect(yourTransport)

Privacy

This server keeps no state and stores nothing locally. Every tool call is one HTTPS request to api.sentfrom.ai authenticated with your API key. SentFromAI's privacy policy: https://sentfrom.ai/privacy · terms: https://sentfrom.ai/terms.

Docs

Similar modules

Browse Sending email