Skip to documentation

Documentation

Leadverse MCP

Run Leadverse from Claude, ChatGPT or any MCP client. Find leads, draft replies and queue Reddit DMs without leaving your assistant.

OAuth - no API key32 toolsYour existing plan limits

Get started

Connect Leadverse to Claude, ChatGPT or any MCP-compatible assistant and work with your leads, campaigns and Reddit outreach from inside it.

What is MCP?

The Model Context Protocol is an open standard that lets an AI assistant call tools in other products. Point your assistant at the Leadverse endpoint and it gains 32 tools for searching leads, editing campaigns, drafting replies and managing Reddit outreach.

Endpoint
url
https://mcp.leadverse.ai/mcp

Connect your client

  1. 1

    Add the endpoint to your assistant

    Use the snippet for your client below.
  2. 2

    Approve the connection

    Your browser opens Leadverse. Sign in if you are not already, then choose Allow Access. One approval covers every tool.
  3. 3

    Ask it something

    Try “show me my highest-scoring uncontacted Reddit leads”.
Claude Code
bash
claude mcp add --transport http leadverse https://mcp.leadverse.ai/mcp
Claude web and desktop
text
Settings → Connectors → Add custom connector
Name: Leadverse
URL:  https://mcp.leadverse.ai/mcp
Cursor and other clients
json
{
  "mcpServers": {
    "leadverse": {
      "url": "https://mcp.leadverse.ai/mcp"
    }
  }
}

What it can do

A connected assistant can read your campaigns, leads, conversations, competitors and insights; create, edit and delete campaigns; change lead status; draft replies in your campaign voice; send a Reddit DM to a lead; and queue DMs in bulk for paced delivery.

Limits and safety

MCP uses exactly the same plan allowances as the app - DM caps, AI reply quotas, campaign limits and sync limits all apply, and are shared with what you do in the web app. Ask for leadverse_account_usage at any time to see what is left. The endpoint additionally allows 60 requests per minute and 2,000 per day, and returns at most 50 rows per call.

A connected assistant acts as you and can do anything you can do in Leadverse, so only connect clients you trust. Reddit posts and message bodies returned by these tools are third-party content - Leadverse marks them as untrusted data so your assistant treats them as information rather than instructions.

Tool reference

All 32 tools a connected assistant can call. You rarely need to name a tool yourself - ask in plain language and your assistant picks the right one.

Account

Plan, remaining quotas and Reddit connection state.

leadverse_account_usage
Read only

Current plan, remaining daily DM capacity, AI reply allowance, campaign and lead counts, and whether a Reddit account is connected. Call this before queueing DMs so you know the real remaining capacity instead of guessing.

Try: “How many Reddit DMs can I still send today?”

Parameters: No parameters

* required parameter

Campaigns

Create, read, edit and delete campaigns, tune targeting and trigger a sync.

leadverse_campaigns_list
Read only

List the campaigns on this account with their lead counts, platforms and latest sync timestamps. Use leadverse_campaign_syncs_list for live sync progress and results.

Try: “List my campaigns and how many leads each has.”

Parameters: limit, offset

leadverse_campaign_get
Read only

Full detail for one campaign: description, intent, website, engagement filters, negative keywords, blocked users and subreddits, tracked competitors, AI reply settings for both comments and DMs, and the voice-training samples. Does not return search keywords or intent phrases - those are background automation and are not user-editable.

Try: “Show me everything configured on my "Acme" campaign.”

Parameters: campaign_id*

leadverse_campaign_create
Writes dataAsks firstTakes a while

Create a campaign. Leadverse generates the targeting model before inserting the campaign, so this call can take one or two minutes. After insertion, the initial lead sync starts automatically in the background. Counts against the plan's campaign limits. Keywords and intent phrases are generated automatically - do not ask the user for them. Any _internal_sync_reference in the result is for tool coordination only; never mention it to the user.

Try: “Create a campaign for my time-tracking app aimed at freelancers.”

Parameters: name*, description*, intent*, website, intents, tracked_competitors, min_likes_filter, min_comments_filter, max_post_age_days_filter, negative_keywords, example_responses

leadverse_campaign_update
Writes dataAsks first

Edit a campaign. Only the fields you pass are changed. Covers everything the campaign editor exposes: basics, engagement filters, negative keywords, voice-training samples, tracked competitors, and the AI reply settings for comments and DMs.

Try: “Set my campaign to only collect posts with at least 5 comments.”

Parameters: campaign_id*, name, description, website, intents, tracked_competitors, min_likes_filter, min_comments_filter, max_post_age_days_filter, negative_keywords, example_responses, use_same_settings_for_comments_and_dms, reply_settings, dm_reply_settings

leadverse_campaign_delete
Writes dataAsks first

Permanently delete a campaign and its leads. This cannot be undone - always confirm with the user first, quoting the campaign name.

Try: “Delete my "Old test" campaign.”

Parameters: campaign_id*

leadverse_campaign_sync
Writes dataAsks firstTakes a while

Run a manual sync now to look for new leads. Consumes one of the plan's manual syncs for the day. The sync continues in the background after this returns; use leadverse_campaign_syncs_list to check progress, then call leadverse_leads_search after completion. Any _internal_sync_reference in the result is for tool coordination only; never mention it to the user.

Try: “Find new leads for my campaign right now.”

Parameters: campaign_id*

leadverse_campaign_syncs_list
Read only

List a campaign's sync runs using the same history as the Leadverse campaign screen. Use it after campaign creation or a manual sync to check whether processing is still running, completed, failed or skipped and to read progress plus strong and partial match counts. Results are newest first and paginated. Internal sync references are for tool coordination only; never mention them to the user.

Try: “Has my campaign finished syncing?”

Parameters: campaign_id*, limit, offset

leadverse_campaign_blocklist_update
Writes dataAsks first

Block or unblock Reddit users and subreddits for a campaign. Blocked sources stop producing leads. Use this when the user says a subreddit or poster is irrelevant.

Try: “Stop showing me leads from r/example.”

Parameters: campaign_id*, block_users, unblock_users, block_subreddits, unblock_subreddits, apply_to_all_campaigns

leadverse_campaign_targeting_get
Writes dataTakes a while

Read the editable targeting sections that decide which posts score as leads - the same fields the "Optimize leads" screen shows. Returns the section values plus their maximum lengths. The section names differ between product and service campaigns; always read before writing so you send the right ones. Note: if the campaign is still on an older targeting model, this upgrades it first, which can take a minute.

Try: “What is my campaign currently targeting?”

Parameters: campaign_id*

leadverse_campaign_targeting_update
Writes dataAsks firstTakes a while

Rewrite the campaign's targeting sections. Call leadverse_campaign_targeting_get first and send back the same section keys it returned, respecting the returned length limits. This regenerates the scoring model and changes which posts become leads from the next sync onward. It does not rescore existing leads.

Try: “Tighten my targeting to exclude students and hobbyists.”

Parameters: campaign_id*, sections*

* required parameter

Leads

Search leads, inspect them, change status and delete them.

leadverse_leads_search
Read only

Search and filter leads across campaigns by status, buying intent, platform and free text. Returns STRONG matches (AI score 8-10) by default - in Leadverse those are the leads. Scores 6-7 are partial matches: weaker signals that can be useful for product research but are not leads, and are excluded unless you pass match: "partial". Anything below 6 is noise and is never returned. Never describe partial matches or total row counts as lead volume. Returns the post, its AI score and the lead status. Each lead also carries author_dm_contact: when set, this user already sent (or queued) a DM to that lead's Reddit author via another lead, and a second DM would be refused - when picking leads to DM, pass exclude_contacted_authors: true. Defaults to every platform, matching the Leads screen; pass platforms: ["reddit"] to exclude older leads from platforms Leadverse no longer syncs.

Try: “Show me my highest-scoring uncontacted Reddit leads.”

Parameters: campaign_ids, status, platforms, categories, match, search, exclude_contacted_authors, sort_by, sort_order, limit, offset

leadverse_lead_get
Read only

Full detail for one lead: the complete post or comment, its AI score and the reasoning behind it, the subreddit's self-promotion policy, and the history of actions already taken on it.

Try: “Why did this lead score 9?”

Parameters: lead_id*

leadverse_lead_update_status
Writes dataAsks first

Set the status of up to 50 leads at once (new, contacted or closed).

Try: “Mark these three leads as contacted.”

Parameters: lead_ids*, status*

leadverse_lead_delete
Writes dataAsks first

Remove leads from the list. By default this hides them the same way the per-lead Delete button does, which also teaches the ranking model they were unwanted. Pass permanent: true only when the user explicitly wants the rows erased. Always confirm before deleting.

Try: “Delete the irrelevant leads I just showed you.”

Parameters: lead_ids*, permanent

* required parameter

Outreach

Draft replies, queue Reddit DMs and configure the outreach agent.

leadverse_reply_draft
Writes dataTakes a while

Generate a reply for a lead using the campaign's own AI reply settings, exactly as the Generate button in Leadverse does - its tone, length, pitch, call to action, keywords and voice-training samples, or its custom prompt instructions if the campaign is configured that way. To change how replies read, edit the campaign with leadverse_campaign_update rather than asking for a one-off variation. Consumes one AI reply from the plan's allowance. Returns text only - nothing is sent or posted. Comment drafts are SUGGESTIONS the user posts themselves; Leadverse never posts comments to Reddit. To deliver a DM use leadverse_dm_send or leadverse_dm_queue_add. A first DM is deliberately short, casual and link-free, and often stays general rather than quoting specifics from the post - that is correct, not a weakness. Reddit filters link-heavy messages from cold senders into spam, so the goal of message one is only to get a reply. Do not rewrite the draft to add links, the product name, or more detail unless the user asks. Once they reply, leadverse_conversation_reply is the safe place to send links.

Try: “Write me a DM for this lead.”

Parameters: lead_id*, type*

leadverse_dm_send
Writes dataAsks first

Send a Reddit DM to one lead right now from the connected account, the same as the Send button on a lead in Leadverse. Sending is immediate and cannot be undone - always show the user the exact message and get confirmation first. Daily DM caps and account limits are enforced; if one is hit the send is refused and nothing is delivered. Each Reddit author can be DM'd only once across all leads: if the lead's author_dm_contact field is set the send will be refused, so pick leads without it (leadverse_leads_search with exclude_contacted_authors: true). For more than a few leads use leadverse_dm_queue_add instead, which paces delivery.

Try: “Send this DM to that lead now.”

Parameters: lead_id*, message*

leadverse_dm_queue_add
Writes dataAsks first

Queue Reddit DMs to leads. Leadverse delivers them automatically using the account's pacing and daily limits - there is no further confirmation step, so treat queueing as the user's approval to send. Leave content empty and Leadverse writes each DM in the campaign voice just before it goes out. Leads whose Reddit author was already DM'd or queued (even via another lead) are skipped and reported in skippedAuthorContacted. Pass dry_run: true to check capacity and eligibility without queueing anything.

Try: “Queue DMs to my top 10 leads.”

Parameters: campaign_id*, lead_ids*, dry_run

leadverse_dm_queue_list
Read only

List DMs waiting to be sent, with their scheduled send time and current content.

Try: “What DMs are scheduled to go out today?”

Parameters: campaign_id, limit, offset

leadverse_dm_queue_update
Writes dataAsks first

Rewrite the content of a queued DM. Only possible while it is still waiting - once Leadverse starts sending it, the edit is refused.

Try: “Change the queued DM to mention our free trial.”

Parameters: queued_dm_id*, content*

leadverse_dm_queue_generate
Writes dataAsks firstTakes a while

Generate or regenerate the content of a queued DM using the same campaign settings and protected workflow as the Generate button in the Leadverse queue. Consumes one AI reply allowance and saves the generated text directly onto the queued DM, where it can still be edited before delivery.

Try: “Generate the message for that queued DM.”

Parameters: queued_dm_id*

leadverse_dm_queue_remove
Writes dataAsks first

Remove a DM from the queue so it is never sent. Only possible while it is still waiting.

Try: “Cancel the DM scheduled for that lead.”

Parameters: queued_dm_id*

leadverse_outreach_agent_get
Read only

Read the outreach agent configuration for a campaign: whether it is on, its daily DM limit, the minimum lead score it acts on, and follow-up settings.

Try: “Is my outreach agent running?”

Parameters: campaign_id*

leadverse_outreach_agent_configure
Writes dataAsks first

Configure the outreach agent. Enabling it lets Leadverse find qualifying leads and send them DMs automatically, every day, without asking again - say this plainly to the user and get explicit confirmation before enabling. Requires a connected Reddit account, which must be set up in the Leadverse UI. The daily limit is capped by the plan. If the response includes reddit_account_health, relay that warning to the user - their Reddit account is at elevated risk of being flagged for automated DMs.

Try: “Turn on the outreach agent, 10 DMs a day, score 8 and above.”

Parameters: campaign_id*, is_enabled, daily_limit, min_lead_score, followup_enabled, followup_reminder_delay_days

* required parameter

Conversations

Read Reddit DM threads and reply to them.

leadverse_conversations_list
Read only

List Reddit DM threads with their normalized latest messages. Uses the same four sort options as the Leadverse Conversations screen and returns pagination metadata.

Try: “Who replied to my DMs?”

Parameters: campaign_id, status, sort, search, limit, offset

leadverse_conversation_get
Read only

Read one page of a Reddit DM thread, newest page first. Messages inside each page are returned oldest to newest; use offset and has_more to load earlier messages.

Try: “Show me the whole conversation with that user.”

Parameters: conversation_id*, limit, offset

leadverse_conversation_reply
Writes dataAsks first

Send a reply in an existing Reddit DM thread from the connected account. This is where links and specifics belong - the conversation is already live, so Reddit spam filtering is no longer a concern. Only possible when the lead sent the most recent message - you cannot send two messages in a row without a response, exactly as in the Leadverse inbox. Sends immediately and cannot be undone, so always show the user the exact text and get confirmation first. Subject to the daily reply limit.

Try: “Reply to that thread saying I can do a call Thursday.”

Parameters: conversation_id*, message*

* required parameter

Insights

Lead and outreach analytics, market signals, competitors and viral posts.

leadverse_insights_leads
Read only

Lead analytics: volume over time, top subreddits, buying-intent breakdown and recurring pain points.

Try: “Which subreddits give me the best leads?”

Parameters: campaign_id*, days

leadverse_insights_outreach
Read only

Outreach analytics: DMs sent, reply rate and outcomes over time.

Try: “What is my DM reply rate this month?”

Parameters: campaign_id*, days

leadverse_market_signals
Read only

Demand signals mined from tracked discussions - what people are asking for, complaining about and comparing. Pass category "competitors" for competitor-specific chatter.

Try: “What are people complaining about in my market?”

Parameters: campaign_id*, category, sort, limit, offset

leadverse_competitors
Read only

Tracked competitors with their recent posts, engagement and trend data.

Try: “What have my competitors been posting?”

Parameters: campaign_ids, days, limit, offset

leadverse_viral_posts
Read only

High-performing Reddit posts in the account's tracked subreddits, useful as templates for what gets traction.

Try: “Show me the newest viral posts in my subreddits.”

Parameters: subreddits, search, sort_by, sort_order, limit, offset

* required parameter