LinkedIn Toolkit について
LinkedIn Toolkitは、ログイン済みのChromeセッションを通じて、エージェントに検索、プロフィール取得、アウトリーチ管理機能を提供します。ローカル処理と人による承認を想定し、クライアントから変更できない操作上限を設けています。
主な機能
- 01プロフィールやリストの検索・抽出
- 02連絡先タグと関心シグナルの管理
- 03分岐のあるアウトリーチシーケンス
- 04統合受信トレイと返信検出
- 05承認キューと操作上限
- 06読み取り専用SQL対応のローカル保存
活用シーン
- 01検索結果から見込み客リストを作成
- 02プロフィール閲覧、招待、メッセージの予定設定
- 03受信トレイの整理と返信感情のタグ付け
- 04CSVから連絡先リサーチパックを作成
MCP 対応
39個のMCPツール、4個のリソース、3個のプロンプトを提供し、stdioまたはStreamable HTTPでクライアントに接続します。HTTP APIも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Operator、Browser Use、コンピューター操作モデル、Playwright ボットは、LinkedIn で追加認証を求められたり、アカウントを停止されたりします。原因は、ヘッドレスブラウザーのフィンガープリント、データセンターの IP アドレス、人間離れした速度のクリックです。LinkedIn Toolkit は、LinkedIn のページ自体が呼び出すものと同じ内部エンドポイントを介して、ログイン済みのご自身の Chrome セッションに、あらゆるエージェントが安全にアクセスできる、構造化された API を提供します。操作は人間のペースで行われ、厳格な上限が設けられ、人間による承認キューも備えています。また、エージェントを一切使わない場合でも、Waalaxy や PhantomBuster に無料で置き換えられます。ヘッドレスブラウザーも、プロキシも、クラウドセッションも、テレメトリーも、サブスクリプションも不要です。

▶ インストールせずに試す · インストールガイド · 高画質 MP4
ツールキット独自のデモモード(lit serve --http --fake)で録画しています。ツール呼び出しはすべて実際のもので、登場する人物はすべて架空です。
コマンドを1つ実行して、Chromeで3回クリックします。
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 の仕様上、インストーラーでは代わりに実行できない3つの手順を行います。
chrome://extensionsを開きます。アドレスバーに入力してください。検索では表示されません。- 右上にある デベロッパーモード をオンにします。
- パッケージ化されていない拡張機能を読み込む をクリックし、セットアップ時に表示されたフォルダーを選択します。
ペアリングトークンをポップアップ → Settings → Local bridge に貼り付け、接続を確認します。
lit status
手動で行いたい場合、または拡張機能だけを使い、エージェントを使わない場合
リリースページから
linkedin-toolkit-extension-v*.zip をダウンロードし、永続的に保存する場所に解凍します(Chrome は起動するたびにそのフォルダーから読み込みます)。その後、上記の3つの手順を行います。
ペアリングトークンを取得するには 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 を利用できます。7つの言語でのサンプルをご覧ください。
重要
あなたの承認なしに送信されることはありません。 デフォルトでは Copilot モードが有効です。エージェントが行う書き込み操作はすべて、ポップアップでの承認待ちになります。上限は拡張機能に組み込まれており、1日あたり招待100件、メッセージ150件、プロフィール閲覧500件、検索結果1,000件です。エージェント、CLI フラグ、設定ファイルのいずれでも上限を引き上げることはできません。Autopilot を有効にする前に、安全性に関するページをお読みください。
できること
| 抽出 | プロフィール(ページ全体のテキスト+写真)、検索、Sales Navigator、Recruiter、投稿への「いいね」とコメントをした人、グループメンバー、イベント参加者、会社の従業員、自分のつながりとフォロワー、メッセージスレッドを抽出できます。CSV、JSON、SQLite に出力できます。 |
| リストと CRM | 名前付きリスト、タグ、リスト間の重複排除、すべてのプロフィールに付く「以前に連絡済み」フラグ、インテントシグナル(投稿へのエンゲージメント、過去90日以内の転職、ターゲット企業への在籍)に対応しています。 |
| シーケンス | 訪問、フォロー、メモ付きでつながり申請、メッセージ、InMail、「いいね」、コメント、待機、承認済み/返信あり/N日後も未承認に応じた分岐に対応しています。フォールバック付き変数、ステップごとの A/B バリアント、返信時のシーケンス停止も利用できます。20個のテンプレートがあります。 |
| 受信トレイ | スレッドの統合、未読、返信の検出、センチメントのタグ付け、返信の保存、スヌーズに対応しています。 |
| リサーチパック | 名前またはドメインの CSV を入力すると、人物情報、データを補完した CSV、リストを出力します。以下をご覧ください。 |
| エージェントレイヤー | MCP ツール39個、リソース4個、プロンプト3個、OpenAPI 3.1 対応の /actions HTTP API、Node および Python クライアント、n8n ノード、スキル6個を備えています。 |
| 安全性 | 人間らしいランダムな遅延、時間ごとおよび日ごとの上限、営業時間、14日間のウォームアップ、アカウントのプリセット、承認キュー、429 エラー時のバックオフ、セキュリティチェック(451 またはチェックポイントへのリダイレクト)発生時の自動一時停止に対応しています。 |
| すべてローカル | お使いのマシンの chrome.storage.local、IndexedDB、SQLite ファイルに保存されます。全データに対する読み取り専用 SQL を利用できます。サーバーもアカウントもテレメトリも不要です。 |
エージェントとの連携
| エコシステム | 方法 | |
|---|---|---|
| Claude Code、Claude Desktop、Cursor、Windsurf、Zed、Cline、OpenClaw、Codex CLI、Gemini CLI | npx linkedin-toolkit-mcp | stdio 経由の MCP · クライアントごとの設定 |
| リモートおよびホスト型エージェント(Claude API MCP コネクター、ChatGPT コネクター、Cloudflare Agents) | lit serve --http | Streamable HTTP 経由の MCP、トークン認証 · リスク |
| OpenAI Agents SDK、Vercel AI SDK、LangChain.js、Mastra | npm i linkedin-toolkit | 型付きクライアント+ツール定義 · 例 |
| LangChain、LlamaIndex、CrewAI、AutoGen、Google ADK、Pydantic AI、smolagents | pip install linkedin-toolkit | Python クライアント+各フレームワーク用の @tool ラッパー · 例 |
| n8n、Make、Dify、Flowise | n8n-nodes-linkedin-toolkit + MCP クライアントノード | 検索、プロフィール、招待、メッセージ、受信トレイ用のノードに加え、Webhook でトリガー · ワークフロー |
| あらゆる HTTP エージェント | lit serve --http | GET /openapi.json — カスタム GPT、Dify、コード生成ツール向けの OpenAPI 3.1 |
| Agent Skills 標準 | skills/ | Claude Code、OpenClaw、準拠するあらゆるランタイムでそのまま読み込める6つのスキル |
構造化エラーには code、message、retryAfter、howToFix が含まれるため、エージェントは無駄に再試行するのではなく、復旧するか、問題を説明できます。
llms.txt と、エージェントが読み込んで自分でインストールできるように作成されたエージェント向けクイックスタートも用意されています。
ブラウザーエージェントとLinkedIn Toolkitの比較
| ブラウザーエージェント | LinkedIn Toolkit | |
|---|---|---|
| セッション | ヘッドレスまたはリモート操作のブラウザー、クラウドプロファイル | 自分のChrome、自分のログイン |
| フィンガープリント | 人工的なもの — パッチが適用されていても検出可能 | 実際に使っている自分のブラウザー。パッチは不要です |
| IP | データセンター、または出所の疑わしい住宅用プロキシ | 自分の接続 |
| 検出 | チャレンジが表示され、機能が制限され、その後アクセスが制限されます | フィンガープリントやIPの変化はありません。ただし、利用量と頻度は引き続き確認されるため、上限が設定されています |
| エージェントが見るもの | スクリーンショット、ビジョントークン、壊れやすいセレクター | ツールごとに型定義されたJSON |
| 100件のプロフィールを取得するコスト | 数百枚のスクリーンショット | 3回のツール呼び出し |
| ペース | マシンの速度 | ランダムな人間らしい遅延、営業時間、ウォームアップ |
| 制限 | LinkedInが制限を課すまではなし | クライアント側から引き上げられない厳格な上限 |
| チャレンジが表示された場合 | 再試行して、状況を悪化させます | すべてを停止し、人間に通知します |
| 人間による監督 | 実装時に何を組み込んだかによります | 承認キュー。デフォルトで有効です |
実際の検出メカニズムについての詳しい説明はこちらです: ブラウザーエージェントがLinkedInで失敗する理由。
拡張機能が動かなくなった理由と、この拡張機能が修復しやすく設計されている理由
現在、LinkedInのウェブクライアントは、ほぼすべてのデータを
GET /voyager/api/graphql?queryId=<name>.<32-hex hash>&variables=(...) 経由で提供しており、ハッシュはウェブクライアントのリリースごとに変わります(現在:1.13.46474)。2024~2025年に登場した拡張機能がコードに固定していた旧REST Voyagerパスは、現在では400、410、または500を返します。これが仕組みであり、BANの波ではありません。この拡張機能は、自分のタブ内からページと同じGraphQLクエリを呼び出し、すべてのクエリIDを取得日とクライアントバージョンとともに、更新可能な1つのテーブルで管理します:
docs/voyager-endpoints.md。lit endpoints check は、どのエンドポイントが正常、失敗、未検証なのかを報告します。また、lit endpoints doctor は、ハッシュが古くなったクエリIDと、それを保持するテーブル内のキーを示すため、仕様変更への対応はアーキテクチャの変更ではなく、保守作業で済みます。
率直に言うと、これらのIDは必ず変わるため、再取得することがこのプロジェクトにとって最も必要な貢献です。必要なのはテーブルの編集であり、書き直しではありません。LinkedInでDevToolsを開き、Networkタブでvoyager/apiを絞り込み、ページが送信するリクエストからqueryIdをコピーしてください。同じハッシュはLinkedInのJSバンドル内にもリテラル文字列として含まれているので、必要であればgrepで検索できます。
有料ツールとの比較
| Waalaxy Pro | PhantomBuster Starter | Sales-Mind | LinkedIn Toolkit | |
|---|---|---|---|---|
| 価格 | 約€70/月 | 約$69/月 | 約$99/月 | £0 |
| ソース | 非公開 | 非公開 | 非公開 | すべてMITライセンス |
| 自動化の実行場所 | 相手側のクラウド (拡張機能はインポートのみ) | 相手側のクラウド | 相手側のクラウド | ご自身のChromeタブ |
| セッション | 相手側のサーバー上 | 相手側のサーバー上 | 相手側のサーバー上 | お使いのマシンから外部に送信されません |
| MCP サーバー | ✗ | ✗ | ✗ | ✓ |
| エージェント用ツール/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月に確認しました。
リサーチパック
name、linkedin_url、email、domain、companyのいずれかを含むCSVを追加してください。各行の調査資料、情報を補完したCSV、リストをすべてローカルで取得できます。
lit research leads.csv --out ./packs
- 照合 — 各行をプロフィールまたは企業に照合します。曖昧な行は、推測で決めつけず、候補と信頼度スコアを提示するので、選択できます。
- 情報収集 — プロフィール全体の取得、企業ページ、最近の投稿とエンゲージメント、共通のつながり、つながりの状況を収集します。
- シグナル — 過去90日以内の転職、最近の投稿アクティビティ、採用シグナル、従業員数の範囲、共通のつながり、自分の投稿へのエンゲージメント。
- 情報補完 (任意。ご自身のキーを使用し、デフォルトでは無効) — 検証済みのメールアドレスと電話番号。
- ウェブ —
linkedin-research-packスキルを使うと、ご自身のエージェントが独自のウェブ検索でニュース、講演、GitHub、ポッドキャストを調査し、出典とともにパックに記載します。拡張機能がオープンウェブをクロールすることはありません。 - 出力 — 各行の
pack.mdとpack.json、元のすべての列に照合済みURL、役職、会社、所在地、シグナル、照合信頼度を加えたoutput.csv、および新しいリストを作成します。
全工程に上限が適用されます。照合では検索クォータを消費し、取得では訪問クォータを消費します。500行のCSVは仕様上、複数日にわたる作業になります。所要時間の見積もりは事前に確認できます。
安全性
率直に言うと、LinkedIn のユーザー契約では自動アクセスが禁止されています。 このツールは LinkedIn を自動化します。以下の対策を講じても、そのリスクがゼロになるわけではありません。
このツールが行うこと:
- 拡張機能内で厳格な上限を設定し、すべてのクライアントに適用します。1 日あたり招待 100 件、メッセージ 150 件、プロフィール訪問 500 件、検索結果 1,000 件です。
config.setで指定した値は上限内に制限されます。 - 人間らしいペース — 8~15 秒のランダムな遅延、時間ごとの上限、営業時間内のみの実行、必要に応じて平日のみの実行を設定できます。機械的な速度での操作は、アカウントが発し得る最も目立つシグナルです。
- 新規アカウントや休眠アカウント向けの 14 日間のウォームアップ。
- Copilot モード — エージェントによる書き込み操作はすべて、承認待ちキューに入ります。オートパイロットの切り替えは、ポップアップで人間だけが行えます。承認しても送信されるわけではありません。エンジンは引き続きペースを調整します。
- 429 → バックオフ。セキュリティチェック → 停止。 CAPTCHA や「本人確認」のチェックが表示された場合は、451 が返されたときでも、通常どおり LinkedIn のチェックポイントページにリダイレクトされたときでも、すべてのリクエストがただちに一時停止し、ポップアップで自分でチェックを完了したことを伝えるまで停止状態が続きます。コードベースのどこにも再試行ループはありません。
- セキュリティ対策を回避することは決してありません。 CAPTCHA の解決、チャレンジの回避、プロキシ、フィンガープリントの偽装、Cookie のインポート、サインインしていないアカウントの利用は行いません。チェックの発生条件、ツールキットの動作、ユーザーがすべきこと、そして開発しない機能については、docs/captcha-and-security-checks.md をご覧ください。
このツールが行わないのは、ユーザーの存在を隠すことです。自分のセッション内で実行すれば、ブラウザーエージェントが検知される原因となるフィンガープリントや IP のシグナルはなくなりますが、操作の 量 や 頻度 には影響しません。LinkedIn はその両方を記録します。そのため、上限と実行ペースには変更できない上限を設けています。簡単に見抜かれる要素がなくなった後に残る、唯一の防御策だからです。1 日に 90 件の招待を完璧に間隔を空けて送信しても、そのアカウントが 1 日に 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
1 つのエンジンを複数のクライアントで利用します。ポップアップ、CLI、MCP ツール呼び出し、キャンペーンのステップはすべて、同じ handle(action, params, origin) スイッチを経由します。上限とキューはその下にあるため、迂回する経路はありません。経路は 1 つだけです。アーキテクチャの全容 ·
アクションの仕様 · ツールのリファレンス。
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
データは SQLite ファイルに保存されます
取得したデータはすべて ~/.linkedin-toolkit/toolkit.db に反映されます。エージェントはこのファイルに対して読み取り専用の 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"
エージェントは linkedin_query_sql に { "sql": "SELECT …" } を渡して同じデータにアクセスできます。SELECT のみ許可され、それ以外は拒否されます。
Webhook
サーバーは、設定した URL に { event, payload } を POST します。イベントは 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 → LLM が最初のメッセージの下書きを作成 → キューに追加 → Slack で人間に確認 → 承認リンク → queue.approve。
スキル
Agent Skills 形式の6つのタスクレシピです。ツールの手順だけでなく、 事実のみ、クォータへの配慮、承認キューを想定される送信先とする、といったガードレールも 含まれています。
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をご覧ください。
貢献
エクストラクターの追加は、最初の貢献として最適で、4つのファイルに手を加えます。 作成方法はこちら。シーケンス、スキル、エージェント連携は、 追加的で自己完結しているため、最も速くマージされます。
CONTRIBUTING.mdを確認し、 初めての貢献に適したイシューに取り組むか、 ディスカッションを開始してください。
免責事項
本ソフトウェアは「現状有姿」で提供され、いかなる種類の保証もありません。 作成者および貢献者は、 以下を含みますがこれらに限定されない、本ソフトウェアの使用から生じるあらゆる結果について、 一切の責任を負いません。
- LinkedInアカウントの制限、停止、または永久停止
- つながり、データ、またはアカウントへのアクセスの喪失
- LinkedInの利用規約またはユーザー契約への違反
- 直接的、間接的、偶発的、または結果的な損害
本ソフトウェアを使用することで、以下を了承したものとします。
- LinkedInのユーザー契約では自動化ツールとスクレイピングが禁止されており、本ソフトウェアの使用は違反となる可能性があります
- 使用によりLinkedInアカウントに対処措置が取られ、永久に利用できなくなる可能性もあります
- ご自身がログインしたセッションで、ご自身のアカウントにのみ使用します
- 本ソフトウェアを使って行うすべての操作、および収集する個人データに適用されるGDPR、 UK GDPR、CCPA、または同等の法律に基づく義務について、すべてご自身が責任を負います
- 本ソフトウェアはすべて自己責任で使用します
本ツールは、セキュリティ対策を回避することは一切ありません。CAPTCHAの解決、チャレンジの回避、 検知逃れ、プロキシ、Cookieの窃取、セッションの共有、ログインしていないアカウントの利用は行いません。 LinkedInによってアクセスを阻まれた場合は、処理を停止し、問題をユーザーに引き継ぎます。
教育および研究目的で提供されています。いかなるプラットフォームの利用規約への違反も推奨または容認しません。
ライセンス
MIT。
貢献者
本プロジェクトではall-contributorsを使用しています。コード、ドキュメント、 シーケンス、スキル、バグ報告、デザインなど、あらゆる貢献をここに記載します。
貢献者を追加するには、任意のイシューまたはPRにコメントしてください。
@all-contributors please add @username for code, doc
クレジット
Dominic Gonsalvesが作成しました — LinkedIn · GitHub
役に立った場合は、スターを付けていただけると、ほかの人にも見つけてもらいやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。