Linkedin Posts Hunter Mcp Server について
Linkedin Posts Hunter Mcp Serverは、LinkedInの求人投稿を検索・追跡するMCPサーバーです。ブラウザー検索、ローカルSQLite保存、Reactダッシュボードを組み合わせ、求職者が投稿を管理できます。
主な機能
- 01キーワードによるLinkedIn投稿検索
- 02投稿と追跡情報のローカル保存
- 03保存済み投稿の絞り込み・更新・削除
- 04Reactダッシュボードでの投稿表示
- 05応募済み・後で確認する機会の管理
活用シーン
- 01LinkedIn投稿から求人機会を探す
- 02収集した投稿を確認・絞り込む
- 03応募済みの機会を記録する
- 04MCPクライアントまたはダッシュボードで投稿を管理する
MCP 対応
LinkedIn認証、投稿検索・管理、ダッシュボードのフィルター、ビューア操作を行う6つのツールを公開します。MCPクライアントから呼び出して、ローカルデータやダッシュボードを操作できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
📖 概要
LinkedIn Posts Hunter MCP は、AI アシスタント(Claude Desktop、Cursor、その他の MCP 対応クライアント)を通じて、LinkedIn の求人投稿の検索と管理を自動化するツールを提供する Model Context Protocol(MCP)サーバーです。
LinkedIn の投稿が重要な理由:求人情報は、従来の求人サイトに掲載される前に、LinkedIn の投稿で先に公開されることがよくあります。LinkedIn の投稿を監視すれば、より早く求人情報を見つけ、就職活動で優位に立つことができます。
仕組み:
1. 認証とスクレイピング
- MCP サーバーは、AI アシスタントから呼び出して LinkedIn でのブラウザー操作を自動化できる、Playwright ベースのツールを提供します
- 初回利用時には、ブラウザーウィンドウで LinkedIn にログインし、セッション Cookie を取得する必要があります
- これらの Cookie は、認証状態を保持するためにお使いのコンピューターにローカル保存されます
- 認証後、AI アシスタントはキーワード(会話から取得するか、AI が提案したもの)を指定して検索ツールを呼び出し、求人投稿をスクレイピングできます
2. ローカルデータの保存
- スクレイピングした投稿はすべて、お使いのマシン上のローカル SQLite データベースに保存されます
- データベースには、投稿内容、メタデータ(投稿者、日付、エンゲージメント指標)、追跡情報(応募済みかどうか)が保存されます
- データがコンピューターの外部に送信されることはありません
3. ビジュアルインターフェース
- 別のツールを起動すると、ローカルデータベースからスクレイピングした投稿を表示するReact ダッシュボードが開きます
- プロフィール画像やエンゲージメント指標とともに、スクレイピングした投稿をすべてテーブル表示またはカード表示で確認できます
- UI 上で投稿に「応募済み」または「後で確認」とマークして、応募状況を追跡できます
- クイックアクションを使って、クリック操作で簡単に投稿の絞り込み、並べ替え、管理ができます
- React アプリで行った変更はローカルデータベースに書き込まれます。また、MCP コマンドで行った変更は UI に反映されます。
4. 2 種類の操作方法
- 投稿は、React UIまたは
manage_postsやviewer_filtersなどの MCP ツールを使って管理できます - React アプリはポーリングによって更新されるため、MCP コマンドによる変更は UI に反映されます
- AI アシスタントへの自然言語による指示と、ダッシュボード上でのクリック操作を柔軟に使い分けられます
🎬 動画デモ
https://github.com/user-attachments/assets/93f32db4-9ecf-4438-889f-ebe95b5b17e9
📹 操作手順を見る
認証から投稿管理までのワークフロー全体をご覧ください
🎨 図
コンポーネントとその相互作用を示すシステムアーキテクチャ
🛠️ 利用可能なツール
この MCP サーバーは、AI アシスタントから呼び出せる6 つのツールを提供します:
1. auth
永続的なセッションストレージを使用して、LinkedIn の認証を管理します。
パラメーター:
action:"authenticate"|"status"|"clear"force_reauth:boolean(省略可)
使用方法:
"Authenticate my LinkedIn account"
"Check LinkedIn auth status"
"Clear my LinkedIn credentials"
2. search_posts
キーワードで LinkedIn の投稿を検索し、結果をデータベースに保存します。
パラメーター:
keywords:string(例:"Python developer remote")pagination:number(1~10、デフォルト:3)headless:boolean(デフォルト:false)- ブラウザーウィンドウを表示します(デフォルト:false)
使用方法:
"Search LinkedIn for 'AI engineer' jobs"
"Find posts about 'React developer' with 5 pages"
3. manage_posts
高度なフィルタリングを使用して、データベース内の投稿を読み取り、更新、または削除します。
パラメーター:
action:"read"|"update"|"delete"ids:number[](省略可)search_text:string(省略可)date_from:string(YYYY-MM-DD、省略可)date_to:string(YYYY-MM-DD、省略可)applied:boolean(省略可)limit:number(1~50、デフォルト:10)new_description:string(更新時)new_keywords:string(更新時)new_applied:boolean(更新時)
使用方法:
"Show me posts I haven't applied to yet"
"Delete all posts that arent about job opportunities"
"Delete all posts that are only about senior-level positions"
4. viewer_filters
AI との会話から、React UI のフィルターをプログラムで操作します。
パラメーター:
keyword:string(省略可)applied_status:"all"|"applied"|"not-applied"(省略可)start_date:string(YYYY-MM-DD、省略可)end_date:string(YYYY-MM-DD、省略可)ids:string(カンマ区切り、省略可)reset:boolean(省略可)
使用方法:
"Filter to show only unapplied posts"
"Show posts from this week"
"Reset all filters"
5. start_viewer
ブラウザーで React ダッシュボードを起動します。
使用方法:
"Open the LinkedIn post viewer"
"Start the dashboard"
6. stop_viewer
実行中の Vite 開発サーバーを停止します。
使用方法:
"Close the viewer"
"Stop the dashboard"
📦 インストール
前提条件
- Node.js 18 以上
- npm(Node.js に付属)
- LinkedIn アカウント
- Cursor IDE または Claude Desktop
方法 1:mcp.json 設定を使用(推奨)⭐
対応クライアント: Cursor IDE および Claude Desktop
最も信頼性が高く、広くサポートされているインストール方法です。
-
グローバルにインストール:
npm install -g linkedin-posts-hunter-mcp -
MCP 設定に追加:
Cursor IDE の場合:
次の場所にある
mcp.jsonを開くか、新規作成します:- macOS/Linux:
~/.cursor/mcp.json - Windows:
%USERPROFILE%\.cursor\mcp.json(通常はC:\Users\YourName\.cursor\mcp.json)
次の設定を追加します:
{ "mcpServers": { "linkedin-posts-hunter-mcp": { "command": "linkedin-posts-hunter-mcp" } } }Claude Desktop の場合:
次の場所にある
claude_desktop_config.jsonを開くか、新規作成します:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
次の設定を追加します:
{ "mcpServers": { "linkedin-posts-hunter-mcp": { "command": "linkedin-posts-hunter-mcp" } } } - macOS/Linux:
-
MCP クライアント(Cursor または Claude Desktop)を再起動します
これで完了です!リポジトリをクローンしたり、ローカルビルドを管理したりする必要はありません。
方法 2:ローカル開発環境のセットアップ
コードを変更したり、コントリビュートしたりする開発者向けです:
-
クローンして依存関係をインストール:
git clone https://github.com/kevin-weitgenant/LinkedIn-Posts-Hunter-MCP-Server.git cd LinkedIn-Posts-Hunter-MCP-Server npm run install:all npm run build -
MCP 設定に追加:
Cursor IDE の場合(
mcp.json):{ "mcpServers": { "linkedin-posts-hunter-mcp": { "command": "node", "args": [ "/absolute/path/to/LinkedIn-Posts-Hunter-MCP-Server/build/index.js" ], "cwd": "/absolute/path/to/LinkedIn-Posts-Hunter-MCP-Server" } } }Claude Desktop の場合(
claude_desktop_config.json):{ "mcpServers": { "linkedin-posts-hunter-mcp": { "command": "node", "args": [ "/absolute/path/to/LinkedIn-Posts-Hunter-MCP-Server/build/index.js" ], "cwd": "/absolute/path/to/LinkedIn-Posts-Hunter-MCP-Server" } } }⚠️ 重要:
/absolute/path/to/LinkedIn-Posts-Hunter-MCP-Serverを実際のプロジェクトパスに置き換えてください。 -
サーバーを読み込むため、MCP クライアントを再起動します。
🎯 できること
求職ワークフローの例
-
LinkedIn で認証:
User: "Authenticate my LinkedIn account" AI: Opens a browser for you to log in, saves credentials -
求人情報を検索:
User: "Search LinkedIn for 'Senior TypeScript Developer remote' jobs" AI: Searches LinkedIn, extracts post details, saves to database -
視覚的に確認:
User: "Open the post viewer" AI: Launches React dashboard(where you can see the scraped posts) at http://localhost:5174 -
フィルタリングと管理:
User: "Remove posts that aren't about job opportunities" AI: Reads database, filters and displays only job-related posts User: "Show only senior-level positions" AI: Queries database for posts containing "senior", "lead", "principal" User: "Show posts about React or Vue.js positions" AI: Searches database and displays matching posts -
応募状況を追跡:
User: "Mark posts 5, 7, and 12 as applied" AI: Updates the database and confirms
📁 データの保存場所
LinkedIn のデータはすべて、次のディレクトリにローカル保存されます:
Windows
- メインデータディレクトリ:
%APPDATA%\linkedin-mcp\
macOS/Linux
- メインデータディレクトリ:
~/.linkedin-mcp/
保存される内容:
linkedin.db- スクレイピングしたすべての投稿、メタデータ、追跡データを含む SQLite データベースauth.json- LinkedIn のセッションクッキーと認証トークンsearches/- 検索セッションデータと一時ファイル
データのプライバシー:
- ✅ すべてのデータはお使いのコンピューター内に保存されます
- ✅ 外部サーバーにデータが送信されることはありません
- ✅
linkedin-mcpフォルダー全体を削除すれば、すべてのデータを削除できます - ✅ データベースは標準的な SQLite 形式のため、任意の SQLite ブラウザーで開けます
🎨 React ダッシュボードの機能
組み込みのウェブビューアー(start_viewer)では、次の機能を利用できます。
- 🔄 リアルタイム更新:UI と MCP コマンド間でフィルターの状態が同期されます
- ✅ クイックアクション:UI から直接、投稿を応募済みとしてマークできます
- 🎴 カード表示:プロフィール画像とエンゲージメント指標を備えたビジュアルカード
- 📊 テーブル表示:すべての投稿メタデータを含む、並べ替え可能な列
- 🔍 フィルタリング:キーワード、日付範囲、応募状況、ID で絞り込めます
- 💅 モダンなデザイン:React、TypeScript、TailwindCSS、Vite で構築されています
📄 ライセンス
ISC
🤝 貢献
貢献を歓迎します!お気軽に Issue を作成するか、プルリクエストを送信してください。
🚀 プロジェクトの状況
これは、手早く作られた実験的なプロジェクトです。
スクレイピングはさらに高速化でき、UI も改善の余地があります。
しかし、現状でもある程度は役に立ちます。
ぜひ貢献してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。