PostHog MCP Server
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
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.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
x-mcp-api-keyValues 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.
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.
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.
x-mcp-api-key secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
The server asks you to sign in before it lists its tools.
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
The registry name was verified against the domain salesbot.cz (the registry checks domain ownership)
Code last changed 19 days ago
We have not read this repo from GitHub yet
Responded in 1622 ms (HTTP 401)
Declares OAuth sign-in, so your AI app can take you to log in
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
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.
You need to fill in: x-mcp-api-key
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.
The GitHub repo last changed 19 days ago, and the latest version (1.0.0) reached the registry 5 months ago.
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.
In the same category: PostHog MCP Server, Agent-Native Analytics, Openshorts
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
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
Agent-Native Amplitude/Mixpanel - connect data sources, prompt for charts
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
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.
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 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
| Endpoint | https://app.salesbot.cz/api/mcp |
| Transport | MCP Streamable HTTP (POST + SSE) |
| Auth | OAuth 2.1 sign-in, or x-mcp-api-key: sb_mcp_… header |
| Tool count | 82 |
| License | MIT |
The server supports OAuth 2.1, so no key needs to be copied:
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*.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.
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.
https://app.salesbot.cz/api/mcp (Salesbot, operated by Sales Robots s.r.o.). Sign-in uses OAuth 2.1 on app.salesbot.cz.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;Authorizationis reserved for OAuth access tokens.
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.sb_mcp_…) — long‑lived; generated in the Salesbot app, stored only as a SHA‑256 hash. Send in x-mcp-api-key.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": " ", "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.
| Area | Tools |
|---|---|
| Connection and limits | 4 |
| Lead discovery (LinkedIn, Google, jobs, web) | 7 |
| Contacts and lead lists | 11 |
| Campaigns and messaging | 16 |
| Direct LinkedIn actions and inbox | 7 |
| 5 | |
| CRM people, tasks and notes | 12 |
| CRM companies | 11 |
| CRM setup, export, blacklist | 9 |
{ "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": "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.
{ "name": "upsert_linkedin_contact", "input": { "profile_url": "string (required)", "full_name": "string", "compan