sendsoon-mcp (PyPI)
MCP server for SendSoon. Gives Codex and Claude the ability to send email, look up public IP information, and convert local documents to Markdown.
PyPI: sendsoon-mcp
Server name: sendsoon
Transport: stdio
Tools: send_email, ip_lookup, markitdown_convert
Python package version stays aligned with the Node package @sendsoon/mcp. Tool names, titles, parameters, and response semantics stay aligned.
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.
Visual local test (MCP Inspector)
npx @modelcontextprotocol/inspector uvx sendsoon-mcp
Open the Tools tab, pick a tool, fill parameters, and click Execute Tool. See the root README for step-by-step instructions.
Configuration
| Variable | Required | Description |
|---|---|---|
SENDSOON_API_KEY |
No | Leave empty for anonymous trial: one public IP may send up to 3 test emails per day. After that, register at sendsoonai.com, generate a ssk_live_... Key at Profile, and set it here. |
Never commit a real Key to Git or share it with anyone.
Invalid or revoked Keys are rejected and do not fall back to the anonymous quota.
Client configuration
For Codex and Claude Desktop only.
Codex
~/.codex/config.toml:
[mcp_servers.sendsoon]
command = "uvx"
args = ["sendsoon-mcp"]
[mcp_servers.sendsoon.env]
SENDSOON_API_KEY = ""
Verify with /mcp after restart.
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sendsoon": {
"command": "uvx",
"args": ["sendsoon-mcp"],
"env": { "SENDSOON_API_KEY": "" }
}
}
}
Fully quit and restart Claude Desktop after saving.
Tools
send_email — Send Email
Send one test email through SendSoon. Pass the recipient in to.
| Parameter | Required | Notes |
|---|---|---|
to |
Yes | Valid email address |
subject |
Yes | Non-empty, max 998 characters |
body |
Yes | Plain text or HTML; max 512,000 UTF-8 bytes |
content_type |
No | text/plain (default) or text/html |
idempotency_key |
No | 1–128 chars, [A-Za-z0-9._:-]+ |
ip_lookup — IP Lookup
Look up geolocation and ISP info for a public IPv4 or IPv6 address via SendSoon.
| Parameter | Required | Notes |
|---|---|---|
ip |
Yes | Public IPv4 or IPv6 only |
markitdown_convert — File to Markdown
Convert a local document to Markdown. Provide file_path; the file name is detected automatically (max 10 MB).
| Parameter | Required | Notes |
|---|---|---|
file_path |
Yes | Absolute local path to the file |
Supported extensions: .pdf .docx .pptx .xlsx .xls .txt .md .html .htm
Not supported: images (.png, .jpg, etc.), direct URLs (save as .html first), audio, .zip, .epub, .csv, .json, .xml.
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.3.tar.gz.
File metadata
- Download URL: sendsoon_mcp-0.3.3.tar.gz
- Upload date:
- Size: 13.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 |
77b20283867e9a57ba561f0201a0d9799a2cc3db53fde40daf3a6b9114b782f6
|
|
| MD5 |
c9264351c0d1b0abf6033b457ec6ff64
|
|
| BLAKE2b-256 |
803f1c85cb357ce2fa7df36052401b55976d48df1163063048ce2b5550625c06
|
Provenance
The following attestation bundles were made for sendsoon_mcp-0.3.3.tar.gz:
Publisher:
release.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.3.tar.gz -
Subject digest:
77b20283867e9a57ba561f0201a0d9799a2cc3db53fde40daf3a6b9114b782f6 - Sigstore transparency entry: 2613369324
- Sigstore integration time:
-
Permalink:
sendsoon/mcp@7df5586daf6dab002ada546abf3992d0fe615a64 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/sendsoon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7df5586daf6dab002ada546abf3992d0fe615a64 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sendsoon_mcp-0.3.3-py3-none-any.whl.
File metadata
- Download URL: sendsoon_mcp-0.3.3-py3-none-any.whl
- Upload date:
- Size: 16.0 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 |
3f8a7c35eaaaf0ba312aa59957ddbf3792f28548e88b1ac3427295596dffe7c8
|
|
| MD5 |
9b1361b90e09a37f26ce85ea6788028d
|
|
| BLAKE2b-256 |
1153f5f77d105f793913b6729bc7e848af1894ee2c3c8d0142a714bcd754830c
|
Provenance
The following attestation bundles were made for sendsoon_mcp-0.3.3-py3-none-any.whl:
Publisher:
release.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.3-py3-none-any.whl -
Subject digest:
3f8a7c35eaaaf0ba312aa59957ddbf3792f28548e88b1ac3427295596dffe7c8 - Sigstore transparency entry: 2613369353
- Sigstore integration time:
-
Permalink:
sendsoon/mcp@7df5586daf6dab002ada546abf3992d0fe615a64 -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/sendsoon
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7df5586daf6dab002ada546abf3992d0fe615a64 -
Trigger Event:
push
-
Statement type: