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
- Sign up or sign in on the SendSoon registration page.
- Open Profile and generate a Key in the API Key section.
- Copy the one-time
ssk_live_...Key immediately and enter it asSENDSOON_API_KEYin your MCP configuration. - 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.
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
- Wait for
MCP Inspector Web is up and runningin the terminal. If the browser does not open, paste thehttp://127.0.0.1:6274?...URL from the terminal. - Confirm the page header shows Connected.
- Open the Tools tab in the top-right area of the page.
- Select a tool from the list on the left, fill in the parameters, and click Execute Tool.
- Read the response in the Results panel on the right. On failure, inspect
error.codeanderror.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)
| File | Size | Uploaded | |
|---|---|---|---|
| sendsoon_mcp-0.3.8.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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