
post2all
io.github.zexahqPublished by GitHub account zexahqv1.0.0Updated Nov 5, 2026
Schedule, publish, and analyze social posts on 15 platforms including X, LinkedIn, and Instagram.
Overview
Hosted MCP server that lets an assistant draft, schedule, publish, update, cancel and analyze social posts across 15 platforms from one workspace.
- What you can do
- List connected social accounts and their publishing capabilities, plus dynamic options such as Discord channels or TikTok privacy choices
- Read account analytics, time series, period comparisons and per-target post performance, including posts published outside post2all
- Inspect drafts, scheduled, publishing, published, partially failed and failed posts
- Create posts with text and media, save as draft, schedule, or publish immediately, with per-destination settings
- Validate targets before creating, update or cancel posts, and delete a confirmed live post where the platform allows it
- When to use it
- Useful when you want an assistant to turn changelogs, announcements or campaign copy into multi-platform social posts, queue them on a schedule, and report on how they performed, without switching between each network's dashboard.
- Requirements
- Remote hosted endpoint reached over streamable HTTP; a post2all account and workspace; at least one connected social account; a browser to complete the OAuth 2.1 consent flow; a client that supports remote HTTP MCP servers. Capabilities depend on the plan and workspace permissions.
Installation
In SourceWeft
- Open post2all in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.zexahq%2Fpost2all/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"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.
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.availableanddeletion.reasonon 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/clipackage
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
Complete the browser OAuth flow when Claude first connects to post2all.
Codex setup
Manual MCP configuration:
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:
Complete the browser OAuth flow when Cursor first connects to post2all.
Gemini CLI setup
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:
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
Create a draft:
Publish immediately:
Schedule:
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
- post2all: https://www.post2all.com
- MCP setup: https://www.post2all.com/docs/mcp
- REST API: https://www.post2all.com/docs/api-reference
- Privacy policy: https://www.post2all.com/privacy-policy
- Repository: https://github.com/zexahq/post2all-agent
- Issues: https://github.com/zexahq/post2all-agent/issues
Source: README.md at commit f615fd5
Tools
0Version history
1- v1.0.0LatestNov 5, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts