mcpField
L
LinkedIn MCP Server

LinkedIn MCP Server

ローカル
github.com/souravdasbiswasソーシャルメディア1631 週間前に更新

LinkedIn MCP Server について

LinkedIn MCP Serverは、LinkedIn公式APIを通じてプロフィール、投稿、イベントを管理するMCPサーバーです。OAuth 2.0を使い、許可されたスコープに応じてツールを提供します。

主な機能

  1. 01OAuth 2.0認証とセッション復元
  2. 02プロフィールと認証状態の確認
  3. 03投稿の作成・削除とコメント
  4. 04投稿へのリアクションと画像アップロード
  5. 05イベントの作成と詳細取得
  6. 06適応型レート制限と再試行

活用シーン

  1. 01LinkedIn投稿の公開や削除
  2. 02プロフィール情報とAPI制限の確認
  3. 03投稿へのコメントやリアクション
  4. 04LinkedInイベントの作成と確認

MCP 対応

MCPサーバーとして、互換クライアントにLinkedIn API操作ツールを提供します。利用可能なツールは付与されたOAuthスコープによって異なります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LinkedIn MCP サーバー

linkedin-mcp-server MCP server

AI アシスタントが LinkedIn の公式 API にアクセスできるようにする Model Context Protocol(MCP)サーバーです。MCP 対応クライアントから自然言語で、投稿の作成、イベントの管理、LinkedIn とのやり取りができます。

公式 API のみを使用します。 スクレイピングや非公式エンドポイントは使用せず、アカウントのリスクもありません。

機能

セルフサービスツール(LinkedIn の承認不要)
ツール説明
linkedin_auth_startOAuth 2.0 認証フローを開始します
linkedin_auth_callback認証コードで OAuth を完了します
linkedin_auth_logoutトークンを失効させてログアウトします
linkedin_get_my_profileLinkedIn プロフィール(名前、見出し、写真、メールアドレス)を取得します
linkedin_get_my_emailメールアドレスを取得します
linkedin_get_auth_status認証状態を確認します
linkedin_get_rate_limitsAPI のレート制限使用状況を表示します
linkedin_create_postテキスト、記事、画像の投稿を作成します
linkedin_delete_post自分の投稿を削除します
linkedin_create_comment投稿にコメントします
linkedin_react_to_post投稿にリアクションします(いいね、祝う、応援、愛情、洞察に富む、おもしろい)
linkedin_upload_image投稿用の画像をアップロードします
linkedin_list_my_postsこのサーバー経由で作成した投稿を、参照用の URN とともに一覧表示します
linkedin_create_eventLinkedIn イベントを作成します
linkedin_get_eventイベントの詳細を取得します
アーキテクチャの特長
  • OAuth 2.0 - トークンを永続的に保存する安全な認証
  • セッションの自動復元 - サーバーを再起動しても再認証は不要です(トークンの有効期限が切れるまで)
  • 投稿履歴の追跡 - サーバー経由で作成した投稿を参照・削除しやすいよう、SQLite にローカル記録を保存します
  • 適応型レート制限 - レスポンスヘッダーから LinkedIn の実際の制限を学習します
  • 自動再試行 - 一時的な障害(429、5xx)に対して指数バックオフを行います
  • 機能検出 - 許可されたスコープに対応するツールのみを公開します
  • API バージョン管理 - LinkedIn の月次 API バージョン切り替えに対応します

前提条件

  1. Node.js 20 以降
  2. LinkedIn Developer App(以下のセットアップ手順を参照)

LinkedIn アプリのセットアップ

手順 1: LinkedIn Developer App を作成する
  1. linkedin.com/developers/apps にアクセスしてサインインします
  2. Create app をクリックします
  3. 必須項目を入力します:
    • App name:任意の名前を選びます(例:「My MCP LinkedIn」)
    • LinkedIn Page:自分の LinkedIn ページを選択するか、必要に応じて作成します
    • Privacy policy URL:ウェブサイトの URL またはプレースホルダーを使用できます
    • App logo:任意の画像をアップロードします(必須)
  4. 法的契約のチェックボックスにチェックを入れ、Create app をクリックします
手順 2: Client ID と Client Secret を取得する
  1. アプリを作成すると、アプリの設定ページが表示されます
  2. Auth タブに移動します
  3. Client ID をコピーします。設定に必要です
  4. Client Secret をコピーします(目のアイコンをクリックすると表示されます)。こちらも必要です
手順 3: リダイレクト URL を追加する
  1. 引き続き Auth タブで、OAuth 2.0 settings までスクロールします
  2. Authorized redirect URLs for your app の下にある Add redirect URL をクリックします
  3. 次の URL を入力します:http://localhost:3000/callback
  4. Update をクリックして保存します

重要:リダイレクト URL は、プロトコル(http://)、ポート(:3000)、パス(/callback)を含めて完全に一致させる必要があります。末尾にスラッシュを付けないでください。

ステップ 4:必要な製品を有効にする
  1. アプリのページで Products タブを開きます
  2. 次の 2 つの製品へのアクセスをリクエストします:
    • Sign In with LinkedIn using OpenID Connect - Request access をクリックし、利用規約を確認して同意します
    • Share on LinkedIn - Request access をクリックし、利用規約を確認して同意します
  3. どちらの製品も、通常はセルフサービスでの利用について即時に承認されます

確認:有効にした後、Auth タブに戻ります。OAuth 2.0 scopes に次の項目が表示されていることを確認してください:openid、profile、email、w_member_social。

クイックスタート

1. インストール
git clone https://github.com/souravdasbiswas/linkedin-mcp-server.git
cd linkedin-mcp-server
npm install
npm run build
2. MCP クライアントを設定する

Claude Code の場合(推奨):

claude mcp add linkedin \
  -e LINKEDIN_CLIENT_ID=your_client_id \
  -e LINKEDIN_CLIENT_SECRET=your_client_secret \
  -- node /path/to/linkedin-mcp-server/dist/index.js

または、~/.claude.json に手動で追加します:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/dist/index.js"],
      "env": {
        "LINKEDIN_CLIENT_ID": "your_client_id",
        "LINKEDIN_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Claude Desktop の場合は、claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/dist/index.js"],
      "env": {
        "LINKEDIN_CLIENT_ID": "your_client_id",
        "LINKEDIN_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

your_client_id と your_client_secret を、ステップ 2 の値に置き換えます。

3. 認証する

接続したら、AI アシスタントに次のように伝えます:

「LinkedIn で認証して」

アシスタントが OAuth URL を生成します。手順は次のとおりです:

  1. ブラウザーで URL を開きます
  2. LinkedIn にサインインし、Allow をクリックしてアプリを認可します
  3. LinkedIn が http://localhost:3000/callback?code=XXX&state=YYY にリダイレクトします
  4. ローカルで待ち受けているサーバーがないため、「ページが見つかりません」というエラーが表示されます。これは想定どおりです
  5. ブラウザーのアドレスバーから URL 全体をコピーし、アシスタントに貼り付けます
  6. アシスタントが code と state パラメーターを抽出し、認証を完了します

初回の認証後、セッションはサーバーを再起動しても維持されます(トークンの有効期間は 60 日です)。トークンの期限が切れた場合にのみ、再認証が必要です。

4. 使用する

プロンプトの例:

  • 「LinkedIn に投稿して:API のレイテンシを 40% 削減する新機能をリリースしました」
  • 「自分の LinkedIn の投稿を一覧表示して」- サーバー経由で作成したすべての投稿を確認します
  • 「最後の LinkedIn の投稿を削除して」
  • 「来週金曜日の午後 2 時に、チームの交流会の LinkedIn イベントを作成して」
  • 「この LinkedIn の投稿に「お祝い」のリアクションをして」
  • 「自分の LinkedIn プロフィール情報は?」

環境変数

変数必須デフォルト説明
LINKEDIN_CLIENT_IDはい-LinkedIn アプリのクライアント ID
LINKEDIN_CLIENT_SECRETはい-LinkedIn アプリのクライアントシークレット
LINKEDIN_REDIRECT_URIいいえhttp://localhost:3000/callbackOAuth リダイレクト URI
LINKEDIN_MCP_DATA_DIRいいえ~/.linkedin-mcpトークン保存用ディレクトリ
LINKEDIN_API_BASE_URLいいえhttps://api.linkedin.comAPI ベース URL(テスト用に上書き)
LINKEDIN_AUTH_BASE_URLいいえhttps://www.linkedin.com/oauth/v2認証ベース URL

開発

# Install dependencies
npm install

# Type check
npm run typecheck

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

# Run with coverage
npm run test:coverage

# Lint
npm run lint

# Dev mode (tsx, no build needed)
npm run dev
テストの構成

テストはすべてモックの LinkedIn API サーバーに対して実行され、実際の API 呼び出しは行われません。

レイヤーテスト内容ファイル
ユニットテスト認証、PKCE、トークンストア、レート制限、エラー、機能tests/unit/
統合テストインメモリトランスポート経由の MCP プロトコル全体のフローtests/integration/
コントラクトテストリクエスト/レスポンスの形式が LinkedIn API 仕様に一致することtests/contract/
プロジェクト構成
src/
  index.ts              # Entry point, stdio transport
  server.ts             # MCP server wiring
  auth/
    oauth2.ts           # OAuth 2.0 flow + token exchange
    token-store.ts      # SQLite token persistence + session auto-restore
    pkce.ts             # PKCE challenge generation (available for public clients)
    tools.ts            # Auth MCP tools
  client/
    api-client.ts       # HTTP client with retry
    rate-limiter.ts     # Adaptive rate limiting
    version-manager.ts  # LinkedIn API versioning
    errors.ts           # Structured error types
    post-history.ts     # Local post tracking (SQLite)
  capabilities/
    detector.ts         # Scope-based capability detection
  modules/
    profile/tools.ts    # Profile reading tools
    posting/tools.ts    # Post creation/management tools
    events/tools.ts     # Event management tools
  types/
    linkedin.ts         # LinkedIn API type definitions
    config.ts           # Server configuration types

制限事項

以下は LinkedIn API の制限であり、サーバーの制限ではありません:

  • 他のユーザーのプロフィールは読み取れません - 認証済みユーザー自身のプロフィールのみ利用できます
  • 人物を検索できません - 公開検索 API はありません
  • メッセージを送信できません - Sales Navigator パートナーのみ利用できます
  • フィードを読み取れません - r_member_social スコープは公開されていません
  • つながりにアクセスできません - Marketing API の承認がある場合に限り、つながりの数を取得できます
  • レート制限 - アプリあたり約 500 回/日、メンバーあたり約 100 回/日(開発者向けティア)

Pro ティアへの拡張

LinkedIn アプリが Community Management API または Advertising API の承認を受けている場合、対応するスコープで認証すると、サーバーの機能検出によって追加モジュールが自動的に有効になります。モジュール式のアーキテクチャにより、コアサーバーを変更せずに新しい API モジュールを追加できます。

License

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。