Skip to main content

sendsoon-mcp

MCP server for SendSoon. Lets Codex and Claude use SendSoon capabilities: send email, look up public IPs, and convert local documents to Markdown.

PyPI: sendsoon-mcp
Server name: sendsoon
Transport: stdio
Tools: send_email, ip_lookup, markitdown_convert

Configure it once, then describe tasks in natural language. You usually do not need to mention SendSoon in every prompt.

Full guide (multilingual): github.com/sendsoon/mcp (简体中文 · 日本語)

Install

Recommended (no global install):

uvx sendsoon-mcp

Or install the CLI:

pip install sendsoon-mcp
sendsoon-mcp

Requirements: Python 3.10+, and a client that supports local stdio MCP servers.

What you can do

Tool Purpose Example
send_email Send a single email “Send me a test email”
ip_lookup Look up public IP information “Look up the location of 8.8.8.8”
markitdown_convert Convert a local document to Markdown “Convert this PDF to Markdown”

Everyday examples

Send an email to user@example.com with the subject “Meeting reminder” and the body “The meeting starts at 3 PM today.”
Look up the location and ISP for 8.8.8.8.
Convert /path/to/report.pdf to Markdown and summarize the key points.

If the agent does not select a tool automatically, say:

Use the sendsoon MCP to complete this task.

Install in your AI client

The instructions below cover Codex and Claude Desktop.

Codex

Config file: user-level ~/.codex/config.toml (macOS / Linux) or %USERPROFILE%\.codex\config.toml (Windows).

[mcp_servers.sendsoon]
command = "uvx"
args = ["sendsoon-mcp"]

[mcp_servers.sendsoon.env]
SENDSOON_API_KEY = ""

After pip install sendsoon-mcp, you can use "command": "sendsoon-mcp" with an empty args array instead of uvx.

Verify: Save the file, restart Codex, and run /mcp in a chat. You should see sendsoon connected. In the desktop app, also check Settings > MCP servers.

First use: Start a new conversation and ask for a simple task (e.g. “Look up 8.8.8.8”). Approve the tool if Codex asks for permission.

Claude Desktop

Config file:

OS Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

You can also open Settings > Developer > Edit Config inside Claude Desktop.

{
  "mcpServers": {
    "sendsoon": {
      "command": "uvx",
      "args": ["sendsoon-mcp"],
      "env": {
        "SENDSOON_API_KEY": ""
      }
    }
  }
}

Verify: Save the file, fully quit Claude Desktop (including the system tray), then relaunch. Start a new chat and confirm sendsoon tools appear in the tools menu or settings.

First use: Claude may ask to approve tool access on the first invocation; allow it to continue.

Prepare the configuration

Optional environment variable:

Setting Required What to enter
SENDSOON_API_KEY No Leave empty for an unregistered trial. One public IP can send up to three free test emails per day. Enter your generated Key for continued use

Never commit a real Key to Git or share it with anyone.

Get an API Key

  1. Sign up or sign in on the SendSoon registration page.
  2. Open Profile and generate a Key in the API Key section.
  3. Copy the one-time ssk_live_... Key immediately and enter it as SENDSOON_API_KEY in your MCP configuration.
  4. Save the configuration and restart your MCP client. Requests with a valid Key do not use the anonymous IP daily quota.

If the anonymous quota is exhausted, send_email will tell you to register and configure a Key. An invalid or revoked Key is rejected and does not fall back to the anonymous quota.

Try it in Google Colab

Skip local setup and try ip_lookup, markitdown_convert, and send_email in the browser.

Open in Colab

The notebook calls the same SendSoon HTTP APIs used by these MCP tools.


Visual local testing (MCP Inspector)

To see all three tools in a browser and click through them manually before installing into an AI client, use the MCP Inspector.

Requires Node.js 20+ (for Inspector). Run the command below in a terminal; Inspector opens a web UI automatically:

npx @modelcontextprotocol/inspector uvx sendsoon-mcp

How to test

  1. Wait for MCP Inspector Web is up and running in the terminal. If the browser does not open, paste the http://127.0.0.1:6274?... URL from the terminal.
  2. Confirm the page header shows Connected.
  3. Open the Tools tab in the top-right area of the page.
  4. Select a tool from the list on the left, fill in the parameters, and click Execute Tool.
  5. Read the response in the Results panel on the right. On failure, inspect error.code and error.message.

Development

cd pypi
python -m pip install -e ".[dev]"
pytest
ruff check src tests
mypy

License

MIT — see LICENSE.

Metadata

Release files for sendsoon-mcp 0.3.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sendsoon-mcp 0.3.8
File Size Uploaded
sendsoon_mcp-0.3.8.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sendsoon-mcp 0.3.8
File Interpreter ABI Platform
sendsoon_mcp-0.3.8-py3-none-any.whl Python 3 none any Details

Total release size: 31.1 kB

Release files / sendsoon_mcp-0.3.8.tar.gz

Download URL sendsoon_mcp-0.3.8.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
782f06794c4e8e9e7e3adea1f2f2ee8db2f0c20fbf14e3c52d1095aeca672993
BLAKE2b-256 checksum
How to use checksums
5056a7a20d1404e8e3688edc3968c6744ad58eab6b702c31def2adca5581999e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / sendsoon_mcp-0.3.8-py3-none-any.whl

Download URL sendsoon_mcp-0.3.8-py3-none-any.whl
Size 16.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dbb492192e894cd6119016927d026b4a9835303ffa2834f64adba351333f976
BLAKE2b-256 checksum
How to use checksums
733213473ef99a3568633f9c435be0e484180fd6afb9539ea5dc9cebc5fc0563
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.8 This release

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page