mcpField
P
Post Engineer

Post Engineer

本地服务
post-engineer.com社交媒体1今天更新

关于 Post Engineer

Post Engineer 是通过 Post Engineer 账户管理角色、制作视频和社交帖子用的 MCP 服务。工具涵盖声音与面孔选择、脚本检查、视频生成和帖子排期。

主要功能

  1. 01创建和更新 AI 角色
  2. 02浏览并试听声音、查看面孔
  3. 03验证脚本并评估草稿
  4. 04生成角色视频并安排帖子
  5. 05管理克隆声音和媒体上传

适用场景

  1. 01为社交视频准备角色
  2. 02在生成视频前检查脚本
  3. 03制作并安排视频帖子
  4. 04依据已测量帖子评估草稿

MCP 相关

MCP 服务使用 API 密钥将 Agent 连接到 Post Engineer API,提供角色管理、视频生成、账户信息以及帖子排期或发布工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"ryan-carloso-post-engineer": {
"command": "npx",
"args": [
"-y",
"post-engineer-mcp"
],
"env": {
"POST_ENGINEER_API_KEY": "<POST_ENGINEER_API_KEY>",
"POST_ENGINEER_API_URL": "<POST_ENGINEER_API_URL>"
}
}
}
}
启动命令npx -y post-engineer-mcp
需要配置的环境变量
POST_ENGINEER_API_KEY密钥API key from https://post-engineer.com/recipes
POST_ENGINEER_API_URLOverride the API base URL (staging or self-hosted). Defaults to production.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpost-engineer-mcp1.49.0

工具

41

收录的工具列表 · 更新于 今天

参数类型必填说明
namestring是persona 的名称
nichestring否内容细分领域
imagesarray否最多 10 个属于同一人物的本地图片文件,用于 persona 图片库。每个视频都会根据标签确定性地选择匹配度最高的图片。
voiceIdstring是要使用的 Voice ID(参见 list_voices)
languagestring否语言代码——目前仅支持英语(例如 en-US、en-GB)
avatarUrlstring是必填。persona 头像图片的公开 URL(库存头像 URL 请使用 list_faces)。每个 persona 都必须有面孔;可在 generate_persona_video 的 options.faceless 中为单个视频选择“不显示面孔”。
faceQualityenum否渲染视频的面部画质:ok(480p,每个视频消耗 2 个 token)或 very_good(720p,每个视频消耗 3 个 token)ok | very_good
videoAspectenum否视频宽高比9:16 | 16:9
videoLayoutenum否persona 钩子与视频素材的合成方式:"standard" 使用头像填满画面;"react" 将画面分为两半(上方为 persona,下方为视频素材:真实片段或绘图)。两种方式的渲染成本相同。standard | react
scriptPromptstring否视频脚本的系统提示词指令
paragraphNumberinteger否段落数
imagePrimaryIndexinteger否用于标记主要图库图片的 images[] 索引(省略时不设置主要图片)

详细介绍

Post Engineer MCP 服务

面向 Post Engineer 的公共 MCP(模型上下文协议)服务。它可以让 AI Agent(Claude、Cursor、Codex 和 OpenCode)直接在你的 Post Engineer 账户中创建角色、生成视频、检查生成状态并安排发布。

Post Engineer 根据 Apache License 2.0 版开源(参见仓库根目录中的 LICENSE)。你可以在自己的 VPS 上自托管整个 平台(参见 docs/SELF_HOSTING.md),而不是使用托管平台。唇形同步(LongCat)在 Modal.com 上运行,其 Starter 计划包含每月 30 美元的计算额度(参见 modal.com/pricing)。我们不是 Modal:这项免费额度优惠由 Modal 提供,可能随时结束;超出额度的用量由 Modal 计费。

https://post-engineer.com/ 是什么?

https://post-engineer.com/ 是 Post Engineer 的 Web 平台。你可以用它来:

  • 创建账户并登录。
  • 创建 AI 角色(头像、语音、语言、细分领域)。
  • 使用这些角色生成视频。
  • 连接 YouTube / Instagram / LinkedIn / Threads 账户。
  • 安排自动发布。
  • 在 https://post-engineer.com/recipes 生成和管理 API 密钥。

要求

遥测

每次对 post-engineer API 的请求都会包含调用工具的名称和 服务版本,并关联到你的账户进行产品分析。 不会发送脚本内容、媒体或凭据。服务本身不会联系任何分析服务。

为了衡量 Agent 是否使用了配方,配方感知型工具(list_prompts、get_prompt、create_persona、list_personas、list_social_accounts、get_token_balance、validate_script、 generate_persona_video)发出的请求还会包含:

标头值
X-MCP-Session-Id此服务实例的随机 ID(一个 stdio 连接;HTTP 为一个请求,且无状态)
X-MCP-Transportstdio 或 http
X-MCP-Nudged-By最近一次显示配方提示的工具,或 none
X-MCP-Recipes-KnownAgent 列出或获取配方后为 true
X-MCP-Recipe-Fetchedget_prompt 返回的最近一个配方 slug,或 none
X-MCP-Script-Rejections本地验证器在当前会话中拒绝的脚本数
X-MCP-Recipe此次调用的配方 slug(get_prompt 的 slug、generate_persona_video 的 recipe)

Web API 会将这些信息记录为 mcp_tool_called 属性;不属于 hub slug 的 slug 会记录为 unknown。

使用

配置你的 Agent(opencode.json、claude_desktop_config.json、.mcp.json 或 Cursor 设置):

{
  "mcpServers": {
    "post-engineer": {
      "type": "local",
      "command": ["npx", "-y", "post-engineer-mcp@latest"],
      "environment": {
        "POST_ENGINEER_API_KEY": "<MY_API_KEY>"
      }
    }
  }
}

将 <MY_API_KEY> 替换为你在 https://post-engineer.com/recipes 生成的密钥。无需克隆仓库或在本地构建。

@latest 标签很重要:npx 会在首次运行时缓存软件包,之后运行时会重复使用缓存副本,而不会检查更新。如果不使用 @latest,你可能会一直停留在旧版本(例如服务端已不再提供的 1.12.0 之前的工具),且不会收到任何错误提示原因。

OpenCode

OpenCode 使用 mcp,而不是 mcpServers。其本地 MCP 工具发现超时默认为 5 秒,而首次启动时 npx 下载软件包可能需要更长时间。请设置更长的超时时间:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "post-engineer": {
      "type": "local",
      "command": ["npx", "-y", "post-engineer-mcp@latest"],
      "environment": {
        "POST_ENGINEER_API_KEY": "<MY_API_KEY>"
      },
      "timeout": 30000,
      "enabled": true
    }
  }
}

如果已配置服务,只需在现有条目中添加 "timeout": 30000,然后重启 OpenCode。

本地开发

pnpm install
pnpm build
pnpm start

在本地设置 API 密钥(默认使用生产 API;设置 POST_ENGINEER_API_URL 可切换到 staging / 自托管环境):

export POST_ENGINEER_API_KEY="<MY_API_KEY>"
# optional: export POST_ENGINEER_API_URL=https://staging.example.com

Authorization: Bearer API 密钥标头会发送到配置的基础 URL,因此 POST_ENGINEER_API_URL 只能指向你信任的服务。

工具

  • list_personas:列出现有角色。
  • list_voices:列出可用的角色语音(实时目录:65 种英语 House 语音,带有 gender/accent/kind,以及已就绪的克隆语音)。每种语音都有描述其听感的 description。可选筛选条件:gender(female|male)、origin(us|gb|character)、search(匹配名称/描述中的词语,例如 "deep calm")。响应中绝不会包含 openrouter: 或 elevenlabs: ID;选择器仅包含 House 语音和你的克隆语音。
  • list_cloned_voices:列出你按用户区分的 Chatterbox 语音克隆(状态,以及就绪时的 voice_id)。
  • create_cloned_voice:从一段简短的参考录音注册语音克隆——必须且只能提供 audioUrl(HTTPS URL)或 audioPath(本地 .mp3/.wav/.m4a/.webm 文件,最大 20MB,读取前会检查;错误信息只会显示文件名,不会显示完整路径)之一(需要 consent: true;denoise:true 会先清除背景噪声,false 则保留原音)。
  • get_cloned_voice:按 ID 获取一个语音克隆——调用 create_cloned_voice 后,轮询其 status,直到变为 ready(此时会设置 voice_id)或 failed。
  • delete_cloned_voice:按 ID 删除一个语音克隆。
  • preview_cloned_voice:为就绪的克隆生成一段简短的 MP3 试听(返回 base64 音频)。可选的 text(1-300 个字符,英语)可让克隆语音读出你提供的内容,而非固定示例;试听免费,每位用户每天最多 10 次。
  • preview_house_voice:为 list_voices 中的 House 语音生成一段简短的 MP3 试听(返回 base64 音频)。可选的 text(1-300 个字符,英语)可让语音读出你提供的内容,而非固定示例;试听免费,每位用户每天最多 10 次。
  • list_faces:列出默认/内置角色头像(来自 /api/persona/faces 的实时目录)。每项包含 id、url、name、gender、age(单个数字,例如 23)、ethnicity、hair 和 description(英语),方便 Agent 不看照片也能选择;在 create_persona 中将头像 url 作为 avatarUrl 传入。
  • create_persona:创建 AI 角色(头像、语音、语言、细分领域)。必须提供头像,且必须且只能来自以下一种来源:avatarUrl(公开图片 URL 或 list_faces 的 url)或 avatarPath(本地 JPG/PNG/WebP 文件,最大 10MB,会直接作为角色照片上传,因此服务端无需下载链接)。同时传入两者会在发送任何内容前被拒绝。“无头像”是逐视频选择的(在 generate_persona_video 中设置 options.faceless)。voiceId 可使用 list_voices 中的 House 名称或标签(phonon_zoey、Zoey),或从 list_voices 复制的克隆 ID/键;不要输入提供商前缀(elevenlabs:/openrouter:)——未知语音会在发送任何内容前被拒绝。
  • update_persona:更新现有角色(仅更改已提供的字段)。使用 avatarUrl 或 avatarPath 替换头像(本地照片文件会直接上传);两者最多只能提供一个。无需重新创建角色即可更改 faceQuality(ok 为 480p / very_good 为 720p):未来视频按新画质计费,已排期的帖子仍按原先计费的画质生成。
  • get_token_balance:获取预付令牌钱包余额。生成视频需要消耗令牌,请在生成前检查。
  • list_prompts:列出此服务可运行的配方提示词——每个配方对应一个条目,包含 slug、title 和 description(新闻、地点专题、主题专题、GitHub PR、完整设置),不包含提示词正文(轻量发现)。请求内容是主题而非现成脚本时,先调用此工具,再通过 get_prompt 获取匹配的配方。
  • get_prompt:按 slug(来自 list_prompts)获取一个配方提示词,内容是可直接运行的指令,涵盖完整的已验证流程(脚本限制、媒体检查、生成调用),并以要求 Agent 在 generate_persona_video 中将该 slug 作为 recipe 传入的行结尾。未知 slug 会返回错误,并列出有效 slug。
  • validate_script:以机械方式验证分段脚本,不消耗令牌——开场钩子必须在最前,CTA 必须在最后,二者各恰好一个;字数限制(总计 60-200,正文至少 30,CTA 5-20,TTS 之前的开场钩子为 15-40 个词)。返回字数统计和开场钩子的时长范围(朗读 8-12 秒)。实际开场钩子时长需等待仅针对开场钩子的 TTS 端点;在此之前会报告为待定,绝不编造。可选的 facelessMaterial(broll、svg、images):选择 images 时,还会检查每个分段是否都带有 media(最多 12 个)。
  • score_draft:根据调用方自己测得的帖子,以机械方式为草稿评分,不消耗令牌。返回 0-100 分,每个得分点都有说明(开场钩子、长度、主题标签、低质内容标记、链接、热门主题匹配度、行动号召)、评分依据(按互动量排序的热门角度),以及针对所请求平台的发布检查(linkedin、youtube、instagram、bluesky、threads):仅当草稿为空,或超出本仓库有证据支持的平台自身上限时才会失败(LinkedIn 3000 个字符、Threads 500 个字符、Bluesky 300 个字素);其他情况均为警告。发布检查失败表示:请先修改草稿,再为该平台安排发布。视频脚本请传入 kind 'script'(将各分段以换行符连接,开场钩子在前,CTA 在后):主题标签不计分,且 publishCheck 为 null。
  • upload_media:上传用于视频分段的本地图片,并获取可用于分段 media 字段的 mediaId。支持 JPG/JPEG、PNG 或 WebP,最大 8MB(引擎照片限制,不是 10MB 的素材库限制);会验证实际内容类型,而非文件扩展名。文件会作为临时引擎素材存储(TTL 为 1 小时):请在生成前不久上传,因为很久以后的排期可能晚于素材有效期,届时该分段渲染时会缺少图片。仅返回 mediaId。分段的 media 还可以包含 overlay(title,可选的 subtitle 和 badge,长度最多分别为 60、80 和 30 个字符):信息卡会显示照片的实际地点名称、地址和价格,并绘制在照片顶部。照片会在朗读对应分段的时长内显示在视频上方,字幕则叠加在照片上:无头像视频和 b-roll 视频会使用完整画面(整张照片覆盖模糊的自身副本,因此不会留下黑边);角色露脸时,照片会显示为带边框的面板(约占画面 38%,距底边 30 px),让面板后方的角色面部仍可见。这意味着,仅有开场钩子的对口型视频的开场钩子,以及完整对口型视频的所有分段,都会显示面板;仅有开场钩子的视频切换到 b-roll 后,照片会占满画面。在 react 布局中,角色占据上半部分,因此面板会位于底部。若信息卡无法绘制,会跳过该卡片并在任务中显示警告,但照片仍会呈现。
  • check_media:对分段的一张公开图片 URL 进行机械检查,不使用大模型,也不判断相关性(由能看到图片的 Agent 判断相关性)。只返回以下代码之一:ok、blocked_403、not_image、too_small、too_large、timeout 或 face_detected。不会发送伪造的 User-Agent 或 Referer 来绕过防盗链;绝不会访问私有地址。
  • generate_persona_video:根据完整脚本生成并排期一个角色视频——生成始终与发布绑定(一次调用 = 生成 + 排期 + 自动发布;不会留下孤立视频,也没有单独的排期步骤)。将完整脚本作为 segments 发送(先 hook,再正文分段,最后 cta;总计 60-200 个词,正文至少 30 个词,CTA 为 5-20 个词,开场钩子为 15-40 个词且以终止标点结尾)——不会由大模型扩写。title 是该视频的排期标签。personaId 是可选的:若要发布无角色的无头像帖子,请省略此项,并设置 options.faceless 和 options.voiceId(或 options.audioUrl),还可按需设置 videoAspect / language / niche。options.voiceId 可使用 list_voices 中的 House 名称或标签(phonon_zoey、Zoey),或来自 list_voices 的克隆 ID/键;不要输入提供商前缀——未知语音会在生成前被拒绝(不消耗令牌)。传入 providers 以及每个提供商对应的账号 ID(参见下方账号 ID 表),并在 timezone 中传入 startAt + times(或使用 mode: 'asap',不传 startAt/times)。排期时间必须在 3 小时至 30 天之后。idempotencyKey 会自动生成;重复使用即可重试而不重复生成(replayed: true)。可选的 recipe:编写脚本时使用的配方 slug——仅作为 X-MCP-Recipe 遥测标头发送,绝不会放入请求正文。通过 get_video_task_progress 轮询排期的 taskId。options.facelessMaterial 用于选择视频画面的填充内容:broll(真实素材库视频,默认)、svg(绘制的插图)或 images(仅使用你在分段中提供的图片:不使用素材库视频,也不绘制插图)。使用 images 时,每个分段都必须带有 media(来自 upload_media 或公开图片 url,最多 12 个);系统会在消耗任何令牌前检查这些图片。每张图片会在朗读对应分段的时长内以全画幅慢速缩放的方式显示。如果图片在渲染时失败,相邻图片会覆盖其显示时长,任务会发出警告;如果没有任何图片可用,任务会以 images_do_not_cover_audio 失败并退还令牌。图片是你提供的第三方内容:只能使用你拥有使用权的图片。
  • generate_persona_video_batch:一次调用生成并排期 2-12 个角色视频,费用低于逐个生成:每 6 个露脸角色的视频,最便宜的一个免费。每个视频所需字段与 generate_persona_video 相同(不支持 idempotencyKey、experiment 或 recipe)。视频会通过相同路由依次创建(每个视频按正常价格计费并立即派发,因此同一批次会在一个预热的 GPU 容器中连续渲染),之后服务端会返还免费视频对应的费用(POST /api/videos/batch-discount)。批次中可包含无头像视频,但需全额付费,不计入 6 个视频,也绝不会免费。所有视频必须在第一个视频创建后的 10 分钟内创建,且每个视频只能属于一个批次。batchKey 用于标识批次:使用相同 batchKey 和相同顺序的视频再次调用,会重放已创建的视频(不重复收费)、创建缺少的视频,并重试折扣。取消享受折扣的批次中的视频(cancel_schedule)时,会从该视频的退款中扣除批次不再符合条件的折扣。
  • get_video_status:检查生成状态并获取最终视频 URL。
  • get_video_task_progress:轮询一个视频任务,获取机器可读的进度:返回 {task_id, state, progress, stage, error}。当 state 为 -1(失败)时,error 为引擎失败原因;否则为 null。调用 generate_persona_video 后应针对每个视频使用此工具;若只需查看进度,优先使用此工具而非 get_video_status。
  • cancel_video_task:通过 taskId(来自 get_video_status、get_video_task_progress、get_post 或 list_posts)取消/移除你在引擎上的一个视频任务。只能取消你自己的任务;角色级 API 密钥只能取消其角色所属的任务。未知或已完成的任务会返回错误;此调用不会退还令牌。
  • list_persona_images:列出角色的图片库(id、标签、描述、is_primary)。在 generate_persona_video 中使用这些 ID 设置 options.imageId,即可通过一次调用让每个视频都使用特定图片。
  • add_persona_image:通过本地文件路径向角色图片库添加图片(JPG/JPEG、PNG 或 WebP,最大 9MB)。可选的标签和描述会影响逐视频确定性图片选择。
  • update_persona_image:更新角色图片库中图片的标签、描述或主图标记。
  • remove_persona_image:从角色图片库中移除图片。
  • publish_video_direct:将现成的视频文件直接发布到社交账号——不生成、不排期(本地 .mp4/.mov,最大 2GB;YouTube 需要标题、描述、标签和隐私状态;其他平台需要配文)。
  • list_social_accounts:列出已连接的社交账号及排期所需的账号 ID。
  • get_persona_publishing_accounts:列出角色在各提供商下的默认发布账号。若未传入账号 ID,generate_persona_video 会使用这些默认账号;明确传入的 ID 始终优先。
  • set_persona_publishing_accounts:替换角色在各提供商下的默认发布账号(账号 ID 来自 list_social_accounts;映射到 [] 的提供商不会保留默认账号)。
  • connect_account:连接社交账号。对于 youtube/instagram/linkedin/threads:会返回授权 URL——用户必须在已用同一账号登录 Post Engineer 的浏览器中打开该 URL 并完成授权;随后账号会自动连接(使用 list_social_accounts 验证)。未登录或以其他用户身份登录的浏览器会被拒绝。对于 bluesky:使用句柄和应用密码直接连接。
  • list_schedules:列出自动化排期。
  • list_posts:列出所有已连接账号的即将发布(已排期)和过往(已发布/失败)帖子。传入 from + to(带 UTC 偏移的 ISO-8601 格式,最多 62 天)时,会在一个 slots 列表中返回该时间范围内所有状态的帖子,并附带 truncated。
  • cancel_schedule:按 ID 取消排期。
  • get_slot:按槽位 ID 获取一条已排期帖子的完整详情(状态、标题、排期时间、进度、排期、角色)。
  • update_slot_title:编辑尚未开始生成的已排期帖子标题。
  • delete_slot:删除一个已排期帖子槽位(仅限待处理/等待中或失败的槽位;绝不能删除排期中的最后一个槽位)。
  • list_video_generations:按时间从新到旧列出视频生成历史(状态、错误代码、令牌退款)。
  • get_video_generation:按生成 ID 获取一个视频生成的详细信息。
  • get_post:按 ID 获取一个帖子的完整详情,无论该 ID 是槽位 ID 还是生成 ID(服务端会识别;响应中会注明 kind: "slot" 或 kind: "generation")。两种类型都会包含实时生成进度。
  • get_post_metrics:获取每个视频在 24h、7d 或 28d 时间窗口内的表现快照(观看量、点赞、评论、收藏),按时间从新到旧排列。可选的精确匹配筛选条件:persona(uuid;无角色的帖子使用 ^@none)、account、provider、angle(或 ^@none)。返回 rows 和 truncated。YouTube 行还会包含你自己视频的 YouTube Analytics 留存数据:engagedViews、stayedToWatchPct(推导值:engaged views / views,并非原生指标)、averageViewPercentage、contentType、provisional(Analytics 数据约 3 天内尚未定稿;28d 行为最终数据),以及 analyticsStatus(scope_missing = 重新连接 YouTube 并授予 yt-analytics.readonly 权限)。
  • get_youtube_retention_curve:获取你自己已发布的一个 YouTube 视频的观众留存曲线(account + 来自 youtube get_post_metrics 行的 video),从 YouTube Analytics 实时读取:返回 ratio(视频的 0.01–1.0 位置)、audienceWatchRatio、relativeRetentionPerformance 的各个 points。只会查询你自己的频道。Shorts 在 YouTube Studio 中没有逐秒曲线;长视频则有。
  • create_experiment:为一个脚本变量(开场钩子)创建配对 A/B 测试:包含名称、可选的 personaId、targetPairs(3–20,默认 6)和恰好两个变体;每个变体都包含 slug variantId(例如 hook-aggressive,不能使用 “A”/“B”)、name 和编写对应开场钩子时需遵循的风格 description。不会收费。
  • list_experiments:列出你的实验及其两个变体和目标配对数。
  • add_experiment_pair:创建一对视频:两个视频使用相同的 title、正文和 CTA(segments 不含开场钩子),在 hooks 中为每个变体提供一个开场钩子,并包含 generate_persona_video 的常规发布字段。每个视频都按普通视频收费;第二个视频会在第一个之后 spacingHours(默认 24)小时开始生成,每组配对的先后顺序交替。除非第二个视频与第一个视频在以下方面完全匹配,否则服务端会在收费前拒绝该视频(并发竞态会在插入后发现并退款):提供商和账号相同、标题相同、语音(ID 和音频 URL)相同、无头像设置和无头像素材相同、完整对口型设置相同、视频宽高比和布局相同、段落编号相同、头像画质相同、语言相同、细分领域相同、CTA 文本相同,且正文和 CTA 分段完全一致;开场钩子则必须不同。固定的 options.imageId 不会被存储,因此不会进行比较:请自行确保两个视频使用相同的 imageId(或都不使用);使用相同参数再次调用会重放已创建的内容;如果视频派发失败(其槽位为 failed,令牌已退款),调用会报告错误,且该配对编号仍会被占用(单视频排期唯一的槽位不能用 delete_slot 删除),因此请继续使用下一个可用的配对编号。
  • get_experiment_results:按配对列出实验视频,并按提供商返回每组配对的观看量/点赞数/评论数/平均观看时长、每个变体的胜出次数、符号检验 pValue 和 label:pending、indicative(尚无定论)或 clear(所有目标配对均已判定且 p < 0.05)。window 为 24h、7d(默认)或 28d。
  • list_token_transactions:列出令牌账本中的每笔入账和扣款(购买、生成消耗、退款),按时间从新到旧排列。
  • get_persona_delete_preview:预览删除角色将移除的内容(数量 + 每个视频的下载链接)。只读。
  • delete_persona:破坏性操作——删除角色及其所有排期、槽位、视频和图片库。不会退还令牌。
  • disconnect_account:按提供商和账号 ID 断开社交账号。
generate_persona_video 的社交账号 ID

每个提供商的 *AccountIds 字段都要求填写 list_social_accounts 返回的提供商账号标识符,而不是 recordId(这是内部数据库行 ID,使用后会被拒绝):

提供商generate_persona_video 字段使用 list_social_accounts 中的此字段
YouTubeyoutubeAccountIdschannelId
InstagraminstagramAccountIdsigUserId
LinkedInlinkedinAccountIdsproviderAccountId
ThreadsthreadsAccountIdsproviderAccountId
BlueskyblueskyAccountIdsdid(例如,did:plc:...)

如果传入 recordId,系统会立即报错,并指出正确的字段。

提示词(斜杠命令)

服务通过 MCP prompts 能力,从 Post Engineer Web 平台提供提示词中心,因此 MCP 客户端(Cursor、Claude)会将这些提示词列为斜杠命令。每个提示词都不需要参数:运行时,Agent 会询问你有关角色、账号和发布时间的信息。提示词列表和文本会按需从 Web API 获取(GET /api/prompts、GET /api/prompts/{slug}),因此,在 Web 端编辑方案后,所有安装版本都能使用,无需更新软件包。

  • /daily-news:每日新闻变成视频——将当天一则热门 GNews 新闻改编为一个角色视频,并在花费任何令牌前完成验证。
  • /place-spotlight:地点聚焦变成视频——将一个真实地点改编为一个角色视频,检查并附上该地点自己的照片作为片段媒体,并在花费任何令牌前完成验证。
  • /subject-spotlight:主题聚焦变成视频——将一个具体主题(汽车、产品或小工具)改编为一个角色视频,配上主题自己的照片,并在画面中显示真实价格,且在花费任何令牌前完成验证。
  • /github-prs:GitHub PR 变成视频——将一个 GitHub 拉取请求改编为一个角色视频。
  • /last-30-days:过去 30 天变成视频——将你所在领域过去 30 天发生的事改编为一个角色视频,并在花费任何令牌前完成验证。
  • /multi-rede:一周,每个网络一个视频——本周在每个网络发布一个视频:LinkedIn、YouTube、Instagram、Bluesky,并针对各自网络进行评分。
  • /viral-shorts:热门视频变成你的 Short——借鉴你所在领域观看次数最多的视频,用你自己的风格、开场钩子、内容和 CTA 撰写一份全新的 Shorts 脚本。
  • /full-setup:完整设置变成视频——连接账号、创建角色、验证脚本,并发布你的第一个视频,不跳过任何步骤。

即使没有人输入斜杠命令,Agent 也可以通过 MCP 工具自行获取同一个提示词中心:list_prompts 会列出方案(slug/标题/描述),get_prompt 则根据 slug 返回某个方案的完整文本。服务的初始化说明会引导 Agent 在处理特定主题的请求时使用这些工具。在 Agent 列出或获取方案之前,create_persona、list_personas、list_social_accounts 和 get_token_balance 的结果末尾会附上一段简短的后续步骤提示,指向 list_prompts;如果 validate_script 或 generate_persona_video 拒绝了某个脚本,也会提示使用方案生成可通过验证的脚本。

要添加提示词,请将其文本添加到 shared/prompt-base/prompt-base.ts,并将条目添加到 Web 中心(apps/web/app/recipes/prompts.ts,以及对应的 i18n 标题和目标)。MCP 无需更改:它会提供 Web 中心列出的所有内容。

链接

评论

支持 Markdown

第一次接触 MCP?

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

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