MailMoo

Tool reference

Every tool the MCP server exposes, what it does, and the permissions a key needs to reach it.

Every tool the MCP server exposes. A key that lacks a tool's permissions cannot reach it, and a tool that gathers several things returns the parts the key is allowed to see rather than failing outright.

ToolWhat it doesEffectPermissions
mailmoo_inbox_list_unreadConversations with unread messagesReadRead inbox
mailmoo_triage_listWhat needs attention, in priority orderReadRead inbox
mailmoo_inbox_read_conversationRead the messages exchanged with a leadReadRead inbox
mailmoo_campaigns_searchFind campaignsReadRead campaigns
mailmoo_campaign_get_contextGet everything about one campaignReadRead analytics, Read campaigns
mailmoo_campaign_set_stateStart or pause a campaignReaches a personTurn on campaigns
mailmoo_leads_searchSearch leadsReadRead CRM, Read leads
mailmoo_lead_get_contextGet everything known about a leadReadRead CRM, Read inbox, Read leads
mailmoo_lead_updateUpdate a lead's pipeline positionWriteChange tags, Read CRM, Read leads, Update pipeline status
mailmoo_lead_manage_noteWrite, edit, or remove a note on a leadWriteManage notes
mailmoo_lead_manage_taskCreate or change a task on a leadWriteManage tasks
mailmoo_social_get_limitsCheck a sender profile's daily limitsReadRead inbox
mailmoo_social_get_postRead a social post, and optionally the people who engaged with itRead, spends allowanceRead inbox
mailmoo_social_list_user_postsList a profile's recent postsReadRead inbox
mailmoo_inbox_send_messageSend a message to a leadReaches a personSend messages

Effects

Read costs nothing and changes nothing. Well-behaved clients run these without asking.

Read, spends allowance changes nothing in your workspace but uses part of a connected account's daily search budget, which does not refill until the next day. Annotated as not read-only for that reason.

Write changes something in your workspace and can be undone.

Reaches a person sends a message or starts a campaign that will. Nothing takes those back. Clients are told these are destructive, and should confirm before running one.

What each tool needs

mailmoo_inbox_list_unread

Conversations containing messages nobody has opened yet, newest first, with the total unread count. This is the 'what came in' view. For deciding what to work on next, prefer triage_queue, which ranks by what actually needs doing rather than by what is unopened.

Needs: Read inbox.

mailmoo_triage_list

The triage queue: every lead that needs something from you, already ranked. Deals stalled mid-evaluation come first (existing deals are the most important to protect), then due tasks, then leads waiting on a reply, then dates you set, then leads that have gone quiet. Start here when deciding what to work on. Each item says which bucket it is in and why.

Needs: Read inbox.

mailmoo_inbox_read_conversation

The full message history with one lead, oldest first. Read this before replying, so the response follows the conversation rather than starting cold.

Needs: Read inbox.

List campaigns in the workspace, newest first, optionally filtered by name or by whether they are currently sending. Use this before any tool that needs a campaignId.

Needs: Read campaigns.

mailmoo_campaign_get_context

The campaign's settings, the sequence inside it, and how it is performing, in one call. Use this to answer questions about a campaign rather than fetching the pieces separately.

Needs: Read analytics, Read campaigns.

mailmoo_campaign_set_state

Starts a campaign's sequence, or pauses it. STARTING A CAMPAIGN BEGINS MESSAGING REAL PEOPLE and cannot be undone for messages already sent. Confirm with the user before starting one. Pausing is always safe. Starting requires an active subscription and a sequence that passes its readiness checks; if it does not, the error says what to fix.

Needs: Turn on campaigns.

Search leads that already exist in the workspace (CRM), or list/search the leads in one campaign. Omit campaignId for the whole workspace; pass campaignId to stay inside that campaign. This does not find new people and does not enrich them. query is a search box: it matches first name, last name, full name, email, company, phone, or LinkedIn URL. Each page returns identity fields, Oracle score, lead-fit score, sequence status, the assigned sender on leadSequence.sdrProfile, pipeline stage, timestamps, and nextCursor when more remain. Pass nextCursor back as cursor to fetch the next page. The full variables list is omitted unless includeVariables is true — a lead can have fifty variables, some of them long text. Use this before any tool that needs a leadId.

Needs: Read CRM, Read leads.

mailmoo_lead_get_context

The lead's details, what has happened with them, and whether a conversation is already open. Call this before writing to a lead, so the message reflects the history rather than starting cold.

Needs: Read CRM, Read inbox, Read leads.

mailmoo_lead_update

Move a lead to a different pipeline stage, change its tag, or set when to follow up. Stages and tags are given by name, not by ID. Only the fields you supply are changed.

Needs: Change tags, Read CRM, Read leads, Update pipeline status.

mailmoo_lead_manage_note

Notes are free text on a lead's timeline, for recording what you learned. Use 'create' with a leadId, or 'update' and 'delete' with the noteId returned when it was created.

Needs: Manage notes.

mailmoo_lead_manage_task

Tasks are things a person still needs to do about a lead, with an optional due date. Use 'create' with a leadId, or the other actions with the taskId returned when it was created.

Needs: Manage tasks.

mailmoo_social_get_limits

Returns remaining daily sending allowance and daily search allowance for connected sender profiles. Call this before sending a message or pulling post engagement. Remaining 0 means wait until tomorrow or use another sender. Pass senderProfileId to inspect one profile. Omit it to list every sender profile with a connected account, which also discovers IDs for the other social tools.

Needs: Read inbox.

mailmoo_social_get_post

Fetches a post by URL. By default returns only the post, which is cheap. Naming 'commenters' or 'reactors' additionally pulls the people who engaged, and EACH source spends part of the connected account's daily search allowance, which does not refill until tomorrow. Check remaining first with social_get_limits if you are about to spend allowance. Those people are not added to a campaign. Prefer 'commenters': someone who wrote a reply showed far more intent than someone who tapped a reaction, so the same allowance buys better leads. Ask for both only when you need volume more than quality.

Needs: Read inbox.

mailmoo_social_list_user_posts

Recent posts published by one profile, most recent first. Starts from a person rather than a post: use it to find something worth reading, then social_get_post to read it.

Needs: Read inbox.

mailmoo_inbox_send_message

Send a direct message to a lead through a connected social account. This contacts a real person and cannot be undone.

Needs: Send messages.

On this page