Skip to main content
Glama
Ayesha0300

LinkedIn Profile Scraper MCP Server

by Ayesha0300

LinkedIn プロフィールスクレーパー MCP サーバー

このMCPサーバーは、Fresh LinkedIn Profile Data APIを使用してLinkedInプロフィール情報を取得します。モデルコンテキストプロトコル(MCP)サーバーとして実装されており、LinkedInプロフィールURLを受け取り、JSON形式でプロフィールデータを返すget_profileという単一のツールを公開しています。

特徴

  • **プロフィール データの取得:**スキルやその他の設定を含む LinkedIn プロフィール情報を取得します (ほとんどの追加詳細は無効になっています)。

  • **非同期 HTTP リクエスト:**非ブロッキング API 呼び出しにhttpxを使用します。

  • 環境ベースの構成: dotenvを使用して環境変数からRAPIDAPI_KEY読み取ります。

Related MCP server: linkedin-mcp-server

前提条件

  • Python 3.7+ – Python バージョン 3.7 以上を使用していることを確認してください。

  • MCP フレームワーク: MCP フレームワークがインストールされていることを確認します。

  • 必要なライブラリ: httpx 、 python-dotenv 、およびその他の依存関係をインストールします。

  • RAPIDAPI_KEY: RapidAPIから API キーを取得し、プロジェクト ディレクトリの.envファイルに追加します (または環境に設定します)。

インストール

  1. リポジトリをクローンします。

    git clone https://github.com/AIAnytime/Awesome-MCP-Server
    cd linkedin_profile_scraper
  2. 依存関係をインストールします:

    uv add mcp[cli] httpx requests
  3. 環境変数を設定する:

    プロジェクト ディレクトリに次の内容の.envファイルを作成します。

    RAPIDAPI_KEY=your_rapidapi_key_here

サーバーの実行

MCP サーバーを実行するには、次のコマンドを実行します。

uv run linkedin.py

サーバーが起動し、標準 I/O を介して受信要求をリッスンします。

MCP クライアント構成

MCPクライアントをこのサーバーに接続するには、 config.jsonに以下の設定を追加してください。パスは環境に合わせて調整してください。

{
  "mcpServers": {
    "linkedin_profile_scraper": {
      "command": "C:/Users/aiany/.local/bin/uv",
      "args": [
        "--directory",
        "C:/Users/aiany/OneDrive/Desktop/YT Video/linkedin-mcp/project",
        "run",
        "linkedin.py"
      ]
    }
  }
}

コードの概要

  • **環境設定:**サーバーは、 dotenvを使用して、Fresh LinkedIn Profile Data API での認証に必要なRAPIDAPI_KEY読み込みます。

  • **API 呼び出し:**非同期関数get_linkedin_dataは、指定されたクエリ パラメータを使用して API に GET リクエストを送信します。

  • MCP ツール: get_profileツールは API 呼び出しをラップし、フォーマットされた JSON データを返します。呼び出しが失敗した場合はエラー メッセージを返します。

  • サーバー実行: MCP サーバーはstdioトランスポートを使用して実行されます。

トラブルシューティング

  • **RAPIDAPI_KEY がありません:**キーが設定されていない場合、サーバーはValueErrorを送出します。キーが.envファイルに追加されているか、環境に設定されていることを確認してください。

  • API エラー: API リクエストが失敗した場合、ツールはプロファイル データを取得できなかったことを示すメッセージを返します。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。

Available Tools

1 tool
get_profileB

Get LinkedIn profile data for a given profile URL.

Args:
    linkedin_url: The LinkedIn profile URL.
ParametersJSON Schema
NameRequiredDescriptionDefault
linkedin_urlYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving data but lacks details on permissions, rate limits, error handling, or output format. This is a significant gap for a tool with zero annotation coverage, though it at least correctly implies a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by a structured Args section. It avoids redundancy and is appropriately sized for a single-parameter tool, though the formatting could be slightly more polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter but lacks details on behavioral traits and output, which are important for an agent to use it effectively without annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only one parameter and 0% schema description coverage, the description compensates by explaining the parameter's purpose ('The LinkedIn profile URL') in the Args section. This adds meaningful context beyond the bare schema, though it could specify format constraints (e.g., URL validation).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('LinkedIn profile data'), and specifies the input requirement ('for a given profile URL'). However, with no sibling tools mentioned, it cannot demonstrate differentiation from alternatives, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or contextual constraints. It only states what the tool does, not when it should be applied, leaving usage decisions entirely to the agent's inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • First observedget_profile

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (get_profile), and with only one tool, consistency is inherently perfect as there are no other tools to compare against.

Tool Count2/5

A single tool is too few for a server labeled as a 'LinkedIn Profile Scraper MCP Server,' which suggests a broader scope. This minimal set feels thin and underdeveloped for scraping tasks that might include multiple operations like search, batch processing, or data extraction beyond single profiles.

Completeness2/5

The tool surface is severely incomplete for a LinkedIn scraper. It only allows fetching a single profile by URL, missing essential operations such as searching for profiles, handling authentication, pagination, or extracting additional data like connections or posts, which are typical in scraping workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Node.js-based Model Context Protocol server that exposes Proxycurl's LinkedIn data API, allowing MCP-compatible clients to access LinkedIn profile data, company information, and search for employees.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for LinkedIn API integration. Enables authentication, profile access, connections, search, messaging, and feed management via OAuth2.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that lets you analyze your own LinkedIn profile with a local LLM (LM Studio). It uses Playwright to reuse your browser session, fetch profile data as JSON, and provides tools for session management and profile analysis.
    1
    MIT