mail-mcp/crates/mail-mcp/Cargo.toml
Kayos 2240bf745e mail-mcp v0.1 — Rust MCP server for Sulkta email
Phase A: mail_send + mail_inbox_list + mail_inbox_read. Replaces
scripts/kayos_mail.py with a typed MCP server. Outbound guarantees Date,
Message-ID (own-domain), User-Agent, MIME-Version, multipart/alternative
for HTML+text, multipart/mixed for attachments, In-Reply-To +
References for threading.

Single account in v0.1 (default_account from config). Phase B adds
multi-account + threading + search; Phase C adds mark + attachments +
reply helper.

Stack: rmcp 0.1 (matches aldabra), lettre 0.11 + tokio-rustls, async-imap
0.10, mail-parser 0.9. Stderr-only logging (stdout is the MCP transport).

Smoke verified 2026-05-21: send -> land -> read kayos@sulkta.com round
trip, DKIM-Signature + Authentication-Results pass at the rspamd relay.
2026-05-21 06:50:25 -07:00

43 lines
1.1 KiB
TOML

# mail-mcp — the binary. Stdio MCP server exposing SMTP send + IMAP
# read tools. Spawned per-session by any MCP client.
[package]
name = "mail-mcp"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "Rust MCP server for Sulkta-hosted email (SMTP send + IMAP read)"
[[bin]]
name = "mail-mcp"
path = "src/main.rs"
[dependencies]
tokio = { workspace = true }
rmcp = { workspace = true }
schemars = { workspace = true }
lettre = { workspace = true }
async-imap = { workspace = true }
tokio-rustls = { workspace = true }
rustls = { workspace = true }
rustls-pki-types = { workspace = true }
webpki-roots = { workspace = true }
mail-parser = { workspace = true }
toml = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
base64 = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
futures = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
dirs = { workspace = true }
shellexpand = { workspace = true }