关于 LinkedIn MCP Server (Salesbot)
LinkedIn MCP Server (Salesbot) 是托管的 MCP 服务,供 AI 助手开展 LinkedIn 潜客研究、CRM 管理和个性化联络。它区分只读与写入操作,发送消息须经人工批准,并受服务端活动限额约束。
主要功能
- 01LinkedIn 潜客与公司研究
- 02联系人列表和 CRM 管理
- 03营销活动、消息与收件箱同步
- 04电子邮件和个人资料丰富
- 05人工批准与安全限额
适用场景
- 01查找并整理 LinkedIn 潜在联系人
- 02准备个性化联络内容供审核
- 03跟踪潜客、公司和销售任务
- 04通过 AI 客户端查看收件箱对话
MCP 相关
通过 Streamable HTTP 向 MCP 客户端提供 82 个工具,涵盖 LinkedIn 研究、CRM、消息和电子邮件操作。支持 OAuth 2.1 或 API 密钥连接;发送消息须经人工批准。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://app.salesbot.cz/api/mcpclaude mcp add --transport http cz-salesbot-linkedin https://app.salesbot.cz/api/mcp{"mcpServers":{"cz-salesbot-linkedin":{"type":"http","url":"https://app.salesbot.cz/api/mcp"}}}在 Cursor 中打开{"servers":{"cz-salesbot-linkedin":{"type":"http","url":"https://app.salesbot.cz/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"cz-salesbot-linkedin":{"type":"http","url":"https://app.salesbot.cz/api/mcp"}}}{"mcpServers":{"cz-salesbot-linkedin":{"serverUrl":"https://app.salesbot.cz/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://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 凭据。
- 关键词: 模型上下文协议、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 可以在不离开聊天的情况下完成:
- 调用
get_linkedin_status——查看 LinkedIn 是否已连接、处于活动状态或被屏蔽。 - 如果尚未连接,调用
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_LIMITED | MCP 请求过多——请放慢速度 |
ACCOUNT_NOT_CONNECTED | 个人资料未连接 LinkedIn(调用 connect_linkedin) |
ACCOUNT_BLOCKED | LinkedIn 限制了该账号(营销活动已自动暂停) |
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。