Skip to main content
Glama
joaovjo

linkedin-mcp-server-ts

by joaovjo

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版 (mcp-server-linkedin)

TypeScript / Bun版 (linkedin-mcp-server-ts)

ランタイム

Python 3.10+ (uv / uvx)

Bun 1.2+ (bun / bunx)

言語

Python (fastmcp)

TypeScript 6 (@modelcontextprotocol/server v2)

ブラウザエンジン

Patchright Chromiumフォーク

ネイティブ Bun.WebView + ダイレクトChrome DevTools Protocol (CDP)

メモリ / フットプリント

中程度(ランタイム約150MB以上)

超軽量(ベースライン約30〜60MB)

トランスポート

stdio, streamable-http

stdio, streamable-http(ネイティブ Bun.serve 経由)

セッションディレクトリ

~/.linkedin-mcp/profile

~/.linkedin-mcp/profile(共有・相互運用可能)

検証

Pydantic

Zodスキーマ

ツール数

19ツール

19ツール


Related MCP server: LinkedIn MCP Pro Max

🛠️ MCPツール概要(19ツール)

ツール

カテゴリ

説明

アクセス種別

get_person_profile

人

プロフィールの詳細を細分化されたセクション(職歴、学歴、スキル、プロジェクト、資格、投稿など)で抽出します。

読み取り専用

get_my_profile

人

認証済みユーザー自身のプロフィールを抽出します。

読み取り専用

search_people

人

キーワード、場所、つながりの度合い(F=1次、S=2次、O=3次以降)、現在の会社で人を検索します。

読み取り専用

connect_with_person

人

オプションのパーソナルメモ付きでつながりリクエストを送信するか、招待を承諾します。

書き込み / アクション

get_sidebar_profiles

人

サイドバーに表示されるおすすめプロフィールのリンク(「知り合いかもしれません」「さらにプロフィール」)を抽出します。

読み取り専用

get_company_profile

企業

会社の詳細、会社情報、投稿、求人、数値の会社URN IDを抽出します。

読み取り専用

get_company_posts

企業

最近の会社フィード投稿を取得します。

読み取り専用

search_companies

企業

キーワードで会社を検索します。

読み取り専用

get_company_employees

企業

/people/ セクションから、オプションのフィルター付きで会社の従業員を一覧表示します。

読み取り専用

get_job_details

求人

特定の求人投稿の完全な詳細と説明を取得します。

読み取り専用

search_jobs

求人

フィルター(キーワード、場所、掲載日、雇用形態、勤務形態、経験レベル、簡単応募)で求人を検索します。

読み取り専用

get_saved_jobs

求人

認証済みユーザーが保存した求人リストを取得します。

読み取り専用

get_inbox

メッセージ

メッセージングの受信トレイから最近の会話スレッドを一覧表示します。

読み取り専用

get_conversation

メッセージ

ユーザー名または thread_id でスレッド内のメッセージを読み取ります。

読み取り専用

search_conversations

メッセージ

キーワードでメッセージングのスレッドを検索します。

読み取り専用

send_message

メッセージ

LinkedInダイレクトメッセージを送信します(安全な2段階確認のために confirm_send: true が必要です)。

書き込み / アクション

get_feed

フィード

ホームタイムラインから最近の投稿を取得します。

読み取り専用

search_posts

フィード

新しい順フィルター(past-24h、past-week、past-month)付きでLinkedInの投稿を横断的に検索します。

読み取り専用

close_session

セッション

ブラウザセッションを正常に終了し、バックグラウンドリソースをクリーンアップします。

書き込み / アクション


🚀 クイックスタート

前提条件

  1. Bun をインストール(v1.2以上):

    # Windows (PowerShell)
    powershell -c "irm bun.sh/install.ps1 | iex"
    
    # macOS / Linux
    curl -fsSL https://bun.sh/install | bash
  2. Google 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.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.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 login
  1. ChromeブラウザのウィンドウがLinkedInのログインページで開きます。

  2. ログインを完了します(必要に応じて2FA / CAPTCHAを含む)。

  3. サーバーはフィードへの正常な遷移を検出し、セッションプロファイルを安全に保存します。

セッション状態の確認

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フラグ

デフォルト

説明

USER_DATA_DIR

--user-data-dir

~/.linkedin-mcp/profile

永続ブラウザプロファイルディレクトリへのパス

HEADLESS

--headless / --no-headless

true

ブラウザをヘッドレスモードで実行する

TRANSPORT

--transport

stdio

トランスポートプロトコル:stdio または streamable-http

HOST

--host

127.0.0.1

HTTPバインドホスト

PORT

--port

8000

HTTPポート

HTTP_PATH

--path

/mcp

HTTPエンドポイントパス

TIMEOUT

--timeout

5000

DOMナビゲーション/インタラクションのタイムアウト(ミリ秒)

TOOL_TIMEOUT

--tool-timeout

180

ツールごとのMCP実行タイムアウト(秒)

LOGIN_TIMEOUT

--login-timeout

1800

--login中の最大待機時間(秒)

LOGIN_INLINE_WAIT

--login-inline-wait

25

インライン認証フォールバックの待機時間(秒)

AUTO_IMPORT_FROM_BROWSER

--auto-import / --no-auto-import

true

プロファイルが存在しない場合にクッキーを自動インポートする

CHROME_PATH

--chrome-path

"" (auto-detected)

Chrome/Chromium実行ファイルへのカスタムパス

USER_AGENT

--user-agent

""

オプションのカスタムブラウザUser-Agentオーバーライド

VIEWPORT

--viewport

1280x720

ブラウザのビューポートサイズ(WIDTHxHEIGHT)

DEBUG_PORT

--debug-port

9222

--login中に使用するChromeリモートデバッギングポート

LOG_LEVEL

--log-level

WARNING

ログレベル(DEBUG、INFO、WARNING、ERROR)


🧪 開発、テスト、品質

コントラクトテストとユニットテストを実行

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


🤝 コントリビューション

貢献、バグ報告、プルリクエストを歓迎します!

  1. GitHubでリポジトリをフォーク:https://github.com/joaovjo/linkedin-mcp-server-ts

  2. 機能ブランチを作成:git checkout -b feature/amazing-feature

  3. 変更をコミット:git commit -m 'feat: add amazing feature'

  4. すべてのテストが通ることを確認:bun test && bun run lint

  5. ブランチにプッシュ:git push origin feature/amazing-feature

  6. プルリクエストを開く。


📄 ライセンスとクレジット

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Fully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.
    6
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    High-performance autonomous MCP server that turns LinkedIn into an API for AI workflows, enabling profile management, job search, content posting, and document generation.
    14
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Self-hosted, ban-safe MCP server for LinkedIn that provides 22 tools for profiles, search, jobs, posts, connections, and messages. Integrates with any MCP-compatible client like Claude Desktop.
    58
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.
    17 npm
    MIT