lessie-email — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited lessie-email (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Add the Lessie Email MCP server to your MCP config (Claude Code ~/.claude.json, Cursor ~/.cursor/mcp.json, Codex ~/.codex/config.toml, etc.):
{
"mcpServers": {
"lessie-email-mcp": {
"command": "npx",
"args": ["-y", "@lessie/mcp-server"],
"env": {
"LESSIE_REMOTE_MCP_URL": "https://app.lessie.ai/email-api/mcp-public/mcp"
}
}
}
}Remove the "lessie-email" entry from your MCP config and run rm -rf ~/.lessie/.
Run this check once at the start of each session. Non-blocking — if any command fails, skip silently.
version field above. curl -sf --max-time 5 https://raw.githubusercontent.com/LessieAI/lessie-skill/main/lessie-email/SKILL.md | head -5 | grep 'version:' | head -1 | awk '{print $2}'⬆️ A newer version of lessie-email skill is available ({current} → {remote}). Run this command to update: `` npx skills add LessieAI/lessie-skill -y -g ``authorize to start the OAuth flow:authorize returns an authorization URL. Tell the user you need to open a browser for Lessie login/registration, and open it using the appropriate system command:open "<url>"xdg-open "<url>"start "<url>"authorize again to verify the connection.authorize and retry.use_lessie call.Root cause: stale lessie-mcp-server processes from old sessions occupy the callback port (19836), forcing port fallback and corrupting OAuth client state.
Fix — kill stale processes and clear storage, then re-authorize:
ps aux | grep 'lessie-mcp-server' | grep -v grep | awk '{print $2}' | xargs kill 2>/dev/null
rm -rf ~/.lessie/
lsof -i :19836 | grep LISTEN # should return nothingAlways inform the user before opening the browser — never silently redirect.
After setup, try:
| Tool | When to use |
|---|---|
list_email_accounts_with_unread | View all linked email accounts with unread counts |
| Tool | When to use |
|---|---|
send_email | Send an email (supports HTML, CC/BCC, attachments, replies) |
get_email_detail | View full email details (content, delivery status, read status) |
list_sent_emails | Browse sent emails with cursor pagination |
get_email_quota | Check daily sending quota for a specific email address |
delete_email | Soft-delete an email |
set_email_read_status | Mark an email as read or unread |
| Tool | When to use |
|---|---|
list_threads | Browse email conversations (all/read/unread filtering) |
get_thread_messages | View all messages in a conversation thread |
delete_thread | Soft-delete an entire conversation thread |
set_thread_read_status | Mark all emails in a thread as read or unread |
| Tool | When to use |
|---|---|
create_draft | Create a new email draft |
update_draft | Update an existing draft (subject, content, recipients, etc.) |
delete_draft | Delete a draft |
list_drafts | Browse drafts with cursor pagination |
| Tool | When to use |
|---|---|
create_task | Create a bulk email send task (auto-schedules per recipient) |
list_tasks | Browse bulk tasks with progress info |
get_task_detail | View task details with delivery/open/fail stats per recipient |
delete_task | Delete a bulk email task |
pause_task | Pause a running bulk email task |
resume_task | Resume a paused bulk email task |
list_email_accounts_with_unread to get available sender addresses.open "https://app.lessie.ai/"xdg-open "https://app.lessie.ai/"start "https://app.lessie.ai/"Then ask the user to return after binding and retry.
get_email_quota for the chosen sender to confirm quota is sufficient.get_thread_messages to see the conversation.thread_id and reply_to_message_id from the last message.send_email for a proper threaded reply.create_draft — specify sender, recipients, subject, and content.update_draft if changes are needed.send_email with the finalized content (drafts are not sent directly).delete_draft after sending or if no longer needed.create_task, monitor progress with get_task_detail.pause_task to temporarily halt a running campaign (e.g., if issues are found).resume_task to continue a paused campaign.delete_task to permanently remove a task.get_email_detail, delete_email, get_thread_messages for Gmail/Outlook accounts, always pass the email parameter.cursor + size — pass next_cursor from previous response.text_content or html_content — if only text is provided, HTML is auto-generated.s3key, filename, mime_type, size.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.