mcpField
M
Mcp Linkedin

Mcp Linkedin

本地服务
github.com/timkulbaev社交媒体232 周前更新

关于 Mcp Linkedin

Mcp Linkedin 是一个 MCP 服务,供 AI 助手通过 Unipile 向 LinkedIn 发布内容。它支持帖子、评论、反应和媒体附件,发布操作默认先预览再执行。

主要功能

  1. 01创建帖子、评论和反应
  2. 02发布操作默认先预览
  3. 03附加图片和视频媒体
  4. 04解析公司 @提及
  5. 05校验媒体文件

适用场景

  1. 01发布前检查 LinkedIn 帖子
  2. 02发布带图片或视频的帖子
  3. 03评论或回应 LinkedIn 帖子

MCP 相关

该服务通过 stdio 向 MCP 客户端提供 LinkedIn 发布、评论和反应工具,并调用 Unipile API 执行操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-linkedin

一个 MCP 服务,让 AI 助手代表你在 LinkedIn 上发布内容。

mcp-linkedin MCP server

功能

这是一个 Model Context Protocol(MCP)服务,它封装了 Unipile API,让 AI 助手(Claude Code、Claude Desktop 或任何兼容 MCP 的客户端)能够在 LinkedIn 上创建帖子、评论和回应。AI 负责撰写内容;此工具负责发布。所有发布操作默认处于预览模式,未经明确确认,内容不会正式发布。

特性

  • 3 个工具:发布、评论、回应
  • 默认试运行(发布前预览)
  • 发布后立即自动点赞
  • 媒体附件(本地文件或 URL——图片和视频)
  • 公司 @提及(通过 Unipile 自动解析)
  • 适用于 Claude Code、Claude Desktop 和任何 MCP 客户端

前提条件

  • Node.js 18+——使用 ES 模块、node:test 和顶层 await
  • Unipile 账户——Unipile 是连接 LinkedIn API 的服务。注册、连接你的 LinkedIn 账户,并从控制面板获取 API 密钥和 DSN。

安装

git clone https://github.com/timkulbaev/mcp-linkedin.git
cd mcp-linkedin
npm install

配置

Claude Code

添加到 ~/.claude/mcp.json:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-linkedin/index.js"],
      "env": {
        "UNIPILE_API_KEY": "your-unipile-api-key",
        "UNIPILE_DSN": "apiXX.unipile.com:XXXXX"
      }
    }
  }
}
Claude Desktop

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-linkedin/index.js"],
      "env": {
        "UNIPILE_API_KEY": "your-unipile-api-key",
        "UNIPILE_DSN": "apiXX.unipile.com:XXXXX"
      }
    }
  }
}

编辑配置后,重启 Claude Code 或 Claude Desktop。

环境变量
变量必填说明
UNIPILE_API_KEY是你的 Unipile API 密钥(来自 Unipile 控制面板)
UNIPILE_DSN是你的 Unipile DSN(例如 api16.unipile.com:14648)

这些变量通过 MCP 配置传递,而不是通过 .env 文件传递。服务启动时会从 process.env 读取它们。

工具

linkedin_publish

创建一条原创 LinkedIn 帖子。

dry_run 默认为 true。 先调用 dry_run: true 获取预览,然后再次调用 dry_run: false 才会实际发布。

参数类型必填默认值说明
textstring是—帖子正文,最多 3000 个字符
mediastring[]否[]本地文件路径或 URL(jpg、png、gif、webp、mp4)
mentionsstring[]否[]要 @提及的公司名称(自动解析)
dry_runboolean否true仅预览,不发布

预览响应(dry_run: true):

{
  "status": "preview",
  "post_text": "Hello LinkedIn!",
  "character_count": 16,
  "character_limit": 3000,
  "media": [],
  "mentions": [],
  "warnings": [],
  "ready_to_publish": true
}

发布响应(dry_run: false):

{
  "status": "published",
  "post_id": "7437514186450104320",
  "post_text": "Hello LinkedIn!",
  "posted_at": "2026-03-11T15:06:04.849Z",
  "auto_like": "liked"
}

发布后,保存 post_id 并构造帖子 URL:

https://www.linkedin.com/feed/update/urn:li:activity:{post_id}/

linkedin_comment

在现有 LinkedIn 帖子上发表评论。

dry_run 默认为 true。

参数类型必填默认值说明
post_urlstring是—LinkedIn 帖子 URL 或原始 URN(urn:li:activity:... 或 urn:li:ugcPost:...)
textstring是—评论文本
dry_runboolean否true预览,不发布

linkedin_react

回应 LinkedIn 帖子。此操作会立即执行——没有 dry_run。

参数类型必填默认值说明
post_urlstring是—LinkedIn 帖子 URL 或原始 URN
reaction_typestring否"like"可选值:like、celebrate、support、love、insightful、funny

工作原理

                    ┌──────────────────────────────────┐
                    │           mcp-linkedin            │
AI Assistant  ──►   │                                  │
(via MCP stdio)     │  Posts/Comments/Reactions  ──►  Unipile API  ──►  LinkedIn
                    └──────────────────────────────────┘
  • AI 助手通过 MCP 的 JSON-RPC 协议,使用 stdio 调用工具
  • 调用 Unipile API,由其处理 LinkedIn OAuth——无需管理令牌

安全发布工作流

dry_run 默认值用于防止意外发布。预期流程如下:

  1. AI 使用 dry_run: true(默认值)调用工具
  2. 查看预览:最终文本、字符数、媒体验证结果、解析后的提及和警告
  3. 确认或要求修改
  4. AI 再次调用,并设置 dry_run: false
  5. 帖子正式发布

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 会将这些内容显示为可点击的 @提及
  • 如果公司名称出现在帖子文本中,则会在原位置替换;否则会追加占位符
  • 未能解析的名称会作为警告显示在预览中。仍可在不包含这些名称的情况下发布帖子。

测试

npm test       # 28 unit tests, zero extra dependencies (Node.js built-in test runner)
npm run lint   # Biome linter

项目结构

mcp-linkedin/
  index.js                    Entry point (stdio transport)
  package.json
  src/
    server.js                 MCP server and tool registration
    unipile-client.js         Unipile API wrapper (posts, comments, reactions)
    media-handler.js          URL download and file validation
    tools/
      publish.js              linkedin_publish handler
      comment.js              linkedin_comment handler
      react.js                linkedin_react handler
  tests/
    unit.test.js              28 unit tests

获取 Unipile 账户

  1. 注册 Unipile 账户
  2. 在控制面板中连接 LinkedIn 账户
  3. 从控制面板设置中复制 API 密钥和 DSN
  4. 将它们粘贴到 MCP 配置中(见上文的配置部分)

Unipile 提供免费套餐,可满足基本使用需求。

许可证

MIT — 详见 LICENSE。

致谢

由 Timur Kulbaev 构建。使用 Anthropic 的 Model Context Protocol 和 Unipile API。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。