mcp-linkedin 是一个 Model Context Protocol(MCP)服务器,它封装了 Unipile API,使 AI 助手(如 Claude Code、Claude Desktop 或任何兼容 MCP 的客户端)能够代用户在 LinkedIn 上创建帖子、评论和反应。AI 负责撰写内容,该工具负责发布。所有发布动作默认处于预览模式,未经显式确认不会有任何内容正式上线。
主要能力:
- 3 个工具:publish(发布)、comment(评论)、react(反应)。
- 默认 dry-run(发布前预览)。
- 发布后自动立即点赞帖子。
- 支持媒体附件(本地文件或 URL,图片与视频)。
- 支持公司 @提及(通过 Unipile 自动解析)。
- 兼容 Claude Code、Claude Desktop 及任何 MCP 客户端。
- 需要 Node.js 18+,使用 ES 模块、node:test 和顶层 await。
使用方式:
- 需要一个 Unipile 账号。Unipile 是连接 LinkedIn API 的服务。注册后,在仪表板中连接你的 LinkedIn 账号,并获取 API key 和 DSN。
- 配置到 ~/.claude/mcp.json(Claude Code)或 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS 上的 Claude Desktop)。编辑配置后重启 Claude Code 或 Claude Desktop。
- 环境变量通过 MCP 配置传递,而非 .env 文件。服务器在启动时从 process.env 读取这些变量。
工具说明:
- linkedin_publish:创建原创 LinkedIn 帖子。dry_run 默认为 true。先以 dry_run: true 调用获取预览,再以 dry_run: false 调用真正发布。预览响应会展示最终文本、字符数、媒体验证、解析后的提及和警告。发布响应会返回 post_id,可据此构造帖子 URL:https://www.linkedin.com/feed/update/{post_id}/ 或 https://www.linkedin.com/posts/{post_id}/。
- linkedin_comment:在已有 LinkedIn 帖子上发表评论。dry_run 默认为 true。
- react:对 LinkedIn 帖子进行反应。此操作是即时的,没有 dry_run。
安全发布流程: 默认 dry_run 的存在是为了防止意外发布。预期流程:AI 以 dry_run: true(默认)调用工具 → 你看到预览:最终文本、字符数、媒体验证、解析后的提及、警告 → 你确认或要求修改 → AI 再次以 dry_run: false 调用。dry_run 默认为 true。AI 无法在不显式设为 false 的情况下发布,而这必须经过预览步骤。
媒体附件: 可以传递本地文件路径(/path/to/image.jpg)或 URL(https://example.com/img.png)。URL 会被下载到 /tmp/mcp-linkedin-media/ 并在发布后清理(无论成功或失败)。支持的格式:jpg、jpeg、png、gif、webp(图片),mp4(视频)。每个文件在上传前都会经过验证:必须存在、非空,并且是受支持的类型。失败的文件会出现在预览的 media 数组中,带有 "valid": false 和错误消息。
公司 @提及: 将公司名称作为字符串传递:mentions: ["Microsoft", "OpenAI"]。服务器会对每个名称进行 slug 化处理,并通过 Unipile 的 LinkedIn 公司搜索进行查找。解析成功的公司会作为 {{0}}、{{1}} 占位符注入帖子文本——LinkedIn 会将这些渲染为可点击的 @提及。如果公司名称出现在帖子文本中,它会被原地替换;如果没有,则占位符会被追加。未解析的名称会在预览中显示为警告。帖子仍可在没有它们的情况下发布。
技术细节: AI 助手通过 stdio 上的 MCP JSON-RPC 协议调用工具。调用 Unipile API,由 Unipile 处理 LinkedIn OAuth——无需管理令牌。
获取 Unipile 账号: 注册 Unipile 账号,在仪表板中连接 LinkedIn 账号,从仪表板设置中复制 API key 和 DSN,粘贴到 MCP 配置中。Unipile 有免费层级,覆盖基本使用。
许可:MIT——参见 LICENSE。由 Timur Kulbaev 构建。使用 Anthropic 的 Model Context Protocol 和 Unipile API。