LeadShark MCP

Pro+

Control your LeadShark automations with natural language. No UI required.

Execution-focused. Fail-safe. Intent → Automation.

New to MCP? See Anthropic's guide on connecting to remote MCP servers.

Overview

The LeadShark MCP (Model Context Protocol) server lets AI assistants like Cursor, Claude, and ChatGPT manage your entire automation workflow through conversation.

46 Tools

End-to-end automation control

Fail-Safe

Draft by default, confirm destructive

No UI

Intent → Automation directly

What You Can Do

A compact view of the 46-tool loadout, grouped by tier.

46 tools
Pro+23 toolsBaseline — included with every MCP connection
list_recent_posts

See your latest posts — yours or a Company Page’s

create_automation

Create from natural language

list_automations

View all with performance stats

get_automation

Read one automation’s full spec

edit_automation

Update status, keywords, copy

schedule_post_with_automation

Schedule + auto-attach automation (yours or a Company Page); optional auto-repost after +4h, +8h or +12h

list_scheduled_posts

View all scheduled posts

get_scheduled_post

Read one scheduled post + automation

edit_scheduled_post

Update content, reschedule, or change / cancel auto-reposts

shift_scheduled_posts

Move many scheduled posts at once

cancel_scheduled_post

Cancel pending posts (requires confirm)

set_daily_dm_limit

Safety lever (0 = emergency stop)

suggest_automation_settings

AI generates settings from post text

list_companies

See the Company Pages you manage

discover_lead_magnets

Fresh lead-magnet posts — market signal for content

manage_invitations

Triage inbound requests — accept/ignore in bulk

enrich

Enrich a person into a structured profile

enrich_company

Enrich a company into a structured profile

list_lead_pages

See your lead-magnet / quiz pages + capture stats

get_page_leads

Pull the captured email leads for a page

manage_lead_pages

Create, edit & publish your Pages

manage_lead_magnet_links

List, create & edit your leads.sh capture links

icp_fit

Who here is my ICP? Judge a list of people against your one-line ICP (post mode — judge a post’s engagers — is Apex)

Apex+23 toolsThe full operator loadout — SEE→ DECIDE→ ACT
comment_on_post

Comment on a post as yourself

react_to_post

Like or react to a post as yourself

send_connection_request

Invite a person to connect

send_message

DM a connection, or InMail a non-connection, as yourself

send_email

Send email through your own connected Resend account

engage_with_comment

Reply to or like a comment — as yourself or as a Company Page

comment_as_company

Comment as your Company Page

react_as_company

Like or react as your Company Page

manage_company_reply_automations

Auto-reply to comments as your Company Page

search

Find ICP-fit people or companies on LinkedIn

search_posts

Find posts containing a keyword — by anyone

list_person_posts

Pull a person’s recent posts to act on

get_person_activity

A person’s recent comments & reactions

list_post_engagers

Everyone who engaged a post, deduped

list_signals

Your heat-scored hot leads

feed

Read your own LinkedIn home feed

list_recent_connections

Who did I just connect to? Newest connections first

list_recent_messages

Triage / revive DM threads (filters + last_from + ICP)

get_messages_with_person

Read the full conversation with someone

get_lead_activity

A lead’s full activity timeline

list_actions

Read your agent’s own action history

manage_activity_limits

Check remaining budget before acting; pause/tighten a channel

list_profiles

APEX+: list the profiles your key can operate, then act as one with act_as

What You Can Say

Talk to your AI assistant naturally. It figures out which tool to use.

“Show me my recent posts”

→ list_recent_posts

“Automate commenters on my Claude guide post”

→ create_automation

“DM anyone who says 'interested' and auto-connect with them”

→ create_automation

“List all my running automations”

→ list_automations

“Pause the AI tools automation”

→ edit_automation

“Enable auto-like on my Claude guide automation”

→ edit_automation

“Add a follow-up DM that sends after 2 hours if no reply”

→ edit_automation

“Change the DM template to mention the new pricing”

→ edit_automation

“Turn on partially engage so I don't double-reply”

→ edit_automation

“Enable link tracking on my active automations”

→ edit_automation

“Schedule a post for tomorrow 9am EST”

→ schedule_post_with_automation

“Schedule my Claude guide giveaway post for Monday morning with full automation”

→ schedule_post_with_automation

“Plan a lead magnet post: publish Friday 10am, DM anyone who comments 'interested'”

→ schedule_post_with_automation

“Schedule a post with this image: https://example.com/my-infographic.png”

→ schedule_post_with_automation

“Schedule this for Tuesday 9am and repost it 4, 8 and 12 hours later”

→ schedule_post_with_automation

“Create a lead magnet post for Monday 9am with the carousel image from my Google Drive”

→ schedule_post_with_automation

“Show me all my scheduled posts”

→ list_scheduled_posts

“What posts are scheduled for this week?”

→ list_scheduled_posts

“Change tomorrow's post content to include the new link”

→ edit_scheduled_post

“Reschedule Monday's post to Tuesday 2pm”

→ edit_scheduled_post

“I'm off next week, push all my scheduled posts back 7 days”

→ shift_scheduled_posts(requires confirmation)

“Add this post for today 9am and push the rest of my queue back”

→ schedule_post_with_automation

“Update Monday's post automation to use the new discount link”

→ edit_scheduled_post

“Change the keywords on my scheduled lead magnet post”

→ edit_scheduled_post

“Tag @Jane Doe in tomorrow's scheduled post”

→ edit_scheduled_post

“Enable auto-like on tomorrow's scheduled post automation”

→ edit_scheduled_post

“Cancel the post scheduled for Friday”

→ cancel_scheduled_post(requires confirmation)

“Delete tomorrow's scheduled post”

→ cancel_scheduled_post(requires confirmation)

“Set my daily DM limit to zero”

→ set_daily_dm_limit(requires confirmation)

“Analyze my latest post and suggest automation settings for it”

→ suggest_automation_settings

“What keywords and DM template should I use for this lead magnet post?”

→ suggest_automation_settings

“Put the download link in the first comment instead of the post”

→ schedule_post_with_automation

“Rename that automation to 'Q3 Lead Magnet'”

→ edit_automation

“Comment 'love this — congrats on the launch!' on that post for me”

→ comment_on_post

“Like that post”

→ react_to_post

“Send a connection request to that hot lead”

→ send_connection_request

“What company pages do I manage?”

→ list_companies

“Schedule this post for Tuesday 9am as my company page”

→ schedule_post_with_automation

“Comment 'we're hiring builders!' on that post as LeadShark”

→ comment_as_company

“Like my latest post as my company page”

→ react_as_company

“Show me my company page's recent posts”

→ list_recent_posts

“Auto-reply to comments on our launch post as the company page”

→ manage_company_reply_automations

“Find VP Marketing people at SaaS companies in my 2nd-degree network”

→ search

“Search LinkedIn for fintech companies in London”

→ search

“Find recent LinkedIn posts about hiring SDRs”

→ search_posts

“Find me fresh lead-magnet posts to engage with today”

→ discover_lead_magnets

“Show me any new lead-magnet posts since yesterday”

→ discover_lead_magnets

“Who are my hottest leads right now?”

→ list_signals

“List signals with a heat score above 70”

→ list_signals

“Enrich that lead — what's their role and company?”

→ enrich

“Enrich Acme Corp — industry, size, and HQ?”

→ enrich_company

“Pull Jane Doe's last 5 posts and comment on the most recent”

→ list_person_posts

“What has this prospect been commenting on and reacting to lately?”

→ get_person_activity

“Who engaged with my last post? Build me a lead list”

→ list_post_engagers

“Show my pending connection requests”

→ manage_invitations

“Accept the founders, ignore the rest”

→ manage_invitations

“What have I already done? Anything refused or still pending approval?”

→ list_actions

“List my lead-magnet pages and how many emails each captured”

→ list_lead_pages

“Pull the captured emails from my Claude guide page”

→ get_page_leads

“Export the leads from my quiz page as a list I can act on”

→ get_page_leads

“Create a gated page for my new guide and publish it”

→ manage_lead_pages

“Spin up this week's guide page, mint its link, and attach it to a post automation”

→ manage_lead_pages

“Which leads.sh links do I have live right now?”

→ manage_lead_magnet_links

“Create a leads.sh link for my new guide, gated by my email page”

→ manage_lead_magnet_links

Tools (46)

Complete automation control. Each tool does one thing well.

marks an Apex-only tool. Everything else is available on Pro+ and Apex.

Act on posts & people

Apex

The core “Act” arm of the agent loadout — engage as yourself with the posts and people you surface anywhere across the toolkit: discover_lead_magnets and list_signals, your own feed, get_person_activity (the posts someone's recently been commenting on and reacting to), list_post_engagers (everyone who engaged a given post), list_person_posts / list_recent_posts, or search. Use comment_on_post / react_to_post with a post's post_id, and send_connection_request to invite a person to connect. Go further into conversations with send_message (DMs, or InMail a non-connection with as_inmail) and engage_with_comment (reply to or like a comment), and read what's happening with list_recent_messages, get_messages_with_person, feed (your own home feed), and get_lead_activity (a lead's full history with you). Acting as yourself is Apex; the Company-Page voice equivalents below are Apex too.

Company Pages

Pro+ / Apex

Act as a LinkedIn Company Page you administer. Start with list_companies to get the page's id, then pass it as organization_id to the other tools. Pro+ covers reading the pages you manage (list_companies) and scheduling / reading a page's posts (schedule_post_with_automation, list_recent_posts). Apex covers acting in the page's voice — comment_as_company, react_as_company, engage_with_comment (as company), and manage_company_reply_automations (auto-reply to comments on a company post). You must be an admin of the page on your connected LinkedIn account.

Search, Discover, Signals & Enrich

Apex

The SEE and DECIDE half of the agent loop. search finds ICP-fit people or companies on LinkedIn by keyword and degree (proactive prospecting); search_posts finds posts that contain a keyword — by anyone (live content search); list_person_posts pulls a person's recent posts so you have something concrete to act on; get_person_activity surfaces recent comments and reactions; list_post_engagers turns a post into a warm lead list; discover_lead_magnets pulls fresh prospect-rich posts; and enrich / enrich_company supply decision-ready profile data. All require Apex except Discover and base enrichment, which are available on Pro+ and Apex. enrich's include_email stays Apex and uses the linked PersonEnrich wallet.

Pages & Captured Leads

Pro+

Work the leads your lead magnets captured — and build the lead magnets themselves. list_lead_pages lists your Pages (lead-magnet / quiz pages) with per-page capture stats; get_page_leads pulls the actual captured emails for one page (deduped and enriched with the LinkedIn profile when known); manage_lead_pages creates, edits, and publishes Pages; manage_lead_magnet_links lists, creates, and edits the leads.sh capture links you have in play — so the full create Page → publish → mint link → automation flow works without opening the app. This is the bridge from a lead magnet into outreach — feed a captured lead's linkedin_url into enrich then send_connection_request / send_message. (Available on Pro+ and Apex — in parity with the Pages REST API.)

Image Attachments

Attach images to your scheduled posts by providing a publicly accessible URL. LeadShark downloads and stores the image securely.

Supported Formats

JPEG/JPG
PNG
GIF
WebP

Limits

Max file size5 MB
Images per post1
URL protocolhttp/https

Example Image URLs

Cloud storage:https://storage.googleapis.com/.../infographic.png
CDN:https://cdn.example.com/assets/lead-magnet.jpg
Direct link:https://example.com/images/carousel.png

Pro Tips

  • • Use publicly accessible URLs (no auth required)
  • • For Google Drive: use direct download links
  • • LinkedIn carousels perform best at 1080×1350px
  • • Image is downloaded once and stored securely

Example Workflow

A typical conversation from discovery to optimized automation:

You:

“Show me my recent posts”

AI:

Here are your last 5 posts. The Claude guide post has 142 comments and no automation yet.

→ list_recent_posts

You:

“Automate that one - DM anyone who says interested, and auto-connect with them”

AI:

Created 'Claude Guide Giveaway' as Draft. Keywords: interested. Auto-connect enabled. Ready to review.

→ create_automation

You:

“Looks good, activate it and enable auto-like too”

AI:

Automation is now Running with auto-like enabled. I'll like comments and DM people who say 'interested'.

→ edit_automation

You:

“Add 'send' and 'want' as keywords, and turn on partially engage”

AI:

Updated. Keywords: interested, send, want. Partially engage enabled — won't reply to comments you've already responded to.

→ edit_automation

You:

“Enable link tracking so I can see who clicks”

AI:

Link tracking enabled. Your DM links will use leads.sh for click tracking.

→ edit_automation

You:

“Add a follow-up DM after 2 hours if they don't reply”

AI:

Follow-up enabled. Will send after 2 hours only if no response received.

→ edit_automation

You:

“How's it doing?”

AI:

284 comments, 156 replied, 142 DMs sent, 89 follow-ups sent, 67 new connections. Top keyword: 'interested' (67%).

→ list_automations

You:

“Schedule a new post for Monday 9am EST with this infographic: https://cdn.example.com/guide.png”

AI:

Scheduled for Monday 9am EST with image attached. Post + automation ready. Automation will activate automatically when post publishes.

→ schedule_post_with_automation

You:

“Pause everything, I'm going on vacation”

AI:

Daily DM limit set to 0. All sending paused across 3 automations. Automations will still capture comments. Set limit back when you return.

→ set_daily_dm_limit

Setup

Requirements

Install

npm install @leadshark/mcp-server

Cursor Configuration

Create .cursor/mcp.json:

{
  "mcpServers": {
    "leadshark": {
      "command": "npx",
      "args": ["-y", "@leadshark/mcp-server"],
      "env": {
        "LEADSHARK_API_KEY": "${LEADSHARK_API_KEY}"
      }
    }
  }
}

Restart Cursor after adding.

Claude Code (CLI)

claude mcp add leadshark \
  --transport stdio \
  --env LEADSHARK_API_KEY=your_key \
  -- npx -y @leadshark/mcp-server

Claude Desktop

Easiest: add the hosted connector in Customize → Connectors (steps below). Or run it locally: add this to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop.

{
  "mcpServers": {
    "leadshark": {
      "command": "npx",
      "args": ["-y", "@leadshark/mcp-server"],
      "env": {
        "LEADSHARK_API_KEY": "your_key"
      }
    }
  }
}
🦞

OpenClaw Integration

Available

Are you a lobster? 🦞 Control LeadShark automations via WhatsApp, Telegram, or Discord using OpenClaw.

One-Line Install:

curl -sL https://apex.leadshark.io/skill/openclaw | sh

This installs the LeadShark skill into OpenClaw. You'll need an API key from Settings.

Not on clawd yet? OpenClaw turns your favorite messaging app into an AI workspace. Install it, add this skill, and control your LinkedIn automation from anywhere. No more context switching. Just vibes and DMs.

Safety Model

ActionDefault Behavior
Create automationDraft status, requires activation
Edit automationPartial updates only, no destructive changes
Delete automationNot supported — pause instead
Schedule postAutomation activates only when post publishes
Edit scheduled postOnly pending posts can be edited
Cancel scheduled postRequires confirm: true, preserves automation templates
Set DM limit to 0Requires confirm: true

Permission Scoped

All actions use your existing LeadShark permissions

Thin Layer

No background jobs, no side effects, just control

Auditable

Every action maps to a dashboard equivalent

Settings Reference

All available settings you can configure via the MCP:

Engagement Settings

auto_connect— Auto-accept incoming connections & send connection requests to commenters
auto_like— Automatically like all comments on your post
partially_engage— Only engage with comments that don't already have a manual reply from you
link_tracking— Track link clicks using leads.sh short links
icp_gate— ICP Fit gate for follow-up DMs: "off" (default — everyone gets the follow-up), "fit_or_adjacent" (only leads labelled fit or maybe), or "fit_only". Uses the one-line ICP you write in Settings → Ideal Customer; every new lead's headline is labelled automatically on all plans, no enrichment needed. Follow-ups only; leads with no usable headline are never blocked. If a label isn't ready when a follow-up is due, LeadShark holds it up to 6 hours, then sends anyway.

Deprecated

auto_enrich— Automatic background enrichment was removed. create_automation / edit_automation silently ignore settings.auto_enrich; it is no longer returned by list_automations / get_automation. Enrich on demand with the enrich tool instead.
icp_preset_id— ICP presets were removed; the top-level field is gone from automation payloads. Use settings.icp_gate with a one-line ICP in Settings → Ideal Customer.

Follow-up DM Settings

follow_up_enabled— Enable automated follow-up DMs
follow_up_template— The follow-up message (supports {{firstName}}, {{lastName}}, etc.)
follow_up_delay_minutes— Delay before sending (1 min to 7 days)
follow_up_only_if_no_response— Only send follow-up if lead hasn't replied
follow_up_template_2— Second follow-up message, sent after the 1st follow-up (Pro+/Apex)
follow_up_delay_minutes_2— Delay for the 2nd follow-up, measured from when the 1st was sent (1 min to 7 days, default 120). Pro+/Apex

Template Variables

Comment Replies (with @mention support):

{{fullNameMention}}★
{{firstNameMention}}
{{firstName}}
{{fullName}}

★ Recommended — @mentions notify the commenter

DMs & Follow-ups (no @mention):

{{firstName}}{{lastName}}{{fullName}}{{linkedinUsername}}

@mentions don't work in DMs — use plain variables

Connect to Claude.ai

The fastest way to use LeadShark with Claude. No install, no API key — Claude.ai registers itself with the LeadShark MCP server automatically over OAuth.

MCP Server URL

https://apex.leadshark.io/mcp

This is the only thing you need. Paste it into Claude.ai and authorize.

  1. 1

    Open Customize → Connectors

    In Claude.ai, open Customize from the left menu, then Connectors (it recently moved out of Settings). Click the + next to “Connectors” and choose Add custom connector.

    Connectors now live under Customize in Claude’s left menu.
    Click the + next to Connectors → Add custom connector.
  2. 2

    Name it & paste the MCP URL

    In the dialog that opens, give it a name like LeadShark Apex, then paste https://apex.leadshark.io/mcp as the URL. Leave the optional OAuth fields blank — Claude registers itself automatically — and click Add.

    Name it “LeadShark Apex”, paste the MCP URL, and click Add.
  3. 3

    Click Connect

    LeadShark Apex now shows in your Connectors as “You are not connected to LeadShark Apex yet.” Click Connect to start the sign-in.

    Click Connect to start the sign-in.
  4. 4

    Sign in & authorize on the LeadShark page

    Claude opens a popup to apex.leadshark.io. Sign in with your LeadShark account, review the requested scopes (mcp:read and mcp:write), and click Approve.

    Sign in & approve on the LeadShark consent screen.
  5. 5

    You're connected

    Claude lands back on the Connectors page with LeadShark · Configure visible in the list.

    “LeadShark · Configure” appears in the Connectors list.
  6. 6

    Set tool permissions

    Open LeadShark · Configure. Claude lists every Apex tool and lets you choose when it can run them. Set the read-only tools (the ~23 that only look — discover, enrich, list, read) to Always allow so reads run instantly. Leave the write & delete tools (the 15 that act on your account — comment, connect, message, etc.) on Ask every time (the hand “needs approval” icon) so Claude checks with you before each action. Then try a prompt like “Show me my last 3 LinkedIn posts” to confirm it works.

    Set read-only tools to Always allow; leave the 15 write/delete tools on “needs approval” (hand icon).

Pro+ required. The MCP server returns 403 on every tool call if your account isn't Pro+ or Apex. Upgrade in Settings.

Authorization uses standard OAuth 2.1 with PKCE and dynamic client registration (RFC 7591). LeadShark never sees your Claude conversations — Claude only stores a scoped access token and calls the MCP endpoint directly.

Stuck? OAuth metadata is publicly browseable for sanity checks at /.well-known/oauth-authorization-server, or email info@leadshark.io.

Connect to ChatGPT

Add LeadShark to ChatGPT as a custom app. No install, no API key — ChatGPT registers itself with the LeadShark MCP server automatically over OAuth.

MCP Server URL

https://apex.leadshark.io/mcp

This is the only thing you need. Paste it into ChatGPT and authorize.

  1. 1

    Enable Developer mode & create an app

    In ChatGPT, open Settings → Apps and turn on Developer mode (under Advanced) — this is required to add a custom connector. Then click Create app to open the New App dialog.

    Turn on Developer mode (Settings → Apps → Advanced).
    Then open Settings → Apps and click Create app.
  2. 2

    Add the MCP server

    Give it a name (e.g. LeadShark Apex), set Connection to Server URL, and paste https://apex.leadshark.io/mcp. Set Authentication to OAuth, tick I understand and want to continue, then click Create.

    Paste the Server URL, choose OAuth, and Create.
  3. 3

    Sign in with LeadShark

    ChatGPT opens an Add LeadShark Apex to ChatGPT screen. Click Sign in with LeadShark Apex to start the OAuth flow.

    Sign in with your LeadShark account.
  4. 4

    Authorize & you’re connected

    On the apex.leadshark.io consent screen, review the requested scopes (mcp:read and mcp:write) and click Approve. Try a prompt like “Show me my last 3 LinkedIn posts” to confirm it works.

    Review scopes and Approve.

Pro+ required. The MCP server returns 403 on every tool call if your account isn't Pro+ or Apex. Upgrade in Settings.

Authorization uses standard OAuth 2.1 with PKCE and dynamic client registration (RFC 7591). LeadShark never sees your ChatGPT conversations — ChatGPT only stores a scoped access token and calls the MCP endpoint directly.

Stuck? OAuth metadata is publicly browseable for sanity checks at /.well-known/oauth-authorization-server, or email info@leadshark.io.

Connector icon

When you add LeadShark Apex as a connector in Claude or ChatGPT, it asks for an icon. Click any to copy it straight to your clipboard, or download the PNG — all 256×256, a few KB each.

LeadShark · Primary
Chess queen · Primary
LeadShark · Black
Chess queen · Black

Who This Is For

Power Users

Multiple automations

Agencies

Client automation at scale

Developers

AI-native workflows

Founders

Intent → Automation, fast

Questions?

Reach out for MCP support or feature requests.

Contact