关于 PlanVortex
PlanVortex MCP 服务让 AI 助手通过 PlanVortex 管理多个社交平台的发布、评论和私信,也可查询账号指标。AI 计划生成功能需显式开启,且生成结果是草稿。
主要功能
- 01创建、更新和重试社交媒体发布
- 02查看并回复评论和私信
- 03查询发布数据与账号指标
- 04上传媒体并查看平台限制
- 05生成 AI 计划草稿(需开启)
适用场景
- 01安排多个社交平台的帖子
- 02整理未读评论并回复消息
- 03查看发布表现和账号指标
- 04从主题或商品目录生成帖子草稿
MCP 相关
该 MCP 服务向客户端提供发布、评论、消息、媒体、指标和平台目录工具,还提供提示词与资源。可通过 stdio 或 HTTP 模式连接;HTTP 模式需显式启用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y planvortex-mcpPLANVORTEX_CLIENT_IDClient id of a PlanVortex app. Every plan has apps, the free one included. Panel: Settings > Apps.PLANVORTEX_CLIENT_SECRET密钥Secret of that app.PLANVORTEX_ORGANIZATION_IDDefault organization id. Optional: saves a discovery call per conversation.PLANVORTEX_MCP_UPLOAD_DIRSDirectories upload_media may read from. Empty means none.PLANVORTEX_MCP_READ_ONLYSet to 1 to remove the nine write tools.PLANVORTEX_MCP_ALLOW_AISet to 1 to add create_ai_plan, which generates a week of posts and spends AI credits.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
31收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
planvortex-mcp
适用于 PlanVortex 的官方 Model Context Protocol 服务。它可以让 AI 助手——Claude Desktop、Claude Code、Cursor、VS Code——为你在所有社交网络上安排帖子、查看评论收件箱并回复私信:Facebook、Instagram、Threads、LinkedIn、TikTok、X、WhatsApp、YouTube、Google Business、Bluesky、Discord、Telegram、Slack 和 Pinterest。
你需要一个 PlanVortex 应用,每种套餐都包含应用,包括免费套餐。 服务使用
client_id和client_secret进行身份验证;你可以在 PlanVortex 控制面板的 Settings → Apps 下创建它们。套餐之间的区别在于可创建的应用数量:Free 套餐为 1 个,Basic 套餐为 2 个,Pro 套餐为 5 个,Custom 套餐为 10 个。
安装
无需安装:MCP 客户端会通过 npx 启动它。
Claude Desktop、Cursor、VS Code
{
"mcpServers": {
"planvortex": {
"command": "npx",
"args": ["-y", "planvortex-mcp"],
"env": {
"PLANVORTEX_CLIENT_ID": "...",
"PLANVORTEX_CLIENT_SECRET": "...",
"PLANVORTEX_ORGANIZATION_ID": "optional, but saves a call per conversation"
}
}
}
}
Claude Code
claude mcp add planvortex \
--env PLANVORTEX_CLIENT_ID=... \
--env PLANVORTEX_CLIENT_SECRET=... \
-- npx -y planvortex-mcp
然后试着提出需求:“这周我安排了哪些内容?还有哪些评论未读?”
功能
共有 31 个工具,按操作对象分组;另有第 32 个工具 create_ai_plan,需要你手动启用(参见使用 AI 生成)。
| 分组 | 工具 |
|---|---|
| 上下文 | list_organizations、list_accounts、get_plan_use、get_unread_counts |
| 发布 | list_publications、get_publication、list_destinations、create_publication、update_publication、retry_publication |
| AI 规划器 | get_planner_templates、list_store_products、list_ai_plans、get_ai_plan、get_ai_plan_results,以及启用后可用的 create_ai_plan |
| 媒体 | upload_media |
| 评论 | list_comments、get_comment_thread、reply_to_comment、hide_comment、mark_comment_read |
| 消息 | list_conversations、list_messages、send_message |
| 数据 | get_dashboard_summary、get_publication_stats、get_top_publications、get_account_metrics |
| 目录 | get_social_limits、get_social_capabilities、create_connect_link |
此外还有 3 个提示词——weekly_plan、inbox_triage、publish_from_brief——以及 4 个资源,提供各社交网络的限制、功能、评论矩阵和你的组织信息。
使用 AI 生成内容
PlanVortex 不只是安排你写好的内容:它还能为你撰写一周的内容。它的规划器可以将主题、你自己的照片、文章或已连接商店的商品目录转化为一周的帖子,而 get_planner_templates 会列出五种模板及其各自的费用。对于已连接到 PlanVortex 的商店(WooCommerce 商店),list_store_products 可以查找适合撰写内容的商品。
读取功能始终可用。创建计划则不同,除非你将其启用:
"env": { "PLANVORTEX_MCP_ALLOW_AI": "1" }
这是刻意为之,考虑的是你的费用,而非安全性。生成计划会消耗你账户中的 AI 额度,而反复重试的 Agent 是调用计费端点时最糟糕的情况。协议为此提供的解决方案——在服务内部要求你确认——目前几乎没有客户端实现,因此确认方式就是这一行:由一个人在任何 Agent 启动前写入一次。若未设置这一行,create_ai_plan 根本不会出现在工具列表中,因此没有任何东西可以调用它。
还有两点值得了解。create_ai_plan 不会返回帖子:它会将计划加入队列并返回预算,而生成需要几分钟——请轮询 get_ai_plan。生成的内容都是草稿;是否安排发布仍由人逐条决定,通过 update_publication 完成。
两件它刻意无法做到的事
它绝不会删除任何内容。 没有任何工具可以删除帖子、账户、联系人或评论。这不是可以开启的选项;代码中根本没有这项功能。原因见下文的安全部分。
它无法连接社交账户。 连接 Instagram 需要完成 OAuth 流程,由用户在 Meta 自己的页面上点击“授权”;拥有客户端凭据的应用无法代劳——任何应用都不行。create_connect_link 会返回一个一次性链接,十五分钟后过期;请将链接交给用户并让其打开。
安全性
此服务在你的计算机上运行,进程中包含应用的 client_secret,并会将公众撰写的文本——评论、评价、私信——提供给大模型,而同一个大模型还持有能够以你的品牌名义发布内容的工具。
从设计上说,这就构成了提示词注入攻击面,了解其处理方式很有必要:
- 每条评论、评价和收到的消息都会包裹在
untrusted_content块中,并附有明确提示,说明其中的内容是数据,而非指令。这并非万无一失——任何封装都做不到——但能提高攻击门槛。 - 没有删除功能。 即使注入攻击得逞,最坏的情况也只是出现一条你看得到并能删除的帖子,而不是四千个联系人被删除。
- 用于发布、发送、覆盖内容、隐藏评论或消耗 AI 额度的工具都标注了
destructiveHint: true,因为这些操作一旦执行就无法撤回;仅用于读取的工具则标注了readOnlyHint: true。每个工具都会明确携带全部三种提示。 - 第三方文本绝不会进入工具描述或缓存资源,因为客户端不会将这些内容标记为不可信。
- 是否由人工确认发布操作,由你的 MCP 客户端决定,而非此服务。工具会声明相应注释,让客户端显示警告;请保留这些注释。
设置 PLANVORTEX_MCP_READ_ONLY=1,即可从列表中完全移除九个写入工具——如果你想让无人监管的 Agent 只能读取而不能做其他操作,这会很有用。
--http 模式
planvortex-mcp --http 通过 HTTP 提供 MCP 服务,用于可自托管的部署。进程会持有你的
client_secret,因此任何能访问该端口的对象,都可以通过普通的
curl 向你的账户发布内容。因此:
- 默认绑定到
127.0.0.1; - 绑定到其他地址必须设置
PLANVORTEX_MCP_AUTH_TOKEN,否则服务会拒绝启动; - 每个请求都会验证
Origin标头(防止 DNS 重绑定); - TLS 由你的反向代理负责——请在前面部署一个反向代理;
- 请求中的令牌绝不会转发给 PlanVortex。它只用于验证对此进程的访问,到此为止。
docker run --rm -p 127.0.0.1:3000:3000 \
-e PLANVORTEX_CLIENT_ID=... -e PLANVORTEX_CLIENT_SECRET=... \
-e PLANVORTEX_MCP_AUTH_TOKEN=$(openssl rand -hex 32) \
planvortex-mcp --http --host 0.0.0.0
这里的标志不是可选项:镜像默认使用 stdio 通信,因为 MCP 客户端启动时就是这样运行的(docker run -i planvortex-mcp),服务目录也会以这种方式检查它。--http 是部署模式,需要由你明确指定。
--hosted 模式
--hosted 是 PlanVortex 自行运行的多用户模式,用户可以通过登录,将 PlanVortex 账户连接到助手,无需应用凭据。自托管不需要此模式:那是 --http。它不会持有任何应用的 client_secret,并且如果发现以下任一配置,便会拒绝启动:默认组织、PLANVORTEX_MCP_ALLOW_AI、PLANVORTEX_MCP_AUTH_TOKEN 或 PLANVORTEX_MCP_UPLOAD_DIRS,因为在共享服务上,这些配置会应用于所有人。
每个请求都必须携带由 PlanVortex 的 Keycloak 为此服务(其 aud)以及该服务接受的某个助手客户端(其 azp)签发的 OAuth 访问令牌。服务会验证该令牌,并将其交换为自己的令牌(RFC 8693);只有交换后的令牌会传递给 API,因此助手保存的令牌本身无法访问 PlanVortex API。没有有效令牌的请求会收到 401 响应,其 WWW-Authenticate 会指向 /.well-known/oauth-protected-resource。作用域包括 planvortex:read(必需)和 planvortex:write:缺少后者时,不会列出写入工具。此模式不支持创建 AI 计划,也不支持 create_connect_link:连接链接只能签发给应用,因此用户需要在 PlanVortex 面板中连接社交账户,服务会将此情况告知模型。
服务在请求之间保留的所有内容(交换后的令牌、组织列表、重复操作防护和速率限制)都按人员分别保存,以令牌的 sub 为键。运行 planvortex-mcp --help 查看其环境变量。
每个通过身份验证的请求结束时,都会记录一行日志:sub、助手客户端、方法、工具、请求的结束方式(如果 API 拒绝,会记录 PlanVortex 错误代码)、HTTP 状态和耗时。工具调用以 info 级别记录,其余内容以 debug 级别记录,日志行中不会包含令牌、参数或结果。
环境变量
| 变量 | 必填 | 作用 |
|---|---|---|
PLANVORTEX_CLIENT_ID | 是 | 你账户中的应用。每个计划都有应用。 |
PLANVORTEX_CLIENT_SECRET | 是 | 应用的密钥。绝不会作为工具参数传递。 |
PLANVORTEX_ORGANIZATION_ID | 否 | 默认组织。每次对话可省去一次发现调用。 |
PLANVORTEX_BASE_URL | 否 | 指向其他 PlanVortex 部署。 |
PLANVORTEX_MCP_UPLOAD_DIRS | 否 | upload_media 可读取的目录。留空表示没有目录。 |
PLANVORTEX_MCP_AUTH_TOKEN | 使用 --http 且非本地回环时 | HTTP 端点要求的 Bearer 令牌。 |
PLANVORTEX_MCP_READ_ONLY | 否 | 1 会移除九个写入工具。 |
PLANVORTEX_MCP_ALLOW_AI | 否 | 1 会添加 create_ai_plan,该工具会消耗 AI 点数。 |
PLANVORTEX_MCP_LOG_LEVEL | 否 | debug、info、warn、error、silent。始终输出到 stderr。 |
上传媒体
使用 stdio 时,服务运行在你的机器上,因此 upload_media 接受本地绝对路径——但路径必须位于 PLANVORTEX_MCP_UPLOAD_DIRS 中,该变量默认为空。将其设置为你确实希望允许访问的文件夹:
PLANVORTEX_MCP_UPLOAD_DIRS=/Users/you/Pictures,/Users/you/Downloads
读取任意路径正是被注入的提示词可能要求做的事,因此无法禁用允许列表。使用 --http 模式时会直接拒绝本地路径:该路径指向的是服务所在机器,而不是你的机器。请改为传入公开的 https URL。
使用哪个组织?
PlanVortex 中几乎所有内容都隶属于某个组织。服务会按以下三个步骤解析组织:模型传入的 id_organization 参数、PLANVORTEX_ORGANIZATION_ID,最后——仅当你的应用只关联一个组织时——使用该组织。如果应用关联了多个组织,且未指定组织,工具会返回组织名称和 ID 列表,供模型据此重试,而不是只返回一个错误。
开发
npm install
npm test # layers 1 and 2: no network, no credentials
npm run build
npm run inspector # MCP Inspector against the built server
基于官方 Node 客户端 planvortex 构建。此服务本身不使用 HTTP 通信:每次调用都通过该库完成,错误目录、令牌缓存、分段上传和分页功能也都由该库提供。
指南
planvortex.com 上的详细文章:
- 使用 MCP 服务从 AI 助手向社交媒体发布内容:如何在各个客户端中设置,以及如何无需安装任何内容即可连接到 Claude
- LinkedIn MCP 服务:通过官方 API 从 Claude 发布内容
- 面向 Agent 工作流的社交媒体 API:决定成败的四个要点
- 使用自己的照片发布 AI 社交媒体内容
- 所有文章
链接
MIT © Talia Softworks
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。