mcpField
L
LinkedIn Toolkit

LinkedIn Toolkit

本地服务
github.com社交媒体133 周前更新

关于 LinkedIn Toolkit

LinkedIn Toolkit 通过本机已登录的 Chrome 会话,为 Agent 提供 LinkedIn 搜索、资料提取和外联管理能力。它适合需要本地数据处理与人工审批的自动化流程,并设有不可由客户端提高的操作上限。

主要功能

  1. 01搜索并提取资料与列表
  2. 02管理联系人标签和意向信号
  3. 03创建带分支的外联序列
  4. 04统一收件箱与回复检测
  5. 05人工审批队列及操作限额
  6. 06本地存储并支持只读 SQL

适用场景

  1. 01从搜索结果建立潜在联系人列表
  2. 02按条件安排访问、邀请和消息
  3. 03整理收件箱并标记回复情绪
  4. 04从 CSV 生成联系人研究档案

MCP 相关

提供 39 个 MCP 工具、4 个资源和 3 个提示词,可通过 stdio 或 Streamable HTTP 接入客户端;另有 HTTP API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"formatixai-linkedin-toolkit": {
"command": "npx",
"args": [
"-y",
"linkedin-toolkit-mcp"
],
"env": {
"LINKEDIN_TOOLKIT_HOME": "<LINKEDIN_TOOLKIT_HOME>"
}
}
}
}
启动命令npx -y linkedin-toolkit-mcp
需要配置的环境变量
LINKEDIN_TOOLKIT_HOMEDirectory for the local SQLite mirror and config. Defaults to ~/.linkedin-toolkit.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmlinkedin-toolkit-mcp2.1.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LinkedIn 工具包

许可证:MIT MCP 无无头浏览器 本地运行 CI

LinkedIn 会拦截 AI 浏览器 Agent。这是 Agent 登入的方式。

Operator、Browser Use、计算机使用模型和 Playwright 机器人在 LinkedIn 上会受到质疑或被封禁:无头浏览器指纹、数据中心 IP、机器速度的点击。LinkedIn Toolkit 通过与 LinkedIn 页面本身相同的内部端点,为任何 Agent 提供一个安全、结构化的 API,连接到你自己已登录的 Chrome 会话;操作速度符合真人节奏,设有严格上限,并配备人工审批队列。如果你完全不使用 Agent,它也可以免费替代 Waalaxy 和 PhantomBuster。无需无头浏览器、代理、云端会话、遥测或订阅。

Agent 通过你自己的浏览器会话搜索 LinkedIn,起草五条添加联系人的留言,并将每条留言都放入审批队列

▶ 无需安装即可试用 · 安装指南 · 高画质 MP4

录制于工具包自带的演示模式(lit serve --http --fake)。每次工具调用都是真实的;其中所有人都是虚构的。

## 快速开始

执行一条命令,然后在 Chrome 中点击三次。

npx linkedin-toolkit-mcp setup --client claude-code

这会下载适用于你所用版本的扩展程序、进行校验、将其解压到 ~/.linkedin-toolkit/extension,打印配对令牌,等待扩展程序连接, 并将 MCP 配置块写入客户端自己的配置文件,同时保留其中的其他所有服务并先备份文件。--client 接受 claude-desktop、claude-code、 cursor、windsurf、vscode、n8n 或 print;添加 --dry-run 可查看它会执行哪些操作, 但不会实际更改任何内容。

然后完成 Chrome 不允许任何安装程序替你执行的三个步骤:

  1. 打开 chrome://extensions——在地址栏中输入;通过搜索无法找到此页面。
  2. 在右上角开启 开发者模式。
  3. 点击 加载已解压的扩展程序,然后选择安装程序打印出的文件夹。

将配对令牌粘贴到弹出窗口 → Settings → Local bridge,并检查连接是否成功:

lit status
想手动操作,或者只要扩展程序、不需要 Agent?

从 Releases 页面下载 linkedin-toolkit-extension-v*.zip, 解压到一个固定位置(Chrome 每次启动时都会从该文件夹加载扩展程序),然后完成 上述三个步骤。运行 npx linkedin-toolkit-mcp 获取配对令牌,并从 docs/clients.md 中复制适用于你客户端的配置块。

docs/install.md 提供了相同的安装步骤,并附有截图,适合从未加载过未打包扩展程序的用户。

批量取消关注——先预览,再少量操作,最后处理其余对象——请参阅 docs/install.md。在判断此功能失效之前,请先阅读“关注也包括人脉”一节:LinkedIn 的“关注中”列表不包含你的人脉;你与对方建立人脉连接时会自动关注对方,因此即使将该列表清空,动态仍会充满帖子。勾选“同时取消关注我的人脉”会改为扫描你的关注者列表,因为只有这里能查看这一状态。

每个客户端的配置文件、路径和格式:docs/clients.md · 每个生态系统各有一页。

不使用 MCP?lit serve --http 会提供 POST /actions/{action} 和生成的 GET /openapi.json。七种语言的示例。

重要

未经你的允许,不会发送任何内容。 默认启用 Copilot 模式:Agent 发出的每项写入操作都会进入队列,等待你在弹出窗口中批准。扩展程序内置了硬性上限——每天 100 次邀请、150 条消息、500 次个人资料访问、1,000 条搜索结果——任何 Agent、CLI 标志或配置文件都无法提高这些上限。开启 Autopilot 前,请先阅读安全说明。

功能

提取个人资料(完整页面文本 + 照片)、搜索、Sales Navigator、Recruiter、帖子的点赞者和评论者、群组成员、活动参与者、公司员工、你自己的联系人和关注者、消息会话。导出为 CSV、JSON 和 SQLite。
列表和 CRM命名列表、标签、跨列表去重、每份个人资料上的“曾联系”标记,以及意向信号:与帖子互动、最近 90 天内换工作、在目标公司任职。
序列访问、关注、发送带备注的联系邀请、发送消息、InMail、点赞、评论、等待,以及根据 N 天后是否接受/回复/未接受进行分支。支持带回退值的变量、每个步骤的 A/B 变体;收到回复后停止序列。20 个模板。
收件箱统一的会话、未读消息、回复检测、情感标记、已保存的回复、稍后处理。
研究包输入姓名或域名的 CSV;输出档案、补充信息后的 CSV 和列表。下文。
Agent 层39 个 MCP 工具、4 个资源、3 个提示词、带 OpenAPI 3.1 的 /actions HTTP API、Node 和 Python 客户端、一个 n8n 节点、6 个技能。
安全性带随机抖动的人性化延迟、每小时和每日上限、工作时间、14 天预热、账户预设、审批队列、429 退避;遇到任何安全检查时(451 或重定向至检查点)自动暂停。
所有数据都在本地你设备上的 chrome.storage.local、IndexedDB 和 SQLite 文件。可对所有数据进行只读 SQL 查询。无需服务端、账户或遥测。

与你的 Agent 配合使用

生态系统方式
Claude Code、Claude Desktop、Cursor、Windsurf、Zed、Cline、OpenClaw、Codex CLI、Gemini CLInpx linkedin-toolkit-mcp通过 stdio 使用 MCP · 各客户端的配置
远程和托管 Agent(Claude API MCP connector、ChatGPT connectors、Cloudflare Agents)lit serve --http通过 Streamable HTTP 使用 MCP,令牌身份验证 · 风险
OpenAI Agents SDK、Vercel AI SDK、LangChain.js、Mastranpm i linkedin-toolkit类型化客户端 + 工具定义 · 示例
LangChain、LlamaIndex、CrewAI、AutoGen、Google ADK、Pydantic AI、smolagentspip install linkedin-toolkitPython 客户端 + 各框架的 @tool 封装 · 示例
n8n、Make、Dify、Flowisen8n-nodes-linkedin-toolkit + MCP 客户端节点提供搜索、个人资料、邀请、消息、收件箱节点,以及由 webhook 触发的触发器 · 工作流
任意 HTTP Agentlit serve --httpGET /openapi.json — 面向自定义 GPT、Dify 和代码生成器的 OpenAPI 3.1
Agent Skills 标准skills/六种技能,无需修改即可在 Claude Code、OpenClaw 和任何兼容运行时中加载

结构化错误包含 code、message、retryAfter 和 howToFix,因此 Agent 可以自行恢复或解释问题,而不是反复重试直到碰壁。这里提供了 llms.txt 和专为 Agent 阅读并自行安装而编写的快速入门。

浏览器 Agent 与 LinkedIn Toolkit 对比

浏览器 AgentLinkedIn Toolkit
会话无头浏览器或远程控制的浏览器、云端配置文件你自己的 Chrome、你自己的登录账号
指纹合成指纹——经过修补,但依然可被检测你的真实浏览器。无需修补
IP数据中心 IP,或来源可疑的住宅代理你自己的网络连接
检测遭遇挑战、功能降级,随后受限指纹或 IP 没有变化;活动量和节奏仍可见,这就是设置上限的原因
Agent 看到的内容屏幕截图、视觉令牌、脆弱的选择器每个工具返回的类型化 JSON
获取 100 份个人资料的成本数百张屏幕截图3 次工具调用
速度机器速度加入随机抖动的人工延迟、仅限工作时间、逐步预热
限制LinkedIn 施加限制之前没有限制硬性上限,任何客户端都无法提高
遇到验证挑战时重试,导致情况更糟停止所有操作并告知人工
人工监督取决于你记得实现什么默认启用的审批队列

更详细的说明,以及实际检测机制: 为什么浏览器 Agent 在 LinkedIn 上会失败。

为什么扩展程序会失效,以及为什么这个扩展程序的设计便于修复

LinkedIn 的网页客户端现在几乎通过 GET /voyager/api/graphql?queryId=<name>.<32-hex hash>&variables=(...)提供所有数据,而这些哈希会随每次网页客户端发布而变化(当前版本:1.13.46474)。2024–2025 年一代扩展程序硬编码的旧版 REST Voyager 路径如今会返回 400、410 或 500。这就是问题的根源——不是一波封禁。本扩展程序在你自己的标签页内调用页面所调用的相同 GraphQL 查询,并将每个查询 ID 及其捕获日期和客户端版本保存在一个可刷新的表中: docs/voyager-endpoints.md。lit endpoints check 会报告哪些端点正常、失败或尚未验证;lit endpoints doctor 会指出哈希已过时的查询 ID 及表中存放该 ID 的键,因此漂移只需作为维护任务处理,无需更改架构。

坦白说:这些 ID 确实会漂移,而重新捕获它们正是本项目最需要的贡献。这只需编辑表格,无需重写——在 LinkedIn 中打开 DevTools,在 Network 标签页中筛选 voyager/api,然后从页面发出的请求中复制 queryId;如果你更愿意用 grep 搜索,同样的哈希也以字面字符串的形式存在于 LinkedIn 的 JS 包中。

与付费工具相比

Waalaxy ProPhantomBuster StarterSales-MindLinkedIn Toolkit
价格~€70/月~$69/月~$99/月£0
源码闭源闭源闭源全部采用 MIT 许可证
自动化运行位置他们的云端 (扩展程序仅负责导入)他们的云端他们的云端你自己的 Chrome 标签页
你的会话在他们的服务器上在他们的服务器上在他们的服务器上绝不会离开你的设备
MCP 服务✗✗✗✓
Agent 工具 / SDK✗✗✗✓ 39 个工具,9 个框架
对你的数据执行本地 SQL✗✗✗✓
审批队列✗✗✗✓ 默认启用
带分支的序列✓部分支持✓✓
帖子互动者、群组、活动✓✓部分支持✓
收件箱和情感分析✓✗✓✓
团队席位、仪表板✓✓✓✗ (需要服务器——请参阅路线图)
遥测✓✓✓✗

竞争对手的价格为截至 2026 年 9 月查到的公开标价,仅供参考——价格会变动,也会因币种和计费周期而异,各供应商的套餐档位也不相同。功能信息来自各供应商的公开产品页面,同样截至 2026 年 9 月查阅,套餐内容也可能变动。在做决定前请查看他们的网站。欢迎通过 PR 提交更正——如果我们的功能信息有误,请提交 PR,我们会修正。
Waalaxy 一栏的来源:其当前的 Chrome 扩展程序列表,“Alien Copilot”,由 Waapi(蒙彼利埃)发布——v1.1.3,于 2026 年 8 月更新,约有 2,000 名用户,3 条评分,平均 3.0★。该扩展程序自称“你的 Waalaxy 助手,帮助你导入潜在客户”。根据该列表,扩展程序会将潜在客户导入 Waalaxy,自动化则在 Waalaxy 的服务器上使用你的会话运行。列表详情查阅于 2026 年 9 月。

研究资料包

导入一个 CSV 文件,其中包含 name、linkedin_url、email、domain、company 中任意字段。每行都会生成一份档案,并返回一个补充完善后的 CSV 和一个新列表——所有数据都在本地处理。

lit research leads.csv --out ./packs
  1. 匹配 — 为每行匹配个人资料或公司。对于有歧义的行,会返回候选项和置信度分数,供你选择,而不是悄悄猜测。
  2. 收集 — 完整的个人资料采集、公司主页、近期帖子和互动、共同联系人、关系状态。
  3. 信号 — 过去 90 天内的职位变动、近期发帖活动、招聘信号、员工人数范围、共同联系人、与我互动过。
  4. 补充信息 (可选,使用你自己的密钥,默认关闭) — 已验证的邮箱和电话号码。
  5. 网络信息 — linkedin-research-pack 技能 会让你的 Agent使用自己的网络搜索,查找新闻、演讲、GitHub 和播客,并将结果及来源写入资料包。扩展程序绝不会爬取开放网络。
  6. 输出 — 每行生成 pack.md 和 pack.json,并生成一个 output.csv,其中包含所有原始列,以及匹配后的 URL、职位、公司、位置、信号和匹配置信度;此外还会生成一个新列表。

全程都有配额限制:匹配会消耗搜索配额,采集会消耗访问配额。处理 500 行 CSV 按设计需要多天,而且你会提前看到预计完成时间。

安全

坦诚地说:**LinkedIn 的《用户协议》禁止自动化访问。**此工具会自动化操作 LinkedIn。以下内容都无法将风险降为零。

它确实做到了以下几点:

  • 在扩展程序中设置硬性上限,且优先级高于所有客户端:每天 100 个邀请、150 条消息、500 次个人资料访问、1,000 条搜索结果。config.set 会将你传入的值限制在上限内。
  • 模拟真人节奏——间隔随机抖动为 8–15 秒,设有每小时上限和营业时间窗口,还可选择仅在工作日运行。机器速度的活动是账号能发出的最明显信号。
  • 新账号或休眠账号设有 14 天预热期。
  • 副驾驶模式——每项 Agent 写入操作都会排队等待你批准。只有人类能在弹出窗口中切换自动驾驶。即使批准了,也不代表会立即发送:引擎仍会控制发送节奏。
  • **遇到 429 → 退避。遇到安全检查 → 停止。**遇到 CAPTCHA 或“确认是你本人”的检查时——无论它以 451 响应,还是像通常那样重定向到 LinkedIn 的验证页面——都会立即暂停所有请求,并保持暂停,直到你亲自完成检查并在弹出窗口中确认。代码库中没有任何重试循环。
  • **绝不绕过安全措施。**不破解 CAPTCHA、不规避挑战、不使用代理、不伪造指纹、不导入 Cookie,也不会使用你未登录的账号。触发检查的原因、工具包会做什么、你应该做什么,以及我们不会构建什么,请参阅:docs/captcha-and-security-checks.md。

它不会让你隐身。在你自己的会话中运行,可以去除导致浏览器 Agent 被发现的指纹和 IP 信号——但这对你做了多少或做得多规律毫无影响,而 LinkedIn 会同时统计这两项。这正是设置上限和发送节奏且不能超过上限调整的原因:简单的识别信号消失后,它们就是仅剩的防护措施。一个每天以完美间隔发送 90 个邀请的账号,仍然是一个每天发送 90 个邀请的账号。

建议设置、应停止操作的迹象以及你的数据保护义务: docs/safety.md。

架构

flowchart LR
    A["Your agent<br/>Claude · Cursor · LangChain<br/>CrewAI · n8n · curl"]
    M["linkedin-toolkit-mcp<br/><i>your machine</i><br/>MCP · HTTP · SQLite · CLI"]
    E["Extension engine<br/><i>your Chrome</i><br/>quotas · delays · queue<br/>campaigns · lists"]
    Q["Approval queue<br/><i>you</i>"]
    L["LinkedIn<br/><i>your session, your cookies,<br/>your IP, your device</i>"]

    A -->|"MCP stdio / HTTP"| M
    M <-->|"ws://127.0.0.1:47829"| E
    E --> Q
    Q -->|"you approve"| E
    E -->|"Voyager API, human pace"| L

同一个引擎,多个客户端:弹出窗口、CLI、MCP 工具调用和营销活动步骤都会经过相同的 handle(action, params, origin) 分派逻辑。上限和队列位于它下方,因此没有任何绕过它们的路径——只有一条路径。完整架构 · 操作约定 · 工具参考。

CLI

lit 与服务打包在同一个 npm 包中。

lit setup --client cursor                                # install, pair, configure. Start here
lit status
lit search "CTO fintech London" --source salesnav --count 100 --csv out.csv
lit profile https://www.linkedin.com/in/... --full --json
lit engagers <post-url> --list "Post engagers 8 Sep"
lit invite <profile-url> --note "..."                    # queues in Copilot mode
lit campaign create --from sequences/warm-connect.json --list "Data leads"
lit inbox --since 24h --sentiment
lit research leads.csv --out ./packs
lit sql "select company, count(*) from profiles group by 1 order by 2 desc limit 20"
lit export --table profiles --csv
lit serve --http                                         # HTTP MCP + /actions + /openapi.json

完整参考 · Shell 示例。

你的数据存储在 SQLite 文件中

你捕获的所有内容都会同步到 ~/.linkedin-toolkit/toolkit.db。Agent 可以通过只读 SQL 查询数据——无需网络、无需配额、没有速率限制——你也可以用任何 SQLite 工具打开同一个文件。

-- Who accepted an invite but never replied
SELECT p.full_name, p.company, p.headline, a.created_at
FROM actions a
JOIN profiles p ON p.public_id = a.public_id
WHERE a.action = 'outreach.invite' AND a.accepted = 1
  AND p.public_id NOT IN (SELECT from_public_id FROM messages)
ORDER BY a.created_at DESC;
lit sql "select company, count(*) n from profiles group by 1 order by n desc limit 20"

Agent 可以通过 linkedin_query_sql 和 { "sql": "SELECT …" } 访问相同的数据。仅允许使用 SELECT——其他操作都会被拒绝。

Webhook

服务会向你设置的 URL 发送 POST 请求,内容为 { event, payload }——事件包括 invite_accepted、reply_received、positive_reply、campaign_step_done、campaign_completed、quota_hit、challenge_detected、queue_item_added、queue_item_sent、campaign_note_truncated、research_progress、research_completed。

lit config set webhookUrl https://your-n8n/webhook/linkedin-events

可导入的 n8n 工作流会用它们完成显而易见的流程:邀请被接受 → profile.get → 大模型起草第一条消息 → 消息进入队列 → Slack 请人审核 → 审批链接 → queue.approve。

技能

六个采用 Agent Skills 格式的任务配方。它们承载着防护原则——只陈述事实、关注配额、将审批队列作为预期去向——而不只是工具的调用顺序。

cp -r skills/* ~/.claude/skills/        # or ~/.openclaw/skills/, or ./.claude/skills/

linkedin-sourcer · linkedin-outreach-writer · linkedin-campaign-runner · linkedin-profile-to-dossier · linkedin-reply-triage · linkedin-research-pack

路线图

了解即将推出的内容,以及那些永远不会构建的功能——因为它们需要服务端,或会破坏本地优先的保障:docs/roadmap.md。

贡献

添加提取器是最适合作为首次贡献的工作,只需修改四个文件: 如何构建提取器。序列、技能和 Agent 集成因增量式且独立完整,合并速度最快。

请参阅 CONTRIBUTING.md,认领一个 适合新手的问题,或 发起一场 讨论。

免责声明

本软件按「原样」提供,不附带任何形式的保证。 作者和贡献者对因使用本软件而产生的任何后果不承担责任或义务,包括但不限于:

  • LinkedIn 账号受限、暂停或永久封禁
  • 连接、数据或账号访问权限丢失
  • 违反 LinkedIn 的服务条款或用户协议
  • 任何直接、间接、附带或后果性损害

使用本软件即表示你确认:

  1. LinkedIn 的用户协议禁止自动化工具和抓取,使用本软件可能违反该协议
  2. 这样做可能导致 LinkedIn 对你的账号采取措施,甚至永久封禁
  3. 你仅在自己的账号上使用本软件,并且使用的是你亲自登录的会话
  4. 你对使用本软件采取的每项操作,以及对 GDPR、UK GDPR、CCPA 或任何适用于你所收集个人数据的同等法律所规定的义务,承担全部责任
  5. 你完全自行承担使用风险

本工具绝不会绕过安全措施:不破解 CAPTCHA、不规避质询、不逃避检测、不使用代理、不窃取 Cookie、不共享会话,也不使用你未登录的账号。当 LinkedIn 设置障碍时,本工具会停止,并将问题交由你处理。

本软件仅供教育和研究用途。我们不鼓励或认可违反任何平台服务条款的行为。

许可证

MIT。

贡献者

本项目使用 all-contributors。此处会认可任何形式的贡献——代码、文档、序列、技能、错误报告和设计。

如需添加贡献者,请在任意 Issue 或 PR 下评论:

@all-contributors please add @username for code, doc

致谢

由 Dominic Gonsalves 构建 — LinkedIn · GitHub

如果觉得有用,请点个星,帮助其他人发现这个项目。

Star History Chart

评论

支持 Markdown

第一次接触 MCP?

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

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