Deprecated. Deprecated by the publisher: Renamed to ai.sentfrom/mcp (npm: sentfromai-mcp, docs: https://docs.sentfrom.ai/guides/mcp)
Email for AI agents: inboxes, send/reply/forward, search, threads, webhooks — 21 SentVia tools.
Runs on your machine from its package; the steps are below.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y sentvia-mcp
MCP client config
{
"mcpServers": {
"sentfromai-mcp": {
"command": "npx",
"args": [
"-y",
"sentvia-mcp"
]
}
}
}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.
Paste this into your agent (Claude Code, OpenClaw, Gemini CLI, any MCP-capable agent):
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.
As a plugin (asks for the key when you enable it, and adds a skill that teaches Claude email etiquette):
claude plugin marketplace add sentfromai/sentfromai-mcp
claude plugin install sentfromai@sentfromai
Or as a plain MCP server:
claude mcp add sentfromai -- npx -y sentfromai-mcp
{
"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 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.
Add npx -y sentfromai-mcp through VS Code's MCP configuration and enter
SENTFROMAI_API_KEY in a protected input.
gemini extensions install https://github.com/sentfromai/sentfromai-mcp
Gemini asks for the API key on install and keeps it in your keychain.
codex mcp add sentfromai -- npx -y sentfromai-mcp
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.
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.
claude mcp add --transport http sentfromai https://api.sentfrom.ai/mcp
| Area | Tools | Annotation |
|---|---|---|
| Inboxes | create_inbox · list_inboxes · delete_inbox | write · read · delete |
| Messages | send_message · reply_to_message · forward_message | send (irreversible, open world) |
get_message · search_messages | read | |
| Threads | list_threads · get_thread | read |
| Drafts | create_draft · send_draft · list_drafts | write · send · read |
| Domains | add_domain · get_domain | write · read |
| Webhooks | create_webhook · list_webhooks · delete_webhook | write · read · delete |
| Allow/block | add_address_rule · list_address_rules · delete_address_rule | write · 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.
| Env var | Required | Default |
|---|---|---|
SENTFROMAI_API_KEY | yes | — |
SENTFROMAI_BASE_URL | no | https://api.sentfrom.ai |
The tools are exported so you can embed them in your own MCP host or transport:
import { createServer, TOOLS, callTool, createApi } from 'sentfromai-mcp'
const server = createServer({ apiKey: process.env.SENTFROMAI_API_KEY })
await server.connect(yourTransport)
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.