LinkedIn MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 这是一个基于 Model Context Protocol (MCP) 的后端服务器实现,专注于 LinkedIn 数据抓取场景的资源、工具和 Prompts 的管理与渲染。
- 通过 JSON-RPC 与 MCP 客户端通信,提供可扩展、可安全部署的上下文服务,支持多种传输方式(stdio、HTTP 等)。
-
主要功能点
- 资源与数据访问:暴露用于 LinkedIn 数据抓取的资源的读取与转发能力。
- Tool 注册与执行:提供多种 MCP Tool(如 get_person_profile、search_people、get_company_profile、get_job_details、search_jobs、close_browser 等)供 LLM 调用。
- Prompt/模板渲染:支持对话流程中的提示模板与输出结构化对齐(通过统一的序列化机制输出 JSON 结果)。
- 会话管理与认证:通过浏览器驱动实现登录、会话检查、浏览器进程控制等能力,包含自动化的交互式登录流程。
- 数据解析与融合:将 LinkedIn 页面 HTML 解析为结构化的域模型(Person、Company、Job 等),输出标准化的 JSON 结构。
- 传输协议支持:默认 stdio 传输,支持 streamable-http HTTP 传输用于远程客户端接入。
- 架构设计:采用六边形架构、依赖注入、端口与适配器分离,方便替换实现与扩展新工具。
-
安装步骤
- 确保运行环境
- Python 3.12 或更高
- uv 包管理器
- 获取代码并安装依赖
- 使用仓库提供的快速启动方式(参考 README 的 Quick Start:克隆仓库、使用 uv sync 安装依赖)
- 认证与启动
- 可选择在开启浏览器的前提下进行登录认证,或者使用现有的浏览器数据目录继续会话
- 以 stdio 传输启动本服务器进行本地测试,或使用 streamable-http 启用 HTTP 传输
- 运行服务器
- 标准本地启动(stdio 传输,适用于 Claude Desktop/Cursor 等客户端)
- uv run linkedin-mcp-server
- HTTP 传输启动(对外远程客户端)
- uv run linkedin-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000
- 标准本地启动(stdio 传输,适用于 Claude Desktop/Cursor 等客户端)
- 确保运行环境
-
服务器配置(MCP 客户端需要的最小配置,以下为示例 JSON,实际使用时请根据环境替换目录与端口等): { "server_name": "linkedin", "command": "uv", "args": ["--directory", "/path/to/linkedin-mcp-server", "run", "linkedin-mcp-server"], "transport": "stdio", "host": "127.0.0.1", "port": 8000 } 说明:
- server_name:服务器在 MCP 客户端中的标识名称,建议与实际部署名称一致。
- command/args:启动服务器的命令及参数;此处使用 uv 作为包管理器启动脚本,目录为实际部署路径。
- transport、host、port:传输方式与网络暴露信息。stdio 适用于本地客户端,streamable-http 用于远端接入,需相应配置 host/port。
-
基本使用方法
- 客户端集成
- 将上述配置提供给 MCP 客户端(如 Claude Desktop、Cursor、MCP Inspector 等),用于建立与 MCP 服务器的连接。
- 调用示例
- 通过 MCP Tool 调用 get_person_profile、search_people 等工具,LLM 将获得结构化的 JSON 响应。
- 运行与调试
- 可以通过 CLI 参数打开浏览器登录、查看会话状态、清理凭证等操作,便于在开发阶段进行认证与调试。
- 客户端集成