Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

LinkedIn MCP Server (Salesbot)

by Kubis010version 1.0.0i★ 1iRuns in the cloud
Registry namecz.salesbot/linkedin-mcp-server

Install

Overview

Description from the maker (original English)

Human-in-the-loop LinkedIn outreach and a built-in sales CRM for AI agents. Safety-gated, anti-spam.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Marketing & social media
  • You need to fill in: x-mcp-api-key

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 4 of 4 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: x-mcp-api-key

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Run this in your terminal

claude mcp add --transport http linkedin https://app.salesbot.cz/api/mcp --header 'x-mcp-api-key: your-value'

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "linkedin": {
      "url": "https://app.salesbot.cz/api/mcp",
      "headers": {
        "x-mcp-api-key": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "linkedin": {
      "type": "http",
      "url": "https://app.salesbot.cz/api/mcp",
      "headers": {
        "x-mcp-api-key": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • x-mcp-api-key secret required HTTP header
    Your long-lived Salesbot MCP API key (sb_mcp_…), created in the app under Settings → MCP.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

The server asks you to sign in before it lists its tools.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain salesbot.cz (the registry checks domain ownership)

  • ✓ Pass

    Still maintained

    Code last changed 19 days ago

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 1622 ms (HTTP 401)

  • ✓ Pass

    Sign-in with OAuth

    Declares OAuth sign-in, so your AI app can take you to log in

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Marketing & social mediai

  • More stars than 80% of the other 3728 servers in this category
  • Published to the registry more recently than 12% of the other 3728 servers in this category
  • Basic checks equal to or better than 100% of the other 3728 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is LinkedIn MCP Server (Salesbot) safe?

It passed 4 of 4 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: x-mcp-api-key

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed 19 days ago, and the latest version (1.0.0) reached the registry 5 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: PostHog MCP Server, Agent-Native Analytics, Openshorts

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

PostHog MCP Server

Official PostHog MCP Server for product analytics, feature flags, experiments, and more.

by PostHogWidely used★ 40.7KUpdated 10 months ago

Runs in the cloud

Agent-Native Analytics

Agent-Native Amplitude/Mixpanel - connect data sources, prompt for charts

by BuilderIOWidely used★ 7.7KUpdated 2 months ago

Runs in the cloud

Openshorts

Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.

by mutonbyWidely used★ 7.6KUpdated 3 months ago

Runs in the cloud

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

LinkedIn MCP Server with CRM (Salesbot)

What is this? linkedin-mcp-server-salesbot is a Model Context Protocol - MCP server for AI‑assisted LinkedIn relationship operations. It lets AI assistants — Claude Desktop, ChatGPT, Cursor — help you research and organize professional contacts, draft deeply personalized messages for your review and approval, sync inbox conversations, enrich profiles, and pull web context — all under your direction. It's built for hyper‑targeted, meaningful outreach (find 5 ideal contacts, read their recent posts, write 5 thoughtful notes), not bulk blasting. Every send is gated by human‑in‑the‑loop approval and enforced, server‑side daily/hourly safety thresholds that keep your LinkedIn account within safe limits.

It runs as a hosted service at app.salesbot.cz and speaks the MCP Streamable HTTP transport. Users sign in with OAuth 2.1 (or use an API key in clients that cannot sign in). LinkedIn actions go through a third‑party LinkedIn integration provider; LinkedIn credentials are never stored by the AI.

Product page and documentation: https://salesbot.cz/en/mcp-server

  • Keywords: model context protocol, mcp server, linkedin api, linkedin automation, claude desktop, cursor, ai agents, sales automation.
  • Compatible clients: Claude Desktop, Claude API/MCP, Cursor, any MCP Streamable‑HTTP client.

Quick facts

Endpointhttps://app.salesbot.cz/api/mcp
TransportMCP Streamable HTTP (POST + SSE)
AuthOAuth 2.1 sign-in, or x-mcp-api-key: sb_mcp_… header
Tool count82
LicenseMIT

Connect with sign-in (OAuth): claude.ai, Cowork, Claude Code

The server supports OAuth 2.1, so no key needs to be copied:

  • claude.ai / Cowork: *Customize → Connectors → + Add → Add custom connector* → name Salesbot, URL https://app.salesbot.cz/api/mcp → *Continue* → authentication *Sign in now* (keep the recommended OAuth client; if sign-in fails choose *Register automatically*) → *Add*. Sign in to Salesbot and allow access on the consent page, then switch Salesbot on under *+ → Connectors* in a chat. On Team/Enterprise an owner adds it first (*Organization settings → Connectors → Add → Custom → Web*) and members click *Connect*.
  • Claude Code plugin (adds three skills on top of the connection: salesbot-outreach, salesbot-campaign and salesbot-email):
claude plugin marketplace add Kubis010/linkedin-mcp-server-salesbot

claude plugin install salesbot@salesbot

Then start claude, run /mcp, select the Salesbot server and sign in.

To update later, refresh the marketplace first (otherwise the old version is reported as current):

claude plugin marketplace update salesbot

claude plugin update salesbot@salesbot

You can see and remove connected apps in the Salesbot app under Settings → MCP → Connected apps. The plugin contains no code that runs on your machine; it only talks to https://app.salesbot.cz/api/mcp.

ChatGPT and Codex

For a private ChatGPT connection, open Plugins on chatgpt.com (chatgpt.com/plugins) → + → *Add custom MCP server*, enter the name *Salesbot*, the server URL https://app.salesbot.cz/api/mcp and choose OAuth. Confirm the warning, choose *Create as a plugin*, complete Salesbot consent in the browser, install the plugin and call it in a chat with @Salesbot. Availability depends on your ChatGPT plan and workspace settings. The discovery endpoints are available, but end-to-end ChatGPT sign-in has not yet been verified by this repository's readiness check.

The portable OpenAI package is defined by plugin.json and mcp.json; it reuses the existing workflows and logo without changing the Claude package. It is a submission candidate, not an approved public listing. See the OpenAI readiness and submission checklist for tests, review-account requirements and the third-party integration policy gate.

Clients that cannot sign in can use an API key, see below.

What the plugin runs and sends

  • Runs nothing on your machine. The plugin is three Markdown skills and one remote MCP server entry; there are no hooks, scripts or binaries.
  • Talks to one server: https://app.salesbot.cz/api/mcp (Salesbot, operated by Sales Robots s.r.o.). Sign-in uses OAuth 2.1 on app.salesbot.cz.
  • What reaches Salesbot: the arguments of the tools Claude calls (for example a search query, a contact id, the text of a message or e-mail you asked to send). Salesbot then acts in your connected LinkedIn account and e-mail tools within your limits and approval settings. It does not read your conversation or local files.
  • Data handling: see the privacy policy and terms. Remove access at any time in the Salesbot app → Settings → MCP → Connected apps.

Connect with an API key (Cursor, Codex, Claude Desktop config)

Add this to your MCP client config. Get the sb_mcp_… key in the Salesbot app under Settings → MCP.

{

"mcpServers": { "linkedin-automation": { "url": "https://app.salesbot.cz/api/mcp", "headers": { "x-mcp-api-key": "sb_mcp_YOUR_API_KEY", "Accept": "application/json, text/event-stream" } } } }

Important: send the API key in the `x-mcp-api-key` header, not Authorization: Bearer; Authorization is reserved for OAuth access tokens.

Authentication

  • OAuth 2.1 (authorization code + PKCE, dynamic client registration). A request without credentials gets 401 with WWW-Authenticate: Bearer resource_metadata="https://app.salesbot.cz/.well-known/oauth-protected-resource"; clients discover the authorization server from there. The access token goes in Authorization: Bearer.
  • MCP API key (sb_mcp_…) — long‑lived; generated in the Salesbot app, stored only as a SHA‑256 hash. Send in x-mcp-api-key.
  • An active subscription/trial is required.

How do I authenticate LinkedIn?

The AI can do it without leaving the chat:

  1. Call get_linkedin_status — reports whether LinkedIn is connected/active/blocked.
  2. If not connected, call connect_linkedin — returns a white‑labeled https://auth.salesbot.cz/… link. The user opens it, completes LinkedIn login, done.

Or connect in the app: Settings → LinkedIn → Connect.

Tools

Each tool returns text content; errors return { "ok": false, "code": " ", "error": " " }.

Why 82 tools. Salesbot covers LinkedIn outreach, e-mail and a CRM, and each tool does exactly one thing. The tools are grouped into the areas below, and a client only needs the area it is working in (Claude can load tools on demand). Every tool description starts with when to use it and names the tool to use instead where two are easy to confuse (for example search_linkedin_people vs search_linkedin_navigator, or upsert_linkedin_contact vs add_crm_contact). Read-only tools are kept separate from write and delete tools, so clients can show correct read-only and destructive hints and ask for approval only where it matters. The salesbot_campaign_operator prompt contains the same map.

AreaTools
Connection and limits4
Lead discovery (LinkedIn, Google, jobs, web)7
Contacts and lead lists11
Campaigns and messaging16
Direct LinkedIn actions and inbox7
E-mail5
CRM people, tasks and notes12
CRM companies11
CRM setup, export, blacklist9
Connection
{ "name": "get_linkedin_status", "input": { "profile_id": "uuid (optional)" } }

{ "name": "connect_linkedin", "input": { "profile_id": "uuid (optional)", "reconnect": "boolean (optional)" } }

Lead discovery
{ "name": "search_linkedin_people",    "input": { "title": "string (required)", "location": "string", "locationId": "string", "network": "['S'|'O']", "limit": "number 1-50" } }

{ "name": "search_google_xray", "input": { "jobTitle": "string (required)", "location": "string", "keywords": "string[]", "excludeWords": "string[]", "limit": "number 1-100" } } { "name": "search_linkedin_navigator", "input": { "search_url": "string (required)", "limit": "number 1-100" } } { "name": "import_linkedin_company_list", "input": { "search_url": "string (required)", "list_name": "string (required)", "limit": "number", "cursor": "string", "save_to_crm": "boolean" } } { "name": "list_company_lists", "input": {} } { "name": "list_companies", "input": { "company_list_id": "uuid (required)", "limit": "number", "offset": "number", "query": "string" } } { "name": "update_company_research", "input": { "prospect_company_id": "uuid (required)", "web_research": "string (required)", "website": "string", "domain": "string", "research_urls": "string[]" } } { "name": "search_job_postings", "input": { "keywords": "string (required)", "location": "string", "locationId": "string", "seniority": "string[]", "job_type": "string[]", "presence": "string[]", "date_posted": "number", "easy_apply": "boolean", "limit": "number 1-50" } } { "name": "search_web", "input": { "query": "string (required)", "limit": "number 1-30", "country": "string (default cz)", "language": "string (default cs)" } } { "name": "read_company_website", "input": { "url": "string (required)", "extra_urls": "string[] (max 3, same domain)" } } { "name": "get_job_posting_details", "input": { "job_id": "string (required)" } }

`search_google_xray` saves the profiles it finds into a "Google X-Ray" contact list (deduplicated) and returns their `contact_id`s — ready to enrich, add to a campaign, or push into the CRM.

search_job_postings searches LinkedIn job postings via the connected account (Classic search, no Recruiter needed). Returns job offers with company info — great for finding companies actively hiring for a specific role. Combine with search_linkedin_people to find the hiring manager.

search_web is a general-purpose Google search (not restricted to LinkedIn). Use Google operators like site:jobs.cz, intitle:, OR to search job portals, company websites, or news. Results are NOT saved to contacts — this is a research/discovery tool.

read_company_website reads a company's own public website – the homepage plus up to 3 contact/about/services pages on the same host – and returns a short extract with source URLs and generic company e-mails (info@, sales@ …); personal e-mails and phone numbers are masked and no employee lists are collected. It identifies as SalesbotBot, honours robots.txt (and does not read a site whose robots.txt cannot be checked), noindex/noai and TDM reservations, reads only public addresses, stops at logins, CAPTCHAs and paywalls, and is limited to 60 reads per account per day. Nothing is stored; save the summary with update_company_research. A found address is not consent to contact. Rules: salesbot.cz/en/terms#website-reading.

get_job_posting_details takes a job_id from search_job_postings and returns the full posting — most importantly hiring_team, the recruiter or hiring manager who posted the role, with their LinkedIn id and whether a free InMail is available. Also returns applicants_counter / views_counter as urgency signals. Typical flow: search_job_postings → get_job_posting_details → enrich_contacts → campaign.

Company/account-list workflow: import_linkedin_company_list → list_companies → search_web → update_company_research → search_linkedin_people → upsert_linkedin_contact with the returned prospect_company_id. Companies are stored separately from people and can enter CRM before a decision-maker is known.

Contacts
{ "name": "upsert_linkedin_contact", "input": { "profile_url": "string (required)", "full_name": "string", "compan

Only the beginning is shown; read the rest in the repo

Ask PopNx