Developers

API & MCP reference

Drive LinkedMinds in plain language from Claude - or from any MCP client - over one HTTPS endpoint. Twenty-two tools, the same safety engine as the dashboard, and your own credentials that you can rotate or revoke at any time.

Overview

LinkedMinds exposes a Model Context Protocol (MCP) server over HTTPS. Any MCP client can use it - Claude Desktop, claude.ai, Claude Code or your own - by sending a Bearer token. Generate credentials from Settings → API Key inside your dashboard.

One URL
Natural language, 22 tools
Campaigns & leads
Search, import, send, reply
Same safety engine
Identical limits to the dashboard

Connect to Claude (MCP)

Add the server to Claude in three steps.

  1. 1Go to Settings → API Key, open Claude MCP Credentials, and click Generate. Copy the Client Secret - it's shown once.
  2. 2In claude.ai → Settings → Connectors (or Claude Desktop → MCP Servers), choose Add custom MCP server.
  3. 3Enter the URL below and your credentials, then save.
https://mcp.linkedminds.in/mcp

Claude Desktop config.json alternative:

{
  "mcpServers": {
    "linkedminds": {
      "type": "streamable-http",
      "url": "https://mcp.linkedminds.in/mcp",
      "headers": { "Authorization": "Bearer <YOUR_CLIENT_SECRET>" }
    }
  }
}

MCP tools

Once connected, ask Claude in plain language - it calls these under the hood.

list_campaigns()

Every campaign with its ID, status and targeting. Start here - most tools need a campaign ID.

get_status()

Real activity for the last 7 days: invites sent, accepted, replies received.

list_accounts()

Your connected LinkedIn accounts and what each one is allowed to do. Ask before any live search.

create_campaign()

Create a campaign from a plain-English brief. Always starts paused.

pause_campaign()

Stop all automation for a campaign immediately.

resume_campaign()

Resume a paused campaign within its working hours.

delete_campaign()

Cancel a campaign for good. Requires an explicit confirmation.

update_icp()

Adjust the ideal-customer profile a campaign searches against.

search_leads()

Find leads instantly in our database, or scrape LinkedIn live. The one search tool to reach for.

search_people_db()

Database-only search: instant, and it never touches LinkedIn.

import_leads_from_db()

Add people found in the database straight into a campaign.

get_search_results()

Check a running live search: which page it is on, what it has found, and the results once it finishes.

find_leads()

Live LinkedIn people search, qualified by AI. Falls back to the campaign's saved ICP.

find_leads_advanced()Pro+

Sales Navigator search with company-size and seniority filters.

find_recruiter_leads()Enterprise+

LinkedIn Recruiter candidate search by job function and experience.

find_companies()Pro+

Find companies on Sales Navigator, then search the people inside the ones worth pursuing.

set_campaign_workflow()

Build the outreach sequence itself - warm-up, connection request, follow-ups, branches.

get_campaign_workflow()

Read a campaign's current sequence in plain English before changing it.

get_inbox()

Sync replies and read the last 20 messages inline.

reply_message()

Message a lead who accepted your request, in your own voice.

withdraw_connection()

Withdraw a connection request that is still pending.

create_post()Standard+

Draft, and optionally schedule, a LinkedIn post.

REST API

For your own code rather than a chat client, there is a JSON REST API on the same host. It uses a separate credential - the REST API Key in Settings - and is available on the Pro and Enterprise plans.

curl https://mcp.linkedminds.in/v1/campaigns \
  -H "Authorization: Bearer lm_YOUR_REST_API_KEY"
EndpointDoes
GET /v1/meAccount, plan and subscription period
GET /v1/accountsConnected LinkedIn accounts and their health
GET · POST /v1/campaignsList or create campaigns
GET · PATCH · DELETE /v1/campaigns/{id}Read, update, pause, resume or cancel one
GET /v1/campaigns/{id}/leadsLeads and their state in a campaign
POST /v1/campaigns/{id}/leadsPush your own leads into a campaign, up to 200 a call
GET /v1/conversationsUnified inbox, newest first
POST /v1/conversations/{id}/replyQueue a LinkedIn reply
POST /v1/deals/{id}/withdrawWithdraw a pending connection request
BudgetProEnterprise
Requests / minute120300
Writes / minute3060
LinkedIn actions / hour60150

Replies and withdrawals are metered by the hour rather than the minute, because they act on a real LinkedIn account. Those are ceilings on the API, not permission to send: every queued action still passes the same daily caps, warm-up phase and ban-risk checks as the dashboard - the API is a second door to the product, not a way around it. Full reference, including every field, header and error code, is in the dashboard under Docs.

Your own leads go in over the same API. POST /v1/campaigns/{id}/leads takes up to 200 LinkedIn profile URLs a call, which is what turns a sheet, a CRM or a scraper into a running campaign. Re-sending the same list is safe: anyone already on the campaign is skipped, never restarted. A campaign holds up to 10,000 leads on Pro and 50,000 on Enterprise.

n8n, Zapier and Make need nothing special. There is no custom node to install: point an HTTP Request node at the endpoint and send the key as a Authorization: Bearer header, stored as a credential rather than inline in the workflow. Poll on a five-minute schedule or slower, and honour Retry-After on a 429. The step-by-step version is in the dashboard docs.

If a key looks compromised, we act on it. Both credentials are watched. A run of wrong secrets against your key means someone has seen part of a real one, so we disable it and tell you - by email, in the app, and on the Settings page, with the reason. Generating a new key clears it and nothing else about your account is touched. One valid key being used from an unusual number of places gets you a warning but is never disabled automatically: that is also what a normal serverless integration looks like, and breaking a working automation on a guess would be the bigger harm.

Authentication

One-way storage

Secrets are stored as bcrypt hashes (rounds=12). We can't recover the raw value - rotate to get a new one.

5-minute cache

Verified credentials are cached briefly so repeated calls don't hit the database every time.

Instant revocation

Rotate or revoke from Settings; the cache is flushed immediately.

Subscription gate

If your subscription lapses, credentials stop working until you renew.

Rate limits & safety

Driving LinkedMinds from Claude changes nothing about how carefully it acts. Every action runs through the same pacing engine as the dashboard: randomised delays of 2-10 minutes, burst windows with cool-down breaks, a four-week warm-up on every new account (5 requests a day in week 1, rising to 20 by week 4), and per-account caps set at or below LinkedIn's own.

LimitWindowApplies to
60 calls1 minuteEvery MCP tool
10 calls1 hourLive LinkedIn searches only
5 - 200 searches1 hourDatabase searches, by plan
20 / dayPer accountConnection requests at full warm-up

Database searches never contact LinkedIn, so they carry no ban risk and do not spend your LinkedIn search quota. Full parameter-level reference for all 22 tools lives in the dashboard, under Docs.

See plan limits