mcpbeat Sign in

Vendo AI MCP Server

answering

Vendo AI is answering right now. Last checked 34 min ago. It exposes 396 tools.

Autonomous AI sales: agents, signal-based prospecting, outreach, CRM — 149 tools.

Uptime history 91 days of history · worst day 0%
91 days agonow
100.0%
Uptime 24h
23 of 23 checks
396
Tools
read from the server
254 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 405

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 6 October 2026. No other catalogue keeps this.

2 Nov 9 tool descriptions were rewritten sdr_create_search, sdr_icp_review_run, sdr_launch_outreach and 6 more
27 Oct 2 tools changed the parameters they ask for create_campaign, update_campaign
26 Oct 242 tools appeared activate_campaign_linkedin, activate_campaign_phone, add_agent_document and 239 more
26 Oct 73 tool descriptions were rewritten76 times that day archive_campaign, connect_google_meet, connect_whatsapp_account and 70 more
26 Oct 66 tools changed the parameters they ask for67 times that day archive_campaign, connect_google_meet, create_agent and 63 more
8 Oct 2 tool descriptions were rewritten crm_list_leads, crm_stats
8 Oct 2 tools changed the parameters they ask for crm_list_leads, crm_stats
8 Oct a tool appeared crm_list_branches
6 Oct 4 tools appeared sdr_learning_recompute, sdr_list_hunters, sdr_pause_hunter and 1 more
and 4 more, back to 6 October 2026

Vendo AI does not always answer

Over the last week it answered 93.7% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 34 min ago.

run in your terminal
claude mcp add vendo-ai --transport http https://api.vendo-ai.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://api.vendo-ai.com/mcp
~/.codex/config.toml
[mcp_servers.vendo-ai]
url = "https://api.vendo-ai.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "vendo-ai": {
      "url": "https://api.vendo-ai.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "vendo-ai": {
      "type": "http",
      "url": "https://api.vendo-ai.com/mcp"
    }
  }
}

Available tools 396

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

sdr
get_sdr_email_capacity
How many SDR sender email addresses the account has (included + purchased extras) and the estimated daily email throughput. Read-only.
sdr_activate_search
Set status=active and fire-start all enabled hunters. Reversible via `sdr_pause_search`.
sdr_activity_feed
Recent discovery + outreach events for one SDR search, newest first — the same ticker the dashboard shows. Read-only, free.
sdr_bulk_delete_people
Removes up to 500 contacts of one search. No restore. Only after sdr_preview_bulk_delete_people was approved.
sdr_company_detail
Read-only. One company of a search: company card (website, size, location, links), decision-makers found with fit, other known people at the company and its live signals. part=card returns only the card and people pool (slower source, up to 20 s).
sdr_company_heat
Read-only. Companies ranked by live signal heat, with ICP fit, signal types and contact status. One search (search_id, pages via offset up to any depth) or all searches merged (first 500 rows, offset + limit ≤ 500).
sdr_configure_hunter
Turns one hunter on/off and/or sets the search fields it reads (only those listed in its inputs): competitor_pages (Competitor Engagement/Switching), target_cities (local business hunters, email discovery), decision_roles (Decision-maker matching, Website profile), linkedin_search_queries (LinkedIn hiring), industry_keywords / exclude_keywords / relevant_topics. Settings are search-wide.
sdr_create_search
Creates an SDR search like the wizard's "Create & Start". Preferred: research_job_id from a finished sdr_get_research — every field defaults to the research profile, regions to its regions (or HQ country), all 24 hunters on, competitor pages saved, then the search is activated and the research's first buyers are copied in. Legacy: agent_id + name + target_regions (profile generated from the company profile if offer/ICP omitted). start=false creates a draft without hunting. Hunting is not billed per run; each buying signal that fits the ICP costs 1 credit and each usable contact 5 credits (2 and 10 from hunters on paid data). Errors with 409 if an identical search was just created.
sdr_daily_by_hunter
Read-only. Station sparklines: signals per day for every hunter of a search (days 2–60, default 14).
sdr_delete_outreach
Delete the SDR outreach campaign. The Signal Search and its hunters CONTINUE running. Only call after `sdr_preview_delete_outreach`.
sdr_delete_person
Removes one contact from the search: hidden from lists, counts, exports and outreach. No restore, no refund. Only after sdr_preview_delete_person was approved.
sdr_delete_search
Deletes the SDR process and ALL its data: hunters stop, the outreach campaign is stopped and deleted, signals, contacts, hunter state, QA runs and learning weights are removed. Not reversible, no refund. Only after the user approved sdr_preview_delete_search.
sdr_events
Read-only. What the hunters are doing right now (queries, companies resolved, signals saved, contacts found). Pass since = next_since of the previous call to get only new events. Best effort: last 150 events per search, lost on restart.
sdr_export_companies_csv
Read-only. CSV of every company the search found: Company, Domain, Heat, ICP fit, Signal count, Signal types, Contact status, Contacts found.
sdr_export_people_csv
Export the contacts of an SDR search as CSV text (name, title, email, LinkedIn, location, company). Contacts ONLY — deliberately carries no scores or signal reasoning, because this file leaves the platform. Returns the raw CSV; can be large. Read-only, free.
sdr_export_personas_to_audience
Creates a custom audience from a search's contacts with an email (segment fit by default, optional roles or explicit ids). No credits. The audience can then be used in any campaign.
sdr_find_cities
Read-only. Main cities of the given countries (no q), or a name search (q ≥ 2 Latin letters). Use the returned objects as target_cities in sdr_create_search / sdr_update_search.
sdr_generate_agent_signal_profile
Run Claude on the agent's knowledge to (re)generate its signal profile. Persists onto the agent so later Signal Searches reuse it.
sdr_get_agent_signal_profile
Read the agent's current signal profile (ICP, offer summary, hunter weights). Returns { exists: false } when nothing's generated yet.
sdr_get_outreach
Read the SDR outreach campaign — channels enabled, ready/queued/sent counts, current content config.
sdr_get_outreach_content
Read the configured email subject/body templates and LinkedIn invite template for SDR outreach.
sdr_get_person_detail
Read-only. Provenance of one contact: hunter, query, triggering signal, scores and the reasoning chain. Needs the search_id the contact belongs to.
sdr_get_research
Read-only. Pass job_id (from sdr_start_research / a previous poll) or agent_id (while the company profile is still being built, or to get the latest research of a company). Returns status (queued/running/done/error), stages, events and, when done, the result: company dossier and the editable profile (search name, offer, ICP, decision roles, regions, keywords, LinkedIn queries, competitor pages, hunter plan). Poll every 5–10 s.
sdr_get_research_audience
Read-only. The instant audience of a finished research: up to ~20 matching people from the Vendo database with company, position, country, LinkedIn, email and why they fit — the wizard's "buyers already found" cards. refresh=true rebuilds it (slower).
sdr_get_search
Fetch one Signal Search by id, including its profile, hunters, and contact counts.
sdr_health
Operator-level health view: states, signals/contacts produced, credits spent, recent events, learning insights for a single search.
sdr_hunter_daily
Read-only. The hunter page chart: signals and contacts per day for one hunter (days 2–60, default 14).
sdr_hunter_detail
Read-only. One hunter of a search: run state, signals in 30 days, signals & contacts per day (days 2–60, default 14), the contacts it found (incl. pending/phone-only), and its settings.
sdr_icp_qa_autocorrect
Lets the ICP check rewrite the search's industry keywords automatically (default off).
sdr_icp_qa_history
Read-only. Past ICP-QA runs (checked, fits, uncertain, unfit, quality %, keyword changes) and whether keyword auto-correction is on.
sdr_icp_qa_rollback
Restores the search's industry_keywords to the snapshot taken before the given ICP-QA run (undo an auto-correction).
sdr_icp_qa_run
People page "Check now": classifies unchecked contacts of a search as Fit / Uncertain / Not a fit (AI, not billed) and may suggest keyword changes. Returns the run, or null when nothing is unchecked.
sdr_icp_review
Read-only. Uncertain contacts waiting for re-check, last run results, totals and next scheduled run.
sdr_icp_review_run
ICP Review "Re-check now": re-judges this search's Uncertain contacts (bounded per run, one run at a time). Contacts moved to Fit become billable (5 credits, 10 from hunters on paid data) when used.
sdr_launch_outreach
Launches outreach: real emails and/or LinkedIn invites start in the working window and new contacts keep being picked up. Each newly queued contact costs 5 credits (10 from hunters on paid data). Managed senders need a paid plan; client_owned needs a connected mailbox. Only after the user approved sdr_preview_launch_outreach.
sdr_learning_insights
Read-only. Learned weight per signal type and conversion from real outreach outcomes, for one search or per search across the workspace.
sdr_learning_recompute
Recalculate per-signal-type weights from outreach outcomes (replies/meetings vs sends) for one search. Safe, no cost; use when the user asks to refresh/recalculate Signal Learning.
sdr_linkedin_connect_link
Returns a hosted link where the user connects a LinkedIn account for this SDR's outreach. A human must open it; then pick the account in selected_linkedin_account_ids.
sdr_list_hunters
Read-only. The 24 hunter sources a search can run, with UI name, what each looks at, opt-in/paid-engine/LinkedIn-budget flags, whether it can be run by hand, and which search fields it reads. Use to map a hunter the user names ("Competitor Switching") to its id (g2_reviews) before sdr_set_hunters / sdr_configure_hunter / sdr_run_now. Hunters are not billed per run; each buying signal that fits the ICP costs 1 credit and each usable contact 5 credits (2 and 10 from hunters on paid data).
sdr_list_outreach_processes
Read-only. SDR outreach processes of the workspace as listed on the Sales Process page (status, channels, counters).
sdr_list_personas
Read-only. Contacts of a search, newest first. Filters: group (fits/uncertain/unfit/unchecked), source (contacts of one hunter, incl. pending/phone-only), company, role, min_relevance; paging up to 200.
sdr_list_searches
List active Signal Searches in this workspace. Optionally filter by agent.
sdr_materialize_research
Copies the instant audience of a finished research into a search as contacts (background, idempotent, filtered by the search's regions/cities). sdr_create_search with research_job_id already does this after activation; use this only to repeat it. Contacts are billed (5 credits each, 10 from hunters on paid data) like any other contact when used.
sdr_outreach_summary
Per-channel sent and queued counts for one SDR search. Read-only, free.
sdr_overview
Read-only. Every SDR search of the workspace with signals (7/30 days), contacts, hot companies, hunter health (running/cooling/paused) and outreach, plus workspace totals and a daily series — the /vendo-sdr list page.
sdr_pause_hunter
Pauses one hunter of a search; the others keep running. Reversible with sdr_resume_hunter.
sdr_pause_outreach
Stop sending new messages on this SDR campaign. Reversible.
sdr_pause_search
Pauses the whole SDR process: every hunter AND all outreach sending (email and LinkedIn). Data is kept. Reversible with sdr_resume_search.
sdr_people_group_counts
Read-only. How many contacts are Fit, Uncertain, Not a fit and unchecked. only_with_email=false counts email-or-LinkedIn reachable contacts (what outreach "Who to contact" uses). Use before choosing icp_segment.
sdr_persona_stats
Read-only. Contact totals, by role, top companies, daily series (7, 14 or 28 days), credits spent.
sdr_preview_bulk_delete_people
Dry run of multi-select delete: checks every id belongs to the search and counts them by group.
sdr_preview_delete_outreach
Show what would happen. The Signal Search ITSELF is NOT deleted, only the outreach campaign.
sdr_preview_delete_person
Dry run. Shows the contact that would be removed. Nothing changes.
sdr_preview_delete_search
Dry run. Shows the process, how many contacts and signals would be lost and the outreach campaign status. Nothing is deleted. Call before sdr_delete_search.
sdr_preview_launch_outreach
Dry run of "Save and Launch". Shows the effective settings (request + saved + defaults), contacts in the chosen segment, ready email/LinkedIn contacts, predicted blockers (no LinkedIn account, no own mailbox), the paid-plan rule for managed senders and the delivery window. Nothing is sent. Always call first and show it to the user.
sdr_preview_outreach_content
Render an example personalized email/LinkedIn message for a specific contact. Costs ~1 Claude call.
sdr_preview_run_now
Dry run of the hunter "Run" button. Lists which hunters would run (one source, or every enabled runnable hunter when omitted), flags paid engines and LinkedIn-budget hunters. Nothing runs.
sdr_preview_search
Run Claude on the agent's script and return the auto-generated ICP profile (offer summary, ideal customer profile, relevant topics, LinkedIn queries) WITHOUT persisting anything. Use to review/edit before calling `sdr_create_search`.
sdr_preview_set_person_group
Dry run. Shows the move and whether it costs credits: moving a contact the ICP check left free to Fit charges 5 credits (10 from hunters on paid data).
sdr_preview_start_research
Dry run of the New SDR wizard's first steps. Tells whether a company profile for this website already exists (reused, 0 credits) or must be built (deep website scan 15 + outreach playbook 1 = 16 credits), and whether a recent ICP research (< 24 h) would be reused. Nothing is created. Always call before sdr_start_research and show the cost.
sdr_recent_signals
Read-only. Latest signals of one search (search_id) or merged across all searches of the workspace.
sdr_regenerate_search
Re-run Claude on the agent's current knowledge to regenerate the entire ICP profile and hunter configuration. Useful after the agent's script changed significantly.
sdr_resume_hunter
Resumes one paused hunter of a search.
sdr_resume_outreach
Resume a paused SDR outreach campaign.
sdr_resume_search
Resumes a paused SDR process: hunters restart and outreach that was paused together with the search resumes (outreach you paused separately stays paused).
sdr_run_now
Starts (or wakes, if already running) one hunter or every enabled runnable hunter of a search. Paid engines use Vendo's provider budget, LinkedIn hunters the LinkedIn budget; signals that fit cost 1 credit and contacts found 5 credits each (2 and 10 from hunters on paid data). Call after sdr_preview_run_now.
sdr_run_state
Read-only. Overall run state of a search (running / paused / idle) with the current action.
sdr_run_states
Per-source map of run state (running / paused / idle) for a Signal Search.
sdr_save_outreach_settings
Outreach window 1 "Save": Who to contact (icp_segment), channels, email sender mode/provider, LinkedIn accounts, time zone, working hours, weekends, daily limits, CRM branch. Partial: missing fields keep their saved values. Never launches: a new process stays a draft; a running one keeps its status and applies the change at once (widening Who to contact on a running process queues more contacts at 5 credits each, 10 from hunters on paid data). Set dry_run=true to preview.
sdr_search_hunters
Read-only. Every hunter for a search: enabled or not, live run state, signals in 30 days, 7-day sparkline, and the current values of the settings it reads. The search page's hunter stations.
sdr_set_hunters
Enables/disables hunters (the wizard's Hunters step). Pass enable/disable lists, or enabled_sources as the full list. On an active search new hunters start within ~10 min (budget-throttled ones ~30); disabled ones stop at their next cycle. To stop one immediately without disabling it use sdr_pause_hunter.
sdr_set_person_group
Overrides the ICP verdict for one contact. Moving a free (precheck-skipped) contact to Fit charges 5 credits, 10 from hunters on paid data (402 if the balance is too low). Call sdr_preview_set_person_group first when moving to fits.
sdr_signal_stats
Read-only. KPI cards: fresh signals, signals and contacts by source over the last N days (1–90, default 30).
sdr_start_research
Starts the New SDR wizard for a company + website, exactly like the web app: reuses the company profile for the same domain or builds a hidden one (website deep scan, playbook; 16 credits), then runs the ICP research (1–3 min, not billed). Returns agent_id and either the research job or a setup state. Poll sdr_get_research until the job status is done, then call sdr_create_search with research_job_id. Only call after the user approved sdr_preview_start_research.
sdr_update_outreach_content
Outreach windows 2–3: email (mode ai/fixed/html, prompt, tone, ≤5 fixed variants with {{placeholders}}, per-step follow-ups, own-HTML steps, signature, auto-reply) and LinkedIn (invite on/off, ai/exact texts, follow-up, delay after accept, conversation rules, auto-reply delays, signature, Calendly). Partial; takes effect on new sends. Follow-up changes are blocked while an email sequence is already sending.
sdr_update_search
The wizard's Edit → "Save changes": name, hunters, regions, cities, offer, ICP, decision-makers, company size, keywords, exclusions, LinkedIn queries, competitor pages, hot threshold. Partial updates; status is not touched (an active search keeps hunting with the new profile). Status changes only via sdr_activate_search / sdr_pause_search / sdr_resume_search.
crm
crm_add_comment
Internal team note on the lead card (not visible to the lead). Mentioned users (ids from crm_list_workspace_members) get a CRM notification.
crm_add_lead_to_branch
Place the lead in another pipeline too (entry stage); it stays in its current ones. Reversible via crm_move_lead_to_branch.
crm_communication_cards
One card per campaign and per SDR search, with outbound counters. This is the FULL outbound stream — everyone contacted, whether or not they replied (CRM leads only contains people who answered). Contact emails/phones are masked for members without the "crm-contact-details" permission. Read-only, free.
crm_communication_history
Every outbound touch for one campaign or SDR search, filterable by channel, reply status and date. Use `crm_communication_cards` first to get the id. Read-only, free.
crm_communication_thread
The complete message thread with one contact inside a card. `key` comes from a `crm_communication_history` row (an email address or LinkedIn chat id). Read-only, free.
crm_create_branch
Create an isolated pipeline (team / direction / client) with its own default stages. member_user_ids = who can see it (General stays open to all). Workspace admins/owner only. No credits.
crm_create_calendar_event
Add a custom event to the CRM planner. Write operation, no credit cost. Does NOT send invites to anyone — it only records the event on the internal calendar.
crm_create_lead
Add a lead card to the entry stage of the chosen pipeline(s). ALL fields optional — provide whatever is known (at least one of name/company/title/email/linkedin/phone). Not deduplicated (use crm_import_leads or crm_promote_contact_to_lead for dedup). Side-effect: a card appears on the customer board.
crm_create_stage
Add a custom kanban column to a pipeline (name, optional hex color, is_terminal for Won/Lost-like end stages). Inserted before the terminal stages. branch = "general" (default) or a branch id.
crm_delete_calendar_event
Remove a custom calendar event. Unlike deleting a lead or a stage this destroys no history and needs no preview step, but it cannot be undone.
crm_enrich_from_linkedin
Fetch name / title / current employer / avatar / location for a linkedin.com/in/... URL (same lookup the SDR hunters use). May also suggest an email as an UNVERIFIED pattern guess (email_confidence=pattern_guess). Costs one profile view from the workspace's shared daily LinkedIn budget — do not loop over big lists.
crm_get_branch
One pipeline by id (id, name, is_default). Read-only.
crm_get_conversation
The full message thread with this lead on their source channel (LinkedIn / email / widget / telegram / phone transcript). Read-only.
crm_get_lead
Full lead card: identity, source ("why is this person here"), company enrichment, activities, comments, assignments. Read-only.
crm_get_lead_branches
Every pipeline a lead currently sits in, with its stage and owner per pipeline. Read-only.
crm_get_lead_document
Returns the file as base64 with its name and mime type (files up to 5 MB; larger ones only via REST). Read-only.
crm_get_settings
Read CRM settings, including the notify_* toggles that control which events send an email/notification. Read-only, free.
crm_import_leads
Import up to 1000 parsed rows as leads into the chosen pipelines (entry stage). Dedup by email/phone: an existing lead only gets its blank fields filled (never overwritten) and is added to the pipelines. Returns created / updated / skipped (+ reasons). No credits.
crm_list_all_branches
Every pipeline of the workspace (id, name, is_default) — wider than crm_list_branches for members; use it to pick a destination for crm_add_lead_to_branch / crm_move_lead_to_branch. Read-only.
crm_list_branches
Branches are isolated pipelines inside one workspace (teams / directions / clients). Returns id, name, is_default ("General"), member_user_ids. Read-only. Call before crm_stats / crm_list_leads when the user has more than one branch, then pass branch=<id> (or "general").
crm_list_calendar_events
List custom calendar events (meetings, reminders) in the CRM planner for a date range. Note: SDR sending windows also appear in the UI calendar but are derived from the search schedule — read those via `sdr_get_search`. Read-only, free.
crm_list_lead_documents
Files attached to a lead card (id, name, type, size, uploader, date). Read-only.
crm_list_leads
List leads in the CRM pipeline. Filters: branch ("general" or a branch id from crm_list_branches; omitted = all branches visible to the user), stage (stage id), owner (user id from crm_list_workspace_members), source, q (name/company/email search), range or from/to, limit/offset. Read-only. Great first call for "who replied to me?".
crm_list_linkedin_accounts
List the LinkedIn accounts connected to this workspace, as shown in the CRM. Useful to see which account owns a conversation. Read-only, free.
crm_list_notifications
Latest 50 CRM notifications of the caller (types: assigned, reassigned, mentioned, new_lead, stage_change) plus total and unread counts. unread_only=true returns only unread ones. For the app bell (billing, meetings, invitations) use list_app_notifications. Read-only, free.
crm_list_stages
Ordered kanban columns of ONE pipeline (id, name, color, is_terminal). Every branch has its own stages: pass branch ("general" = default, or a branch id from crm_list_branches). Read-only. Call before moving leads.
crm_list_workspace_agents
List the AI agents in this workspace that CRM leads can be attributed to. Read-only, free.
crm_list_workspace_members
List the people in this workspace who can own a CRM lead. Use before `reassign_crm_lead` to get valid owner ids. Read-only, free.
crm_mark_all_notifications_read
Clear the CRM notification badge by marking everything read.
crm_mark_notification_read
Mark a single CRM notification as read. Write operation, no credit cost.
crm_move_lead
Drag-and-drop equivalent: move a lead to a different pipeline stage by stage_id (get ids from crm_list_stages). Reversible.
crm_move_lead_to_branch
Move the lead out of one pipeline into another (entry stage, or to_stage_id of the destination). Reversible.
crm_preview_email_to_lead
Dry-run of crm_send_email_to_lead: shows recipient, subject and body exactly as they would be sent. Sends nothing. ALWAYS call first and show the draft to the human.
crm_promote_contact_to_lead
Turn a person from the Communications stream (crm_communication_history row) into a CRM lead in the New stage. Deduplicated: returns { lead_id, already_existed }. Needs at least one of email / linkedin_url / phone. No credits.
crm_reorder_stages
Set the full left-to-right order of one pipeline's stages (every stage id exactly once — get them from crm_list_stages with the same branch). Applies to the whole workspace. Reversible.
crm_reply_to_lead
Sends a REAL LinkedIn message or email reply to the lead on their source channel, from the customer's own account. Also moves the lead to the "Manager Dialog" stage. ALWAYS show the drafted text to the human and get approval BEFORE calling this.
crm_send_email_to_lead
Sends a REAL email from the CRM card ("<your name> via Vendo AI", replies go to your own address) and logs it on the card. Members need the crm-contact-details permission. Only call after the user approved the exact draft from crm_preview_email_to_lead.
crm_stats
Counts per stage, new today/this week, stale leads. Read-only. Optional branch ("general" or a branch id from crm_list_branches) — omitted = all branches visible to the user. If the workspace has more than one branch, call crm_list_branches first and report per branch or ask which one.
crm_update_branch
Rename a pipeline and/or replace its member list. The General pipeline cannot be changed. Admins/owner only.
crm_update_calendar_event
Edit an existing custom calendar event (title, times, all-day, description, colour, linked lead — lead_id null unlinks). Write operation, no credit cost.
crm_update_lead
Patch lead attributes (name, company, title, email, LinkedIn, phone, notes, tags, deal value + currency). Stage and owner have their own tools (crm_move_lead, reassign_crm_lead). Reversible.
crm_update_settings
Change workspace CRM settings: which notifications fire (new lead, reassigned, mention; by email and/or in-app), the stale-lead alert, the default date range, and which agents / sources / LinkedIn accounts never create leads. Write operation, no credit cost. Turning notifications off or excluding sources means the human stops being alerted / leads stop appearing, so confirm with the user first. (Personal email preferences: update_notification_preferences.)
crm_update_stage
Rename, recolor or toggle is_terminal of a stage. System stages (New, Manager Dialog) cannot be renamed. To change the column order use crm_reorder_stages.
crm_upload_lead_document
Attach one file to a lead card (base64 or https URL). Allowed: pdf, doc(x), xls(x), csv, txt, rtf, odt, ods, ppt(x), png, jpg, gif, webp, heic, zip. Stored privately; adds an activity entry. No credits.
delete_crm_branch
Delete a non-default pipeline; its leads are not deleted but return to General. NOT reversible. Admins/owner only. Only call after the user approved preview_delete_crm_branch.
delete_crm_lead
Soft-delete a lead — it disappears from the pipeline (restorable by support only). Only call after the user reviewed `preview_delete_crm_lead` output and explicitly approved.
delete_crm_lead_document
Permanently delete a file from a lead card. NOT reversible. Only call after the user approved preview_delete_crm_lead_document.
delete_crm_stage
Delete an EMPTY, non-system pipeline stage. Only call after the user reviewed `preview_delete_crm_stage` and explicitly approved.
get_crm_integration
Status and settings of the Kommo or HubSpot connection ({connected:false} if none). Use it to poll after connect_crm_integration. Read-only.
get_crm_integration_logs
Recent sync events (contact/lead created, errors) of the caller's own Kommo/HubSpot connection. Read-only.
list_crm_integrations
External CRM connections of the workspace (Kommo, HubSpot): status, account, sync settings and counters. Tokens are never returned. Read-only.
update_crm_integration_settings
What to sync and where: sync_conversations, sync_contacts, create_leads, auto_sync, pipeline_config (Kommo pipeline_id / stage_id / responsible_user_id from list_kommo_pipelines / list_kommo_users), field_mapping. Affects what is written into the external CRM — confirm with the user.
preview
preview_activate_campaign_linkedin
Dry-run: which accounts would get the campaign audience queued, how many contacts and what is already queued. Nothing changes. Call before activate_campaign_linkedin.
preview_activate_campaign_phone
Dry-run of activating the phone channel with numbers the account already owns: numbers, objective, calls/day, window and estimated credits per call/day. Nothing is scheduled. Numbers cannot be bought through the API.
preview_agent_email
Render a sample outreach email from an agent — no sending, no credits. Optional mode/prompt/tone/customInstructions/variant/followUp{index,delayDays,previous}/sample make it render exactly like a campaign would (same as preview_campaign_email).
preview_archive_campaign
Show what archiving would do — NOTHING CHANGES: current status and channels, what stops (an active campaign stops ALL outreach at once and releases its mailboxes / LinkedIn accounts), what is kept (history, threads, stats, CRM leads). Archiving cannot be undone (duplicate_campaign to run the same setup again). ALWAYS call first and show the user before archive_campaign.
preview_buy_audience_set
Dry-run of purchasing an audience set — returns the set, contact count, price per contact, estimated credits, current balance and can_afford, WITHOUT spending credits. ALWAYS call this first and show the cost to the human.
preview_campaign_email
Render the exact email a campaign would send — first email or follow-up #k — with the writing rules, tone, Communication Rules or fixed text. Pass campaign_id to use its saved settings (any field you pass overrides them), or agent_id + rules for an unsaved draft. No sending, no credits.
preview_campaign_linkedin_followup
Render the first LinkedIn message sent after an invite is accepted (AI from the agent, or the fixed text with placeholders filled). Pass campaign_id to use saved settings. No sending, no credits.
preview_campaign_linkedin_invite
Render the LinkedIn connection note a campaign would send (AI from rules/tone, or fixed text with placeholders), with its length vs the 200-char limit. Pass campaign_id to use saved settings. No sending, no credits.
preview_cancel_meeting
Show which meeting the agent would skip. Nothing changes. Call first and show the user.
preview_connect_whatsapp_account
Explain what connecting a WhatsApp number does and list the accounts already connected. No link is created. Call first, then connect_whatsapp_account after the user approves.
preview_custom_audience_file
Step 1 of an upload: send a CSV/XLSX/XLS/TSV/TXT file (base64 or https URL) and get the detected headers, a suggested column mapping, sample rows, total rows and the list of target fields. Creates nothing, no credits. Then call `upload_custom_audience` (optionally with a corrected column_mapping).
preview_deep_scan
Show what deep_scan_agent would do: cost (15 credits), duration (60-180 s) and what gets saved. Nothing runs. ALWAYS call first and get the user's approval.
preview_delete_agent
Show what would happen if you delete an agent. The agent is NOT deleted. ALWAYS call this first and surface the result to the user before calling `delete_agent`.
preview_delete_agent_connection
Show what removing a channel would do. Nothing is removed. ALWAYS call first and show the user before delete_agent_connection.
preview_delete_campaign
Show what would happen if you delete a campaign. The campaign is NOT deleted.
preview_delete_crm_branch
Dry-run: shows the pipeline and how many leads would fall back to General. Changes nothing. ALWAYS call before delete_crm_branch.
preview_delete_crm_lead
Dry-run of deleting a CRM lead — shows who would be removed from the board. ALWAYS call this first and show the result to the human.
preview_delete_crm_lead_document
Dry-run: shows which file would be deleted. Changes nothing.
preview_delete_crm_stage
Dry-run of deleting a pipeline stage. Deletion is refused downstream if the stage still holds leads or is a system stage.
preview_delete_custom_audience
Dry-run: shows the audience name and how many contacts would be deleted. Changes nothing. ALWAYS call before `delete_custom_audience` and show the result.
preview_delete_custom_audience_contact
Dry-run of removing one contact from a custom audience. Changes nothing. Show the result to the human before `delete_custom_audience_contact`.
preview_delete_narrator_lead
Show the lead that would be deleted. Nothing is deleted. Call first and show the user before delete_narrator_lead.
preview_disconnect_client_mailbox
Dry-run: which client_owned campaigns are affected and how many usable mailboxes remain. Nothing changes.
preview_disconnect_content_account
Dry-run of removing a publishing account. Nothing changes.
preview_disconnect_crm_integration
Dry-run: shows which connection would be removed. Changes nothing.
preview_disconnect_google_meet
Show what disconnecting Google Meet would do. Nothing changes. Call first and show the user.
preview_disconnect_linkedin_account
Dry-run of removing a LinkedIn account, showing the capacity that would be lost. ALWAYS call this first.
preview_disconnect_telegram_bot
Show which Telegram bot would be detached from the agent (username, chats, messages). Nothing changes. Call first.
preview_disconnect_whatsapp_account
Show the WhatsApp account that would be disconnected. Nothing changes. Call first.
preview_enrich_custom_audience
Dry-run of enrichment: how many contacts still need enrichment, the maximum credits (1 per contact), estimated minutes, the current balance and whether it can start. Spends nothing. ALWAYS call first and show the cost to the human.
preview_invite_workspace_member
Dry-run: checks whether the email can be invited (caller is admin, not already a member, no pending invite). Sends nothing.
preview_launch_audience_set
Dry-run of `launch_audience_set`: shows the set, contact count, credits it would cost (signals sets: price per contact for a fresh snapshot; people sets: free) and the balance. Nothing is bought or sent. ALWAYS call this first and show the cost.
preview_launch_campaign
Readiness report for launch/resume — NOTHING IS SENT: ready flag, blockers (AGENT_REQUIRED, AUDIENCE_REQUIRED, AUDIENCE_EMPTY (0 contacts), CLIENT_MAILBOX_NOT_CONNECTED, PAID_PLAN_REQUIRED for Vendo managed senders, INVALID_STATUS), warnings, real recipient count, channels, daily email/LinkedIn limits, sender mode, email steps, schedule and the LinkedIn accounts that will be activated. ALWAYS call this first and show the result to the user before launch_campaign.
preview_linkedin_account_messages
Sample invite, follow-up and auto-reply plus suggested pitch/signature for an account in a campaign (built from the campaign's agent). No sending, no credits.
preview_linkedin_followup
Render a sample first follow-up (after the connection is accepted). No sending, no cost.
preview_linkedin_invite
Render a sample LinkedIn connection request from this agent. No sending, no cost.
preview_phone_test_call
Show which number would be called from which, and the cost (25 credits/min, max 2 min). Nothing is dialled. ALWAYS call first.
preview_reconnect_linkedin_account
Dry-run of re-authenticating a LinkedIn account. Explains the side-effects without doing anything. ALWAYS call this first — reconnecting changes the account id upstream and can orphan existing outreach history.
preview_remove_agent_from_meeting
Show whether the agent is in this live meeting and what removing it does. Nothing changes.
preview_remove_workspace_member
Dry-run: shows who would lose access. Changes nothing. ALWAYS call before remove_workspace_member.
preview_reply_in_campaign_thread
Dry-run: recipient, subject (defaults to Re: last subject) and the exact text. Nothing is sent. Call before reply_in_campaign_thread and show the text to the user.
preview_reply_to_campaign_email
Dry-run of replying to a lead's email reply: shows recipient, subject and the exact text. Nothing is sent. Call before reply_to_campaign_email and show the text to the user.
preview_schedule_campaign_delivery
Dry-run: how many ready prepared emails would be scheduled into the campaign working hours. Nothing changes. Call before schedule_campaign_delivery.
preview_send_campaign_emails_now
Dry-run: how many prepared emails would be sent immediately (outside the schedule). Nothing is sent.
preview_send_linkedin_message
Dry-run: recipient, exact text, cost (3 credits) and whether the balance suffices. Nothing is sent. Call before send_linkedin_message and show the text to the user.
preview_send_telegram_message
Show the recipient and exact text of an operator message. Nothing is sent. ALWAYS call first and show the user the text.
preview_set_workspace_member_role
Dry-run of set_workspace_member_role. Changes nothing.
preview_setup_phone_agent
Show what setup_phone_agent would do with the same arguments: which channel is created or updated, which of YOUR numbers is attached, objective, voice, inbound on/off. Nothing is attached or created. ALWAYS call first and show the user, then call setup_phone_agent with the same arguments after approval.
preview_update_campaign_discovery
Dry-run of enabling/changing automatic lead discovery: source, daily credit budget, leads/day. Nothing changes. Call before update_campaign_discovery whenever discovery is (or stays) enabled.
campaign
add_campaign_linkedin_account
Add a connected account to a running campaign; pending contacts are rebalanced across accounts and backfilled. It starts sending invites in the next cycles. No credits.
create_campaign
Create a classic campaign in DRAFT — nobody is contacted until launch_campaign. Needs an audience (audienceId from save_audience/list_audiences, OR customAudienceId of a READY uploaded/CRM list) and should get an agentId (a campaign cannot be launched without an agent: AGENT_REQUIRED). branchId = CRM branch for replies (crm_list_branches; null = General). Settings (all optional): channels, dailyLimit, dailyEmailLimit, dailyLinkedinLimit, timezone, workingHours, excludeWeekends, campaignDurationDays, customInstructions (Communication Rules incl. form of address), emailSignature, notifyEmails, ccEmail, autoResponseEnabled, autoResponseDelayMinutes, followUpInterval, maxFollowUps, trackOpens, emailSenderMode (managed needs a paid plan), senderEmailIds, emailContent {mode, prompt, tone, variants, htmlSteps, followUps[{delayDays, prompt|subject+body}]}, linkedinContent {mode, invite_prompt, invite_tone, invite_exact_text, followup_delay_minutes, followup_exact_text}, selectedLinkedinAccountIds, linkedinAutoReplyDisabled. Ids are checked against the workspace. Free, no sending.
delete_campaign
Permanently delete a campaign. NOT reversible. Only call after the user has reviewed `preview_delete_campaign` output and explicitly approved.
get_campaign
Full campaign: status, settings (all wizard fields), sequence, channel paused flags, channelStatuses, today's sends, stats.totalContacts. Read-only.
get_campaign_activity
Paged activity events of a campaign (discovery, outreach, engagement, system, billing). Poll it instead of a live stream. Read-only.
get_campaign_analytics
Sales Process KPIs for the workspace: totals (campaigns, emails sent, opens, clicks, replies, contacts, rates) and per-campaign performance, optionally for a date range. Read-only. For SDR + campaigns combined use the SDR analytics tool.
get_campaign_discovery
AI lead discovery settings of a campaign (null when never configured). Read-only.
get_campaign_email
One sent email by email id (from list_campaign_emails / list_campaign_replies): content, recipient, related open/click/reply events, the reply and the conversation. Read-only.
get_campaign_email_stats
Email funnel: sent, delivered, opened, clicked, replied (real / auto-reply / bounce), bounced; delivery block (delivered vs not delivered: bounced, rejected as spam, unsubscribed; sender inbox-placement test — real inbox vs spam folder is not reported by providers) and unique opened/clicked/replied. Read-only.
get_campaign_linkedin_stats
LinkedIn counters (total, pending, invites sent, connected, messaged, replied, failed), invites sent today, effective daily limit and active accounts; optionally for one account. Read-only.
get_campaign_live_status
Email channel progress: audience size, processed, % complete, event counts, queue depth and provider status / sent today. Read-only.
get_campaign_monitor
Monitor page data: AI lead discovery config + stats, audience growth by day, the last 100 activity events, event counts and credits (balance, spent today/total, daily budget). Read-only.
get_campaign_phone_stats
Call counters: total, completed, active, pending, no answer, voicemail, failed, interested, meetings booked, not interested, average/total duration. Read-only.
get_campaign_pulse
What the campaign is doing now (sending / idle / outside_hours / paused / queue_empty / done), today vs daily limits, 7–28-day email + LinkedIn series and the latest events. Read-only.
get_campaign_thread
One conversation with all messages (AI, human and contact). Read-only.
list_campaign_discovered_leads
Leads found by AI lead discovery for a campaign, filterable by status (discovered, enriching, enriched, added_to_audience, rejected, duplicate, enrichment_failed). Read-only.
list_campaign_email_leads
Recipients with their open/click/reply counts, read live from the sending provider (throttled: once per 15 s per campaign). Read-only.
list_campaign_emails
state=sent: emails already sent (filter by status, search by address); state=queued: scheduled/queued emails waiting to go out; state=prepared: pre-generated emails pipeline with status counts and preparation progress. Read-only.
list_campaign_linkedin_accounts
Accounts working this campaign with per-account counters (pending, invites sent, connected, messaged, replied). Read-only.
list_campaign_linkedin_outreach
Contacts in the campaign's LinkedIn queue with their status (pending, invite_sent, connected, message_sent, replied, failed, skipped), optionally for one account. Read-only.
list_campaign_phone_calls
Calls with contact, status, outcome, duration, sentiment, summary and recording URL. Read-only.
list_campaign_replies
Email replies received by a campaign with body and classification: real (a person answered), auto_reply (out of office), bounce. Read-only.
list_campaign_threads
Conversations the AI is handling for a campaign (filter by status ai_handling|human_takeover|closed and sentiment positive|objection|referral|unsubscribe|neutral), plus counters by status and sentiment. Only threads of the API key's user. Read-only.
remove_campaign_linkedin_account
Stop using an account for this campaign; its pending contacts move to the remaining accounts. Already-sent invites stay.
update_campaign
Change a campaign's name, description or any wizard setting (partial: send only what changes; settings are merged). agentId and branchId can be changed only while the campaign is a draft. Settings (all optional): channels, dailyLimit, dailyEmailLimit, dailyLinkedinLimit, timezone, workingHours, excludeWeekends, campaignDurationDays, customInstructions (Communication Rules incl. form of address), emailSignature, notifyEmails, ccEmail, autoResponseEnabled, autoResponseDelayMinutes, followUpInterval, maxFollowUps, trackOpens, emailSenderMode (managed needs a paid plan), senderEmailIds, emailContent {mode, prompt, tone, variants, htmlSteps, followUps[{delayDays, prompt|subject+body}]}, linkedinContent {mode, invite_prompt, invite_tone, invite_exact_text, followup_delay_minutes, followup_exact_text}, selectedLinkedinAccountIds, linkedinAutoReplyDisabled. On a running campaign, changed email steps/delays are not applied once anything was sent (settings.smartleadSequencePending). No sending, no credits.
update_campaign_discovery
Turn on or adjust automatic lead discovery: it runs daily, SPENDS CREDITS up to daily_discovery_budget_credits and adds new leads to the campaign audience. Same args as preview_update_campaign_discovery; only after the user approved that preview. Disabling (enabled=false) needs no preview.
agent
add_agent_document
Upload a material the agent learns from (PDF, DOC, DOCX, TXT, XLS, XLSX, CSV, PPT, PPTX, KEY; ≤10 MB) from a public URL or base64. Used the next time the script is generated (generate_agent_script). Free.
create_agent
Create an AI agent like step 1 of the app's builder. Choose its direction: purpose "sales" (default), "support" or "info". The agent starts in DRAFT and contacts nobody. Needs at least 1 credit on the balance (checked, not charged). Fails with a plan-limit error when all agent slots are used (see get_agent_plan_limits). Next: set_agent_company → generate_agent_script → channels.
create_agent_connection
Add a channel. WEBSITE_WIDGET needs website_url; new widgets get the app defaults (Modern design) plus your widget_config — then get_widget_embed_code. WEBSITE_BUTTON: just creates the channel (style it in get_widget_embed_code). PRESENTATION_WIDGET = publish the Slide Presenter (optional website_url). GOOGLE_MEET: prefer connect_google_meet. PHONE_CALL: prefer setup_phone_agent. Telegram → connect_telegram_bot; WhatsApp → connect_whatsapp_account. A second widget for the same URL updates the existing one. Free. Interactive cards in chat need design "modern"; in voice they need set_agent_voice screen_cards=true.
delete_agent
Permanently delete an agent. NOT reversible. Only call after the user has reviewed `preview_delete_agent` output and explicitly approved.
delete_agent_connection
Remove a channel from the agent (the embed code stops working). No undo. Only after preview_delete_agent_connection and explicit user approval.
get_agent
Fetch the full details of a single agent by id.
get_agent_connection
Full settings of one channel (website widget, button, presentation, Google Meet, phone, Telegram). Read-only.
get_agent_connection_stats
Conversations, messages, unique visitors, last activity of one channel. For widgets prefer get_connection_analytics (fresher). Read-only.
get_agent_job
Status and result of a deep scan or script generation job started by deep_scan_agent / generate_agent_script (kept 1 hour). Poll every 10-20 s while status is "running". Read-only.
get_agent_plan_limits
How many agents can the user create (base plan + purchased extra slots) vs how many they have. Read-only.
list_agent_connections
See every channel attached to this agent: widgets, telegram, phone, presentations, etc.
list_agent_jobs
Deep scans and script generations of this agent in the last hour (status only) — use when a job_id was lost. Read-only.
list_agent_presentations
Alias of get_presentation kept for older clients: returns the agent's current Slide Presenter deck (PDF name, slides with text and presenter script, look, call-to-action, voice, published channels, direct link) — slides_count 0 when no deck is uploaded. Prefer get_presentation. Read-only.
remove_agent_document
Remove an uploaded material from the agent (see get_agent → documents[].url). Free.
remove_agent_from_meeting
The agent leaves the live Google Meet call right now. Only works while the meeting is in progress. Only after preview_remove_agent_from_meeting and user approval.
set_agent_avatar_from_url
Upload a custom avatar photo (JPG, PNG or GIF, ≤5 MB) from a public image URL or base64. Replaces the preset face. Free.
set_agent_company
Required before `generate_agent_script` will work. Set the company the agent represents — its name, website, and what it sells.
set_agent_contact_channels
Set the meeting link, presentation link, email, phone, WhatsApp, Telegram and up to 10 custom links that the agent gives to visitors (also shown as screen cards). MERGE: only the channels you pass change; pass "" (or null for custom_links) to clear one. Write, free.
set_agent_integrations
Legacy flags on the agent (zoom_enabled, google_meet_enabled, website_embed_enabled). Channels are managed with the connection tools; this does not connect anything. Free.
set_agent_status
Change agent status. Allowed values: ACTIVE, PAUSED, ARCHIVED, DRAFT.
set_agent_voice
Configure the voice of the agent's website widget exactly like the app's widget settings page and create/update the voice agent at the voice provider, so voice calls in the widget really work. Only the settings you pass change (the rest keep their saved values or the app defaults). voice_id is required the first time (list_voice_catalog). Takes up to ~1 min. Free to configure; widget voice calls cost 15 credits/min.
update_agent
Change an agent's name, description, direction (purpose), voice gender or preset face. Only the fields you pass change. Company name/website/description → set_agent_company; contacts → set_agent_contact_channels. Free.
update_agent_connection
Change a channel: website widget look and behaviour (design, colours, button picture, invitation/auto-open, sounds, contact form and its wording, greetings, page navigation, voice view), name, website_url, Google Meet settings or phone texts. Only what you pass changes; widget texts and theme are merged. Free.
update_agent_script
Replace the script stages (rename, reorder, edit, add or remove stages) and optionally the tone, like the builder's script editor. Send the FULL list of stages you want; the full text is rebuilt from them. Get the current stages from get_agent (script_sections). Free.
custom
add_custom_audience_contacts
Append up to 5000 contacts to a custom audience. Deduplicated inside the audience by email, LinkedIn URL or phone (duplicates and contacts with no email/LinkedIn/phone are skipped). Returns added / skipped / total_contacts. No credits.
create_custom_audience
Create an empty, named custom audience (status ready) — then fill it with `add_custom_audience_contacts`. To create one from a file use `upload_custom_audience`. No credits.
delete_custom_audience
Permanently delete a custom audience with all its contacts and source file. NOT reversible. Only call after the user approved `preview_delete_custom_audience`.
delete_custom_audience_contact
Permanently remove one contact from a custom audience (not reversible). Optional reason (UI choices: Not relevant, Wrong contact, Already a customer, Bad data, Other) is logged to improve automatic selection. Only call after the user approved `preview_delete_custom_audience_contact`.
get_custom_audience
One custom audience: status, counts (with email/phone/LinkedIn), enrichment progress, column mapping and the first 20 contacts. Page through all contacts with `get_custom_audience_contacts`. Read-only, free.
get_custom_audience_contacts
Paged contacts of a custom audience (max 100 per page). Contacts added by Vendo SDR carry signal_context (why they were picked: reasoning, relevance score, ICP group). Read-only, free.
get_custom_audience_enrichment
Status and progress of a running (or finished) enrichment: status, enrichment_total, enrichment_done, enrichment_progress (%), done flag. Poll every 10–30 s. Read-only.
list_custom_audiences
List the workspace's custom audiences — uploaded CSV/XLSX lists, purchased audience sets, CRM selections — with status (processing|ready|enriching|error), contact counts and enrichment progress. These are different from campaign audiences (`list_audiences`). Read-only, free.
update_custom_audience_contact
Edit one contact of a custom audience (only the fields you pass change). No credits.
generate
generate_agent_description
AI-write "what the agent knows" about the company from its website (no full scan). Costs 1 credit. NOT saved — pass the text to set_agent_company (company_description).
generate_agent_page_descriptions
Write AI descriptions + keywords for website pages (output of scan_agent_website). Costs 1 credit per 5 pages. Not saved.
generate_agent_script
Generate the agent's script (stages + full text + email/LinkedIn script) in the chosen tone for its direction (sales / support / info), using the company description and uploaded files. Saves it on the agent (overwrites). Costs 1 credit, takes 60-90 s. Needs company_name and company_description (set_agent_company). If it is still running after ~200 s you get a job_id → get_agent_job.
generate_knowledge_from_url
Read a public web page and return a knowledge text block about it. Costs 1 credit. NOT saved — append the result to company_description with set_agent_company if you want the agent to know it.
generate_phone_script
Draft a call script and greeting from the agent's sales script for a call objective, in the agent's language. Free. Not saved — pass it to setup_phone_agent (or let setup_phone_agent generate it).
generate_slide_script
AI-write what the presenter says on one slide, in the presentation's language. 1 credit (2 with image_url — the AI looks at the slide). NOT saved — put it into narrator_script with set_presentation_slides.
generate_support_script
Legacy support-script generator of the old text-widget creators. Prefer generate_agent_script with purpose "support". Needs company name + description. Costs 1 credit.
generate_transition_phrases
Generate the phrases the Slide Presenter uses to move between slides, in the presentation's language, and save them on the agent. Needs saved slides (set_presentation_slides).
connect
connect_client_mailbox
Connect the user's OWN mailbox for sending. Requires SMTP/IMAP hosts+ports and an APP PASSWORD, which passes through this conversation: prefer asking the user to connect it in the app (Settings → Email Sending) unless they explicitly give you the password. WARM-UP STARTS IMMEDIATELY: the real mailbox sends and receives warm-up mail. The password is never returned. Gmail: smtp.gmail.com:465 / imap.gmail.com:993; Outlook: smtp.office365.com:587 / outlook.office365.com:993.
connect_content_account
Returns a hosted URL a HUMAN must open in a browser to authorise a LinkedIn or Instagram publishing account. Give the link to the user; nothing is connected until they finish.
connect_crm_integration
Returns an authorization URL a HUMAN must open in a browser (logged in to Kommo/HubSpot) and approve within 20 minutes; the connection completes server-side. Give the URL to the user, then poll get_crm_integration. Kommo needs save_kommo_credentials first.
connect_google_meet
Turn on the Google Meet channel the way the app does: returns the agent's own invite address ([email protected]). Invite that address to any Google Calendar event with a Meet link and the agent joins automatically. No Google login needed. Also saves the meeting settings. Free to connect; meeting minutes are billed.
connect_linkedin_account
Returns a hosted URL that a HUMAN must open in a browser to authorise a LinkedIn account. This tool cannot complete the connection itself — give the link to the user. No account exists until they finish the flow.
connect_telegram_bot
The user creates a bot with @BotFather, gets the HTTP API token, and passes it here. After that, all messages to the bot are answered by the agent.
connect_whatsapp_account
Returns a hosted link; the user opens it and scans the QR code with WhatsApp (Linked devices) — that links a REAL phone number to the workspace. Poll list_whatsapp_accounts until status is "ok". Free. Only after preview_connect_whatsapp_account and the user's approval.
disconnect
disconnect_client_mailbox
Stop using the mailbox as a sender. If none remain, client_owned campaigns cannot send or launch. Only after the user approved preview_disconnect_client_mailbox.
disconnect_content_account
Remove the publishing account; it can no longer publish posts. Only after the user approved preview_disconnect_content_account.
disconnect_crm_integration
Remove the Kommo/HubSpot connection: syncing stops, tokens and settings are deleted; reconnecting needs OAuth again. Only call after the user approved preview_disconnect_crm_integration.
disconnect_google_meet
Remove the Google Meet channel from the agent and turn auto-join off. Already scheduled meetings are not cancelled (use cancel_meeting). Only after preview_disconnect_google_meet and user approval.
disconnect_linkedin_account
Remove a LinkedIn account from the workspace. Any campaign or SDR search sending from it stops immediately and daily capacity drops. Only call after the user reviewed `preview_disconnect_linkedin_account` and explicitly approved.
disconnect_telegram_bot
Detach the bot from this agent: the webhook is removed and the bot stops answering (it keeps existing in Telegram; chat history is kept; reconnect with connect_telegram_bot). Only after preview_disconnect_telegram_bot and the user's approval.
disconnect_whatsapp_account
Disconnect and delete the WhatsApp account; auto-replies stop and reconnecting needs a new QR scan. Only after preview_disconnect_whatsapp_account and user approval.
audience
get_audience
Read one saved audience with its filters and contact count. Read-only, free.
get_audience_set
Details of one marketplace set by slug: size, description, freshness. Use the contact count here to work out the purchase cost (2 credits per contact). Read-only, free.
get_audience_set_contact
Full card of one contact in a marketplace set: person, company, buying signal, channels. Contact details stay masked until the set is bought. Contact ids come from `get_audience_set_contacts`. Read-only, free.
get_audience_set_contacts
Paginated preview of the contacts inside a marketplace set. Contact details stay masked until the set is purchased. Read-only, free.
list_audience_sets
Browse pre-built, ready-to-use audiences available for purchase, plus their categories. Browsing is free; buying costs credits. Read-only.
search_audience
Search the people graph for prospects matching include AND exclude filters (countries, cities, industries, positions, company sizes, tags, company keywords, language, freshness, must-have-email/LinkedIn/phone/booking link). PREVIEW only — returns aggregate counts and a small sample. Does not save anything, does not contact anyone, does not spend credits. Next: `save_audience` with the same filters.
credit
get_credit_transactions
Credit deductions + grants of the workspace, newest first. Optional filters: type, date range (from/to, a date-only `to` is inclusive), pagination. With filters the gateway scans the newest 5000 rows; `has_more`/`total_matched` tell you if there is more. Read-only.
get_credit_usage_by_agent
Total credit spend per agent in the workspace. Identifies the most expensive agents.
get_credit_usage_by_type
Per-session credit spend (newest first) with connectionType (email_outreach, linkedin_invite, linkedin_message, phone_call, widget, voice, sdr_contact, ...). With from/to it also returns totals_by_type for that range. Read-only.
get_credit_usage_for_agent
Total credits spent by one specific agent.
get_credit_usage_for_agent_connections
Per-channel credit spend (widget, telegram, phone, etc.) for one agent. Identifies the costliest channels.
get_credit_usage_monthly
Calendar-month breakdown of credit spend across all categories.
presentation
get_presentation
The agent's presentation: PDF name, slides (text + presenter script; images with include_images), look, call-to-action, presenter voice, published channels and direct link. Read-only. (list_agent_presentations shows only the legacy creator.)
get_presentation_embed_code
Direct link (narrator page) and the HTML snippet with the saved look. Publish it as a channel first (create_agent_connection type PRESENTATION_WIDGET). Read-only.
set_presentation_cta
The button viewers see: a lead form (fields) or a link. Only what you pass changes (fields replaces the whole field list). Leads land in list_narrator_leads. Free.
set_presentation_look
Theme, colours, corner radius, controls, autoplay, voice on/off, chat on/off, Modern look (background, glass, font, panel side, presenter bubble, voice visual), slide transition and button texts. Only what you pass changes. Free.
set_presentation_slides
Save the slide deck — REPLACES all slides (add, remove, reorder, edit). Each slide: image (public URL or base64; JPG/PNG/WebP/GIF ≤5 MB; omit to keep the stored image of an existing slide id), extracted text and presenter script. PDF upload is not supported by the API: render the PDF pages to images first. Then write scripts with generate_slide_script and set_presentation_voice. Free.
set_presentation_voice
The Slide Presenter's own voice and model (the website widget voice is not touched). Same settings as the app; only what you pass changes. Needs saved slides. Takes up to ~1 min. Free to configure; presentation voice costs 17 credits/min.
telegram
get_telegram_analytics
Chats, messages, voice calls, text messages, unique users and credits (text/voice) of the agent's Telegram bot for a date range. Read-only.
get_telegram_bot_info
See the connected bot username + settings.
get_telegram_chat
All messages of one Telegram chat, incl. voice-call turns with recording URL and duration. Read-only.
list_telegram_chats
People/groups talking to the agent's Telegram bot: name, username, type, message count, last message time. Paged. Read-only.
set_telegram_voice_calls
Show or hide the VOICE button of the agent's Telegram bot (voice calls in the mini app). Needs a connected bot. Free.
set_telegram_voice_settings
Voice and behaviour of the Telegram bot's voice calls (separate from the website widget): the same settings as set_agent_voice plus the mini app look (visual). Only what you pass changes. Needs a connected bot. Takes up to ~1 min. Free to configure; calls are billed per minute.
google
get_google_meet_analytics
Meetings, minutes, completed, missed and credits used for a date range. Read-only.
get_google_meet_settings
Whether Google Meet is connected for this agent, its invite address, settings and totals. Read-only.
list_google_meet_history
All meetings of this agent (newest first) with status, times, duration, whether a transcript exists. Paged. Read-only.
list_google_meet_meetings
Read-only list of meetings the agent has scheduled. Requires Google Meet connected first.
update_google_meet_settings
Auto-join, minutes before start, greeting, language, meeting mode (voice only / presentation — needs slides). Only what you pass changes. Free.
linkedin
get_linkedin_account_settings
Per-account LinkedIn settings shared by every campaign and SDR process using the account: AI auto-replies (on/off, tone, instructions, pitch, booking link, reply delays, daily limit, working hours, agent, contact info), invites (on/off, tone, pitch, instructions, CTA), follow-ups (on/off, pitch, instructions, CTA) and signature (text, first_message|every_message). The first read creates defaults (pre-filled from campaign_id's agent).
get_linkedin_conversation
All messages of one LinkedIn chat (chat_id from list_linkedin_conversations). Read-only.
list_linkedin_accounts
LinkedIn accounts of the workspace and their status (ok = can send; ~70–80 invites/day each). Returns { role, accounts } (role is filled only with detailed=true). detailed=true adds owner/role, campaigns and SDR searches using each account, 7-day activity, prospecting caps, warm-up stage, premium tier and proxy country. Read-only.
list_linkedin_conversations
LinkedIn chats of the workspace (optionally of one campaign and/or account): contact, last message, pending AI reply, human takeover flag, outreach status. Read-only.
update_linkedin_account_settings
Change AI auto-replies, invite / follow-up pitch, CTA, signature, reply delays/limits for ONE LinkedIn account (applies to all campaigns and SDR processes using it). Send only changed fields. To switch AI replies off for a single campaign use update_campaign settings.linkedinAutoReplyDisabled. No credits.
narrator
delete_narrator_lead
Permanently delete a presentation lead. Only after preview_delete_narrator_lead and explicit user approval.
get_narrator_analytics
Slide Presenter analytics. view "summary" (default): views, presentations started, watch time, unique viewers, average duration, completion rate, recent sessions, per channel. view "period" with date_from/date_to: widget loads, starts, watch minutes, unique viewers, credits used. Read-only. (No per-slide drop-off.)
list_narrator_leads
Leads from the presentation call-to-action form (form data, page, status, notes). Filter by status, page with limit/offset. Read-only.
update_narrator_lead
Set a presentation lead's status (new / contacted / converted / spam) and notes. Free.
phone
get_phone_channel_stats
Calls attempted/completed/successful, minutes and credits of one Voice Call channel. Read-only.
list_phone_calls
Phone calls of this agent (incl. test and inbound) with transcript, recording URL, summary, outcome, sentiment, duration and credits, plus totals by outcome/sentiment. Read-only.
list_phone_numbers
Phone numbers already on your account (number, country, type, monthly cost, per-minute rate). Buying numbers is done in the app. Read-only.
phone_test_call
DIALS A REAL PHONE: the agent calls to_number from the channel's number (max 2 min, 25 credits/min). Only call the user's own number, only after preview_phone_test_call and explicit approval.
referral
create_referral_link
Create a new tracked referral link (max 20 active). Returns code and url.
get_referral_overview
Commission %, minimum payout, totals (visits, signups, paying customers, revenue, earned, paid out, available), every referral link with its stats, and payout request statuses. Payout requests themselves can only be made in the app. Read-only.
get_referral_share_card
Everything needed to render the share card / QR for a link: url (QR payload), short url, headline and description texts. Render the QR image yourself. Read-only.
update_referral_link
Change a link label or archive it (archived links stop attributing new signups; archived=false restores).
workspace
get_workspace
Workspace name/owner, members (user_id, email, name, role, feature permissions), pending invitations, and whether the caller is admin/owner. Read-only.
remove_workspace_member
Remove a member: they immediately lose access to this workspace (their account gets its own empty workspace). Re-adding needs a new invitation. Admins only. Only call after the user approved preview_remove_workspace_member.
set_workspace_member_permissions
Restrict what a (non-admin) member sees: an allow-list of features, or null for full access. "crm-contact-details" controls whether they see lead emails/phones. Admins only; the owner and admins cannot be restricted.
set_workspace_member_role
admin=true makes the member an admin (full access, can manage team and pipelines); false demotes to member. Owner only. Only call after the user approved preview_set_workspace_member_role.
agents
get_agents_dashboard
Older overview numbers of all agents (superseded by get_analytics_agents). Read-only.
list_agents
List all AI agents in the account. Read-only.
list_agents_with_stats
Same as `list_agents` but includes per-agent stats (connections, credits spent, status).
app
delete_app_notification
Remove one in-app notification from the caller's list.
get_app_notifications_unread_count
Number of unread in-app notifications (the bell badge). Read-only.
list_app_notifications
The caller's in-app notifications, newest first (type, subject, preview, isRead, createdAt), with unreadCount and paging. Types include MEETING_TRANSCRIPT, MEETING_NOTIFICATION, SUBSCRIPTION_*, PAYMENT_RECEIPT, LOW_CREDITS, CREDITS_ADDED, INVITATION, CUSTOM. CRM lead notifications are separate (crm_list_notifications). Read-only.
meeting
get_meeting
One meeting with transcript, summary, action items, join/leave time and duration. Read-only.
get_meeting_transcript
Transcript messages, summary and action items of a meeting (from the database or the recording service). Read-only.
list_meeting_agents
Agents that have Google Meet connected (the calendar's agent filter). Read-only.
profile
get_profile
The API key owner's profile: name, email, company, position, avatar. Read-only.
set_profile_avatar
Upload a JPG/PNG/GIF (≤5 MB) as the profile photo, from an https URL or base64.
update_profile
Change first_name, last_name, company_name, position of the API key owner. (Email, password and 2FA are UI-only.)
save
save_audience
Save a campaign audience from the same filter set as `search_audience` (call that first to check the counts). Returns the audience id to pass to `create_campaign`. No outreach happens here, no credits.
save_kommo_credentials
Kommo private integration step 1: store the Integration ID (UUID) and Secret key of the Vendo app the client created in their Kommo account. The secret is never echoed back. Returns the redirect_uri to paste into Kommo. Then connect_crm_integration provider=kommo.
save_scan_data
Save company facts (team, contacts, social links, pricing, employee count, auto re-scan) onto the agent — what the app does after a scan. Side effects: stores them in the agent, creates/updates the company and people records, fills BLANK contact channels (never overwrites manual ones). Not needed after deep_scan_agent with persist=true. Free.
send
send_campaign_emails_now
Send up to `limit` prepared emails immediately, ignoring the schedule. REAL emails to real people. Only after the user approved preview_send_campaign_emails_now.
send_linkedin_message
Send a REAL LinkedIn message in the chat; costs 3 credits, the AI stops messaging this contact (human takeover) and the CRM lead moves to Manager Dialog. Only after the user approved preview_send_linkedin_message.
send_telegram_message
Sends a REAL Telegram message from the bot to this person (human takeover). Only after preview_send_telegram_message and the user approved the exact text.
activate
activate_campaign_linkedin
Queue the campaign audience for LinkedIn on the given (or selected/all connected) accounts and add linkedin to the channels. On an active campaign REAL connection invites start within the next cycles. Only after the user approved preview_activate_campaign_linkedin.
activate_campaign_phone
Schedule REAL outbound AI calls to every audience contact with a phone number; credits are charged per call minute. Same args as preview_activate_campaign_phone; only after the user approved that preview. Pause with pause_channel channel=phone_call.
analytics
get_analytics_agents
All metrics of the workspace's agents for a UTC date range (default: the page default), optionally one agent: totals, rates, daily series, funnel (widget loads → opens → conversations → contacts → leads), by agent / channel, leads by source, recent leads, credits by type, languages, pages, traffic sources, hours, durations, previous-period comparison. Read-only.
get_analytics_sdr
Outreach analytics for a UTC date range across Vendo SDR and classic campaigns, or narrowed to one SDR search (search_id) or one campaign (campaign_id) — never both: totals, rates, daily series, delivery (sent/delivered/bounced/inbox placement), by product / source / type, contacts by source, enrichment, funnel, per-process rows. Read-only.
balance
get_balance
Get the current shared credit balance of the workspace (credits belong to the workspace owner; member keys see the same number). Read-only, no side-effects, no cost.
get_balance_full
Richer than `get_balance` — returns balance, total subscription credits, total purchased, total spent, free-trial credits, email/workspace info.
cancel
cancel_meeting
The agent will NOT join this scheduled meeting (the calendar event itself stays). Only scheduled, not yet started meetings. No undo. Only after preview_cancel_meeting and user approval.
cancel_workspace_invitation
Cancel a pending invitation (its link stops working). Admins only. Invitation ids come from get_workspace.pendingInvitations.
connection
get_connection_analytics
For a website widget/button/presentation channel: widget loaded, activated, chats started, voice calls started, plus estimated credits (text messages, voice minutes) for a date range. Read-only.
list_connection_conversations
Conversations of a widget/presentation channel with messages, mode (chat/voice), visitor name/email/phone and page. Paged (limit ≤500). Read-only.
duplicate
duplicate_agent
Create a copy of an existing agent (new id, same config). Counts toward agent capacity.
duplicate_campaign
Copy a campaign (settings + audience) into a new DRAFT named '<name> (Copy)'. Nothing is sent. Note: the copy re-uses company-based audiences only and has no CRM branch; check get_campaign of the copy before launching.
kommo
list_kommo_pipelines
Pipelines and their statuses (stages) in the connected Kommo account — values for pipeline_config. Read-only.
list_kommo_users
Users of the connected Kommo account — values for pipeline_config.responsible_user_id. Read-only.
launch
launch_audience_set
Creates a campaign-ready audience from a marketplace set and returns its audienceId. Signals sets SPEND CREDITS (a fresh snapshot is bought, price per contact; it also appears in My Audiences); people sets are free. Does NOT contact anyone. Next: `create_campaign` with the audienceId, then `preview_launch_campaign`. Only call after the user approved `preview_launch_audience_set`.
launch_campaign
Start (or resume a paused) campaign exactly like the app: starts email sending and queues LinkedIn on the selected (or all connected) accounts. Contacts receive REAL outreach in the working hours; credits are spent as messages go out. Only call AFTER the user reviewed preview_launch_campaign and approved it. Returns the campaign plus linkedin_activation.
mark
mark_all_app_notifications_read
Mark every in-app notification of the caller as read (clears the badge).
mark_app_notification_read
Mark one in-app notification as read.
notification
get_notification_preferences
Personal email/in-app preferences: email_notifications, in_app_notifications, meeting_reminders, credit_alerts, analytics_emails_enabled. Read-only.
update_notification_preferences
Turn personal notifications on/off. Turning them off means the human stops being alerted (e.g. low credits, meetings) — confirm with the user first.
pause
pause_campaign
Pause a running campaign across every channel. Reversible — call `launch_campaign` to resume.
pause_channel
Pause a single channel (email, linkedin, phone_call, voice_call) on a running campaign. Other channels keep going.
prepare
prepare_campaign_audience_from_custom
Turn a READY custom audience into a campaign audience and return its id ({ id, name, stats }) — pass it as audienceId to `create_campaign`. Sends nothing, no credits. The "Launch campaign" button of My Audiences.
prepare_campaign_emails
Generate emails for every contact ahead of sending (legacy company-based audiences only; people/custom-audience campaigns prepare automatically after launch). Can take minutes. Nothing is sent. No credits.
reconnect
reconnect_client_mailbox
Retry the SMTP/IMAP connection of a mailbox in status error and refresh its status. No credits.
reconnect_linkedin_account
Re-authenticate a LinkedIn account whose session died. Creates a NEW account id upstream: past outreach stays attached to the old id, so per-account history can look empty afterwards and running campaigns may need re-pointing. Only call after the user reviewed `preview_reconnect_linkedin_account` and approved.
reply
reply_in_campaign_thread
Send the email to the contact now. REAL email. Only after the user approved preview_reply_in_campaign_thread. Consider takeover_campaign_thread first so the AI stops answering.
reply_to_campaign_email
Send the reply immediately in the lead's thread (bypasses daily limits). REAL email. Only after the user approved the exact text from preview_reply_to_campaign_email.
scan
scan_agent_website
List the pages of a website (path, title, description, keywords) for this agent — used by the page-navigation feature. Costs 2 credits. Read-only for the agent (nothing saved).
scan_website_quick
Crawl a website's structure (sitemap, top pages) BEFORE creating an agent. Useful when deciding which company to set on the agent. Costs ~2 credits.
subscription
get_subscription
Plan, status (ACTIVE/CANCELLED/PAST_DUE/EXPIRED/TRIALING), period dates, currency, amount, Stripe IDs.
get_subscription_limits
Base + purchased extra agent slots. Useful to check "can I create another agent?" before calling `create_agent`.
takeover
takeover_campaign_thread
Stop the AI from replying in this conversation; a human continues (reply_in_campaign_thread). Nothing is sent.
takeover_linkedin_contact
Stop the AI from messaging this LinkedIn contact (outreach id from list_campaign_linkedin_outreach or list_linkedin_conversations); pending auto-replies are cancelled. Nothing is sent.
widget
create_widget_test_page
Create (or return the existing) private, unlisted test page with this website widget installed, to try it before adding it to a real site. Only the agent's creator can do this. Free.
get_widget_embed_code
HTML to paste on a site for a channel: website widget (settings load from the server), website button (style it here: text, colours, radius, size — not stored server-side) or Slide Presenter (also the direct link). Read-only.
archive
archive_campaign
Archive the campaign: status becomes completed, all its outreach stops and it is hidden from the default lists (history stays readable with include_archived). Not reversible. Only call after preview_archive_campaign and the user's explicit approval.
audiences
list_audiences
List the CAMPAIGN audiences (filter-based, attachable to campaigns) of this workspace. Uploaded / purchased / CRM-built lists ("My Audiences") are listed by `list_custom_audiences`. Read-only, free.
buy
buy_audience_set
SPENDS CREDITS (2 per contact). Purchases the set and snapshots its contacts into the workspace. Only call after the user reviewed `preview_buy_audience_set` output and explicitly approved the cost.
campaigns
list_campaigns
List classic Sales Process campaigns with status and live stats. Archived campaigns are hidden unless include_archived=true. Read-only.
client
list_client_mailboxes
The workspace's own connected mailboxes (status connecting|warming|ready|error|disconnected, warm-up reputation, last error). Capacity ≈ 50 emails/day per READY box. Used when settings.emailSenderMode=client_owned (classic campaigns and SDR). Read-only.
close
close_campaign_thread
Mark the conversation closed (no more AI replies). Nothing is sent.
content
list_content_accounts
LinkedIn / Instagram accounts connected for publishing posts (Settings → Social), with status. Read-only.
conversation
get_conversation_recordings
Recording URLs (WAV), duration and start time of the voice calls in one widget conversation (up to 10 calls). Read-only.
deep
deep_scan_agent
Read the company website + LinkedIn and extract description, team, employee count, contacts, social links and pricing. Costs 15 credits, takes 60-180 s. With persist=true (default) the result is SAVED like in the app: company_description replaced, team/contacts/social/pricing stored (creates company + people records, fills blank contact channels). Waits up to ~200 s; if still running it returns a job_id — then call get_agent_job. Only call after preview_deep_scan and the user's approval.
enrich
enrich_custom_audience
SPENDS CREDITS: starts background enrichment (email, phone, LinkedIn, WhatsApp lookups) of the not-yet-enriched contacts — 1 credit per contact actually enriched, charged as it runs. Only call after the user approved `preview_enrich_custom_audience`. Then poll `get_custom_audience_enrichment`; stop with `stop_custom_audience_enrichment`.
export
export_custom_audience_csv
Download every contact of a custom audience as CSV text (filename, total_rows, csv). Can be large. Read-only, free.
invite
invite_workspace_member
Sends a REAL invitation email (link valid 7 days). Admins only. Only call after the user approved preview_invite_workspace_member.
invoices
get_invoices
List of Stripe invoices (paid + open). Optional year/month scope.
meetings
list_meetings
Google Meet meetings of all your agents in a date range (default: next 7 days, max 62 days) — title, time, link, organizer, attendees, status, agent, has transcript. Read-only.
planner
get_planner_events
The planner layer of the calendar page: campaign and SDR sending windows per day and channel (paused flag, planned today, sent today) with campaign/search info, for an ISO date range (wide ranges are capped; `range` says what was materialised). CRM events: crm_list_calendar_events. Read-only.
pricing
get_pricing
List of public plans + add-ons (Extra Agent Slot, SDR sender pair, etc.) with prices. Optional currency filter (USD/GBP/EUR); omitted = every currency. Read-only.
reassign
reassign_crm_lead
Change who owns a lead (the new owner gets a CRM notification). Call `crm_list_workspace_members` first to get a valid user id — passing an unknown id fails. Write operation, no credit cost.
reconfigure
reconfigure_telegram_bot
Re-apply the bot's commands and menu button (for private and group chats) — use when the bot menu looks wrong. Free.
referred
list_referred_users
People who signed up through the caller's referral links (masked email, link, signup date, free/paying, revenue and commission). Read-only.
refresh
refresh_campaign_email_reply
Fetch the latest reply text for an email from the sending provider (when a reply shows as empty). No credits, nothing sent.
rename
rename_custom_audience
Rename a custom audience. Reversible, no credits.
resume
resume_channel
Resume a paused channel on a campaign.
retell
list_retell_voices
Catalogue of voices that can be assigned via `set_agent_voice`. Read-only.
retry
retry_campaign_email_preparation
Put prepared emails that failed validation/generation back in the queue (max 3 attempts each). Nothing is sent.
schedule
schedule_campaign_delivery
Spread all ready prepared emails over the campaign's working-hour slots; they are then SENT for real automatically. Only after the user approved preview_schedule_campaign_delivery.
sender
list_sender_emails
Sending addresses available to this workspace (Vendo managed pool + own mailboxes) with warm-up level, daily limit and status; summary.emails_per_day_ready = capacity in managed mode. Managed senders require a paid plan to launch (summary.paid_plan). Use ids in settings.senderEmailIds. Read-only.
setup
setup_phone_agent
Create/update the agent's Voice Call channel like the app: attach one of YOUR numbers (list_phone_numbers), objective, script (generated if omitted), greeting, voice, pace, emotion, language, rules, inbound calls on/off, background sound, silence/reminder timings. Creates the phone voice agent at the provider and links the number (with accept_incoming the number starts answering real calls). Takes up to ~1 min. Free to set up; calls cost 25 credits/min. Only call after preview_setup_phone_agent and the user's approval.
stop
stop_custom_audience_enrichment
Stop an in-progress enrichment after the current contact (stops further spending). Already-enriched contacts stay enriched and charged.
supported
get_supported_currencies
Currencies Vendo bills in (code, symbol, name) and the account's own billing currency. Read-only.
sync
sync_campaign_stats
Pull the latest sent/opened/clicked/replied/bounced counters from the sending provider and store them. Max once per minute per campaign. No credits.
test
test_agent_reply
Send a message to the agent and get its reply using its current script — a text test, nobody is contacted. Needs a generated script. Use history for a multi-turn test.
upload
upload_custom_audience
Create a custom audience from a CSV/XLSX/XLS/TSV/TXT file given as base64 or an https URL. Parsing runs in the background: poll `get_custom_audience` until status is "ready". No credits (enrichment is a separate, paid step).
voice
list_voice_catalog
All voices for the website widget, Slide Presenter and Telegram voice: engine, gender, accent, expressive support, Ukrainian support, recommended flag, preview audio. Read-only. Use a voice_id from here in set_agent_voice / set_presentation_voice / set_telegram_voice_settings.
whatsapp
list_whatsapp_accounts
WhatsApp accounts connected to your user (phone, name, status: connecting / ok / error / credentials / stopped). Account-level: auto-replies use your latest campaign's agent. Read-only.

Endpoints

URLTransportStateLatencyChecked
https://api.vendo-ai.com/mcp streamable-http answering 149 ms 34 min ago

Alternatives to Vendo AI

same job, measured the same way
Eesier — AI Lead Prospecting
by eesier

Autonomous B2B lead prospecting — 36 tools for campaigns, leads, and email outreach.

answering
Hilead
by hilead

Signal-based B2B prospecting: find leads with buying intent, run email and LinkedIn outreach.

answering
Sf MCP
by signal-found

Reddit outreach at scale — find prospects, send 1000s of DMs/day, and manage your CRM via AI agents.

107 installs/wk local only
Diversz Commons
by parkschun79

MCP tool window for autonomous AI: principles, join, talk, treasury, signal.

23 tools answering
OpenSDR
by arif-js

Open-source AI SDR: B2B prospecting, email enrichment, buying signals and safe outreach staging.

70 installs/wk local only
Agentic Endpoints
by agentic-endpoints

Pay-per-call tools for autonomous agents, settled in USDC on Base via x402.

24 tools answering
SignalLayer
by xavierleterrible-hub

Machine-native tools for autonomous agents with free routing and x402 USDC pay-per-call.

5 tools answering
Fintalio LinkedIn MCP
by fintalio

LinkedIn outreach MCP server — 19 tools for AI agents to prospect, sequence, and manage contacts.

answering

Vendo AI — questions

Answers built from our own checks of this server.

What can Vendo AI do?
It exposes 396 tools, read directly from the server on our last check. Among them: activate_campaign_linkedin, activate_campaign_phone, add_agent_document, add_campaign_linkedin_account, add_custom_audience_contacts, archive_campaign and 390 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Vendo AI mostly used for?
Its tools cluster around sdr, crm and preview. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Vendo AI working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 23 of 23 checks got a reply (100.0%), average response time 254 ms. The bar chart above shows every period we have measured.
How do I connect Vendo AI?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Vendo AI need an API key?
No. Vendo AI completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 396 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Vendo AI?
It answers our handshake in 254 ms on average, which is faster than 56% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.