linkedin-mcp-server-ts
LinkedIn MCP Server (TypeScript / Bun)
免責事項: これは独立したコミュニティ主導のオープンソースプロジェクトです。LinkedIn Corporation または Microsoft Corporation とは提携、後援、承認、推奨の関係は一切ありません。「LinkedIn」は LinkedIn Corporation の登録商標であり、単に記述目的で使用されています。
LinkedIn の自動化とスクレイピングのための、超高速で軽量な Model Context Protocol (MCP) サーバーです。TypeScript で書き直され、Bun ランタイムを採用しています。
認証済みの自分のブラウザセッションを使用して、プロフィールの閲覧、求人や企業の検索、メッセージのやり取り、フィードの抽出を行うための、本番運用に耐える19個のMCPツールをAIアシスタント(Claude Desktop、Cursor、OpenCode、VS Code、Windsurf/Antigravity など)に提供します。
⚡ なぜTypeScript + Bunなのか?
linkedin-mcp-server-ts は、stickerdaniel/linkedin-mcp-server をネイティブな TypeScript/Bun に移植したもので、最大の効率性と最小のリソース消費を実現するように構築されています。
🚀 高速起動・ほぼゼロオーバーヘッド: Bun のネイティブJITと高速なパッケージ実行により、コールドスタートの遅延を排除します。
🌐 ネイティブWebView & ダイレクトCDPエンジン: 重い外部ブラウザデーモン層を介さず、Chrome DevTools Protocol (CDP) と
Bun.WebViewを直接使用して Chromium を自動操作します。🔄 100%コントラクト&スキーマ互換: Python版MCPサーバーのツール、スキーマ、戻り値の形式に対して完全な1:1互換のドロップイン代替品です。
🔑 シームレスなセッション共有: 標準の
~/.linkedin-mcp/profileセッションストレージおよびCookie形式と100%互換です。
アーキテクチャ比較
機能 | Python版 ( | TypeScript / Bun版 ( |
ランタイム | Python 3.10+ ( | Bun 1.2+ ( |
言語 | Python ( | TypeScript 6 ( |
ブラウザエンジン | Patchright Chromiumフォーク | ネイティブ |
メモリ / フットプリント | 中程度(ランタイム約150MB以上) | 超軽量(ベースライン約30〜60MB) |
トランスポート |
|
|
セッションディレクトリ |
|
|
検証 | Pydantic | Zodスキーマ |
ツール数 | 19ツール | 19ツール |
🛠️ MCPツール概要(19ツール)
ツール | カテゴリ | 説明 | アクセス種別 |
| 人 | プロフィールの詳細を細分化されたセクション(職歴、学歴、スキル、プロジェクト、資格、投稿など)で抽出します。 | 読み取り専用 |
| 人 | 認証済みユーザー自身のプロフィールを抽出します。 | 読み取り専用 |
| 人 | キーワード、場所、つながりの度合い( | 読み取り専用 |
| 人 | オプションのパーソナルメモ付きでつながりリクエストを送信するか、招待を承諾します。 | 書き込み / アクション |
| 人 | サイドバーに表示されるおすすめプロフィールのリンク(「知り合いかもしれません」「さらにプロフィール」)を抽出します。 | 読み取り専用 |
| 企業 | 会社の詳細、会社情報、投稿、求人、数値の会社URN IDを抽出します。 | 読み取り専用 |
| 企業 | 最近の会社フィード投稿を取得します。 | 読み取り専用 |
| 企業 | キーワードで会社を検索します。 | 読み取り専用 |
| 企業 |
| 読み取り専用 |
| 求人 | 特定の求人投稿の完全な詳細と説明を取得します。 | 読み取り専用 |
| 求人 | フィルター(キーワード、場所、掲載日、雇用形態、勤務形態、経験レベル、簡単応募)で求人を検索します。 | 読み取り専用 |
| 求人 | 認証済みユーザーが保存した求人リストを取得します。 | 読み取り専用 |
| メッセージ | メッセージングの受信トレイから最近の会話スレッドを一覧表示します。 | 読み取り専用 |
| メッセージ | ユーザー名または | 読み取り専用 |
| メッセージ | キーワードでメッセージングのスレッドを検索します。 | 読み取り専用 |
| メッセージ | LinkedInダイレクトメッセージを送信します(安全な2段階確認のために | 書き込み / アクション |
| フィード | ホームタイムラインから最近の投稿を取得します。 | 読み取り専用 |
| フィード | 新しい順フィルター( | 読み取り専用 |
| セッション | ブラウザセッションを正常に終了し、バックグラウンドリソースをクリーンアップします。 | 書き込み / アクション |
🚀 クイックスタート
前提条件
Bun をインストール(v1.2以上):
# Windows (PowerShell) powershell -c "irm bun.sh/install.ps1 | iex" # macOS / Linux curl -fsSL https://bun.sh/install | bashGoogle Chrome / Chromium:システムにインストールされていること。
ワンコマンド実行(bunx)
bunx を使えば、手動インストールなしでサーバーを直接実行できます:
bunx linkedin-mcp-server-tsローカルクローン & 開発セットアップ
# Clone the repository
git clone https://github.com/joaovjo/linkedin-mcp-server-ts.git
cd linkedin-mcp-server-ts
# Install dependencies
bun install
# Start the server (stdio mode for MCP clients)
bun run start
# Start the HTTP server (for web MCP debugging)
bun run dev💻 MCPクライアント設定
1. Claude Desktop
claude_desktop_config.json に追加:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"linkedin": {
"command": "bunx",
"args": ["linkedin-mcp-server-ts"]
}
}
}またはローカルクローンから実行する場合:
{
"mcpServers": {
"linkedin": {
"command": "bun",
"args": ["run", "src/index.ts"],
"cwd": "D:/linkedin/linkedin-mcp-server-ts"
}
}
}2. Cursor
プロジェクトの .cursor/mcp.json またはグローバルCursor設定に追加:
{
"mcpServers": {
"linkedin": {
"command": "bunx",
"args": ["linkedin-mcp-server-ts"]
}
}
}3. OpenCode
opencode.json(または ~/.config/opencode/opencode.json)に追加:
{
"mcp": {
"linkedin": {
"type": "stdio",
"command": "bunx",
"args": ["linkedin-mcp-server-ts"]
}
}
}4. Antigravity / Windsurf / VS Code (Cline / Roo Code)
mcp_config.json に追加:
{
"mcpServers": {
"linkedin": {
"command": "bunx",
"args": ["linkedin-mcp-server-ts"],
"disabled": false,
"autoApprove": []
}
}
}5. Streamable HTTPモード
リモートエージェントやコンテナ環境向けにサーバーをHTTP経由で公開するには:
bun run src/index.ts --transport streamable-http --host 127.0.0.1 --port 8000エンドポイントURL: http://127.0.0.1:8000/mcp
ヘルスチェック: http://127.0.0.1:8000/health
🔐 認証とセッション管理
サーバーは ~/.linkedin-mcp/profile に保存される永続的なブラウザプロファイルを使用するため、認証は一度だけ行うだけで済みます。
オプションA:普段使っているブラウザから自動インポート(最速)
ブラウザ(Chrome、Brave、Edge、Arc、Vivaldi)でLinkedInにログイン済みの場合は、セッションを即座にインポートできます:
# Auto-detect the most recent browser session
bunx linkedin-mcp-server-ts --import-from-browser
# Or specify a target browser
bunx linkedin-mcp-server-ts --import-from-browser brave
bunx linkedin-mcp-server-ts --import-from-browser chrome
bunx linkedin-mcp-server-ts --import-from-browser edgeオプションB:対話型ビジュアルログイン
ログインするための対話型Chromeウィンドウを起動します:
bunx linkedin-mcp-server-ts --login
# Or from local source:
bun run loginChromeブラウザのウィンドウがLinkedInのログインページで開きます。
ログインを完了します(必要に応じて2FA / CAPTCHAを含む)。
サーバーはフィードへの正常な遷移を検出し、セッションプロファイルを安全に保存します。
セッション状態の確認
bunx linkedin-mcp-server-ts --status
# Or from local source:
bun run statusログアウト & セッションのクリア
bunx linkedin-mcp-server-ts --logout
# Or from local source:
bun run logout⚙️ 設定と環境変数
ルートディレクトリに .env ファイルを作成するか(またはCLI引数を渡して)、動作をカスタマイズします:
変数 | CLIフラグ | デフォルト | 説明 |
|
|
| 永続ブラウザプロファイルディレクトリへのパス |
|
|
| ブラウザをヘッドレスモードで実行する |
|
|
| トランスポートプロトコル: |
|
|
| HTTPバインドホスト |
|
|
| HTTPポート |
|
|
| HTTPエンドポイントパス |
|
|
| DOMナビゲーション/インタラクションのタイムアウト(ミリ秒) |
|
|
| ツールごとのMCP実行タイムアウト(秒) |
|
|
|
|
|
|
| インライン認証フォールバックの待機時間(秒) |
|
|
| プロファイルが存在しない場合にクッキーを自動インポートする |
|
|
| Chrome/Chromium実行ファイルへのカスタムパス |
|
|
| オプションのカスタムブラウザUser-Agentオーバーライド |
|
|
| ブラウザのビューポートサイズ( |
|
|
|
|
|
|
| ログレベル( |
🧪 開発、テスト、品質
コントラクトテストとユニットテストを実行
19個のツールすべて、スキーマ検証、リンクメタデータ分類子、エラーハンドリングを検証する完全なテストスイートを実行します: GXP14
リンティングとフォーマット
コードスタイルとフォーマットは Biome: によって強制されます: GXP15
プロジェクトアーキテクチャ
linkedin-mcp-server-ts/
├── src/
│ ├── index.ts # CLI Entrypoint & Transport routing (stdio / HTTP)
│ ├── config.ts # CLI flags & environment configuration
│ ├── browser/
│ │ ├── auth.ts # Login, logout, status, and browser cookie importer
│ │ ├── cdp.ts # Direct Chrome DevTools Protocol helper functions
│ │ ├── chrome-launch.ts # Process launcher for visual login & remote attach
│ │ ├── manager.ts # Bun.WebView & CDP lifecycle manager
│ │ └── types.ts # Browser status types
│ ├── errors/ # Unified error handling & custom error hierarchy
│ ├── mcp/
│ │ └── create-server.ts # MCP Server registration & tool mounting
│ ├── middleware/ # Concurrency serialization queue
│ ├── scraping/ # DOM extraction, noise removal, link classification & URNs
│ ├── session/ # Cookie storage, profile directories, and persistence
│ ├── tools/ # 19 MCP tool implementations
│ └── utils/ # General helpers
├── tests/ # Bun test suite & contract validations
├── bunfig.toml # Bun configuration & npm publish registry settings
└── package.json # Package metadata, dependencies, and scripts📦 NPMへの公開
このプロジェクトは、Bunを使用してnpmレジストリに直接公開するためにbunfig.tomlを使用します:
GXP17
🤝 コントリビューション
貢献、バグ報告、プルリクエストを歓迎します!
GitHubでリポジトリをフォーク:
https://github.com/joaovjo/linkedin-mcp-server-ts機能ブランチを作成:
git checkout -b feature/amazing-feature変更をコミット:
git commit -m 'feat: add amazing feature'すべてのテストが通ることを確認:
bun test && bun run lintブランチにプッシュ:
git push origin feature/amazing-featureプルリクエストを開く。
📄 ライセンスとクレジット
ライセンス: MITライセンス の下で配布されています。
クレジット: Daniel Sticker と
stickerdaniel/linkedin-mcp-serverのコントリビューターの方々に、元のPythonアーキテクチャ、スクレイパーロジック、および研究について特別に感謝します。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
Stealth scraping & search. Bypasses Cloudflare, DataDome & LinkedIn via Cyborg HITL approach.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joaovjo/linkedin-mcp-server-ts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server