lettr-mcp
npm
v1.5.0
Source verified
Published by lettr-com — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.
MCP server for the Lettr email API — send transactional emails, manage templates, domains, and webhooks from any AI assistant
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 6 = 94. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
Tool "create-webhook" can both read sensitive data and send data to an external destination. Even without an explicit untrusted-input leg, this is a single-call data-exfiltration path if the model is ever manipulated.
Fix: Separate reading from sending; require explicit user confirmation before egress of file/secret contents.
Location: flow create-webhook
Tool "update-webhook" can both read sensitive data and send data to an external destination. Even without an explicit untrusted-input leg, this is a single-call data-exfiltration path if the model is ever manipulated.
Fix: Separate reading from sending; require explicit user confirmation before egress of file/secret contents.
Location: flow update-webhook
Tools that read sensitive data ([create-webhook, update-webhook]) and tools that can send data out ([send-email, schedule-email, create-webhook, update-webhook, delete-webhook]) are exposed together. An agent can move private data to the sink.
Evidence: sources [create-webhook, update-webhook] → sinks [send-email, schedule-email, create-webhook, update-webhook, delete-webhook]
Fix: Keep secret-reading and egress capabilities on separate, separately-approved servers.
Location: flow create-webhook → send-email
Tool "create-webhook" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool create-webhook · inputSchema.properties.url
Tool "create-webhook" takes a URL/host parameter "oauth_token_url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool create-webhook · inputSchema.properties.oauth_token_url
Tool "update-webhook" takes a URL/host parameter "url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool update-webhook · inputSchema.properties.url
Tool "update-webhook" takes a URL/host parameter "oauth_token_url" with no allowlist/pattern. An outbound-request tool with an unbounded destination enables SSRF and cloud-metadata access (e.g. 169.254.169.254).
Fix: Allowlist destinations or constrain the parameter; block private/link-local addresses server-side.
Location: tool update-webhook · inputSchema.properties.oauth_token_url
Each tool and what it can reach — statically extracted from the published source.
create-webhooknetwork egressreads sensitive dataupdate-webhooknetwork egressreads sensitive datadelete-webhooknetwork egressschedule-emailnetwork egresssend-emailnetwork egressattach-contact-to-listno sensitive capabilityauth-checkno sensitive capabilitybulk-attach-contacts-to-listsno sensitive capabilitybulk-create-audience-contactsno sensitive capabilitybulk-delete-audience-listsno sensitive capabilitybulk-detach-contacts-from-listsno sensitive capabilitybulk-subscribe-contacts-to-topicsno sensitive capabilitybulk-unsubscribe-contacts-from-topicsno sensitive capabilitycancel-scheduled-emailno sensitive capabilitycreate-audience-contactno sensitive capabilitycreate-audience-listno sensitive capabilitycreate-audience-propertyno sensitive capabilitycreate-audience-segmentno sensitive capabilitycreate-audience-topicno sensitive capabilitycreate-domainno sensitive capabilitycreate-templateno sensitive capabilitydelete-audience-contactno sensitive capabilitydelete-audience-listno sensitive capabilitydelete-audience-propertyno sensitive capabilitydelete-audience-segmentno sensitive capabilitydelete-audience-topicno sensitive capabilitydelete-domainno sensitive capabilitydelete-templateno sensitive capabilitydetach-contact-from-listno sensitive capabilityget-audience-contactno sensitive capabilityget-audience-listno sensitive capabilityget-audience-propertyno sensitive capabilityget-audience-segmentno sensitive capabilityget-audience-topicno sensitive capabilityget-campaignno sensitive capabilityget-domainno sensitive capabilityget-email-detailno sensitive capabilityget-merge-tagsno sensitive capabilityget-scheduled-emailno sensitive capabilityget-templateno sensitive capabilityget-template-htmlno sensitive capabilityget-webhookno sensitive capabilityhealth-checkno sensitive capabilitylist-audience-contactsno sensitive capabilitylist-audience-listsno sensitive capabilitylist-audience-propertiesno sensitive capabilitylist-audience-segmentsno sensitive capabilitylist-audience-topicsno sensitive capabilitylist-campaign-eventsno sensitive capabilitylist-campaignsno sensitive capabilitylist-domainsno sensitive capabilitylist-email-eventsno sensitive capabilitylist-emailsno sensitive capabilitylist-projectsno sensitive capabilitylist-templatesno sensitive capabilitylist-webhooksno sensitive capabilityschedule-campaignno sensitive capabilitysend-campaignno sensitive capabilitysubscribe-contact-to-topicno sensitive capabilityunschedule-campaignno sensitive capabilityunsubscribe-contact-from-topicno sensitive capabilityupdate-audience-contactno sensitive capabilityupdate-audience-listno sensitive capabilityupdate-audience-propertyno sensitive capabilityupdate-audience-segmentno sensitive capabilityupdate-audience-topicno sensitive capabilityupdate-templateno sensitive capabilityverify-domainno sensitive capabilityCross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v1.5.0 latest |
A 94/100 | 7 | 1.13.0 | 2026-09-07 |
v1.4.0 |
A 94/100 | 7 | 1.12.1 | 2026-08-15 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan lettr-mcp --online
Free public tax reference data — GST/VAT, income, company and capital-gains tax rules for 50+ countries.
The approval gate for unattended UCP buying agents — a policy/approval MCP proxy in front of a merchant's UCP checkout endpoint.
Autotask PSA MCP server. Generic entity query/get/create/update across the full REST API plus convenience tools for tickets, companies, contacts, projects, tasks and time entries. AI-safe with readonly mode and destructive-action confirmation. stdio + opt
MCP server for B2C Commerce developer experience tools
Search, compare and contact real-world companies through a public MCP business directory.
Norwegian business register (Brønnøysundregistrene) as an MCP server — companies, roles, subunits and annual accounts, with the register's silent traps encoded as guards.