
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
A Model Context Protocol (MCP) server that connects AI assistants to LinkedIn. Access profiles, companies, and job postings through a Docker container.
Disclaimer: This is an independent, community project. It is not affiliated with, authorized by, endorsed by, or sponsored by LinkedIn Corporation or Microsoft. "LinkedIn" is a registered trademark of LinkedIn Corporation and is used here only descriptively to identify the third-party service this software interoperates with.
currentCompany URL facet)Create a browser profile locally, then mount it into Docker. You still need uv installed on the host for the one-time uvx mcp-server-linkedin@latest --login step. Docker already includes its own Chromium runtime, so the managed Patchright Chromium browser download used by MCPB/uvx is not needed here.
Step 1: Create profile on the host (one-time setup)
bashuvx mcp-server-linkedin@latest --login
This opens a browser window where you log in manually (5 minute timeout for 2FA, captcha, etc.). The browser profile and cookies are saved under ~/.linkedin-mcp/. On startup, Docker derives a Linux browser profile from your host cookies and creates a fresh session each time. For better stability, *** the https://github.com/stickerdaniel/linkedin-mcp-server#-uvx-setup-recommended---universal.
Already signed into LinkedIn in a browser on the host? Run
uvx mcp-server-linkedin@latest --import-from-browseron the host to reuse that session instead of--login. It supports Chrome, Chromium, Brave, Edge, Arc, Vivaldi, ***, Yandex, and Naver Whale, auto-picks the most recently used browser with a live LinkedIn session (pass a browser name to target one), writes the same~/.linkedin-mcp/profile Docker mounts, and the Docker bridge still narrows to the minimal auth cookie subset it uses for a normal session. Cookies under Chrome 127+ app-bound encryption cannot be imported; use--loginin that case.
Step 2: Configure Claude Desktop with Docker
json{ "mcpServers": { "linkedin": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "~/.linkedin-mcp:/home/pwuser/.linkedin-mcp", "stickerdaniel/linkedin-mcp-server:latest" ] } } }
Note: Docker containers don't have a display server, so you can't use the
--logincommand in Docker. Create a source profile on your host first.Note:
stdiois the default transport. Add--transport streamable-httponly when you specifically want HTTP mode.Note: Tool calls are serialized within one server process to protect the shared LinkedIn browser session. Concurrent client requests queue instead of running in parallel. Use
LOG_LEVEL=DEBUGto see scraper lock logs.
| Variable | Default | Description |
|---|---|---|
USER_DATA_DIR | ~/.linkedin-mcp/profile | Path to persistent browser profile directory |
LOG_LEVEL | WARNING | Logging level: DEBUG, INFO, WARNING, ERROR |
TIMEOUT | 5000 | Browser timeout in milliseconds |
TOOL_TIMEOUT | 180 | Per-tool MCP execution timeout in seconds. Increase further for heavy scrapes (multi-section profiles, cold-start Chromium, slow networks/containers). |
LOGIN_TIMEOUT | 1800 | Manual login wait timeout in seconds (0 = no limit). Applies to the host-side --login browser; the container itself never opens one. |
LOGIN_INLINE_WAIT | 25 | Bounded inline wait (seconds, max 45) for a tool call to resume after login completes. No effect in containers: the Docker runtime never opens a login window and raises a host-login-required error instead, so the session must be created on the host with --login. |
AUTO_IMPORT_FROM_BROWSER | on by default | Auto-import a LinkedIn session from a locally logged-in browser on the first no-session tool call, before falling back to manual login. On by default across interactive and non-interactive desktop runs; set false to require --login / --import-from-browser. No effect in containers (no host browser or keychain) or on a non-loopback HTTP bind. On macOS the OS keychain may prompt once for Safe Storage access. |
USER_AGENT | - | Custom browser user agent |
TRANSPORT | stdio | Transport mode: stdio, streamable-http |
HOST | 127.0.0.1 | HTTP server host (for streamable-http transport) |
PORT | 8000 | HTTP server port (for streamable-http transport) |
HTTP_PATH | /mcp | HTTP server path (for streamable-http transport) |
SLOW_MO | 0 | Delay between browser actions in ms (debugging) |
VIEWPORT | 1280x720 | Browser viewport size as WIDTHxHEIGHT |
CHROME_PATH | - | Path to Chrome/Chromium executable (rarely needed in Docker) |
LINKEDIN_EXPERIMENTAL_PERSIST_DERIVED_SESSION | false | Experimental: reuse checkpointed derived Linux runtime profiles across Docker restarts instead of fresh-bridging each startup |
LINKEDIN_TRACE_MODE | on_error | Trace/log retention mode: on_error keeps ephemeral artifacts only when a failure occurs, always keeps every run, off disables trace persistence |
Example with custom timeouts:
json{ "mcpServers": { "linkedin": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "~/.linkedin-mcp:/home/pwuser/.linkedin-mcp", "-e", "TIMEOUT=10000", "-e", "TOOL_TIMEOUT=300", "stickerdaniel/linkedin-mcp-server" ] } } }
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务