Job Agent LinkedIn MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的服务端实现,专注于通过自动化的浏览器操作来提供 LinkedIn 相关的“工具集”给 MCP 客户端使用。服务端实现了 MCP 的核心能力:列出可用工具、执行具体工具,并在后端维持一个可复用的会话以减少重复登录开销。
  • 主要功能点

    • 实现 MCP 服务器:暴露 List Tools 和 Call Tool 端点,支持标准 JSON-RPC 风格的请求与响应。
    • 工具集(Tools):包括 search_jobs、get_job_details、easy_apply、check_rate_limit,覆盖从职位搜索到申请流程的全链路。
    • 会话管理:在首次调用时 lazily 初始化 LinkedIn 的浏览会话,复用同一会话以提高性能,并对登录、验证码等异常进行处理。
    • 跨语言容错与多语言支持:对英文/西班牙文界面元素进行兼容处理,尽量提高在 LinkedIn 多语言场景下的鲁棒性。
    • 多传输模式:默认通过标准输入输出(stdio)进行 MCP 交互,设计上还能扩展为 SSE/WebSocket 等传输方式。
    • 日志与错误处理:提供日志记录和错误处理,方便排错与监控。
  • 安装步骤

    • 安装依赖:在仓库根目录执行安装(工作区环境下会把所有包安装到合适的位置)。
    • 构建所有包:执行构建命令以生成用于运行的分发文件。
    • 启动 MCP 服务端:运行生成的可执行文件,服务器将通过 STDIO 与 MCP 客户端通信。
    • 注意:运行前请确保环境中有 Node.js 18+、Playwright 依赖的浏览器可用,并配置 LinkedIn 的账号凭据(.env 或环境变量)。
  • 服务器配置(MCP 客户端需要的配置信息,示例为 JSON 结构,描述性文本如下) 说明:以下配置用于 MCP 客户端建立连接并调用服务器端暴露的工具。serverName 为 MCP 服务器标识,command 为启动服务器的命令及路径,args 为传递给命令的参数。通信方式基于 STDIO(标准输入输出),这是该实现的默认传输。若需要切换到其他传输方式,需在服务端实现层进行相应改造。 配置示例(JSON,带注释说明): { "serverName": "linkedin-mcp", "command": ["node", "dist/index.js"], "args": [] } 注释:

    • serverName:MCP 服务器的唯一标识名称,客户端可使用此名称来识别并连接服务器。
    • command:启动服务器所需的可执行命令及路径(本实现默认使用 Node 运行生成的分发文件)。
    • args:传递给命令的参数列表(如无则留空)。
    • 传输模式:该 MCP 服务器默认通过 STDIO 与客户端通信,可扩展为其他传输方式(如 SSE、WebSocket)但需要相应改动和客户端支持。
  • 基本使用方法

    • 客户端初始化:MCP 客户端通过配置中的 serverName、command、args 启动并连接到该 MCP 服务器。
    • 调用工具:通过 List Tools 获取支持的工具清单后,使用 Call Tool 调用具体工具(如 search_jobs、get_job_details、easy_apply、check_rate_limit),传入相应的输入参数(如 config、profile、job 等)。
    • 会话与错误处理:若遇到 LinkedIn 验证、验证码或其它阻塞情况,工具会返回错误信息,服务端应按 MCP 客户端的超时和重试策略处理。
    • 运行后端后,开发者可在输出目录查看日志、作业列表、应用记录以及自动生成的报告。
  • 其他注意事项

    • 该实现对 LinkedIn 的反爬/防堵和多语言适配进行了简化处理,实际生产环境请遵守 LinkedIn 的使用条款并确保账号安全。
    • 为了稳定性,建议在受控环境中运行,并对自动化操作的速率进行合理的节流。

服务器信息