LinkedInMCP: Revolutionizing LinkedIn API Interactions について
LinkedInMCPは、OAuthを使って互換性のあるLLMクライアントをLinkedIn公式HTTP APIにつなぐMCPサーバーです。LinkedIn関連ツールを提供しますが、一般的な人物検索は通常の開発者アプリでは利用できないなど、アクセス制限も説明しています。
主な機能
- 01OAuthによるAPI認証
- 02型付きLinkedIn API連携
- 03プロフィール取得機能
- 04実験的でパートナー限定の人物検索
- 05クライアント向けの個別MCPツール
活用シーン
- 01許可されたLinkedInプロフィール情報の取得
- 02LLMクライアントとLinkedIn APIの接続
- 03連携前のAPIアクセス要件の確認
MCP 対応
MCP対応クライアントにLinkedIn API連携ツールを公開します。アクセスにはLinkedInの権限が必要です。READMEでは、人物検索エンドポイントは未公開仕様で、標準的な開発者トークンでは利用できないと説明しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LinkedInMCP:LinkedIn API とのやり取りを一新
🚀 包括的なセットアップガイド
前提条件
- Node.js 16+
- LinkedIn 開発者アカウント
- MCP 対応 LLM(Claude、OpenAI など)
⚠️ LinkedIn API のアクセス制限(最初にお読みください)
この MCP サーバーは、LinkedIn の公式 HTTP API を利用します。利用時に直面する問題のいくつかは、インストール手順の不具合ではなく、LinkedIn の製品やパートナーに関する制限によるものです。
-
ほとんどの開発者アプリでは、
client_credentials(2-legged OAuth)を利用できません。
LinkedIn のドキュメントによると、アプリはデフォルトではアプリケーショントークンを発行できません。通常のアプリがgrant_type=client_credentialsを指定してリクエストすると、通常は次のエラーが返されます:access_denied/ "This application is not allowed to create application tokens"
このフローは、LinkedIn の承認を受けたエンタープライズ製品またはパートナー製品専用です。通常は LinkedIn のリレーションシップマネージャーまたは事業開発担当者に問い合わせるか、代わりにメンバーの認証コード(3-legged)フローを使用する必要があります。Client Credential Flow (2-legged OAuth) を参照してください。 -
/search/peopleに対応する、一般公開された汎用人物検索エンドポイントはありません。
LinkedIn は、通常の開発者アプリ向けに、キーワード、会社、場所で任意のメンバーを検索できる無料かつ制限のない API を公開していません。このリポジトリのsearch-peopleツールは現在/v2/search/peopleを呼び出しますが、これは公開ドキュメントに記載されたエンドポイントではなく、標準的な開発者トークンでは動作しません。
LinkedIn が現在公開しているのは、限定的なプロフィール/人物 API(主に認証済みメンバー向け)と、組織ページのフォロワーを「@メンション」検索する、制限付きのPeople Typeahead API(ドキュメント)です。より幅広い人物検索には、関連する LinkedIn パートナー製品(Talent/Sales など)が必要です。このサーバーがドキュメントに記載されたエンドポイントに更新されるまでは、search-peopleは実験的またはパートナー専用の機能として扱ってください。 -
認証情報は URL ではなく、POST 本文に含めてください。
トークンのリクエストでは、LinkedIn の OAuth ガイダンスに沿ってContent-Type: application/x-www-form-urlencodedを使用し、本文にclient_id/client_secretを含めます。これにより、シークレットがクエリパラメーターに追加されることを防ぎます。
1. LinkedIn 開発者向けセットアップ
- LinkedIn Developer Portal にアクセスします
- 新しいアプリケーションを作成します
- Client ID と Client Secret を取得します
重要: LinkedIn API のアクセストークンの取得と認証に関する詳しい手順は、公式ドキュメント Getting Access to LinkedIn API を参照してください。
2. プロジェクトのインストール
git clone https://github.com/Dishant27/linkedin-mcp-server.git
cd linkedin-mcp-server
npm install
3. 設定ファイル
.env ファイル
プロジェクトのルートに .env ファイルを作成します:
LINKEDIN_CLIENT_ID=your_client_id_here
LINKEDIN_CLIENT_SECRET=your_client_secret_here
claude_desktop_config.json(Claude Desktop 用)
{
"mcpServers": {
"linkedin": {
"command": "node",
"args": ["/absolute/path/to/linkedin-mcp-server/dist/index.js"],
"env": {
"LINKEDIN_CLIENT_ID": "your_client_id",
"LINKEDIN_CLIENT_SECRET": "your_client_secret"
}
}
}
}
4. LLM の設定例
Claude.ai/Claude Desktop MCP 連携
{
"tools": [
{
"name": "search-people",
"description": "Search for LinkedIn profiles",
"parameters": {
"type": "object",
"properties": {
"keywords": {
"type": "string",
"description": "Keywords to search for in profiles"
},
"currentCompany": {
"type": "array",
"items": {"type": "string"},
"description": "Filter by current company"
},
"industries": {
"type": "array",
"items": {"type": "string"},
"description": "Filter by industries"
},
"location": {
"type": "string",
"description": "Filter by location"
}
}
}
},
{
"name": "get-profile",
"description": "Retrieve detailed LinkedIn profile information",
"parameters": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"description": "Public ID of the LinkedIn profile"
},
"urnId": {
"type": "string",
"description": "URN ID of the LinkedIn profile"
}
}
}
}
]
}
5. 一般的なワークフロー
- MCP サーバーを起動します:
npm run build
npm start
- LLM との対話例:
> Find software engineers in San Francisco working at tech companies
# The LLM will use the search-people tool to:
# 1. Search LinkedIn profiles
# 2. Filter by location (San Francisco)
# 3. Filter by industry (Technology)
# 4. Return relevant profile details
📖 詳しくはこちら
コンセプトと実装について解説した詳しい記事をご覧ください:
🚀 プロジェクトの背景
LinkedInMCP は、開発者が LinkedIn API を利用する方法を一新するために設計された、革新的な Model Context Protocol(MCP)サーバーです。より柔軟で強力な LinkedIn データ連携の必要性から生まれたこのプロジェクトは、高度な LinkedIn データの取得と操作を実現する、堅牢で拡張性の高いフレームワークを提供します。
🌟 プロジェクトのビジョン
従来の LinkedIn API のアプローチには限界があることを踏まえ、このソリューションでは、プロフェッショナルネットワークのデータを扱うための、よりインテリジェントでコンテキストを考慮した方法を実現します。
✨ 主な革新点
- インテリジェントなコンテキスト管理:MCP の高度なコンテキスト処理を活用します
- 安全で型付けされたインタラクション:型安全な LinkedIn API のやり取りを実現します
- 拡張性の高いアーキテクチャ:簡単に拡張、カスタマイズできます
- 標準化されたプロトコル:Model Context Protocol の仕様に準拠しています
🛠️ テクノロジー
- TypeScript
- Model Context Protocol
- LinkedIn API
- OAuth 2.0
- 型検証用の Zod
- HTTP リクエスト用の Axios
🔍 主な機能
- 高度な人物検索
- 詳細なプロフィールの取得
- 求人市場のインテリジェンス
- メッセージ機能
- セキュアな認証ワークフロー
💼 エンタープライズでのユースケース
LinkedInMCP により、ビジネス環境で強力なアプリケーションを実現できます。
人材獲得
- 候補者の発掘:特定のスキルや経験の条件に合う、有能な候補者を見つけます
- 人材プールの分析:業界や地域ごとの人材分布を可視化します
- アプローチの自動化:候補者との初回連絡を効率化します
- 競合インテリジェンス:競合組織の採用傾向を把握します
営業・事業開発
- リードの獲得:ターゲット企業の意思決定者を特定します
- アカウントベースドマーケティング:主要アカウントの包括的なプロフィールを作成します
- 関係性のマッピング:組織内のつながりのネットワークを可視化します
- 市場浸透分析:業界における製品やサービスの導入状況を追跡します
市場調査
- 業界のトレンド:業界全体の雇用の変化を監視します
- スキル需要の分析:新たに求められるスキルやテクノロジーを追跡します
- 組織構造に関するインサイト:報告関係やチーム構成を可視化します
- 地域間の人材移動パターン:地域間の人材移動を把握します
統合機能
- CRM との同期:LinkedIn の連絡先データを CRM システムに反映します
- ATS の強化:LinkedIn のデータを活用して応募者追跡システムを強化します
- ビジネスインテリジェンスツール:LinkedIn のデータをダッシュボードや分析プラットフォームに提供します
- カスタムワークフローとの統合:API を介して、社内ツールに LinkedIn の機能を追加します
🔒 セキュリティフレームワーク
LinkedInMCP の包括的なセキュリティモデルは、複数の保護レイヤーを実装しています。
認証セキュリティ
- OAuth 2.0 の実装:業界標準のトークンベース認証
- トークン更新の管理:トークンの有効期限切れを自動的に処理します
- 認証情報の分離:環境ベースのシークレット管理
- レート制限:過剰な API リクエストを防止します
データセキュリティ
- エンドツーエンド暗号化:安全なデータ送信
- データ保存の最小化:データを永続的に保存せずに処理します
- 選択的な情報の返却:リクエストされたデータフィールドのみを返します
- データの自動サニタイズ:インジェクションの脆弱性を防止します
コンプライアンス機能
- GDPR への準拠:欧州の規制に準拠するため、データの取り扱いを設定できます
- API 利用規約の遵守:LinkedIn API の利用ポリシーへの準拠を組み込みでサポートします
- 監査ログ:コンプライアンス報告に役立つ包括的なアクティビティ追跡
- データガバナンスツール:規制コンプライアンスの管理を簡素化します
📦 生成されるプロジェクト構成
linkedin-mcp-server/
│
├── src/
│ ├── index.ts # Main server entry point
│ ├── auth.ts # LinkedIn authentication handler
│ └── client.ts # LinkedIn API interaction client
│
├── dist/ # Compiled JavaScript files
│ ├── index.js
│ ├── auth.js
│ └── client.js
│
├── .env # Secret environment variables
├── .env.example # Template for environment variables
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
🤝 コントリビューション
このプロジェクトに興味を持っていただけましたか?コントリビューションを歓迎します!
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
📄 ライセンス
MIT ライセンスの下で配布されています。
免責事項:このプロジェクトは独自の取り組みであり、LinkedIn または Microsoft との公式な提携関係はありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。