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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sendsoon_mcp-0.3.4.tar.gz.
File metadata
- Download URL: sendsoon_mcp-0.3.4.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4843354605c9cc9c0bb33cf803e082126f1e670dbd0ca1e24cd7b26a60056e
|
|
| MD5 |
8d7e543f6da28b26df7ccba8b8410467
|
|
| BLAKE2b-256 |
08295525e0150061634875aa09bf33203d1478b2032e1b622d54aa9ad4f08e44
|
Provenance
The following attestation bundles were made for sendsoon_mcp-0.3.4.tar.gz:
Publisher:
publish-pypi.yml on sendsoon/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendsoon_mcp-0.3.4.tar.gz -
Subject digest:
ef4843354605c9cc9c0bb33cf803e082126f1e670dbd0ca1e24cd7b26a60056e - Sigstore transparency entry: 2613407862
- Sigstore integration time:
-
Permalink:
sendsoon/mcp@662d103914c1a940503b05625b9ce3022a1d3f62 -
Branch / Tag:
refs/tags/v0.3.4 - Owner: https://github.com/sendsoon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@662d103914c1a940503b05625b9ce3022a1d3f62 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sendsoon_mcp-0.3.4-py3-none-any.whl.
File metadata
- Download URL: sendsoon_mcp-0.3.4-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c11624868053850ad26508a98f67f7d97820a34498dddfed347ec73b3146592
|
|
| MD5 |
3d8b66e90f153e157f1f7bcac9c3908d
|
|
| BLAKE2b-256 |
7c7e67bde5c13a4f20094107ef1846cdc322ae922667336e9d765442d74f3f9b
|
Provenance
The following attestation bundles were made for sendsoon_mcp-0.3.4-py3-none-any.whl:
Publisher:
publish-pypi.yml on sendsoon/mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sendsoon_mcp-0.3.4-py3-none-any.whl -
Subject digest:
2c11624868053850ad26508a98f67f7d97820a34498dddfed347ec73b3146592 - Sigstore transparency entry: 2613407873
- Sigstore integration time:
-
Permalink:
sendsoon/mcp@662d103914c1a940503b05625b9ce3022a1d3f62 -
Branch / Tag:
refs/tags/v0.3.4 - Owner: https://github.com/sendsoon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@662d103914c1a940503b05625b9ce3022a1d3f62 -
Trigger Event:
push
-
Statement type: