openmail (ShadowWalker2014/openmail) is an MCP server listed on the M8ven Trust Index. It scores 50 out of 100, grade D. It declares 29 tools. No publisher has claimed this listing.

D
Caution
50/100

openmail

Open-source Customer.io alternative — email marketing automation with full API + native MCP server for AI agents. Self-hosted, no per-seat pricing.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

ShadowWalker2014

Source: github_code

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Known vulnerabilities in dependencies: 5 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
// tools this server exposes29 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

get_analytics

Get workspace analytics overview for the last 30 days: contacts, sends, open rate, click rate, unsubscribes.

get_broadcast_analytics

Get detailed analytics for a specific broadcast.

list_assets

List all uploaded assets (images, videos, PDFs) in the workspace. Each asset includes a `proxyUrl` that is stable and can be embedded directly in email HTML using an <img src='...'> tag.

get_asset

Get details of a single asset including its stable `proxyUrl` for embedding in emails.

upload_asset_from_url

Upload an image or file from any public URL into the workspace asset library. The API fetches the file server-side and stores it in S3. Returns an asset object with a stable `proxyUrl` — use this URL in email HTML: <img src="{proxyUrl}" alt="..."> Supported types: JPEG, PNG, GIF, WebP, SVG, MP4,

upload_asset_base64

Upload a file from base64-encoded content into the workspace asset library. Use this when you have file content in memory (e.g. a generated image). Returns a stable `proxyUrl` for embedding in email HTML. Supported MIME types: image/jpeg, image/png, image/gif, image/webp, image/svg+xml, video/mp4,

delete_asset

Permanently delete an asset from storage and the asset library. Warning: any emails using this asset's URL will show a broken image.

list_broadcasts

List all broadcasts in the workspace including their status (draft, sending, sent, failed).

get_broadcast

Get a single broadcast by ID, including its current status, subject, content, and recipient count.

create_broadcast

Create a new broadcast email campaign (starts in draft status — call send_broadcast when ready). To embed images, first use upload_asset_from_url to get a proxyUrl, then use it in htmlContent: <img src="{proxyUrl}" alt="description" style="max-width:100%;display:block"> Either provide htmlContent

update_broadcast

Update a broadcast that is still in draft status. Cannot update a broadcast that is sending or has already sent.

schedule_broadcast

Schedule a draft broadcast to send at a specific future date/time.

send_broadcast

Immediately send a broadcast. The broadcast must be in draft status. This action is irreversible once started.

delete_broadcast

Delete a broadcast. Only draft and scheduled broadcasts can be deleted — a broadcast that is actively sending cannot be deleted.

list_campaigns

List all automation campaigns.

create_campaign

Create an automation campaign triggered by an event or segment.

update_campaign

Update a campaign's name, description, or status.

pause_campaign

Pause an active campaign. Contacts already in the campaign will not receive further emails until it is reactivated.

list_contacts

List contacts in the workspace. Supports search and pagination.

create_contact

Create or update a contact by email (upsert).

update_contact

Update contact attributes by contact ID.

delete_contact

Permanently delete a contact.

track_event

Track a customer event (e.g. signed_up, upgraded, churned).

list_segments

List all contact segments in the workspace.

create_segment

Create a new contact segment with conditions.

list_templates

List all email templates in the workspace.

create_template

Create a reusable email template that can be used by broadcasts and campaigns. To include images, first upload them with upload_asset_from_url and use the returned proxyUrl: <img src="{proxyUrl}" alt="..." style="max-width:100%;display:block"> The proxyUrl is permanently public and safe for any em

update_template

Update an existing email template. Only the fields you provide will be changed.

delete_template

Permanently delete an email template. Broadcasts referencing this template will lose their template association.

// known CVEs in dependencies5 high25 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highhono@4.7.4GHSA-3vhc-576x-3qv4

Hono JWK Auth Middleware has JWT algorithm confusion when JWK lacks "alg" (untrusted header.alg fallback)

highhono@4.7.4GHSA-88fw-hqm2-52qc

hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard

highhono@4.7.4GHSA-f67f-6cw9-8mq4

Hono JWT Middleware's JWT Algorithm Confusion via Unsafe Default (HS256) Allows Token Forgery and Auth Bypass

highhono@4.7.4GHSA-m732-5p4w-x69g

Hono Improper Authorization vulnerability

highhono@4.7.4GHSA-q5qw-h33p-qvwr

Hono vulnerable to arbitrary file access via serveStatic vulnerability

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configAPI_URL
configLOG_LEVEL
configOPENMAIL_DOCS_URL
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deployPORT
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

29/29 tools missing one or more hints — get_analytics (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_broadcast_analytics (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_assets (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +26 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

README present

No README found

Add a README.md describing the server and its tools.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tool test coverage

21/29 tools referenced in tests (72%)

Write tests that reference each tool by name so every tool has at least one test.

Production dependencies are patched

0 critical, 5 high severity in production deps — hono@4.7.4 (high), hono@4.7.4 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Domain consistency

npm scope @openmail doesn't match GitHub owner shadowwalker2014

Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/shadowwalker2014/openmail?variant=verified)](https://m8ven.ai/mcp/shadowwalker2014/openmail)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 29ea3f40262e936130bc80df14007e6771a0b43e
code hash: 785d0357f7f83c14da44dd5ac2a9c0e2d5da581030fae18f58c6a628c62aec39
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client