LinkedIn数据抓取服务

LinkedIn MCP服务器允许AI助手连接LinkedIn,获取个人和公司资料、搜索工作或获取工作详情。

  • by YumikoooD
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 YumikoooD/linkedin-mcp-server

使用说明

LinkedIn MCP服务器

通过这个LinkedIn MCP服务器,像克劳德这样的人工智能助手可以连接到你的LinkedIn。访问个人资料和公司,搜索工作或获取工作详细信息。

安装方法

https://github.com/user-attachments/assets/eb84419a-6eaf-47bd-ac52-37bc59c83680

用法示例

Research the background of this candidate https://www.linkedin.com/in/stickerdaniel/
Get this company profile for partnership discussions https://www.linkedin.com/company/inframs/
Suggest improvements for my CV to target this job posting https://www.linkedin.com/jobs/view/4252026496
What has Anthropic been posting about recently? https://www.linkedin.com/company/anthropicresearch/

功能和工具状态

工具 描述 状态
get_person_profile 通过明确的部分选择(经验、教育、兴趣、荣誉、语言、contact_info、帖子)获取个人资料信息 工作
connect_with_person 发送连接请求或接受传入请求,并附上可选注释 正在工作
get_sidebar_profiles 从个人资料页面上的侧边栏推荐部分(“为您提供更多个人资料”、“探索高级个人资料”和“您可能认识的人”)提取个人资料URL 正在工作
get_inbox 列出LinkedIn消息收件箱中最近的对话 正在工作
get_conversation 通过用户名或线程ID读取特定的消息对话 正在工作
search_conversations 按关键字搜索邮件 正在工作
send_message 向LinkedIn用户发送消息(需要确认) 正在工作
get_company_profile 通过明确的部门选择(职位、工作)提取公司信息 工作
get_company_posts 从公司的LinkedIn订阅源获取最新帖子 正在工作
search_jobs 使用关键字和位置过滤器搜索工作 正在工作
search_people 按关键字和位置搜索人员 工作
get_job_details 获取特定职位发布的详细信息 工作
close_session 关闭浏览器会话并清理资源 正在工作

[!重要] 突破性变化: LinkedIn最近进行了一些更改以防止抓取。最新版本使用 Patchright 使用持久的浏览器配置文件,而不是使用会话文件的Playwright。老的 session.json 文件和 LINKEDIN_COOKIE 不再支持env变量。跑 --login 再次创建一个可以挂载到docker中的新profile+cookie文件。 02/2026



🚀 uvx设置(推荐-通用)

先决条件: 安装uv.

安装

客户端配置

{
  "mcpServers": {
    "linkedin": {
      "command": "uvx",
      "args": ["linkedin-scraper-mcp"]
    }
  }
}

服务器快速启动,在后台准备共享的Patchright Chromium浏览器缓存 ~/.linkedin-mcp/patchright-browsers,并在需要身份验证的第一个工具调用上打开LinkedIn登录浏览器窗口。

[!注意] 在浏览器设置或登录完成之前,早期的工具调用可能会返回正在进行的设置/身份验证错误。如果您希望显式创建会话,请运行 uvx linkedin-scraper-mcp --login.

uvx设置帮助

🔧 Configuration

运输方式:

  • 默认值(stdio):本地MCP服务器的标准通信
  • 可流式传输的HTTP:用于基于web的MCP服务器
  • 如果未指定传输,则服务器默认为 stdio
  • 没有显式传输的交互式终端显示选择器提示

CLI选项:

  • --login -打开浏览器登录并保存持久配置文件
  • --no-headless -显示浏览器窗口(用于调试抓取问题)
  • --log-level {DEBUG,INFO,WARNING,ERROR} -设置日志记录级别(默认值:警告)
  • --transport {stdio,streamable-http} -可选:强制传输模式(默认:stdio)
  • --host HOST -HTTP服务器主机(默认值:127.0.0.1)
  • --port PORT -HTTP服务器端口(默认值:8000)
  • --path PATH -HTTP服务器路径(默认值:/mcp)
  • --logout -清除存储的LinkedIn浏览器配置文件
  • --timeout MS -页面操作的浏览器超时时间(毫秒)(默认值:5000)
  • --user-data-dir PATH -持久浏览器配置文件目录的路径(默认:~/.llinkedin mcp/profile)
  • --chrome-path PATH -Chrome/Chromium可执行文件的路径(用于自定义浏览器安装)

基本用法示例:

# Run with debug logging
uvx linkedin-scraper-mcp --log-level DEBUG

HTTP模式示例(适用于基于web的MCP客户端):

uvx linkedin-scraper-mcp --transport streamable-http --host 127.0.0.1 --port 8080 --path /mcp

运行时服务器日志由FastMCP/Uvicorn发出。

工具调用在单个服务器进程中序列化,以保护共享 LinkedIn浏览器会话。并发客户端请求队列,而不是在中运行 平行。使用 --log-level DEBUG 查看刮刀锁等待/获取/释放日志。

使用mcp检查员进行测试:

  1. 安装并运行mcp检查器 bunx @modelcontextprotocol/inspector
  2. 点击预先填写的令牌url,在浏览器中打开检查器
  3. 选择 Streamable HTTP 作为 Transport Type
  4. 集 URL 到 http://localhost:8080/mcp
  5. 连接
  6. 测试工具
❗ Troubleshooting

安装问题:

  • 确保您已安装紫外线: curl -LsSf https://astral.sh/uv/install.sh | sh
  • 检查紫外线版本: uv --version (应为0.4.0或更高)

会议议题:

  • 浏览器配置文件存储在 ~/.linkedin-mcp/profile/
  • 托管浏览器下载缓存在 ~/.linkedin-mcp/patchright-browsers/
  • 确保你一次只有一个活动的LinkedIn会话

登录问题:

  • LinkedIn可能需要在LinkedIn移动应用程序中进行登录确认 --login
  • 如果你经常登录,你可能会收到验证码挑战。跑 uvx linkedin-scraper-mcp --login 这将打开一个浏览器,您可以在其中手动解决它。

超时问题:

  • 如果页面加载失败或找不到元素,请尝试增加超时时间: --timeout 10000
  • 慢速连接的用户可能需要更高的值(例如15000-30000ms)
  • 也可以通过环境变量设置: TIMEOUT=10000

自定义Chrome路径:

  • 如果Chrome安装在非标准位置,请使用 --chrome-path /path/to/chrome
  • 也可以通过环境变量设置: CHROME_PATH=/path/to/chrome


📦 Claude桌面MCP捆绑包(前身为DXT)

先决条件: 克劳德桌面.

一键安装 对于Claude Desktop用户:

  1. 下载最新版 .mcpb 文物来自 发布
  2. 点击下载 .mcpb 将其安装到Claude Desktop的文件
  3. 调用任何LinkedIn工具

启动时,MCP Bundle开始在后台准备共享的Patchright Chromium浏览器缓存。如果您过早调用工具,Claude将显示正在进行的设置错误。在第一次需要身份验证的工具调用中,服务器会打开一个LinkedIn登录浏览器窗口,并要求您在登录后重试。

MCP捆绑包设置帮助

❗ Troubleshooting

首次设置行为:

  • Claude Desktop立即启动捆绑包;浏览器设置在后台继续
  • 如果Patchright Chromium浏览器仍在下载,请在短暂等待后重试该工具
  • 托管浏览器下载共享于 ~/.linkedin-mcp/patchright-browsers/

登录问题:

  • 确保你一次只有一个活动的LinkedIn会话
  • LinkedIn可能需要在LinkedIn移动应用程序中进行登录确认 --login
  • 如果你经常登录,你可能会收到验证码挑战。跑 uvx linkedin-scraper-mcp --login 这将打开一个浏览器,您可以在其中手动解决验证码。看 uvx设置 先决条件。

超时问题:

  • 如果页面加载失败或找不到元素,请尝试增加超时时间: --timeout 10000
  • 慢速连接的用户可能需要更高的值(例如15000-30000ms)
  • 也可以通过环境变量设置: TIMEOUT=10000


🐳 Docker设置

先决条件: 确保你有 码头工人 已安装并正在运行,以及 紫外线 一次性安装在主机上 --login 步骤。

认证

Docker无头运行(无浏览器窗口),因此您需要首先在本地创建浏览器配置文件并将其挂载到容器中。

步骤1:在主机上创建配置文件(一次性设置)

uvx linkedin-scraper-mcp --login

这将打开一个浏览器窗口,您可以在其中手动登录(2FA、验证码等超时5分钟)。浏览器配置文件和Cookie保存在 ~/.linkedin-mcp/启动时,Docker从您的主机Cookie中导出Linux浏览器配置文件,并每次创建一个新的会话。如果你遇到Docker的稳定性问题,可以考虑使用 uvx设置 相反。

步骤2:使用Docker配置Claude桌面

{
  "mcpServers": {
    "linkedin": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "~/.linkedin-mcp:/home/pwuser/.linkedin-mcp",
        "stickerdaniel/linkedin-mcp-server:latest"
      ]
    }
  }
}

[!注意] Docker在每次启动时都会创建一个新的会话。会话可能会随着时间的推移而过期--运行 uvx linkedin-scraper-mcp --login 再次,如果您遇到身份验证问题。

[!注意] 为什么我不能跑 --login Docker? Docker容器没有显示服务器。使用在主机上创建配置文件 uvx设置 并将其挂载到Docker中。

Docker安装帮助

🔧 Configuration

运输方式:

  • 默认值(stdio):本地MCP服务器的标准通信
  • 可流式传输的HTTP:用于基于web的MCP服务器
  • 如果未指定传输,则服务器默认为 stdio
  • 没有显式传输的交互式终端显示选择器提示

CLI选项:

  • --log-level {DEBUG,INFO,WARNING,ERROR} -设置日志记录级别(默认值:警告)
  • --transport {stdio,streamable-http} -可选:强制传输模式(默认:stdio)
  • --host HOST -HTTP服务器主机(默认值:127.0.0.1)
  • --port PORT -HTTP服务器端口(默认值:8000)
  • --path PATH -HTTP服务器路径(默认值:/mcp)
  • --logout -清除所有存储的LinkedIn身份验证状态,包括源和派生的运行时配置文件
  • --timeout MS -页面操作的浏览器超时时间(毫秒)(默认值:5000)
  • --user-data-dir PATH -持久浏览器配置文件目录的路径(默认:~/.llinkedin mcp/profile)
  • --chrome-path PATH -Chrome/Chromium可执行文件的路径(Docker中很少需要)

[!注意] --login 和 --no-headless 在Docker中不可用(无显示服务器)。使用 uvx设置 创建配置文件。

HTTP模式示例(适用于基于web的MCP客户端):

docker run -it --rm \
  -v ~/.linkedin-mcp:/home/pwuser/.linkedin-mcp \
  -p 8080:8080 \
  stickerdaniel/linkedin-mcp-server:latest \
  --transport streamable-http --host 0.0.0.0 --port 8080 --path /mcp

运行时服务器日志由FastMCP/Uvicorn发出。

使用mcp检查员进行测试:

  1. 安装并运行mcp检查器 bunx @modelcontextprotocol/inspector
  2. 点击预先填写的令牌url,在浏览器中打开检查器
  3. 选择 Streamable HTTP 作为 Transport Type
  4. 集 URL 到 http://localhost:8080/mcp
  5. 连接
  6. 测试工具
❗ Troubleshooting

Docker问题:

  • 确保 码头工人 已安装
  • 检查Docker是否正在运行: docker ps

登录问题:

  • 确保你一次只有一个活动的LinkedIn会话
  • LinkedIn可能需要在LinkedIn移动应用程序中进行登录确认 --login
  • 如果你经常登录,你可能会收到验证码挑战。跑 uvx linkedin-scraper-mcp --login 这将打开一个浏览器,您可以在其中手动解决验证码。看 uvx设置 先决条件。
  • 如果Docker auth在您重新登录主机后变得过时,请重新启动Docker一次,以便它可以从新的源会话生成中刷新网桥。

超时问题:

  • 如果页面加载失败或找不到元素,请尝试增加超时时间: --timeout 10000
  • 慢速连接的用户可能需要更高的值(例如15000-30000ms)
  • 也可以通过环境变量设置: TIMEOUT=10000

自定义Chrome路径:

  • 如果Chrome安装在非标准位置,请使用 --chrome-path /path/to/chrome
  • 也可以通过环境变量设置: CHROME_PATH=/path/to/chrome


🐍 本地设置(开发和贡献)

欢迎投稿!看 贡献.md 获取架构指南和检查表。请 打开一个问题 在提交PR之前,先讨论功能或错误修复。

先决条件: Git 和 紫外线 安装

安装

# 1. Clone repository
git clone https://github.com/stickerdaniel/linkedin-mcp-server
cd linkedin-mcp-server

# 2. Install UV package manager (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 3. Install dependencies
uv sync
uv sync --group dev

# 4. Install pre-commit hooks
uv run pre-commit install

# 5. Start the server
uv run -m linkedin_mcp_server

本地服务器使用与MCPB相同的托管运行时流 uvx:它在后台准备Patchright Chromium浏览器缓存,并在第一次需要身份验证的工具调用时打开LinkedIn登录。你仍然可以跑 uv run -m linkedin_mcp_server --login 当您想显式创建会话时。

本地安装帮助

🔧 Configuration

CLI选项:

  • --login -打开浏览器登录并保存持久配置文件
  • --no-headless -显示浏览器窗口(用于调试抓取问题)
  • --log-level {DEBUG,INFO,WARNING,ERROR} -设置日志记录级别(默认值:警告)
  • --transport {stdio,streamable-http} -可选:强制传输模式(默认:stdio)
  • --host HOST -HTTP服务器主机(默认值:127.0.0.1)
  • --port PORT -HTTP服务器端口(默认值:8000)
  • --path PATH -HTTP服务器路径(默认值:/mcp)
  • --logout -清除存储的LinkedIn浏览器配置文件
  • --timeout MS -页面操作的浏览器超时时间(毫秒)(默认值:5000)
  • --status -检查当前会话是否有效并退出
  • --user-data-dir PATH -持久浏览器配置文件目录的路径(默认:~/.llinkedin mcp/profile)
  • --slow-mo MS -浏览器操作之间的延迟(毫秒)(默认值:0,可用于调试)
  • --user-agent STRING -自定义浏览器用户代理
  • --viewport WxH -浏览器视口大小(默认值:1280x720)
  • --chrome-path PATH -Chrome/Chromium可执行文件的路径(用于自定义浏览器安装)
  • --help -显示帮助

注: 大多数CLI选项都有环境变量等效项。看 .env.example 了解详情。

HTTP模式示例(适用于基于web的MCP客户端):

uv run -m linkedin_mcp_server --transport streamable-http --host 127.0.0.1 --port 8000 --path /mcp

克劳德桌面:

{
  "mcpServers": {
    "linkedin": {
      "command": "uv",
      "args": ["--directory", "/path/to/linkedin-mcp-server", "run", "-m", "linkedin_mcp_server"]
    }
  }
}

stdio 默认情况下用于此配置。

❗ Troubleshooting

登录问题:

  • 确保你一次只有一个活动的LinkedIn会话
  • LinkedIn可能需要在LinkedIn移动应用程序中进行登录确认 --login
  • 如果你经常登录,你可能会收到验证码挑战。这 --login 命令打开一个浏览器,您可以在其中手动解决它。

报废问题:

  • 使用 --no-headless 查看浏览器操作并调试抓取问题
  • 添加 --log-level DEBUG 查看更详细的日志记录

会议议题:

  • 浏览器配置文件存储在 ~/.linkedin-mcp/profile/
  • 使用 --logout 清除配置文件并重新开始

Python/Patchright问题:

  • 检查Python版本: python --version (应为3.12+)
  • 重新安装Patchright: uv run patchright install chromium
  • 重新安装依赖关系: uv sync --reinstall

超时问题:

  • 如果页面加载失败或找不到元素,请尝试增加超时时间: --timeout 10000
  • 慢速连接的用户可能需要更高的值(例如15000-30000ms)
  • 也可以通过环境变量设置: TIMEOUT=10000

自定义Chrome路径:

  • 如果Chrome安装在非标准位置,请使用 --chrome-path /path/to/chrome
  • 也可以通过环境变量设置: CHROME_PATH=/path/to/chrome


致谢

内置于 FastMCP 和 Patchright.

按照以下要求使用 LinkedIn的服务条款网络抓取可能违反LinkedIn的条款。此工具仅供个人使用。

许可证

此项目根据Apache 2.0许可证获得许可。