MM

MisarReach MCP Server

io.github.Misar-AI/misarreach-mcp

Find leads, enrich and score them, run multi-channel outreach, and manage the sales pipeline — from…

Yes, your AI can use this right now.Answered a live MCP handshake in 896 ms with no sign-in needed and exposes 31 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://api.misar.io/reach/mcp

31 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
list_leadsread-only

List leads already saved to the account, newest first, with paging and search. Use this to work with leads you already have. It does NOT find new ones — that is search_leads, which starts a job and costs credits. Narrow to one search job with job_id when you want just that job's results. Reads only and costs no credits. Requires an API key. Returns saved lead records with contact and company f

search_leads

Start an AI lead-search job and return its jobId immediately. This is ASYNCHRONOUS: results are not in the response. Poll get_search_job_status with the jobId until it reports completion, then read the leads with list_leads filtered by that job_id. Use it to find NEW leads; use list_leads for ones already saved. CONSUMES SEARCH CREDITS on every call, and each call starts a separate job — do no

get_search_job_statusread-only

Poll one lead-search job for its progress and results. This is the companion to search_leads: call it repeatedly with the jobId you were given until the job reports it has finished. Leave a few seconds between polls — searches take a while, and polling harder does not make them faster. Reads only and costs no credits, however many times you call it. Requires an API key. Returns the run state,

submit_lead_feedback

Record whether an AI-generated outreach message for a lead was good or bad, as training signal for future generations. Use it when the user judges a drafted message — it improves later output rather than changing anything now. It does not edit, resend, or delete the message, and it sends nothing to the lead. Writes a feedback record; sending the same verdict twice is harmless. Requires an API

discover_companiesread-only

Find COMPANIES matching firmographic criteria, optionally pulling contact emails for each. This is company-level discovery — reach for it when the user is targeting organisations by industry, location, headcount or tech stack. When they want named people, use search_leads. Filters combine with AND, so stacking many narrows results sharply. Requires an API key. Setting fetch_emails=true perform

enrich_leadcan modify

Fill in a saved lead's missing person and company detail — seniority, department, LinkedIn, phone, company size, industry. Use it on one lead at a time, after list_leads has given you its id, and typically before writing outreach that needs context. Check the lead first: enriching one that already has these fields spends credits for nothing. CONSUMES ENRICHMENT CREDITS per call. Requires an AP

verify_emailscan modify

Check whether email addresses are deliverable, one or up to 20 at a time. Run this before a send to protect sender reputation — bouncing a campaign off dead addresses is what gets a domain blocked. Pass either `email` for one or `emails` for a batch, not both. CONSUMES VERIFICATION CREDITS per address checked, so a 20-address batch costs 20. Requires an API key. Returns a deliverability verdic

score_leadscan modify

Queue AI qualification scoring for leads — either every unscored lead in a search job, or a specific set of ids. Pass jobId OR leadIds, not both. This runs in the BACKGROUND: it returns a count immediately and the scores appear on the leads afterwards, so re-read them with list_leads rather than expecting scores in this response. CONSUMES AI CREDITS per lead scored. Requires an API key. Passin

list_lead_listsread-only

List the managed lead lists this account has created or synced. Use it to find a listId before sync_lead_list, or to check whether a list already exists before create_lead_list makes a duplicate. These lists are held apart from the saved leads, which are separate from the leads stored locally — list_leads shows those. Reads only, costs no credits, takes no parameters. Requires an API key. Only

create_lead_list

Create a new, empty managed lead list. Creating the list does not put anything in it, and it does not import anything locally — sync_lead_list does that. Call list_lead_lists first: each call creates a NEW list and nothing deduplicates by name. Requires an API key. Costs no credits. Returns the created list with the id that sync_lead_list needs.

sync_lead_listcan modify

Import a managed lead list into local lead records so the rest of these tools can work with it. Run it after create_lead_list, or on any existing list from list_lead_lists, to pull its contacts in. Until a list is synced its contacts are invisible to list_leads, enrich_lead and send_to_campaign. Writes local lead records, and OVERWRITES any saved lead with the same email address: its name, rol

preview_messageread-only

Draft a sample AI-personalised outreach message for a named person, to show what the agent would say. This is a PREVIEW: nothing is sent, saved, or attached to a lead or campaign. Use it to check tone before committing to a sequence. The person does not need to exist as a lead — pass their name and, if known, role and company. This is the one tool here that needs no API key. Generative, so the

send_to_campaigncan modify

Add saved leads to a campaign's contact list in bulk, up to 500 at a time. This is how leads enter an outreach sequence, so treat it as consequential: once they are on a running campaign's list they can start receiving messages. It does NOT send anything by itself and does not start the campaign — but it removes the last step before the campaign does. Every lead must belong to the authenticate

list_dealsread-only

List deals as a flat, paged array, optionally filtered by status, with revenue totals alongside. Use this when you want deals as data — to count them, filter one status, or page through many. For the board view with deals grouped into stages, use get_pipeline instead; the two return the same deals in different shapes. Reads only. Requires an API key. Returns the deals plus a summary of total,

create_deal

Open a new deal against a lead's email address. Use it when a conversation turns into a real opportunity worth tracking. Each call creates a NEW deal — it does not check for an existing one on the same email, so list_deals first if you might be duplicating. To change a deal that exists, use update_deal. Requires an API key. `value` is in MINOR CURRENCY UNITS — 2500 means $25.00, not $2500 — an

update_dealcan modify

Change a deal's status, value, or notes. Only the fields you pass are altered. For moving a deal along the pipeline board prefer move_deal_stage, which is the same operation expressed in stage terms; use this one for value and notes. Setting status to 'closed' or 'lost' marks the deal resolved and takes it out of open pipeline revenue. Do not repeat it blindly: each call is added to the deal's

get_pipelineread-only

Get the sales pipeline as a board: deals grouped by stage, with revenue totals. Use this for 'how does the pipeline look' questions and stage-by-stage review. It is the board view of the same deals list_deals returns flat — reach for that one when you need filtering or paging, since this returns the whole board. Reads only. Requires an API key. Stages are new, contacted, interested, meeting, p

move_deal_stagecan modify

Move one deal to a different pipeline stage — the equivalent of dragging its card on the board. This is the tool for pipeline progression; update_deal is for value and notes. Moving to 'closed' or 'lost' resolves the deal and removes it from open pipeline revenue, which changes reported figures — only do it when the user says the outcome is settled. Moving a deal into 'closed' notifies the acc

start_autopilotcan modify

Start an autonomous outreach run: give the agent a goal and it finds, contacts and follows up with leads on its own. This is the most consequential tool on this server. It is FIRE-AND-FORGET and it SENDS REAL MESSAGES TO REAL PEOPLE without returning for approval, so only start a run when the user has explicitly asked for one and understands the goal as written — the goal text is the entire brie

list_autopilot_runsread-only

List past and running autopilot runs with their status and result summaries. Use it to review what has already been run — and to check for a run already in flight before start_autopilot launches a second one against the same goal. For detail on one run, use get_autopilot_status. Reads only, costs no credits, and starts nothing. Requires an API key. Returns runs newest first with paging.

get_autopilot_statusread-only

Get the current progress and results of one autopilot run. This is how you follow a run started by start_autopilot: call it with the runId, leaving time between polls. Reading status does not pause, stop, or alter the run in any way — it keeps going regardless, and there is no tool here to stop it. Reads only and costs no credits, however often you call it. Requires an API key. A run still in

get_channels_statusread-only

Report the configuration, connection state and delivery stats for every outreach channel — WhatsApp, SMS and push. Check this before relying on a channel: a disabled or unconfigured one silently delivers nothing. It is also the natural first step before update_channel, so you know the current state rather than toggling blind. Reads only, takes no parameters, and changes nothing. Requires an AP

update_channelcan modify

Turn one outreach channel on or off — WhatsApp, SMS or push. This changes how the account actually delivers messages, so it affects live campaigns and autopilot runs, not just future ones. DISABLING a channel silently stops delivery over it; enabling one that has no credentials configured will not make it work. Call get_channels_status first to see where things stand. Handles one channel per c

get_sales_agent_configread-only

Fetch the AI sales agent's current settings: whether it is enabled, its booking link, offer price, reply limits and confidence threshold. Read this before update_sales_agent_config so you change one field without clobbering the rest, and to check whether the agent is enabled at all before expecting it to act. Reads only, takes no parameters, changes nothing. Requires an API key. Returns the co

update_sales_agent_configcan modify

Change the AI sales agent's settings — enable or disable it, set the booking link, offer price, reply limits and confidence threshold. These settings govern an agent that replies to real prospects, so treat them as live: ENABLING it lets it start responding on its own, the confidence threshold decides how sure it must be before acting, and reply limits cap how much it can send. Read the current

get_sales_agent_actionsread-only

Get what the AI sales agent has done today, with summary stats — actions taken, deals created, replies sent. This is the audit trail: use it to see what the agent did on the account's behalf, and to sanity-check its behaviour after enabling it. Covers TODAY only, so it is not the tool for historical reporting. Reads only and changes nothing; it does not approve or undo any action. Requires an

process_sales_agentcan modify

Run the sales-agent pipeline over one conversation: decide the next action and carry it out. This ACTS on a real conversation — depending on what it decides, it can reply to the prospect, create a deal, or book a meeting. It is not a dry run and there is no preview, so call it only when the user wants the agent to take its turn on that specific conversation. For what it has already done, use get

search_verified_leads

Find people or businesses matching a plain-language description and return only leads with a real way to reach them (email, phone or LinkedIn), each read from a real record — never generated. Waits for the search to finish (up to wait_seconds) and returns the leads with each email's verification status; if it is still running, call again with the returned job_id. Consumes one search from the plan

reveal_company_contactsread-only

Read a company's own website now and return what it publishes: contact emails, a phone number, its social profiles and its detected tech stack. robots.txt is obeyed. One enrichment credit, charged only when the site publishes a way to reach the company, and at most once per company per day.

company_email_formatread-only

The email address format a company uses (e.g. {first}.{last}@acme.com), learned only from addresses that were verified deliverable, with each pattern's share and a confidence level. Free. Returns 'not published' when there is not yet enough verified evidence for the domain.

verify_emailcan modify

Check whether one email address can receive mail. Returns valid, invalid, accept_all (a catch-all domain: the server accepts every address, so this one cannot be confirmed — do not treat it as valid), webmail, disposable or unknown. Consumes one verification credit. The verdict is saved onto any lead you hold with that address, replacing its previous verification status.

Alternatives in CRM & Sales

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”