mcpField
L
LinkedIn MCP Server (Salesbot)

LinkedIn MCP Server (Salesbot)

远程服务
app.salesbot.cz商业与营销16 天前更新

关于 LinkedIn MCP Server (Salesbot)

LinkedIn MCP Server (Salesbot) 是托管的 MCP 服务,供 AI 助手开展 LinkedIn 潜客研究、CRM 管理和个性化联络。它区分只读与写入操作,发送消息须经人工批准,并受服务端活动限额约束。

主要功能

  1. 01LinkedIn 潜客与公司研究
  2. 02联系人列表和 CRM 管理
  3. 03营销活动、消息与收件箱同步
  4. 04电子邮件和个人资料丰富
  5. 05人工批准与安全限额

适用场景

  1. 01查找并整理 LinkedIn 潜在联系人
  2. 02准备个性化联络内容供审核
  3. 03跟踪潜客、公司和销售任务
  4. 04通过 AI 客户端查看收件箱对话

MCP 相关

通过 Streamable HTTP 向 MCP 客户端提供 82 个工具,涵盖 LinkedIn 研究、CRM、消息和电子邮件操作。支持 OAuth 2.1 或 API 密钥连接;发送消息须经人工批准。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://app.salesbot.cz/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://app.salesbot.cz/api/mcp需要授权

工具

详细介绍

带 CRM(Salesbot)的 LinkedIn MCP 服务

这是什么? linkedin-mcp-server-salesbot 是一个用于 AI 辅助 LinkedIn 关系维护操作的模型上下文协议(MCP)服务。它能让 AI 助手——Claude Desktop、ChatGPT、Cursor——在你的指导下,帮助你研究并整理专业联系人、起草高度个性化的消息供你审核和批准、同步收件箱对话、丰富个人资料并获取网络背景信息。它专为精准且有意义的外联打造(找出 5 位理想联系人,阅读他们最近发布的内容,写 5 封用心的留言),而非批量群发。每次发送都必须经过人工审核批准,并受服务端强制执行的每日/每小时安全阈值限制,以确保你的 LinkedIn 账户处于安全范围内。

它作为托管服务运行于 app.salesbot.cz,使用 MCP Streamable HTTP 传输。用户通过 OAuth 2.1 登录(或在无法登录的客户端中使用 API 密钥)。LinkedIn 操作通过第三方 LinkedIn 集成提供商执行;AI 不会存储 LinkedIn 凭据。

产品页面和文档:https://salesbot.cz/en/mcp-server

  • 关键词: 模型上下文协议、MCP 服务、LinkedIn API、LinkedIn 自动化、Claude Desktop、Cursor、AI Agent、销售自动化。
  • 兼容客户端: Claude Desktop、Claude API/MCP、Cursor,以及任何 MCP Streamable HTTP 客户端。

快速信息

端点https://app.salesbot.cz/api/mcp
传输MCP Streamable HTTP(POST + SSE)
身份验证OAuth 2.1 登录,或使用 x-mcp-api-key: sb_mcp_… 标头
工具数量82
许可证MIT

使用登录连接(OAuth):claude.ai、Cowork、Claude Code

该服务支持 OAuth 2.1,无需复制密钥:

  • claude.ai / Cowork: Customize → Connectors → + Add → Add custom connector → 名称填写 Salesbot,URL 填写 https://app.salesbot.cz/api/mcp → Continue → 身份验证选择 Sign in now(保留推荐的 OAuth 客户端;如果登录失败,请选择 Register automatically)→ Add。登录 Salesbot,并在授权页面允许访问;然后在聊天中的 + → Connectors 下开启 Salesbot。在 Team/Enterprise 中,所有者需先添加该连接器(Organization settings → Connectors → Add → Custom → Web),成员再点击 Connect。
  • Claude Code 插件(在连接之外还会添加三个技能:salesbot-outreach、salesbot-campaign 和 salesbot-email):
claude plugin marketplace add Kubis010/linkedin-mcp-server-salesbot
claude plugin install salesbot@salesbot

然后启动 claude,运行 /mcp,选择 Salesbot 服务并登录。

之后更新时,请先刷新 marketplace(否则会显示旧版本为当前版本):

claude plugin marketplace update salesbot
claude plugin update salesbot@salesbot

你可以在 Salesbot 应用的 Settings → MCP → Connected apps 下查看并移除已连接的应用。该插件不包含任何会在你的计算机上运行的代码;它只会与 https://app.salesbot.cz/api/mcp 通信。

ChatGPT 和 Codex

如需建立私有 ChatGPT 连接,请打开 chatgpt.com 上的 Plugins(chatgpt.com/plugins)→ + → Add custom MCP server,输入名称 Salesbot、服务 URL https://app.salesbot.cz/api/mcp,并选择 OAuth。确认警告,选择 Create as a plugin,在浏览器中完成 Salesbot 授权,安装插件,然后在聊天中使用 @Salesbot 调用。是否可用取决于你的 ChatGPT 套餐和工作区设置。发现端点已开放,但该代码库的就绪情况检查尚未验证 ChatGPT 端到端登录。

可移植的 OpenAI 软件包由 plugin.json 和 mcp.json 定义;它复用现有工作流和徽标,不会更改 Claude 软件包。它是提交候选版本,而非已获批准的公开上架版本。有关测试、审核账户要求和第三方集成政策门槛,请参阅 OpenAI 就绪情况与提交清单。

无法登录的客户端可以使用 API 密钥,见下文。

插件的运行和发送内容

  • 不会在你的设备上运行任何内容。 该插件由 3 个 Markdown 技能和 1 个远程 MCP 服务条目组成;没有钩子、脚本或二进制文件。
  • 仅连接到一个服务: https://app.salesbot.cz/api/mcp(Salesbot,由 Sales Robots s.r.o. 运营)。使用 app.salesbot.cz 上的 OAuth 2.1 登录。
  • 发送给 Salesbot 的内容: Claude 调用工具时传入的参数(例如搜索查询、联系人 ID、你要求发送的消息或电子邮件文本)。随后,Salesbot 会在你连接的 LinkedIn 账户和电子邮件工具中,根据你的限制和审批设置执行操作。它不会读取你的对话或本地文件。
  • 数据处理: 请参阅隐私政策和条款。你可以随时在 Salesbot 应用中撤销访问权限:Settings → MCP → Connected apps。

使用 API 密钥连接(Cursor、Codex、Claude Desktop 配置)

将以下内容添加到 MCP 客户端配置中。在 Salesbot 应用的 Settings → MCP 中获取 sb_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"
      }
    }
  }
}

重要: 请在 x-mcp-api-key 标头中发送 API 密钥,不要使用 Authorization: Bearer;Authorization 专用于 OAuth 访问令牌。

身份验证

  • OAuth 2.1(授权码 + PKCE、动态客户端注册)。未携带凭据的请求会收到 401,并附带 WWW-Authenticate: Bearer resource_metadata="https://app.salesbot.cz/.well-known/oauth-protected-resource";客户端会据此发现授权服务器。访问令牌通过 Authorization: Bearer 传递。
  • MCP API 密钥(sb_mcp_…)——长期有效;在 Salesbot 应用中生成,仅以 SHA-256 哈希形式存储。通过 x-mcp-api-key 发送。
  • 需要有效订阅或试用资格。

如何对 LinkedIn 进行身份验证?

AI 可以在不离开聊天的情况下完成:

  1. 调用 get_linkedin_status——查看 LinkedIn 是否已连接、处于活动状态或被屏蔽。
  2. 如果尚未连接,调用 connect_linkedin——它会返回一个带白标的 https://auth.salesbot.cz/… 链接。用户打开链接并完成 LinkedIn 登录即可。

也可以在应用中连接:Settings → LinkedIn → Connect。

工具

每个工具都会返回文本内容;错误会返回 { "ok": false, "code": "<CODE>", "error": "<message>" }。

为什么有 82 个工具。 Salesbot 涵盖 LinkedIn 外联、电子邮件和 CRM,每个工具只执行一项操作。工具按以下领域分组,客户端只需加载当前工作所需的领域(Claude 可以按需加载工具)。每个工具描述都以适用场景开头;如果两个工具容易混淆,描述中会指出应改用哪个工具(例如 search_linkedin_people 与 search_linkedin_navigator,或 upsert_linkedin_contact 与 add_crm_contact)。只读工具与写入和删除工具分开,以便客户端显示正确的只读和破坏性操作提示,并仅在必要时请求审批。salesbot_campaign_operator 提示词包含相同的工具索引。

领域工具
连接和限制4
潜在客户发现(LinkedIn、Google、职位、网络)7
联系人和潜在客户列表11
营销活动和消息16
LinkedIn 直接操作和收件箱7
电子邮件5
CRM 联系人、任务和备注12
CRM 公司11
CRM 设置、导出、黑名单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 会将找到的个人资料保存到“Google X-Ray”联系人列表中(去重),并返回其 contact_id,方便后续补充信息、添加到营销活动或推送到 CRM。

search_job_postings 通过已连接的账号搜索 LinkedIn 职位发布信息(标准搜索,无需 Recruiter)。返回包含公司信息的职位,有助于找到正在招聘特定职位的公司。可结合 search_linkedin_people 查找招聘经理。

search_web 是通用 Google 搜索(不局限于 LinkedIn)。使用 site:jobs.cz、intitle:、OR 等 Google 搜索运算符,搜索招聘网站、公司网站或新闻。搜索结果不会保存到联系人中——这是一个用于研究和发现的工具。

read_company_website 会读取公司自己的公开网站——首页以及同一主机上的最多 3 个联系、关于我们或服务页面——并返回简短摘录,其中包含来源 URL 和通用公司邮箱(info@、sales@ 等);个人邮箱和电话号码会被屏蔽,且不会收集员工名单。该工具会声明自己的身份为 SalesbotBot,遵守 robots.txt(无法检查 robots.txt 的网站不会读取)、noindex/noai 和 TDM 保留条款,只读取公开地址,在遇到登录页面、CAPTCHA 和付费墙时停止,并且每个账号每天最多读取 60 次。不会存储任何内容;使用 update_company_research 保存摘要。找到地址并不代表获得了联系许可。规则:salesbot.cz/en/terms#website-reading。

get_job_posting_details 接受来自 search_job_postings 的 job_id,并返回完整的职位信息——最重要的是 hiring_team,即发布该职位的招聘人员或招聘经理,以及其 LinkedIn ID 和是否可发送免费 InMail。还会返回 applicants_counter / views_counter,作为紧迫程度的信号。典型流程:search_job_postings → get_job_posting_details → enrich_contacts → 营销活动。

公司/账号列表工作流:import_linkedin_company_list → list_companies → search_web → update_company_research → search_linkedin_people → 使用返回的 prospect_company_id 调用 upsert_linkedin_contact。公司与个人分开存储,即使尚未确定决策者,公司也可以进入 CRM。

联系人
{ "name": "upsert_linkedin_contact", "input": { "profile_url": "string (required)", "full_name": "string", "company": "string", "position": "string", "headline": "string", "prospect_company_id": "uuid" } }
{ "name": "get_contact_profile", "input": { "contact_id": "uuid (required)" } }
{ "name": "list_lead_lists",    "input": {} }
{ "name": "list_contacts",       "input": { "list_id": "uuid (required)", "limit": "number", "offset": "number" } }
{ "name": "enrich_contacts",     "input": { "contact_ids": "uuid[] (required, max 8)", "profile_id": "uuid (optional)" } }
{ "name": "create_lead_list",    "input": { "name": "string (required)", "description": "string" } }
{ "name": "add_contacts_to_list", "input": { "list_id": "uuid (required)", "contact_ids": "uuid[] (required)" } }
{ "name": "remove_contacts_from_list", "input": { "contact_ids": "uuid[] (required)", "list_id": "uuid" } }
{ "name": "sync_linkedin_connections", "input": { "cursor": "string", "sync_id": "string", "limit": "number ≤500" } }
{ "name": "list_blacklist",      "input": { "query": "string", "limit": "number", "offset": "number" } }
{ "name": "check_blacklist",     "input": { "contact_id": "uuid", "company": "string", "domain": "string" } }
{ "name": "delete_contacts",     "input": { "contact_ids": "uuid[] (required)", "confirm": "true (required)", "delete_crm_leads": "boolean", "force": "boolean" } }

每个联系人只属于一个列表:add_contacts_to_list 会移动联系人,remove_contacts_from_list 会将其移回 CRM Imports(不会删除任何内容)。sync_linkedin_connections 会分页获取你自己的一度联系人(每页最多 500 个,间隔由服务端控制)。list_blacklist / check_blacklist 用于查看公司级黑名单。

delete_contacts 会永久删除联系人,包括其营销活动历史记录。只有在用户明确要求后,才能调用此工具;调用前须向用户展示这些联系人,并设置 confirm: true。如需停止向某人发送消息,请改用 exclude_contacts_from_campaign。 对于准确且已知的 LinkedIn 个人资料 URL,upsert_linkedin_contact 是幂等操作。它会在 CRM Imports 列表中创建联系人,或返回现有的 contact_id,因此 CRM 集成可以安全地在调用 add_contacts_to_campaign 前使用此工具,而无需依赖 Google 搜索。

list_lead_lists 会返回每个联系人组的 list_id、名称、描述和联系人数量。将返回的 list_id 传给 list_contacts。

典型的联系人工作流:list_lead_lists → list_contacts → add_contacts_to_campaign。联系人仍属于某个潜在客户列表,但要将现有联系人添加到营销活动中,只需提供其 contact_id 和目标 campaign_id。

search_linkedin_people 和 search_linkedin_navigator 会返回原始 LinkedIn 搜索结果,不会保存联系人;对于你想保存或添加到营销活动中的个人资料,请逐个调用 upsert_linkedin_contact。

enrich_contacts 会通过已连接的账号读取每位联系人的 LinkedIn 个人资料,并保存其标题、所在地以及当前公司和职位。遵循 GDPR 数据最小化原则,Salesbot 不会存储照片、“About”文本、教育经历、技能、过往工作经历或联系方式。非常适合在 search_google_xray 后立即使用。

营销活动
{ "name": "list_campaigns",           "input": { "status": "draft|running|paused|completed|stopped (optional)" } }
{ "name": "create_campaign",          "input": { "name": "string (required)", "profile_id": "uuid (required)", "description": "string", "daily_limit": "number", "sender_context": "string", "steps": "[{ action: 'connect'|'message'|'visit', delay_hours, use_ai, ai_prompt, ai_template, message_mode: 'template'|'creative', send_without_message }] (required)" } }
{ "name": "update_campaign_settings", "input": { "campaign_id": "uuid (required)", "name": "string", "description": "string", "daily_limit": "number", "sender_context": "string", "auto_approve_messages": "boolean", "status": "running|paused|draft|stopped" } }
{ "name": "start_campaign",           "input": { "campaign_id": "uuid (required)" } }
{ "name": "stop_campaign",            "input": { "campaign_id": "uuid (required)" } }
{ "name": "add_contacts_to_campaign", "input": { "campaign_id": "uuid (required)", "contact_ids": "uuid[] (required)" } }
{ "name": "exclude_contacts_from_campaign", "input": { "campaign_id": "uuid (required)", "contact_ids": "uuid[] (required)", "reason": "string" } }
{ "name": "list_campaign_queue",      "input": { "campaign_id": "uuid (required)", "limit": "number" } }

message_mode 决定消息步骤如何使用其示例(ai_template):template 会逐字发送示例,AI 只会填充其中的字段(例如 [Firma] → “Škoda Auto”);creative 会让 AI 根据 ai_prompt 为每位潜在客户撰写新消息,示例仅作为风格参考。只有在提示词中写明 {{o_mne}} 时,才会使用营销活动的 sender_context(“About me”)。提示词或示例中的链接会保持原样。

exclude_contacts_from_campaign 会停止向这些联系人发送后续消息,但会保留其历史记录。list_campaign_queue 会显示每位联系人的状态、邀请状态以及接下来要调用的工具。

AI 消息(撰写 → 审批 → 发送)
{ "name": "prepare_campaign_messages", "input": { "campaign_id": "uuid (required)", "limit": "number ≤10" } }
{ "name": "generate_campaign_message", "input": { "campaign_contact_id": "uuid (required)", "step_id": "uuid (required)", "custom_instructions": "string" } }
{ "name": "list_pending_approvals",    "input": { "campaign_id": "uuid", "limit": "number" } }
{ "name": "approve_message",           "input": { "campaign_contact_id": "uuid (required)", "edited_messages": "[{step_id, message}]", "skip_gpt_check": "boolean" } }
{ "name": "reject_message",            "input": { "campaign_contact_id": "uuid (required)", "reason": "string (required)" } }
{ "name": "list_mcp_pending_actions",  "input": { "action_type": "string", "limit": "number" } }

每次调用 prepare_campaign_messages 最多会为 10 位待处理联系人加入草稿队列;只要 remaining_pending > 0,就重复调用。当营销活动启用了 AI 审批(auto_approve_messages)时,Salesbot 会检查每份草稿,包括联系人姓名和性别、公司、残留的占位符、签名和语法,并仅批准符合要求的草稿;其余草稿会留在 list_pending_approvals 中。list_mcp_pending_actions 会列出等待用户审批的一次性消息和邀请(只读)。

电子邮件(你自己的邮箱:Outlook 或 IMAP/SMTP)
{ "name": "list_email_integrations", "input": {} }
{ "name": "send_email",              "input": { "provider_campaign_id": "mailbox_id (required)", "body": "string (required)", "subject": "string", "provider": "mailbox", "crm_lead_id": "uuid", "contact_id": "uuid", "email": "string" } }
{ "name": "list_email_outreach",     "input": { "status": "string", "crm_lead_id": "uuid", "contact_id": "uuid", "limit": "number" } }
{ "name": "get_email_status",        "input": { "outreach_id": "uuid (required)" } }
{ "name": "cancel_email",            "input": { "outreach_id": "uuid (required)", "reason": "string" } }

send_email 会从你自己的邮箱向一人发送私人电子邮件:传入 list_email_integrations 返回的 mailbox_id。Salesbot 会在你的发送时段内发送,每封间隔几分钟,并设有每日发送上限。现已不再支持 Smartlead 和 Instantly。**同意:**在捷克共和国,发送商业电子邮件前须获得收件人的事先同意,除非对方是现有客户(《第 480/2004 号法案》第 7 条)——首次联系新对象时请使用 LinkedIn。

每封电子邮件在发送前都会经过检查:称呼(姓名正确,且根据联系人的性别使用 pane/paní)、公司名称、{{company}} 等遗留占位符、捷克语语法,以及邮箱会自动添加签名时正文中不得包含签名。检查失败时会返回 AI_CHECK_FAILED 和原因,且不会发送任何内容;请修正后重试。若第二次检查仍失败,则会转交用户手动审批。如果需要审批,电子邮件会以 pending_approval 状态等待。cancel_email 可撤回尚未发出的电子邮件。

直接 LinkedIn 操作
{ "name": "send_connection_request", "input": { "linkedin_id": "string (required)", "profile_id": "uuid (required)", "contact_id": "uuid" } }
{ "name": "send_linkedin_message",   "input": { "linkedin_id": "string (required)", "message": "string ≤5000 (required)", "profile_id": "uuid (required)" } }
{ "name": "publish_linkedin_post",   "input": { "profile_id": "uuid (required)", "text": "string ≤3000 (required)", "external_link": "string", "as_organization": "string", "auto_publish": "boolean" } }
{ "name": "get_daily_limits",        "input": { "profile_id": "uuid (optional)" } }

publish_linkedin_post 有独立的服务端安全限制:每个 LinkedIn 账号在滚动的 60 分钟窗口内最多发布 1 条帖子。此限制适用于个人帖子和组织帖子,并由 get_daily_limits 的 posts 配额报告。配额耗尽时,该工具会返回 HOURLY_LIMIT_REACHED,且不会发布帖子。

收件箱(实时)
{ "name": "list_inbox_chats",  "input": { "profile_id": "uuid (optional)", "limit": "number 1-50", "cursor": "string" } }
{ "name": "get_chat_messages", "input": { "chat_id": "string (required)", "profile_id": "uuid (optional)", "limit": "number 1-50", "cursor": "string" } }
{ "name": "reply_to_chat",     "input": { "chat_id": "string (required)", "message": "string ≤5000 (required)", "profile_id": "uuid (optional)" } }
{ "name": "mark_chat_read",    "input": { "chat_id": "string (required)", "profile_id": "uuid (optional)" } }
CRM(销售管道、备注、任务、消息存储)

CRM 是独立于联系人的持久化销售管道。潜在客户在加入营销活动时,或这些工具中的任一工具首次处理该客户时,会进入 CRM。CRM 还可作为生成的外联文案的持久化存储:使用 save_lead_message 保存电子邮件 / LinkedIn 草稿和跟进消息,使用 list_lead_messages 或 get_lead_context 读取这些消息,并使用 send_email 发送电子邮件(见上文“电子邮件”)。

{ "name": "add_companies_to_crm", "input": { "prospect_company_ids": "uuid[] (max 100)", "companies": "[{ name, website?, industry?, location?, headcount?, linkedin_url?, notes? }] (max 50; no LinkedIn needed)" } }
{ "name": "add_crm_contact", "input": { "full_name": "string (required)", "email": "string?", "phone": "string?", "company": "string?", "position": "string?", "website": "string?", "crm_company_id": "uuid?", "notes": "string?" } }
{ "name": "enrich_crm_company_ares", "input": { "crm_company_id": "uuid (required)", "ico": "string? (Czech company ID; otherwise matched by name)", "include_people": "boolean? (registry officers: name, role, source only)" } }
{ "name": "add_contacts_to_crm", "input": { "contact_ids": "uuid[] (required)" } }
{ "name": "search_crm_leads",   "input": { "query": "string", "stage": "string", "campaign_id": "uuid", "list_id": "uuid", "crm_company_id": "uuid", "sort_by": "string", "sort_direction": "asc|desc", "limit": "number", "offset": "number" } }
{ "name": "update_crm_lead",    "input": { "contact_id": "uuid", "crm_lead_id": "uuid", "stage": "string", "deal_value": "number", "clear_deal_value": "boolean", "email": "string", "company": "string", "note": "string" } }
{ "name": "set_deal_stage",     "input": { "contact_id": "uuid (required)", "stage": "string (required)", "note": "string" } }
{ "name": "log_crm_note",       "input": { "contact_id": "uuid (required)", "summary": "string (required)", "pain_points": "string[]", "sentiment": "positive|neutral|negative" } }
{ "name": "save_lead_message",  "input": { "contact_id": "uuid (required)", "body": "string (required)", "channel": "email|linkedin", "kind": "string e.g. initial|followup", "subject": "string", "status": "draft|queued|sent", "message_id": "uuid (update existing)" } }
{ "name": "list_lead_messages", "input": { "contact_id": "uuid (required)", "channel": "email|linkedin", "kind": "string", "limit": "number" } }
{ "name": "create_task",        "input": { "title": "string (required)", "contact_id": "uuid", "due_at": "ISO 8601", "details": "string" } }
{ "name": "list_tasks",         "input": { "status": "open|done|cancelled|all", "contact_id": "uuid", "limit": "number" } }
{ "name": "complete_task",      "input": { "task_id": "uuid (required)", "status": "done|open|cancelled" } }
{ "name": "get_lead_context",   "input": { "contact_id": "uuid (required)", "notes_limit": "number" } }
{ "name": "update_contact",     "input": { "contact_id": "uuid (required)", "email": "string", "phone": "string", "location": "string", "company": "string", "position": "string", "headline": "string", "company_info": "string (max 400 chars)", "web_research": "string (max 4000 chars)" } }
{ "name": "set_lead_fields",    "input": { "contact_id": "uuid (required)", "fields": "object { field_key: value }" } }
{ "name": "export_crm",         "input": { "limit": "number (default 5000, max 20000)" } }
{ "name": "delete_crm_leads",   "input": { "crm_lead_ids": "uuid[] (required)", "confirm": "true (required)" } }

公司(客户)会根据潜在客户的公司名称和 LinkedIn 公司导入自动创建:

{ "name": "list_crm_companies",  "input": { "query": "string", "stage": "string", "limit": "number", "offset": "number" } }
{ "name": "get_crm_company",     "input": { "crm_company_id": "uuid (required)" } }
{ "name": "update_crm_company",  "input": { "crm_company_id": "uuid (required)", "notes": "string", "append_notes": "boolean", "name": "string", "website": "string", "industry": "string", "location": "string", "headcount": "string" } }
{ "name": "merge_crm_companies", "input": { "keep_crm_company_id": "uuid (required)", "merge_crm_company_id": "uuid (required)" } }
{ "name": "delete_crm_company",  "input": { "crm_company_id": "uuid (required)", "confirm": "true (required)", "delete_leads": "boolean" } }

delete_crm_leads、delete_crm_company 和 merge_crm_companies 的操作不可撤销:仅在用户明确要求后使用,并先向用户说明将发生的更改。

get_lead_context 会返回潜在客户的完整 360° 情境信息——个人资料、销售管道阶段、自定义字段、已保存的外联消息、对话摘要、未完成任务、近期 LinkedIn 互动和阶段历史记录。

CRM 配置(阶段和自定义字段)

销售管道阶段和自定义字段可由用户配置。

{ "name": "list_crm_stages",  "input": {} }
{ "name": "add_crm_stage",    "input": { "label": "string (required)", "color": "hex string" } }
{ "name": "rename_crm_stage", "input": { "key": "string (required)", "label": "string", "color": "hex string" } }
{ "name": "delete_crm_stage", "input": { "key": "string (required)", "reassign_to": "string" } }
{ "name": "list_crm_fields",  "input": {} }
{ "name": "add_crm_field",    "input": { "label": "string (required)", "type": "text|number|date|url" } }
{ "name": "delete_crm_field", "input": { "key": "string (required)" } }

调用示例

请求(MCP tools/call):

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": { "name": "get_daily_limits", "arguments": {} } }

成功结果内容(文本部分中的 JSON):

{ "profile_active": true,
  "limits": { "connections": { "used": 0, "limit": 30, "effective_limit": 30 },
              "messages": { "used": 0, "limit": 40, "effective_limit": 40 },
              "posts": { "used": 0, "limit": 1, "effective_limit": 1, "window": "hour" } } }

错误结果内容:

{ "ok": false, "code": "ACCOUNT_NOT_CONNECTED", "error": "Profile has no connected LinkedIn account." }

错误代码

代码含义
AUTH_MISSING / AUTH_INVALID / AUTH_EXPIRED缺少 / 错误 / 已过期的密钥
SUBSCRIPTION_REQUIRED试用已过期或没有有效套餐
RATE_LIMITEDMCP 请求过多——请放慢速度
ACCOUNT_NOT_CONNECTED个人资料未连接 LinkedIn(调用 connect_linkedin)
ACCOUNT_BLOCKEDLinkedIn 限制了该账号(营销活动已自动暂停)
PROFILE_INACTIVE / PROFILE_NOT_FOUND / ACCESS_DENIED个人资料 / 所有权
DAILY_LIMIT_REACHED / HOURLY_LIMIT_REACHED已达到配额上限
OUTSIDE_ALLOWED_HOURS当前不在账号的发送时段内
BLACKLISTED目标公司 / 域名已列入黑名单
APPROVAL_REQUIRED已排队,等待人工批准后发送
AI_CHECK_FAILED电子邮件未通过 Salesbot 检查——请按错误说明修正后重新发送
NO_EMAIL / INVALID_EMAIL / DUPLICATE_OUTREACH没有地址 / 地址无效 / 已在该电子邮件营销活动中排队
SAFETY_BLOCKED文本疑似包含提示词注入 / 未经请求的网址
REPLY_LIMIT_REACHED此对话中已发送 2 条 AI 回复
VALIDATION_ERROR / NOT_FOUND / UPSTREAM_ERROR输入有误 / 未找到 / 上游故障

安全与负责任的使用

  • 默认遵循 GDPR: 仅存储 B2B 外联所需的字段(姓名、标题、当前职位、所在地、个人资料链接、来源和日期);连续 12 个月没有活动的人员会被自动删除;任何提出异议的人都会被加入个人级别的禁止联系名单,此后绝不再保存或联系。用户是数据控制者,Salesbot 是数据处理者(数据处理协议见条款)。

内置 LinkedIn 算法防护和每日安全阈值。 这是一款关系维护工具,而非群发工具——它旨在发送少量高度个性化且经人工批准的消息,并由服务主动防止批量滥用:

  • 每个账号都有每日限额,新账号会逐步提高限额;MCP 每小时限流;并设有通用的每用户请求速率限制。
  • 每个账号单独设有发帖上限:每滚动小时最多发布 1 条 LinkedIn 帖子,包括组织帖子。
  • 出站操作设有人工审核队列(可配置)。
  • 设定允许操作的时段/日期,并在操作之间随机加入符合人工节奏的延迟。
  • 提示词注入防护: 将不可信的 CRM/收件箱文本视为数据;发送前会扫描出站文本。
  • 收件箱: 每段对话最多由 AI 回复 2 次(防止过量);回复也会经过注入扫描。
  • 账号保护: 如果 LinkedIn 封禁账号(提供方返回 403),系统会自动暂停营销活动并向用户发送邮件。

常见问题

哪些 AI 客户端可以使用? 任何 MCP Streamable-HTTP 客户端均可使用——claude.ai、Cowork、Claude Code、Claude Desktop、Claude API、Cursor、Codex 等。

AI 会看到我的 LinkedIn 密码吗? 不会。身份验证通过托管的提供方流程完成(在 auth.salesbot.cz 使用白标服务);MCP 服务只使用账号句柄。

AI 能在没有我参与的情况下发送消息吗? 只有在你关闭审核后才可以。默认情况下,出站操作会进入队列等待人工批准。

这对我的 LinkedIn 账号安全吗? 服务端会强制执行每日/每小时限额、逐步提高限额、允许操作的时段、随机延迟,以及检测到封禁时自动暂停。

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。