mcpField
P
postey

postey

github.com/posteyai营销与增长641 次安装3 天前更新
代码仓库

关于 postey

postey 技能为跨平台社交媒体内容的创建、排期和发布提供操作指引,适用于通过 MCP 管理社交账号与帖子内容的工作流。它明确区分 MCP 与本地 CLI 的职责,并要求按服务器实时清单选择工具、资源和平台能力。

主要功能

  1. 01创建、更新和发布帖子
  2. 02安排帖子发布时间
  3. 03读取账号、团队与帖子内容
  4. 04发布前验证内容并审阅传播潜力
  5. 05通过 CLI 处理本地媒体文件

适用场景

  1. 01为多个平台创建并发布内容
  2. 02查看已发布或待发布帖子
  3. 03验证帖子并进行传播潜力审阅
  4. 04从本地视频转录并生成文案

MCP 相关

postey 连接 `https://mcp.postey.ai/mcp`。MCP 资源负责读取状态,MCP 工具负责验证、审阅及所有写入;CLI 仅处理需要访问本地文件的操作。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/posteyai/skills --skill postey

安装后在 Claude Code 中输入/postey确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.mcp.json
bootstrap-prompt.md
capability-snapshot.json
CHANGELOG.md
command-reference.md
pack.json
prompts.md
README.md
routing-guide.md
video-workflow.md
.claude-plugin/
plugin.json
references/
brand-profile-template.md
caption-playbook.md
hook-formulas.md
mcp-authentication.md
mcp-workflows.md
platform-archetypes.md
post-structures.md
thread-and-video-formats.md
x-algorithm.md
scripts/
mediaValidator.js
postey.js
videoUtils.js

详细介绍

Postey 技能

使用 Postey 在多个平台上创建、安排和发布社交媒体内容。

能力来自服务端,而非此文件

postey://skill-manifest 描述了当前可用的功能——包括服务端实际提供的每个工具、资源、提示词和平台。当你不确定要做什么时,请先读取它,不要根据本文档猜测。 每个工具条目都包含三个字段,可单独确定路由方式:

字段含义
capability工具的用途,格式为 noun.verb(post.create、account.list)
canonicaltrue = 访问该能力的首选方式
superseded_by对于非首选工具,应改为调用的 URI 或工具

规则:通过该能力的首选提供方访问它。 如果设置了 superseded_by,就按其指示操作——有了这个字段,你就不必从描述中解析 [FALLBACK ONLY — READ … INSTEAD]。如果资源和工具提供的是同一项能力,则资源为首选。

唯一的例外是无法读取 MCP 资源的客户端。这种情况下,已被取代的工具才是正确选择,因为首选提供方无法访问——这正是设置回退方案的原因。

此目录中的 capability-snapshot.json 包含相同的数据,供 CLI 和 CI 离线使用。可以读取实时资源时,请优先读取;快照只是镜像,可能比最新部署落后一个版本。

工具路由——调用任何工具前请先阅读

有两种使用界面——MCP 工具/资源和 CLI(postey.js)——它们是不同层级,而非替代方案。MCP 负责所有读取和所有写入。CLI 仅负责需要访问用户机器的操作,并且不提供写入命令:其本地文件命令会上传文件,并返回 MCP 写入所需的字段。工作流的每一步都使用相应负责的界面。

已安装技能不代表配置已就绪。无论服务端是否可访问,此文件都会从磁盘加载。如果当前会话中没有 Postey 工具,请停止并说明这一点。这里没有能访问 Postey 状态的命令,所以寻找此类命令只会浪费用户时间。

请说明下一步该做什么,而不只是表示无法继续。服务端地址为 https://mcp.postey.ai/mcp,应直接在你自己的客户端中注册,绝不要通过本地桥接。能够打开浏览器的客户端可完成 OAuth。无法使用浏览器的客户端(CI、容器、cron)则不行:这里没有 client_credentials 授权方式,因此需要使用通过 X-API-Key 发送的 MCP 密钥(mk_…),而你无法自行创建该密钥。各客户端的注册命令和配置路径:https://raw.githubusercontent.com/posteyai/skills/main/setup.md。密钥配置步骤:references/mcp-authentication.md。

决策树
  1. 涉及本地文件路径(~/video.mp4、./cover.jpg)? → 仅限 CLI — MCP 无法访问本地文件系统。

  2. 视频转录(yt-dlp + Whisper)? → node ${CLAUDE_SKILL_DIR}/scripts/postey.js video transcribe <url> — 只要 CLI 可用,就优先使用此方式。 仅支持连接器的客户端(没有 CLI)则改用 transcribe_video MCP 工具。

  3. 只读状态(账号、团队、帖子内容)? → MCP 资源 — 快速、可缓存,无需启动子进程:

    • 账号 → postey://accounts
    • 团队 → postey://teams
    • 帖子内容 → postey://posts/{id}/content/{platform}
    • 只要客户端能够读取 MCP 资源,就优先使用资源 URI,而不是对应的读取工具(例如,使用 postey://accounts,而不是 get_accounts);无法读取资源的客户端(许多托管连接器)则使用工具。没有对应资源的读取操作(帖子列表 → get_posts)始终使用工具。
  4. 发布前验证内容或审核传播潜力? → MCP 工具 — validate_post_content、review_post — 没有对应的 CLI 操作;在任何支持 MCP 的会话中都不要跳过这些步骤。review_post 会返回一个 job_id,运行时间为 60-120 秒;使用 get_review_status 获取结果(通过 job_id,或者在句柄丢失时通过 post_id),并在 status 为 running 时重复查询。

  5. 其他所有写入操作(创建、更新、发布、安排发布、删除、添加标签、通过 URL 上传)? → 在所有环境中都使用 MCP 工具 — create_post、update_post、publish_draft、schedule_post、delete_draft。 → 没有其他可行方式。如果无法连接 MCP 服务,就完全无法执行写入操作 — 应说明这一点并停止;不要尝试使用不存在的 CLI 命令。

路由表
触发条件工具原因
--file <local-path> 或 --video <local-path>仅限 CLI(video post)MCP 无法访问文件系统
视频转录工作流优先使用 CLI;仅支持连接器的客户端使用 transcribe_video MCP 工具本地处理流程需要 yt-dlp、ffmpeg、Whisper
读取账号 / 团队 / 帖子内容MCP 资源可缓存,无子进程开销
发布前验证内容MCP 工具没有对应的 CLI 操作
审核传播潜力MCP 工具没有对应的 CLI 操作
创建 / 更新 / 发布 / 安排发布 / 删除MCP 工具create_post、update_post、publish_draft、schedule_post、delete_draft
获取单个草稿内容MCPpostey://posts/{id}/content/{platform},或 get_post_content
Cursor、SDK Agent、CI/CD 环境与上述相同 — 不变环境决定 CLI 是否可用,绝不决定由谁执行该操作
反模式
  • 绝不在客户端能够读取 MCP 资源时调用 get_accounts — 应改为读取 postey://accounts。无法读取资源的客户端(许多托管连接器)可以使用该工具。
  • 绝不对本地文件调用 upload_media — 该工具仅接受 URL。
  • 绝不在任何支持 MCP 的会话中跳过 validate_post_content / review_post。
  • 绝不使用 CLI drafts:create / drafts:publish / drafts:schedule — 这些命令已移除;请使用 MCP 工具。CI/CD、Cursor、Windsurf 和 SDK Agent 同样如此:没有 MCP 服务就没有写入方式,而不是改用 CLI。
  • 绝不直接调用 REST 端点(例如 GET /accounts)— 始终使用 MCP 资源或工具。
  • 绝不猜测或臆造 account_id — 始终先读取账号(postey://accounts,无法读取资源的客户端可使用 get_accounts),并向用户确认。
  • 绝不运行 postey.js accounts:list — 该命令不存在;请读取 postey://accounts(或调用 get_accounts)。

设置

  1. MCP 密钥 — 请用户在 https://app.postey.ai?settings=agents&section=advanced 创建密钥 — 即 AI & Agents → Advanced, 生成的密钥永不过期,且适用于所有套餐。?settings=api 打开的是 Integrations, 其中是受套餐限制的通用密钥。然后:

    ${CLAUDE_SKILL_DIR}/scripts/postey.js setup
    

    或设置环境变量:export POSTEY_API_KEY=your_key

  2. 要求 — Node.js 18+。核心 CLI 无需其他依赖。

配置优先级(从高到低):

  1. POSTEY_API_KEY 环境变量
  2. POSTEY_AUTH_TOKEN 环境变量 — MCP 服务在为经过 OAuth 身份验证的调用方运行此 CLI 时设置的 bearer token。无需手动设置。
  3. postey.js auth:login 创建的 OAuth 会话
  4. postey.js auth:link 关联的凭据 — CLI 复制此连接已有的访问权限。这是 setup.md 第 5 步所设置的内容。
  5. ./.postey/config.json(项目本地)— 仅在创建该配置的目录中有效。 通过克隆或复制获得的配置会被忽略,因为如果仓库提交了配置,否则就会提供凭据并静默使用默认账户。在该目录中重新运行 setup --key <key> --location local,或设置 POSTEY_TRUST_LOCAL_CONFIG=1。
  6. ~/.config/postey/config.json(用户全局)
出现“API key not found”时

如果客户端已连接到 MCP 服务,请运行 postey.js auth:link --begin,并使用它打印的代码调用 link_cli 工具 — 这会将此连接的访问权限复制到 CLI,无需再次登录。否则,请告知用户以交互方式运行设置命令;你无法代替他们运行,因此停止并等待。切勿在无人值守时直接运行 setup:它会从 stdin 提示输入内容。不要在密钥链、.env 文件或配置目录中查找凭据。

账户选择

执行任何写入操作前,Claude 必须知道要使用哪个账户。每次都按以下顺序操作:

  1. 读取 postey://accounts — 仅当客户端无法读取 MCP 资源时(许多托管连接器无法读取),才调用 get_accounts 工具。
  2. 只有一个账户 → 直接使用,无需询问用户。
  3. 有多个账户 → 显示账户并询问用户要使用哪一个。
  4. 传入 account_id,用于 create_post、schedule_post、publish_draft 等。

postey://accounts 返回的账户字段:

字段类型说明
account_idint所有写入工具都必须提供
account_namestr | null人类可读的标签
teamslist[int] | null此账户所属的团队 ID
每个平台一个键object | null非空表示已连接该平台

各平台的键是小写 slug(X 对应 twitter;其他平台使用其自身名称)。 **从载荷中读取这些键 — 不要自行假设键的集合。**此表列出了七个平台,而服务返回了九个平台,因此有两个已连接的平台未显示在该技能中。

确定显示用账号名称(向用户展示时):每个已连接的平台对象都带有自己的标识符字段 — 通常是 username,有时则是平台专属字段(LinkedIn 上是 vanity_name,Bluesky 上是 handle)。读取对象并使用其中实际存在的字段,不要假设字段名;缺少某个键表示该平台未连接,而不是账号名称为空。

硬性规则:

  • ✗ 如果客户端能够读取 MCP 资源,切勿调用 get_accounts — 应改为读取 postey://accounts。无法读取资源的客户端可以使用该工具。
  • ✗ 切勿编造或假设 account_id — 始终读取账户(通过资源或工具)并确认。
  • ✗ 切勿直接调用 GET /accounts 或任何 REST 端点 — 只能使用 MCP。
  • ✗ 切勿运行 postey.js accounts:list — 该 CLI 命令不存在。

账户与默认值

  • 对账户执行操作的 CLI 命令都需要一个位置参数 account_id(例如 video post 123 --video ...)。完整参数列表请参阅 command-reference.md。

常见操作

用户说……操作
“为 X 起草一条推文”MCP create_post
“把这条发到 LinkedIn”MCP create_post,并设置 platform=LINKEDIN
“把这条发到 X 和 LinkedIn”(内容相同)MCP create_post,并指定多个平台
“X 线程 + LinkedIn 帖子”(内容不同)MCP create_post → 针对每个其他平台调用 MCP update_post
“有哪些已安排的内容?”MCP get_posts,并设置 status=SCHEDULED
“显示我最近发布的帖子”MCP get_posts,并设置 status=PUBLISHED
“安排在明天发布”MCP create_post,然后调用 MCP schedule_post
“现在发布这条”MCP create_post,然后调用 MCP publish_draft
“根据这条短视频生成文案:<url>”postey.js video transcribe <url> → 应用文案生成指南 → MCP create_post
“上传视频到 Instagram/TikTok/YouTube”postey.js video post(本地文件)或 postey.js video transcribe <url>(远程 URL)
用户提供了视频但没有文案先运行 video transcribe → 优化 suggested_captions → video post --text 或 create_post

工作流

  1. 检查配置:${CLAUDE_SKILL_DIR}/scripts/postey.js config:show
  2. 查找账号:MCP 资源 postey://accounts
  3. 创建草稿:MCP create_post
  4. 安排或发布:MCP schedule_post 或 publish_draft

完整流程——创建/验证/标记/发布、部分草稿更新、内容改编、媒体和视频路径选择、标记,以及必须询问用户而不能猜测的字段——请参阅 references/mcp-workflows.md。过去,每次请求时 MCP 服务都会发送这些指南;现在指南存放在此处,需要时再加载。

使用标签

通过 MCP create_post 的 tags 字段传入标签 ID。使用 MCP add_tag 为已创建的帖子添加标签。

发布到多个平台

每个主题使用一个 post_id——不要为同一内容在不同平台分别创建草稿。

各平台发布相同内容
mcp create_post account_id=<id> platform=X additional_platforms=[LINKEDIN] contents=[{text: "..."}]
各平台发布不同内容
# Step 1 — Create initial draft
mcp create_post account_id=<id> platform=INSTAGRAM contents=[{text: "<instagram_caption>"}]
# Returns post_id, e.g. 1234

# Steps 2–N — Attach each additional platform (same post_id)
mcp update_post post_id=1234 platform=LINKEDIN contents=[{text: "<linkedin_caption>"}]
mcp update_post post_id=1234 platform=X contents=[{text: "<twitter_caption>"}]

平台名称

--platform 接受服务端的大写 slug。不要依据此文件中的列表操作——此表过去存在,但条目悄然变成了 7 个,而服务端提供 9 个,导致技能错误地告知用户 Facebook 和 Pinterest 不存在。

请按以下方式确定平台:

  • 现有哪些平台——使用 postey://platform-limits,或此技能目录中的 capability-snapshot.json(由服务端生成;CLI 读取同一文件)。
  • 各平台的规则——使用 postey://platforms/{platform}/rules,查看字符限制、计数规则、串帖和禁用词。切勿硬编码限制;限制会因平台而异。
  • 此账号实际可以发布到哪些平台——读取 postey://accounts 并查看连接状态。服务端存在某个平台,不代表此处已连接该平台。

直接发布视频

如果已有文案,且希望通过一条命令上传视频(及其封面),请使用 video post(无需转录)。该命令会返回 MCP create_post 所需的 media_urls、cover_url 等字段——它本身不会创建草稿,并且会拒绝 --publish-now / --schedule,因为发布和安排由 MCP 负责。

还没有文案? 先运行 video transcribe——它会返回转录文本,以及各平台对应的 suggested_captions。优化这些文案(参阅 prompts.md),然后将结果传给 video post --text 或 create_post。切勿直接将原始转录文本用作文案。

要求: PATH 中必须有 ffmpeg,用于提取 Instagram 封面缩略图。

${CLAUDE_SKILL_DIR}/scripts/postey.js video post <account_id> \
  --video <local_path_or_https_url> \
  --text "<caption>" \
  --platforms INSTAGRAM,LINKEDIN,X \
  [--cover-time <seconds>]   # default: 3
  [--title "Draft title"]
平台附加视频封面缩略图
INSTAGRAM是(Reel)是 — ffmpeg 帧提取
其他所有平台否否

视频 → 字幕 → 跨平台发布

转录由 postey-video 提供——请安装该工具包。上传本地磁盘中的视频或图片属于此技能:请参阅 video-workflow.md。 有关平台特定的字幕规则,请参阅 prompts.md。

内容工作流

此技能包含四个引导式内容工作流。用户首次连接、询问你能做什么,或提出开放式内容请求时,请向用户提供这些工作流。只有用户选择某个工作流后,才加载该工作流的参考文件;切勿一开始就安装或加载所有工作流。

每个工作流都必须遵守以下规则(不可协商):

  1. 每次会话都先了解账号:读取 postey://accounts;如果你的客户端无法读取 MCP 资源,则调用 get_accounts。已连接的平台要读取确认,绝不能想当然。
  2. 所有内容都创建为草稿。只有用户明确指示后才能发布,且安排发布时间也算发布(已安排的帖子会自动发布):先提出发布时间,只有用户批准内容和时间后,才调用 schedule_post;发布时间必须是至少 10 分钟后的 UTC ISO-8601 时间。
  3. 每个平台都要单独撰写配文。一个创意,多种表达。遵循文档中的逐平台操作顺序(见上文“发布到多个平台”):先为主平台调用 create_post 并填写该平台的配文,然后为其余每个平台分别调用一次 update_post,填写对应平台的配文;整个过程中使用相同的 post_id。
  4. 创建后逐个平台验证:读取 postey://posts/{id}/content/{platform}(如果你的客户端无法读取资源,则调用 get_post_content),并逐个平台运行 validate_post_content,然后修正问题再展示给用户。
  5. 每个工作流结束时,都要向用户提供草稿的分享链接。
  6. 为 Agent 创建的帖子添加标签:一个 Agent 标签(默认 Agent;只询问用户一次,看是否偏好其他名称),再加 2 或 3 个主题标签。add_tag 会根据完全匹配的名称获取或创建标签,因此重复使用相同拼写不会创建重复项——跨会话保持标签名称一致,并复用近期帖子中显示的标签名称(get_posts 会返回每个帖子的标签),不要另行创建相似标签。误加的标签可用 remove_tag 撤销。

包含于列出了承载各工作流的技能。如果某个工作流对应的套件尚未安装,则该工作流不可用——请说明这一点,并提供已安装套件中的工作流,而不要凭记忆临时编造流程。如果此表列出的套件不存在,CI(scripts/check-pack-discovery.js)会失败。

工作流用户可能会这样说包含于加载
品牌语气“了解我的表达风格”“像我一样写”,或提供账号名、网站postey-voice该套件自己的工作流文件
视频全平台发布提供视频 URL,或说“把这个视频发到所有平台”postey-video该套件自己的工作流文件
趋势“我今天该发什么?”“找点热门内容”postey-ideas该套件自己的工作流文件
从创意到帖子提供一个粗略的创意,或说“把这个创意变成帖子”postey-ideas该套件自己的工作流文件

创作层始终包含在这里,也就是中心套件中,因为每个工作流都会引用它——无论工作流本身位于何处:references/caption-playbook.md(通用规则和上传前检查清单)、references/platform-archetypes.md、references/post-structures.md(18 种结构,每种都说明了选择条件及其失效方式——选择形式、起草之前请先阅读)、references/hook-formulas.md、references/x-algorithm.md、references/thread-and-video-formats.md,以及 references/brand-profile-template.md(每个工作流在起草前都会读取的品牌资料模板结构)。

首次运行问候:验证账号后,用简短列表列出此安装实际具备的工作流,并执行用户选择的工作流。目标是两分钟内生成分享链接。

自动化指南

  • 不要在多个账号间发布重复内容
  • 不要发送未经请求的自动回复
  • 不要操纵热门趋势或制造虚假互动
  • 遵守 API 速率限制
  • 除非用户在当前轮次明确同意,否则绝不发布或安排发布。 安排发布也算发布,因为定时帖子会自动发布。“现在发这条”表示先创建草稿并展示给用户——这只是表达了发布意图,并不代表用户同意发布他们尚未看过的文本。展示各平台的确切文案并等待确认。发布不可撤销且公开;草稿则是私密的。

提示

  • 创建帖子串:单独一行使用 ---,将内容拆分为多条帖子
  • 安排发布:在 MCP schedule_post 中使用 ISO 8601 UTC 字符串——CLI 没有安排发布的标志
  • 草稿标题:video post 中的 --title 用于内部整理,不会公开发布

参考

评论

支持 Markdown