mcpField
P
pendpost

pendpost

本地服务
pendpost.com社交媒体15今天更新

关于 pendpost

pendpost 是面向开发者、代理机构和技术型个体经营者的本地优先社交媒体规划器。AI Agent 可起草、检查和安排多平台内容,但必须经人工批准后才能发布。

主要功能

  1. 01跨社交平台起草与排期
  2. 02人工审批发布门槛
  3. 03品牌规则与文案检查
  4. 04发布节奏熔断与暂停
  5. 05本地运行并提供网页面板

适用场景

  1. 01安排多个社交平台的营销活动
  2. 02让 Agent 起草内容并由人员审核
  3. 03按品牌规则检查社交文案

MCP 相关

pendpost 通过 stdio 和 streamable-HTTP 提供 MCP 服务,供兼容客户端调用。其工具覆盖内容规划、检查、审批、排期和发布,且写入操作遵循人工审批门槛。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"pendpost-pendpost": {
"command": "npx",
"args": [
"-y",
"pendpost"
]
}
}
}
启动命令npx -y pendpost

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

安装包
npmpendpost2.9.0

工具

还没有获取到工具列表

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

详细介绍

pendpost

由 Agent 操作的社交媒体,并设有人类审批关卡。

CI License: MIT Node MCP native PRs welcome

pendpost:AI Agent 起草并安排帖子,人类审批关卡决定发布内容

pendpost 是一款免费、开源(MIT)、本地优先的社交媒体规划工具,AI Agent 可借助它在 Instagram、Facebook、LinkedIn、YouTube、X、Telegram、Discord、Mastodon 和 Nostr 上起草并安排帖子,也可在 WordPress 和 Ghost 上发布长篇博客;Reddit、Pinterest、TikTok 和 Google Business Profile 目前处于 Beta 阶段。所有内容都须通过由你掌控的人类审批关卡。它原生支持 MCP:AI Agent 可以起草、检查、安排并将帖子加入队列,但只有经过人工审批,内容才会发布。它专为开发者、代理机构和技术型独立创业者打造,让 Agent 代劳,却不必把账号控制权交给它们,也不必担心账号被标记。

pendpost 的不同之处(不只是排程工具)

大多数“AI 社交媒体”工具都是在排程工具上附加了 Agent。pendpost 则恰恰相反。它是一个围绕 Agent 与人工协作工作流设计的运营层,提供了排程工具所不具备的功能:

审批关卡:Agent 起草内容,默认由你审批,然后才会发布

  • 人工审批关卡。 每条帖子都有审批状态(draft、approved、rejected),并采用默认拒绝策略:未经审批的帖子不会发布。plan_create_post 始终会创建草稿,只有 approve_post 或 reject_post 能更改其状态。帖子在获批前绝不会发布。默认情况下由你审批;自动审批仅限所有者使用,且可随时撤销。
  • 防封号断路器。 遇到 Meta 错误 368(操作受限)时,断路器会触发并停止 Meta 通道,且绝不会自动恢复,因为 368 不包含机器可读的解除时间。通道受阻期间,健康探测不会发送任何 Graph 流量。频率上限会延后突发操作,而非丢弃;你也可以随时使用通道暂停紧急开关。
  • 文风检查。 发布前会根据 rules.json 中可编辑的规则检查文案。文风检查层会标记英文 AI 写作的典型特征。错误会阻止发布;警告仅供参考。
  • 如实说明原生排程。 对于支持原生排程的平台(YouTube 的 publishAt、Mastodon、WordPress、Ghost),pendpost 会将帖子交给平台自带的排程工具,因此即使你的电脑关机,帖子也会按时发布。Instagram、Facebook、LinkedIn 和 X 上的帖子则由 pendpost 在指定时间发布:启用可选的全天候云服务后由该服务发布;否则,在 pendpost 运行期间由你的电脑发布,或由常开主机发布。它会如实说明各平台实际支持哪些封面和缩略图机制。
  • 双界面。 Web 控制面板和任意 MCP 客户端都通过同一套契约操作。奇偶一致性测试会确保每项功能都同时提供给两种界面。
  • 德语和瑞士本地化。 控制面板、摘要和通知可使用英语或地道的瑞士德语(de-CH,采用规范的变音符号和瑞士 24 小时制日期格式);可在 Settings 中设置语言。请参阅本地化文档。

快速开始

一行命令,无需设置:

npx pendpost
# then open http://127.0.0.1:8090

无需账户,无需注册——pendpost 在本地运行并立即启动。你可以马上起草、审批并安排完整的营销活动;首次运行会在 data/plans 中生成示例营销活动“Acme Launch”,让你立即看到实际内容。准备好发布时,再在 Setup 中连接平台;在此之前,渠道处于已启用但未认证状态,因此发布会等待连接,而不会弄虚作假。

更喜欢 git 或 docker?

# git
git clone https://github.com/pendpost/pendpost pendpost
cd pendpost
npm start            # or: node bin/pendpost.mjs (builds the dashboard on first run)
# then open http://127.0.0.1:8090
# docker
docker compose up
# then open http://127.0.0.1:8090

控制面板

规划器和审批队列是你日常使用的两个界面:在左侧起草并安排发布时间,在右侧审批或拒绝。右侧的任何内容都不能自行通过审批。

规划器审批队列
pendpost 规划器:已起草和安排发布时间的帖子的日历pendpost 审批队列:等待人工决策的帖子

MCP 客户端

最简单的方式会自动启动:pendpost 通过原生 stdio 使用 MCP,因此客户端会为你启动服务——无需预先启动任何内容。

Claude Desktop(一键安装):安装附在每个 GitHub 版本中的 pendpost .mcpb 捆绑包。它会自动启动 npx -y pendpost --stdio,并在同一进程中打开审批面板。

任何 stdio MCP 客户端:

{
  "mcpServers": {
    "pendpost": { "command": "npx", "args": ["-y", "pendpost", "--stdio"] }
  }
}

高级 / 开发者(HTTP 传输):pendpost 也通过 /mcp 提供可流式 HTTP 上的 MCP。需要先通过 npx pendpost 运行服务:

claude mcp add --transport http pendpost http://127.0.0.1:8090/mcp
AI 辅助设置(Claude for Chrome)

要在真实平台上开始使用,需要在每个服务商的门户中创建开发者应用,并完成一次 OAuth 授权流程。pendpost 让 Agent 可以驱动此过程:在控制面板 Setup 页面中,每张未完成的卡片上都有一个 Copy AI prompt 按钮,可复制一条可直接粘贴且安全处理机密信息的提示词,供 Claude for Chrome 为对应平台操作门户。你需要在每个登录 / 授权关卡进行身份验证,凭证由 CLI 在本地生成——绝不会经过 Agent 或聊天。AGENTS.md 中记录了适用于任何 Agent 的相同设置约定。

MCP 工具的作用

每项功能都是一个 MCP 工具,控制面板也会与之对应。只读工具绝不会发布内容;写入工具会创建草稿,并受上述审批规则约束。按功能分组如下:

  • 读取和检查: plan_list、plan_get、account_status、assets_list、activity_log、validate_media、platform_validate、pendpost_health、publish_preview、brand_lint、generate_digest、config_get、clients_overview。
  • 创作: plan_create_post、plan_update_post、plan_delete_post、campaign_create、campaign_set_active。
  • 审批(人工把关): approve_post、reject_post。内容在获批前不会发布;默认由你审批。
  • 安排时间和发布: scheduler_set、publish_due_run、reschedule、unschedule、mark_posted、verify_post。
  • 封面和资源: set_cover、clear_cover、asset_upload、rename_asset、delete_asset。
  • 洞察和安全: fetch_insights、token_refresh、pendpost_record_block、health_recheck、meta_lane_set。
  • 配置和客户端: config_set、client_create、client_update、client_archive、client_list、client_set_active。

权威工具数量及读写分类根据 lib/mcp.mjs 得出,并由 test/parity-check.mjs 验证(参见 MCP 文档)。每个工具在 tools/list 中还带有 readOnlyHint/destructiveHint/title 注释。

正式上线

准备好发布后,在 Setup 中连接各个平台(或者将 .env.example 复制为 .env,并仅填写你使用的平台所需的信息)。只要存在平台凭据,该平台就会开始发布;在此之前,该平台处于已启用但未通过身份验证的状态,发布会等待连接。(PENDPOST_MODE=mock 仅作为测试/演示用的固定配置,所有渠道都会通过无需凭据的模拟驱动程序运行。)

每个平台都有一个交互式设置流程,会将配置写入 .env:

# Meta (Facebook + Instagram). A System User token is preferred for automation.
node scripts/meta-social.mjs setup-system-user \
  --system-user-token <T> --page-id <ID> --app-id <ID> --app-secret <S>
# (or `node scripts/meta-social.mjs setup` for a long-lived Page token)

# LinkedIn (after creating an OAuth app)
node scripts/linkedin-social.mjs auth

# YouTube (after creating an OAuth client)
node scripts/yt-social.mjs auth

# X (Twitter), OAuth 2.0 PKCE (browser). OAuth 1.0a needs no command - see below.
node scripts/x-social.mjs auth

# Static-credential lanes (no browser): paste the credential into .env (or use
# the dashboard Setup form), then validate with the engine's auth command.
node scripts/telegram-social.mjs auth   # TELEGRAM_BOT_TOKEN + TELEGRAM_CHANNEL_ID
node scripts/discord-social.mjs auth    # DISCORD_WEBHOOK_URL
node scripts/mastodon-social.mjs auth   # MASTODON_INSTANCE_URL + MASTODON_ACCESS_TOKEN
node scripts/wordpress-social.mjs auth  # WORDPRESS_SITE_URL + _USERNAME + _APP_PASSWORD
node scripts/ghost-social.mjs auth      # GHOST_SITE_URL + GHOST_ADMIN_API_KEY
node scripts/nostr-social.mjs keygen --save && node scripts/nostr-social.mjs auth  # + NOSTR_RELAYS

要运行多个客户端?在上面的任意命令后添加 --client <client-id>,即可将凭据写入该客户端的 .env(单客户端安装无需此参数;pendpost_health 的 connectAction 会自动补上该参数)。

X (Twitter) 支持两种身份验证方式;推荐使用 OAuth 1.0a,因为它无需浏览器,也能避开某些应用在 X 的 OAuth 2.0 授权页面上遇到的 ERR_TOO_MANY_REDIRECTS 问题。

  • OAuth 1.0a(推荐,无需浏览器)。 在 X 开发者门户中:(1) 先将应用的 User authentication settings 设置为 Read and Write;(2) 然后在 Keys and tokens 下生成/重新生成 API Key/Secret 和 Access Token/Secret;(3) 将这四项全部粘贴到 .env,分别设为 X_API_KEY、X_API_SECRET、X_ACCESS_TOKEN、X_ACCESS_TOKEN_SECRET。设置好 X_ACCESS_TOKEN_SECRET 后,该渠道即会启用,无需运行 auth 命令。运行 node scripts/x-social.mjs probe 验证(会输出 connected as @handle)。常见问题,按发生顺序排列:
    • 四项值必须来自同一个应用,且必须属于同一次生成。
    • 重新生成 API Key/Secret 会使 Access Token/Secret 失效——因此务必在 API Key/Secret 之后重新生成 Access Token/Secret,切勿反过来。
    • 哪怕只有一个字符错误,也会返回 401 "Could not authenticate you"(代码 32),看起来像是访问令牌问题。请直接从门户复制这些值,不要手动输入。
  • OAuth 2.0 PKCE(浏览器)。 创建一个 OAuth 2.0 机密客户端,回调地址设为 http://localhost:8087/callback,作用域设为 tweet.read tweet.write users.read media.write offline.access,然后运行 node scripts/x-social.mjs auth。访问令牌有效期约为 2 小时,刷新令牌会轮换;pendpost 会在每次运行前自动刷新这两个令牌。

各平台环境变量的完整列表请参阅 .env.example。

品牌检查 + 人性化处理

标题在发布前会经过品牌检查。规则集位于 rules.json,可直接编辑。每条规则都是一个对象,包含 id、severity(error 会阻止发布,warn 仅作提示)、matcher(正则表达式,或平台感知的内置规则,例如 captionLength、hashtagCount、allCaps、brokenLink)和 hint。默认规则还包含人性化检查规则,用于标记英文 AI 写作特征(AI 常用词汇、破折号、否定式平行结构、刻意凑成三项的赘述、填充语与模糊表达、夸张的宣传措辞)。要禁用规则,请删除其对象;要添加规则,请追加对象。工作区根目录中的 rules.json 会覆盖随附的默认规则。brand_lint 同时也是 MCP 工具和控制面板编辑器中的检查面板。

架构

pendpost 是一个零依赖的 Node 进程(server.mjs),提供四种接口:/api 上的 REST API、/mcp 上的 MCP 服务(可流式传输的 HTTP、JSON-RPC 2.0,共 134 个工具)、通过范围请求流式传输 data/ 下本地文件的 /media,以及用于提供构建后 React 控制面板的 /(文件位于 app/dist)。后端逻辑位于 lib/*.mjs。scripts/ 中有 14 个发布引擎,每个平台一个(meta-social.mjs 负责 Facebook 和 Instagram);每个引擎都会在计划程序触发时或按需作为子进程启动,并输出一个 JSON 封装对象。计划和状态均保存在本地 JSON 文件中。包含 .env、config.json、state.json 和 data/ 的工作区根目录可通过 PENDPOST_ROOT 覆盖(默认值:安装目录)。

平台

Instagram、Facebook、LinkedIn、YouTube、X、Telegram、Discord、Mastodon、Nostr、WordPress 和 Ghost 已正式上线。Reddit、Pinterest、TikTok 和 Google Business Profile 处于 Beta 阶段。每个引擎都会处理自己的身份验证、发布、原生排期、封面/缩略图机制和只读数据洞察。YouTube、Mastodon、WordPress 和 Ghost 支持原生排期,因此即使 pendpost 未运行,这些帖子也会按时发布。Instagram、Facebook、LinkedIn、X、Telegram、Discord 和 Nostr 由 pendpost 自行在预定时间发布:通过你电脑上的调度器,或可选的 24/7 云服务。

安全

pendpost 默认绑定到 127.0.0.1(回环地址),绝不会主动连接外部服务,并且只会将密钥保存在你自己的 .env 文件中(该文件已列入 gitignore)。完整的安全说明以及如何报告漏洞,请参阅 SECURITY.md。

隐私政策

pendpost 在你自己的设备上运行,不会向我们(Nomadik GmbH)发送任何数据。

  • **收集哪些数据:**仅限你提供的数据。计划、草稿、媒体和活动历史记录保存在本地 data/ 文件夹中,你的平台凭据保存在你自己的 .env 文件中。
  • **如何使用和存储数据:**所有内容都保留在你的设备上。内容只会发送到你所连接的社交平台,以发布你批准的帖子。
  • **第三方:**你连接的 MCP 客户端(例如 Claude Desktop 或 Cursor)及其 AI 模型提供商会看到你的 Agent 通过 pendpost 工具读取的内容,并受你自己的账户及其条款约束。Radar 会读取你开启的来源中的公开帖子。
  • **数据保留:**你的数据会一直保留,直到你删除该文件夹;我们不会保留副本。可选的 24/7 云服务会在你订阅期间保留计划、加密令牌和审计记录;你离开后,会在短暂的安全保留期结束后删除所有托管副本。
  • **联系:**[email protected]

完整政策请参阅 pendpost.com/privacy。

参与 pendpost 的建设

pendpost 以开源方式开发,我们欢迎你的反馈。有三种参与方式,而且都不会让应用主动连接外部服务:

  • **快速反馈或想法:**使用仪表板中的 Share feedback 链接(该链接会在浏览器中打开预填好的 GitHub 页面,绝不会发送你的 .env 文件或任何密钥),在 Discussions 中发帖,或使用反馈问题表单。
  • **Bug 或功能请求:**提交 issue 并选择相应表单。
  • 更深入的提案(新的集成接口、对核心工作方式的更改):提交 RFC。请参阅 docs/rfcs/README.md。

没有账户?pendpost.com 上的简短反馈表单可以帮你转发到 GitHub。需要帮助时,请参阅 SUPPORT.md;有关完整反馈流程的运作方式,请参阅 docs/specs/feedback-pipeline.md。

状态

pendpost 由一个小团队利用业余时间维护,目前仍处于早期阶段。请预期会有一些不够完善之处,并相应调整对响应时间的预期。

文档

完整参考文档位于 docs.pendpost.com(源文件位于 site-docs/)。营销信息、定价和所有下载选项均位于 pendpost.com。

许可证

MIT,Copyright 2026 Nomadik GmbH。请参阅 LICENSE。提交拉取请求前,也请阅读 DISCLAIMER.md 中的负责任使用说明以及 CONTRIBUTING.md。

评论

支持 Markdown

第一次接触 MCP?

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

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