MisarReach MCP Server
REMOTE · API.MISAR.IO · 2 COMPONENTS · SCANNED SEP 20
Find and enrich leads, run multi-channel outreach, and manage the sales pipeline.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4407 tokens (~142/item across 31 items; 27 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the MisarReach MCP Server server?
MisarReach MCP Server is a hosted endpoint at https://api.misar.io/reach/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.misar.io
claude mcp add --transport http misar-ai-misarreach-mcp 'https://api.misar.io/reach/mcp'
{
"mcpServers": {
"misar-ai-misarreach-mcp": {
"url": "https://api.misar.io/reach/mcp"
}
}
} {
"servers": {
"misar-ai-misarreach-mcp": {
"type": "http",
"url": "https://api.misar.io/reach/mcp"
}
}
} [mcp_servers.misar-ai-misarreach-mcp] url = "https://api.misar.io/reach/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"misar-ai-misarreach-mcp": {
"type": "remote",
"url": "https://api.misar.io/reach/mcp",
"enabled": true
}
}
} openclaw mcp add misar-ai-misarreach-mcp --url 'https://api.misar.io/reach/mcp' --transport streamable-http
mcp_servers:
misar-ai-misarreach-mcp:
url: "https://api.misar.io/reach/mcp" {
"McpServers": {
"misar-ai-misarreach-mcp": {
"Transport": "http",
"Url": "https://api.misar.io/reach/mcp"
}
}
} assistant mcp add misar-ai-misarreach-mcp -t streamable-http -u 'https://api.misar.io/reach/mcp'
{
"mcpServers": {
"misar-ai-misarreach-mcp": {
"type": "http",
"url": "https://api.misar.io/reach/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 18 Sept 26 0
- Stability: 0.97 → pass security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +1
- Authorization: unverified → fail ▼ security
- HSTS header: unverified → pass ▲ security
- Injection markers: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- MCP protocol: unverified → fail ▼ functional
- Endpoint reachability: unreachable → reachable ▲ functional
- Stability: unverified → 0.93 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- 15 Sept 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: pass → unverified ▼ security
- Stability: 0.87 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: fail → unverified ▼ security
- Transport: pass → fail ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: fail → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 6 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://api.misar.io/reach/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=misar.io | CN=WE1,O=Google Trust Services,C=US | 31 Jul 2026 | 29 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 36123dde1d68f2a313ed8e3be1be8130 |
| SANs: misar.io, *.misar.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.misar.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| misar.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="MisarReach"
Bearer realm="MisarReach" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; script-src 'self' 'nonce-20dfd87b4398411aa8d790ebe6f52091' 'strict-dynamic' https://ph.misar.io https://analytics.ahrefs.com https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self'; connect-src 'self' https://api.misar.io https://*.misar.io https://ph.misar.io https://api.assisters.dev https://analytics.ahrefs.com https://id.misar.io https://misarreach.com wss://*.misar.io; manifest-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests; report-uri /api/csp-report; report-to csp-endpoint |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.misar.io/reach/mcp | Verified | 200 | |
| http (plaintext) | http://api.misar.io/reach/mcp | HTTPS enforced | 301 | https://api.misar.io/reach/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
create_deal ~242
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 — and defaults to 0 with currency USD. Returns the created deal, which enters the pipeline at the first stage.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | – | UUID of associated campaign |
| contactId | string | – | UUID of associated contact |
| conversationId | string | – | UUID of associated conversation |
| currency | string | – | ISO 4217 currency code (default USD) |
| leadEmail | string | yes | Lead's email address |
| leadName | string | – | Lead's display name |
| notes | string | – | Deal notes (max 5000 chars) |
| value | number | – | Deal value in minor currency units (default 0) |
No output schema declared.
No examples provided.
create_lead_list ~113
Create a new, empty lead list in Hunter.io. 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 and a connected Hunter.io account. Costs no credits. Returns the created list with the id that sync_lead_list needs.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | List name (1-200 chars) |
No output schema declared.
No examples provided.
discover_companies ~243
Find COMPANIES matching firmographic criteria via Hunter.io, 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 performs email lookups and COSTS CREDITS; leaving it false is a plain company search. Returns matching companies with firmographics. No lead is saved to the account by this call.
| Name | Type | Req | Description |
|---|---|---|---|
| fetch_emails | boolean | – | Also fetch contact emails for discovered companies (default false) |
| headcount_max | number | – | Maximum employee count |
| headcount_min | number | – | Minimum employee count |
| industry | array | – | Industry filters (max 10) |
| limit | number | – | Max companies to return (1-100, default 20) |
| location | array | – | Location filters (max 10) |
| query | string | – | Free-text company search query |
| technology | array | – | Technology stack filters (max 10) |
No output schema declared.
No examples provided.
enrich_lead ~150
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 API key. Updates the stored lead in place and returns it; it does not create a new record, and running it twice does not duplicate the lead — but it does bill twice.
| Name | Type | Req | Description |
|---|---|---|---|
| leadId | string | yes | Lead UUID from list_leads |
No output schema declared.
No examples provided.
get_autopilot_status ~128
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 progress is a normal answer, not an error.
| Name | Type | Req | Description |
|---|---|---|---|
| runId | string | yes | Autopilot run UUID |
No output schema declared.
No examples provided.
get_channels_status ~109
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 API key. Returns each channel with whether it is enabled, whether credentials are configured, and recent delivery counts.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_pipeline ~136
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, proposal, closed and lost. Money is in minor currency units (cents), so divide by 100 before showing it.
| Name | Type | Req | Description |
|---|---|---|---|
| workspaceId | string | – | Optional workspace UUID to filter pipeline |
No output schema declared.
No examples provided.
get_sales_agent_actions ~112
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 API key. No actions today is a normal answer, not an error.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_sales_agent_config ~99
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 configuration for the authenticated account.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_search_job_status ~130
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, progress, and the leads found so far; a job still running is a normal answer, not an error.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Lead search job UUID |
No output schema declared.
No examples provided.
list_autopilot_runs ~119
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| offset | number | – | Pagination offset |
No output schema declared.
No examples provided.
list_deals ~179
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, closed and open pipeline revenue. Money is in minor currency units (cents), so divide by 100 before showing it.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 50, max 100) |
| offset | number | – | Pagination offset (default 0) |
| status | string | – | Filter by deal status (e.g. new, contacted, interested, meeting, proposal, closed, lost) |
No output schema declared.
No examples provided.
list_lead_lists ~107
List the Hunter.io lead lists connected to this account. 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 are Hunter.io's lists, which are separate from the leads stored locally — list_leads shows those. Reads only, costs no credits, takes no parameters. Requires an API key and a connected Hunter.io account. An empty result means no lists exist yet.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_leads ~181
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 fields plus enrichment and score where present. An empty page is a normal answer, not an error.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | – | Filter leads by a specific search job UUID |
| limit | number | – | Results per page (default 20, max 100) |
| page | number | – | Page number (default 1) |
| search | string | – | Search term to filter by name, email, or company |
No output schema declared.
No examples provided.
move_deal_stage ~149
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. Safe to repeat: moving a deal to the stage it is already in changes nothing. Stages are not ordered by this call, so it can move a deal backwards as easily as forwards. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | Deal UUID |
| newStage | string | yes | Target stage |
No output schema declared.
No examples provided.
preview_message ~168
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 same input yields different wording each time. Returns the drafted message text.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Company name (optional, max 100 chars) |
| name | string | yes | Person's full name (1-100 chars) |
| role | string | – | Job title or role (optional, max 100 chars) |
No output schema declared.
No examples provided.
process_sales_agent ~161
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_sales_agent_actions. CONSUMES AI CREDITS. Not idempotent: calling twice processes the conversation twice and can send two messages. Requires an API key, and the agent's configured confidence threshold still governs whether it acts.
| Name | Type | Req | Description |
|---|---|---|---|
| conversationId | string | yes | UUID of the conversation to process |
No output schema declared.
No examples provided.
score_leads ~189
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. Passing leadIds rescores leads even if they already have a score, which bills again — pass jobId to score only what is unscored. Caps at 200 ids per call.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | – | Score all unscored leads for this job UUID (use this OR leadIds) |
| leadIds | array | – | Specific lead UUIDs to (re)score (max 200, use this OR jobId) |
No output schema declared.
No examples provided.
search_leads ~181
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 not retry it as a way to check progress. Requires an API key. Setting useAI additionally spends AI credits to enrich and score the results as they arrive.
| Name | Type | Req | Description |
|---|---|---|---|
| filters | object | – | Optional filters |
| query | string | yes | Search query describing the ideal lead (2-200 chars) |
| useAI | boolean | – | Use AI to enrich and score results (default false) |
No output schema declared.
No examples provided.
send_to_campaign ~180
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 authenticated account, or the call fails. Adding a lead already on the list does not duplicate it. Requires an API key. Verify addresses with verify_emails first; importing dead ones damages sender reputation.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Target campaign UUID |
| leadIds | array | yes | Lead UUIDs to import (1-500) |
| listId | string | – | Target contact list UUID (defaults to campaign's own list) |
No output schema declared.
No examples provided.
start_autopilot ~213
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 brief. It returns a runId immediately; watch progress with get_autopilot_status. CONSUMES AUTOPILOT CREDITS, plus search, enrichment and AI credits as it works. Requires an API key. Each call starts a SEPARATE run — calling twice runs two campaigns concurrently against the same goal.
| Name | Type | Req | Description |
|---|---|---|---|
| goal | string | yes | Outreach goal description (10-500 chars). E.g. 'Find and email 10 SaaS startup CTOs in London about our product' |
| workspace_id | string | – | Optional workspace UUID to associate with this run |
No output schema declared.
No examples provided.
submit_lead_feedback ~131
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 key. Costs no credits.
| Name | Type | Req | Description |
|---|---|---|---|
| feedback | string | yes | Feedback sentiment |
| jobId | string | yes | Lead search job UUID |
| leadEmail | string | yes | Email address of the lead |
No output schema declared.
No examples provided.
sync_lead_list ~144
Import a Hunter.io 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. Re-syncing the same list refreshes rather than duplicating, so it is safe to repeat. Requires an API key and a connected Hunter.io account. Costs no credits; enrichment and verification are billed separately.
| Name | Type | Req | Description |
|---|---|---|---|
| listId | string | yes | Hunter.io list ID (integer as string) |
No output schema declared.
No examples provided.
update_channel ~143
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 call. Safe to repeat: setting a channel to the state it is already in changes nothing. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | Channel to update |
| enabled | boolean | yes | Whether to enable (true) or disable (false) the channel |
No output schema declared.
No examples provided.
update_deal ~193
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. Safe to repeat — the same call twice leaves the same deal. Requires an API key, and the account must own the deal. `value` is in MINOR CURRENCY UNITS (2500 = $25.00). Notes REPLACE the existing note rather than appending.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | Deal UUID |
| notes | string | – | Updated deal notes (max 5000 chars) |
| status | string | – | New deal status |
| value | number | – | Updated deal value in minor currency units |
No output schema declared.
No examples provided.
update_sales_agent_config ~260
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 config first — only the fields you pass change, but a wrong value takes effect immediately. Safe to repeat. Requires an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| cal_link | string | – | Calendly or Cal.com URL for meeting booking (max 500 chars, set null to clear) |
| confidence_threshold | number | – | Confidence score below which agent flags for human review (0.0-1.0, default 0.65) |
| enabled | boolean | – | Enable or disable the sales agent |
| max_replies_per_day | number | – | Maximum automated replies per day (1-500, default 20) |
| offer_description | string | – | Short description of the offer (max 1000 chars, set null to clear) |
| offer_price | number | – | Offer price in minor currency units (integer, min 0) |
No output schema declared.
No examples provided.
verify_emails ~161
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 verdict per address; 'undeliverable' is a successful result, not an error. Nothing is sent to the addresses.
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | Single email to verify (use this OR emails array) | |
| emails | array | – | Batch of emails to verify (max 20) |
No output schema declared.
No examples provided.
What is the MisarReach MCP Server server?
MisarReach MCP Server is listed in the public MCP registry as io.github.Misar-AI/misarreach-mcp. Find and enrich leads, run multi-channel outreach, and manage the sales pipeline. This page covers its hosted endpoint (https://api.misar.io/reach/mcp).
Is the MisarReach MCP Server server safe to use?
MisarReach MCP Server scores 91 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the MisarReach MCP Server server expose?
MisarReach MCP Server exposes 27 tools: list_leads, search_leads, get_search_job_status, submit_lead_feedback, discover_companies, and 22 more. Their descriptions and schemas cost roughly 4,321 tokens of context every time the server is loaded.
Does the MisarReach MCP Server server require authentication?
Yes. MisarReach MCP Server asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the MisarReach MCP Server server still maintained?
MisarReach MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.