CocoInbox MCP Server (WalidMoultamiss/cocoinbox-mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 35 tools. No publisher has claimed this listing.

C
Warning
74/100

CocoInbox MCP Server

Thin MCP wrapper around the CocoInbox REST API, enabling email management such as listing, creating, selecting, and sending emails through natural language.

Warning. Serious findings were identified. Review the full report before connecting. 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

WalidMoultamiss

Source: Glama

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
🚨
Code appears obfuscated
1 file are unreadable to a human reviewer. Cannot audit what they do.
🔐
You'll be asked for 3 credentials: COCOINBOX_MCP_SECRET, COCOINBOX_TOKEN, MCP_AUTH_SECRET
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes35 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.

login

Open the CocoInbox secure login portal (browser). Prefer this over asking for passwords in chat. When presenting the result: - Show a short connect card with the login link/button. - Do NOT write multi-step "copy auth code" instructions. - If portal_opened is true, the window should already be open

connect

Alias for login — open the CocoInbox secure connect portal. Preferred name for "log me in" / "get user" when not authenticated.

complete_login

Finish browser login only when the user pastes the one-time auth code from the success page (fallback if OAuth/portal did not auto-connect).

login_with_password

Fallback programmatic login (prefer login/connect portal or MCP OAuth). Use only if the user explicitly pastes credentials.

logout

Clear the in-memory auth session and selected sender email.

get_current_user

Return the authenticated user profile (includes company when set). If not connected: opens the secure login portal automatically and returns a login_portal card — present that card, do not invent multi-step paste instructions.

auth_status

Show whether this MCP process is authenticated. If not, returns a login_portal card (call connect/login or open the URL).

get_privacy_score

Get the user privacy / security score (GET /api/security/score).

scan_dark_web

Scan one email address on the dark web for breaches (POST /api/security/dark-web-scan).

scan_dark_web_all

Scan the account email plus all ephemeral addresses (POST /api/security/dark-web-scan-all).

list_folders

List mail dossiers/folders for the user (GET /api/folders).

create_folder

Create a new mail dossier/folder (POST /api/folders). Example name: "Work" or "mail/aze-walid".

create_folder_for_email

Create a dossier for a mailbox address (default name mail/<local-part>). Optionally use a custom folder name.

move_email_to_folder

Move a message (inbound or sent) into a dossier (PATCH /api/mail/messages/:id/move).

list_emails

List ephemeral email addresses for the logged-in user.

create_email

Create a new ephemeral CocoInbox address. Optionally auto-select it as From.

select_email

Select which mailbox address to send from (id from list_emails, or "fixed").

get_email

Fetch the message thread for one mailbox address.

send_email

Send an email via POST /api/mail/send using the selected From address. Automatically moves the sent message into the "MCP" dossier.

submit_idea

Save an idea to the user's CocoInbox account (title + description). Same as the Ideas page on the website. Use when the user wants to note a product/feature wish, or when no existing MCP tool covers their need — do not invent fake tools.

list_my_ideas

List ideas (title + description + status) previously submitted for this authenticated account. Same data as CocoInbox → Ideas (/ideas).

request_missing_tool

Alias for submit_idea. Prefer submit_idea.

list_my_tool_requests

Alias for list_my_ideas. Prefer list_my_ideas.

crm_summary

Compact CRM counts for this user (groups, leads, tasks todo). Start here to see state without loading full lists.

crm_create_group

Create a lead group (campaign). REQUIRED: name + why (outreach reason, e.g. "car garages without websites in Casablanca → pitch website build"). Also set source_ai (claude|grok|cursor|manual) and optional location. Returns group id for crm_add_leads.

crm_list_groups

List CRM lead groups (token-friendly table). Filter: status active|paused|archived. When presenting the result: - Display as a Markdown table using content.columns / content.rows. - Do not output raw JSON unless the user asks. - For empty results, show content.empty. - Keep why short; full why is i

crm_get_group

Get one lead group by id (includes why / source_ai / location).

crm_add_leads

Add up to 25 leads to a group you own. Include name, email, phone, company, address, city, map_url, website, has_website=false when no site. Private to this user — no cross-user leak.

crm_list_leads

List CRM leads as a table (optional group_id / with_email / status). When presenting the result: - Display as a Markdown table using content.columns / content.rows. - Do not output raw JSON unless the user asks. - For empty results, show content.empty. - Prefer company + name; show "sans site" when

crm_generate_prospect_tasks

For a group: create email_prospect tasks for leads that have emails. Each task brief + draft uses group.why. Never sends email — returns drafts. After review, send with send_email and mark task done via crm_update_task.

crm_list_tasks

List CRM tasks as a table (optional group_id / status todo|doing|done|cancelled). When presenting the result: - Display as a Markdown table using content.columns / content.rows. - Do not output raw JSON unless the user asks. - For empty results, show content.empty. - After sending a prospect email

crm_update_lead

Update one of your leads (status, email, notes, etc.). Ownership enforced server-side.

crm_update_task

Update a CRM task status or draft. After sending prospect email via send_email, set status=done.

get_company_profile

Get the user's company profile + generated report (name, what they do, offer, audience). When presenting: - Summarize the company clearly (name, what they do, offer). - If configured=false, tell the user to fill Profil → Entreprise or call update_company_profile. - Use this before creating CRM grou

update_company_profile

Save/update the sender company profile. Regenerates an AI report used to refine CRM prospect emails. Required: name OR description. Prefer filling name, description (what you do), and offer (what you pitch).

// 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.
configCOCOINBOX_API_URLExisting REST API base
🔐 secretCOCOINBOX_MCP_SECRET
🔐 secretCOCOINBOX_TOKENOptional pre-set Bearer token
🔐 secretMCP_AUTH_SECRET
configMCP_HTTP_HOST
configMCP_HTTP_PORTHTTP transport port
configMCP_PUBLIC_URL
// 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

35/35 tools missing one or more hints — login (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); connect (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); complete_login (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +32 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.

Tool inputs are validated

27/29 tool handlers declare input schemas (93%)

Declare an inputSchema with zod/joi/yup on every tool definition.

License file

No license file

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

Tests exist

No test files found

Add tests that exercise each declared tool.

Readable source code

1 file are minified or bundled, which is usually build output rather than concealment

Ship unminified, readable source.

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 6 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/walidmoultamiss/cocoinbox-mcp?variant=verified)](https://m8ven.ai/mcp/walidmoultamiss/cocoinbox-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: ecb8ec7d948dfc1896203f2e85c8304903ea934c
code hash: def7d71bad25fd1bd3b1114edfc614bfd3ffc4073ceec1a984e44dbc2789a42d
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