Send any document to your Kindle from an AI assistant or the command line. You give it text, a PDF, or an EPUB — it emails it to your Kindle, and a minute later it is in your library.
kindlemcp-send --title "Report" report.pdfYou need three things from your own accounts. They stay on your machine.
[email protected].Everything runs on your computer. Nothing goes through this server.
# install (one of)
pipx install kindlemcp
uvx --from kindlemcp kindlemcp # run without installing
# tell it your creds once (env, or a .env file next to you)
export SMTP_URL="smtp://you%40gmail.com:[email protected]:587"
export KINDLE_ADDR="[email protected]"
# use the CLI directly
kindlemcp-send --title "My Report" report.pdf
echo "# Hello" | kindlemcp-send --title "Quick Note"
Write @ in the Gmail address as %40
inside the SMTP URL (so [email protected] →
you%40gmail.com). Markdown conversion needs
pandoc (brew install pandoc); PDF/EPUB do not.
Register the local kindlemcp command as an MCP server — one
line, and your credentials stay on your machine:
# Claude Code
claude mcp add kindlemcp -e SMTP_URL=... -e KINDLE_ADDR=... -- uvx --from kindlemcp kindlemcp
# OpenAI Codex CLI
codex mcp add kindlemcp -- uvx --from kindlemcp kindlemcp
# Gemini CLI
gemini mcp add kindlemcp uvx --from kindlemcp kindlemcp
Or add it by hand to your client config (Claude Desktop
claude_desktop_config.json, or a project .mcp.json):
{
"mcpServers": {
"kindlemcp": {
"command": "uvx",
"args": ["--from", "kindlemcp", "kindlemcp"],
"env": {
"SMTP_URL": "smtp://you%40gmail.com:[email protected]:587",
"KINDLE_ADDR": "[email protected]"
}
}
}
}
Then just say “send this to my Kindle” in your assistant.
Yes — because your credentials never leave your computer. kindlemcp runs locally: it logs in to Gmail directly from your machine and sends the mail. The public server at this domain is only a landing page and a health check; it does not send documents and does not receive or store anyone's password.
| Symptom | Fix |
|---|---|
| Document never arrives on the Kindle | Your Gmail is not in Amazon's Approved senders list. Add it (see step 3). |
| “SMTP_URL / KINDLE_ADDR not set” | The env vars (or
.env) are missing or misspelled. |
| “Failed to send email” | Wrong Gmail App Password, or you used your normal password. Create a fresh App Password. |
| Markdown did not convert | Install pandoc
(brew install pandoc). Not needed for PDF/EPUB. |