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.
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
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
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.
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.
loginOpen 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…
connectAlias for login — open the CocoInbox secure connect portal. Preferred name for "log me in" / "get user" when not authenticated.
complete_loginFinish 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_passwordFallback programmatic login (prefer login/connect portal or MCP OAuth). Use only if the user explicitly pastes credentials.
logoutClear the in-memory auth session and selected sender email.
get_current_userReturn 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_statusShow whether this MCP process is authenticated. If not, returns a login_portal card (call connect/login or open the URL).
get_privacy_scoreGet the user privacy / security score (GET /api/security/score).
scan_dark_webScan one email address on the dark web for breaches (POST /api/security/dark-web-scan).
scan_dark_web_allScan the account email plus all ephemeral addresses (POST /api/security/dark-web-scan-all).
list_foldersList mail dossiers/folders for the user (GET /api/folders).
create_folderCreate a new mail dossier/folder (POST /api/folders). Example name: "Work" or "mail/aze-walid".
create_folder_for_emailCreate a dossier for a mailbox address (default name mail/<local-part>). Optionally use a custom folder name.
move_email_to_folderMove a message (inbound or sent) into a dossier (PATCH /api/mail/messages/:id/move).
list_emailsList ephemeral email addresses for the logged-in user.
create_emailCreate a new ephemeral CocoInbox address. Optionally auto-select it as From.
select_emailSelect which mailbox address to send from (id from list_emails, or "fixed").
get_emailFetch the message thread for one mailbox address.
send_emailSend an email via POST /api/mail/send using the selected From address. Automatically moves the sent message into the "MCP" dossier.
submit_ideaSave 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_ideasList ideas (title + description + status) previously submitted for this authenticated account. Same data as CocoInbox → Ideas (/ideas).
request_missing_toolAlias for submit_idea. Prefer submit_idea.
list_my_tool_requestsAlias for list_my_ideas. Prefer list_my_ideas.
crm_summaryCompact CRM counts for this user (groups, leads, tasks todo). Start here to see state without loading full lists.
crm_create_groupCreate 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_groupsList 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_groupGet one lead group by id (includes why / source_ai / location).
crm_add_leadsAdd 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_leadsList 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_tasksFor 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_tasksList 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_leadUpdate one of your leads (status, email, notes, etc.). Ownership enforced server-side.
crm_update_taskUpdate a CRM task status or draft. After sending prospect email via send_email, set status=done.
get_company_profileGet 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_profileSave/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).
COCOINBOX_API_URLExisting REST API baseCOCOINBOX_MCP_SECRETCOCOINBOX_TOKENOptional pre-set Bearer tokenMCP_AUTH_SECRETMCP_HTTP_HOSTMCP_HTTP_PORTHTTP transport portMCP_PUBLIC_URLTool 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.
[](https://m8ven.ai/mcp/walidmoultamiss/cocoinbox-mcp)?variant=verified from the URL.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