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ツール


🛠️ 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-24hpast-weekpast-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

ログレベル(DEBUGINFOWARNINGERROR


🧪 開発、テスト、品質

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

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. プルリクエストを開く。


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

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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