post2all

io.github.zexahq由 GitHub 账号 zexahq 发布v1.0.0更新于 Nov 5, 2026

Schedule, publish, and analyze social posts on 15 platforms including X, LinkedIn, and Instagram.

已验证Streamable HTTP可网页运行沟通与协作数据与分析商业与电商

概览

AI 生成的概览

托管式 MCP 服务器,让助手在一个工作区内为 15 个平台起草、排期、发布、修改、取消并分析社交帖子。

可以做什么
  • 列出已连接的社交账号及其发布能力,以及 Discord 频道、TikTok 隐私选项等动态设置
  • 读取账号分析数据、时间序列、环比对比,以及单条帖子各平台目标的表现,包括在 post2all 之外发布的帖子
  • 查看草稿、已排期、发布中、已发布、部分失败和失败的帖子
  • 创建带文字和媒体的帖子,保存为草稿、定时发布或立即发布,并按目标账号分别设置
  • 创建前校验目标,更新或取消帖子,并在平台支持时删除已确认的线上帖子
适用场景
适合让助手把更新日志、公告或营销文案转成多平台社交帖子、按计划排期,并汇报其表现,无需逐个切换各平台后台。
运行要求
通过 streamable HTTP 访问的远程托管端点;post2all 账号与工作区;至少一个已连接的社交账号;用于完成 OAuth 2.1 授权流程的浏览器;支持远程 HTTP MCP 服务器的客户端。可用能力取决于套餐与工作区权限。
安装前请注意
立即发布、为时效性内容排期、删除线上社交帖子以及删除 post2all 记录都难以撤销,建议先用草稿并在执行前确认。删除 post2all 记录不会移除已发布到社交平台的内容。访问权限限于 OAuth 授权的工作区,可在账号设置中撤销。信用额度工作区的 X 帖子按条从预付额度中扣费。

安装

在 SourceWeft 中

  1. 打开 控制台中的 post2all,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.zexahq%2Fpost2all/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "post2all": {
      "type": "http",
      "url": "https://mcp.post2all.com/mcp"
    }
  }
}

README

post2all Agent Plugin

post2all Agent Plugin teaches AI coding assistants to create, schedule, inspect, update, cancel, manage, and analyze posts through post2all. It includes shared agent guidance plus the hosted Model Context Protocol connection for supported clients.

text
https://mcp.post2all.com/mcp

Capabilities

  • List connected social accounts and their publishing capabilities.
  • Read normalized account analytics, time series, and previous-period comparisons for supported platforms.
  • Compare provider-wide post performance, including posts published outside post2all when the provider supports account post discovery.
  • Read analytics independently for each target of a multi-platform post2all post.
  • Inspect draft, scheduled, publishing, published, partially failed, and failed posts.
  • Create posts with optional text and media (images, videos, or mixed when the platform allows).
  • Accept PNG input across platforms; Instagram and TikTok automatically convert PNG images to JPEG when publishing, while other platforms retain PNG transparency.
  • Save drafts, schedule future delivery, or publish immediately.
  • Apply settings independently to every destination account.
  • Discover dynamic publishing options such as Discord channels and TikTok privacy choices.
  • Update draft, scheduled, failed, and partially failed posts while retained media is available; cancel scheduled posts.
  • Inspect deletion.available and deletion.reason on published targets and remove one confirmed live social post on platforms where deletion is publicly supported.
  • Remove posts from post2all when explicitly requested. This local deletion does not remove content already published to social platforms.

Actual capabilities depend on the connected accounts, platform restrictions, workspace permissions, and post2all plan.

Embedded SaaS account onboarding

post2all also exposes a headless REST/SDK account-connection flow for products that use post2all as their social backend. This is separate from MCP: MCP does not expose account-connect or reconnect tools.

Business, Agency, and manually onboarded credit workspaces can additionally use optional Profiles to organize clients, brands, or SaaS customers inside the same workspace. Business supports 2 profiles, Agency supports up to 10, and credit workspaces support up to 10,000. Profiles can be managed/filtered from MCP or the CLI; REST/SDK integrations use x-profile-id (or client.forProfile(profileId)) as an organization context. Profiles are not separate security tenants, and account moves do not break existing post targets. Provider OAuth account connection itself remains a REST/SDK/CLI flow.

For embedded production publishing, the REST API and TypeScript SDK expose idempotent post creation, request/rate-limit metadata, credit billing and publishing-capacity reads, exact zero-markup X API pricing, and signed webhook verification. Credit X posts debit $0.015 without a URL or $0.20 with a URL from prepaid credits; standard subscriptions keep their included X allowances. Credit workspace owners/admins configure webhook endpoints and copy their one-time secrets from the post2all dashboard; webhook management is intentionally not exposed through REST, SDK, CLI, or MCP. See the SDK quickstart and webhook guide.

A SaaS backend starts a connection with its workspace API key, sends the end user's browser to the returned social-provider authorization URL, and supplies its own HTTPS callback URL. The user authenticates with the social network, not post2all. post2all completes the provider callback and redirects the browser back to the SaaS with an opaque connection ID/status. The SaaS backend then verifies the result through the authenticated connection-status endpoint.

The end user does not need a post2all account, login, or browser session, and the SaaS API key must never be placed in frontend code. See the account connection guide and REST API reference.

Agents should list accounts, then call publishing_schema once with all selected account IDs before composing. It returns only public publishing capabilities, fixed choices, and account overrides such as X subscription limits. Call publishing_options only when the schema requests account discovery (for example Discord channels or TikTok creator restrictions). Do not send a fixed post type. Composition is inferred from attached media; mixed image/video is allowed only when a platform sets media.allowMixedMedia.

When a selected capability includes media.convertPngToJpeg: true, PNG conversion is handled automatically at publish time and needs no extra MCP or API field. If source media or a crop derivative is missing or deleted, only the affected target fails with MEDIA_UNAVAILABLE and the message Media is unavailable.; other targets continue independently.

On MCP, call the read-only post_validate tool after constructing targets and before creating the post.

Supported clients

This repository includes metadata and shared guidance for:

  • Claude Code
  • OpenAI Codex
  • Cursor
  • Gemini CLI
  • MCP-compatible clients that support a remote HTTP MCP server
  • Coding agents with shell access to the @post2all/cli package

The shared MCP configuration lives in .mcp.json (Claude and Codex) and mcp.json (Cursor). server.json describes the server for the official MCP Registry. Agent guidance is maintained in skills/post2all/SKILL.md and mirrored into the packaged plugin directory.

Before you start

You need:

  • A post2all account and workspace.
  • At least one connected social account for publishing.
  • A supported MCP client or the post2all CLI.
  • A browser for the MCP OAuth consent flow.

The hosted MCP server uses OAuth 2.1. The CLI uses a post2all API key configured locally; agents should never ask users to paste API keys into chat.

Claude setup

Install post2all from the Claude plugin directory in one click. Complete the browser OAuth flow when Claude first connects to post2all.

Claude Code setup

bash
claude plugin marketplace add zexahq/post2all-agentclaude plugin install post2all@post2all-plugins

Complete the browser OAuth flow when Claude first connects to post2all.

Codex setup

bash
codex plugin marketplace add https://github.com/zexahq/post2all-agentcodex plugin add post2all@post2all-agent

Manual MCP configuration:

toml
[mcp_servers.post2all]url = "https://mcp.post2all.com/mcp"

Complete the browser sign-in flow and authorize the post2all workspace you want the agent to use.

Cursor setup

Install post2all from the Cursor Marketplace, or add the server manually in ~/.cursor/mcp.json:

json
{  "mcpServers": {    "post2all": { "url": "https://mcp.post2all.com/mcp" }  }}

Complete the browser OAuth flow when Cursor first connects to post2all.

Gemini CLI setup

bash
gemini extensions install https://github.com/zexahq/post2all-agent

Then run /mcp auth post2all inside Gemini CLI to complete the browser OAuth flow.

Target and delivery model

Every destination is represented by a target containing its platform discriminator, social account ID, and settings:

json
{  "targets": [    {      "platform": "discord",      "accountId": "acc_discord_123",      "settings": {        "channelId": "1234567890",        "autoCrosspost": true      }    },    {      "platform": "threads",      "accountId": "acc_threads_123",      "settings": {        "caption": "A shorter Threads version",        "topicTag": "buildinpublic"      }    }  ],  "delivery": {    "mode": "scheduled",    "scheduledAt": "2026-07-20T09:00:00+05:30"  }}

The platform value selects the exact settings schema. Invalid cross-platform fields are rejected. Multiple accounts on the same platform are separate targets.

Delivery modes are:

  • draft: save without publishing; targets and incomplete settings may be omitted.
  • now: publish immediately.
  • scheduled: publish at a timezone-aware ISO 8601 timestamp.

CLI examples

bash
post2all config whoami --jsonpost2all constraints <accountId...> --jsonpost2all accounts --jsonpost2all account publishing-options acc_discord_123 --jsonpost2all account analytics acc_instagram_123 --jsonpost2all account analytics-posts acc_instagram_123 --sort-by views --jsonpost2all post analytics post_abc --json

Create a draft:

bash
post2all post create \  --content "Work in progress" \  --delivery draft \  --json

Publish immediately:

bash
post2all post create \  --content "New release shipping today 🚀" \  --targets '[{"platform":"linkedin","accountId":"acc_linkedin_123","settings":{}}]' \  --delivery now \  --json

Schedule:

bash
post2all post create \  --content "Scheduled update" \  --targets '[{"platform":"linkedin","accountId":"acc_linkedin_123","settings":{}}]' \  --delivery scheduled \  --scheduled-at "2026-07-20T09:00:00+05:30" \  --json

Example prompts

  • “List my connected post2all accounts.”
  • “Show the available Discord channels for this account.”
  • “Create a draft LinkedIn post from this changelog.”
  • “Schedule this announcement for tomorrow at 9 AM IST.”
  • “Publish to LinkedIn and Threads, but use shorter copy on Threads.”
  • “Show my scheduled posts for this week.”
  • “Show my Instagram account analytics for the last 30 days.”
  • “Which of my recent posts got the most views?”
  • “Show the analytics for each platform target on this post.”
  • “Cancel the scheduled launch post.”

Authentication and permissions

  • MCP access is scoped to the workspace authorized through OAuth.
  • The agent can only perform actions allowed by the user's post2all account and plan.
  • Long-lived MCP sessions depend on refresh-token-capable scopes requested by the client.
  • Access can be revoked from post2all account settings.

Safety

Review immediate publishing, time-sensitive schedules, published deletion, and destructive post2all record deletion before confirming them. Prefer drafts for review workflows. Before deleting a live social post, use post_get, require deletion.available to be true, show the exact account/platform, and obtain explicit confirmation. When unavailable, use deletion.reason to explain why. That runtime state already includes public rollout and current account/platform constraints; private rollout platforms stay blocked on public MCP/CLI surfaces. Deleting the post2all record is a separate action and does not remove live social content.

Troubleshooting

  • Confirm the plugin or MCP server is enabled when tools are missing.
  • Repeat OAuth sign-in when authorization fails.
  • List accounts again when an account ID or platform is rejected.
  • Load account publishing options when a required dynamic setting is missing.
  • Check media type, size, target platform support, and required settings when publishing fails.
  • For MEDIA_UNAVAILABLE, restore or re-upload the missing source media or crop derivative before retrying the affected target.

Links

来源:README.md,提交 f615fd5

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v1.0.0最新Nov 5, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分