Human-in-the-loop LinkedIn outreach and a built-in sales CRM for AI agents. Safety-gated, anti-spam.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"linkedin-automation": {
"url": "https://app.salesbot.cz/api/mcp",
"headers": {
"Accept": "application/json, text/event-stream",
"x-mcp-api-key": "sb_mcp_YOUR_API_KEY"
}
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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 po
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ai-ml / marketing
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
An autonomous agent that conducts deep research on any data using any LLM providers
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
MCP Security Weekly
Get CVE alerts and security updates for cz.salesbot/linkedin-mcp-server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
What is this?
linkedin-mcp-server-salesbotis 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 Supabase Edge Function (Deno + Hono + mcp-lite) exposing the MCP Streamable HTTP transport. LinkedIn actions go through a third‑party LinkedIn integration provider; LinkedIn credentials are never stored by the AI.
| Endpoint | https://app.salesbot.cz/api/mcp |
| Transport | MCP Streamable HTTP (POST + SSE) |
| Auth header | x-mcp-api-key: sb_mcp_… (a Supabase JWT in Authorization also works) |
| Tool count | 45 |
| License | MIT |
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 key in the
x-mcp-api-keyheader, notAuthorization: Bearer. The Supabase API gateway rejects unknown Bearer tokens before they reach the server.
sb_mcp_…) — long‑lived; generated in the Salesbot app, stored only as a SHA‑256 hash. Send in x-mcp-api-key.Authorization: Bearer.The AI can do it without leaving the chat:
get_linkedin_status — reports whether LinkedIn is connected/active/blocked.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.
Each tool returns text content; errors return { "ok": false, "code": "<CODE>", "error": "<message>" }.
{ "name": "get_linkedin_status", "input": { "profile_id": "uuid (optional)" } }
{ "name": "connect_linkedin", "input": { "profile_id": "uuid (optional)", "reconnect": "boolean (optional)" } }
{ "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": "scrape_website", "input": { "url": "string (required)", "max_chars": "number (default 8000, max 20000)" } }
search_google_xray saves the profiles it finds into a "Google X-Ray" contact list (deduplicated) and returns their contact_ids — ready to enrich, add to a campaign, or push into th