Posteverywhere
The agentic social media scheduler.
Connector by posteverywhere.aiOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/posteverywhere-ai-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.posteverywhere.ai/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 19 read · 10 write · 15 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 44
Read from the source code; the running server may list different tools.
Read 19 · Look things up without changing anything.
get_accountget_account_healthget_analytics_summaryget_best_timesget_brandget_campaignget_meget_mediaget_platform_rulesget_postget_post_resultsget_queue
Show 7 more tools
get_webhooklist_accountslist_campaignslist_medialist_postslist_posts_advancedlist_webhooks
Write 10 · Create, change, send or run things.
approve_postcomplete_media_uploadconnect_credential_accountcreate_campaigncreate_connect_linkcreate_media_uploadcreate_reconnect_linkcreate_webhookrequest_post_changesupload_media_from_url
Delete 15 · Delete, drop, revoke or wipe things.
bulk_create_postscreate_postdelete_campaigndelete_mediadelete_postdelete_webhookgenerate_captiongenerate_imageretry_failed_postretry_failed_postsschedule_posttest_webhook
Show 3 more tools
update_campaignupdate_postupdate_webhook
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
POSTEVERYWHERE_API_KEY
Network hosts it talks to 1
mcp.posteverywhere.ai· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (44)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
approve_postApprove PostApproval workflow: approve a post that is waiting for review (see list_posts with approval:"pending"). Approving does not publish it: call schedule_post afterwards to send it out. Needs a reviewer role in the workspace.
bulk_create_postsBulk Create Postscan change or delete dataCreate up to 50 posts in one PostEverywhere call. Each post is checked one by one, exactly like create_post (rate limits included), including X Articles, WordPress blog posts (platform_content.wordpress) and Google Business Profile posts (platform_content.google_business). Returns per-item success/error so you can handle partial failures. Use this for bulk scheduling workflows. Irreversible for every post that publishes: it becomes public on the connected social accounts, and PostEverywhere cannot recall it.
complete_media_uploadFinish a Direct Media UploadConfirm a direct upload from create_media_upload after the file bytes were PUT to its upload_url. Checks the file arrived and matches its type. The media_id can then be used in media_ids (a PDF on a LinkedIn account becomes a document post). Calling it again on ready media is harmless.
connect_credential_accountConnect Credential AccountConnect telegram, discord, bluesky or wordpress entirely in this conversation, no browser needed. telegram: bot_token (from @BotFather, bot must be channel admin) + channel (@username or chat id). discord: webhook_url. bluesky: handle + app_password (Settings > App Passwords, never the main password). wordpress (self-hosted, WordPress 5.6+): site_url + username + app_password (WordPress: Users > Profile > Application Passwords, never the login password). Credentials are validated live before saving; re-submitting for an existing account updates it in place.
create_campaignCreate CampaignCreate a new campaign on PostEverywhere for grouping related posts. Returns the campaign id, which can then be passed as campaign_id when creating posts via create_post.
create_connect_linkCreate Account Connect LinkGenerate a short-lived authorization URL (10 min) to connect a NEW social account via OAuth: x, instagram, facebook, youtube, pinterest, threads, linkedin, tiktok, or google_business (Google Business Profile: the owner signs in with the Google account that owns or manages the business; if it manages several businesses, they choose which to add). Give the URL to the account owner to open in any browser and approve; the connected account then appears in list_accounts (poll it to confirm). For telegram, discord, bluesky or wordpress use connect_credential_account if you have it (no browser needed…
create_media_uploadStart a Direct Media UploadUpload a LOCAL file (one with no public URL), including PDFs for LinkedIn document posts. Step 1: call this with filename, content_type and size in bytes; it returns media_id and a short-lived upload_url. Step 2: send the file to upload_url the way the protocol field in the response says. protocol "put" (videos and PDFs): PUT the raw bytes with header Content-Type set to the same content_type (curl -X PUT -H "Content-Type: application/pdf" --data-binary @file.pdf "<upload_url>"). protocol "multipart-form" (images): POST a multipart form with the file in a field named file (curl -X POST -F "fil…
create_postCreate Postcan change or delete dataCreate a social media post on PostEverywhere. Three modes: (1) PUBLISH NOW — give content + account_ids, omit scheduled_for; (2) SCHEDULE — add scheduled_for; (3) DRAFT for human review — set draft: true, which saves the post WITHOUT publishing it (it appears in the user's PostEverywhere app and via list_posts(status:"draft"); you then publish it with schedule_post once approved). Use draft mode whenever a human wants to check posts before they go live. Supports per-platform overrides and media. THREADS: put part 1 in content and the parts that follow in thread_posts; the post goes out as a re…
create_reconnect_linkCreate Account Reconnect LinkGenerate a short-lived authorization URL (10 min) to FIX an existing OAuth account whose token died (needs_reconnection from get_account_health). The owner opens it, approves while logged in as that same profile, and the existing account is repaired in place. Verify afterwards with get_account_health.
create_webhookCreate WebhookCreate a webhook subscription on PostEverywhere. PostEverywhere will POST event payloads to the URL whenever a subscribed event occurs (post.published, post.failed, account.reconnect_needed, etc). Each request is signed with HMAC-SHA256 via the X-PostEverywhere-Signature header — verify it against the returned secret. The secret is shown ONLY ONCE in this response. Events that fire: post.scheduled (a post was created in the app or with create_post, to publish now or later, or a draft was scheduled with schedule_post), post.published (one platform published it), post.failed (one platform failed…
delete_campaignDelete Campaigncan change or delete dataDelete a campaign on PostEverywhere. Posts in the campaign survive — their campaign_id is set to NULL. Permanent: the campaign cannot be restored.
delete_mediaDelete Mediacan change or delete dataDelete a media file from the PostEverywhere media library. This permanently removes the file from storage and cannot be undone. If a post that has not gone out yet uses the file, nothing is deleted and the call fails with a 409 (media_in_use) that says how many posts use it. Ask the user before you retry with force: true: the file is then deleted and those posts are cancelled (marked failed), so they never publish.
delete_postDelete Postcan change or delete dataDelete a post from PostEverywhere. This permanently removes the post and all its platform destinations from PostEverywhere. A post that has ALREADY PUBLISHED stays live on the social platforms by default; set delete_on_x: true to also delete its published X (Twitter) copy (other platforms are not deleted). Only set delete_on_x when the user explicitly asks to remove the post from X. Cannot be undone.
delete_webhookDelete Webhookcan change or delete dataDelete a webhook subscription on PostEverywhere. Cascades to delete the delivery history.
generate_captionGenerate AI Captioncan change or delete dataGenerate 1-5 AI caption variants for a social media post on PostEverywhere. Provide a topic and optionally tone, platform, length, hashtag/emoji preferences. Captions always fit the platform's character limit (X: 280 as X counts, Bluesky: 300, Threads: 500, LinkedIn: 3000, Instagram: 2200, Facebook: 5000, YouTube description: 5000, Google Business Profile: 1500); a caption the AI writes too long is cut at a word break to fit, and char_limit in the response gives the number used. Costs 1 AI credit per caption returned. Companion to generate_image — together they let you compose a complete post …
Show 29 more tools
generate_imageGenerate AI Imagecan change or delete dataGenerate an AI image from a text prompt on PostEverywhere. The image is saved to your media library and can be attached to posts via media_ids. Choose from 4 models: gemini-3-pro (default, balanced quality, 5 credits), nano-banana-pro (photorealism, 15 credits), ideogram-v2 (good for text in images, 8 credits), flux-schnell (fastest, 1 credit). Requires the "ai" scope.
get_accountGet Accountread-onlyGet detailed information about a specific connected social media account on PostEverywhere. Returns the account platform, username, health status, and whether it can currently post (Pinterest also lists its boards; WordPress names its site). Use this to check the status of a single account by its ID.
get_account_healthGet Account Healthread-onlyCheck the health of a connected social account on PostEverywhere. Returns status (healthy|warning|broken), can_post boolean, token expiry, needs_reconnection flag, recent failure count, last successful publish. Use this before publishing to detect a dead token BEFORE it causes a failed post.
get_analytics_summaryGet Analytics Summaryread-onlyGet aggregate posting metrics over a time window on PostEverywhere. Returns counts (scheduled/published/failed), per-platform breakdown, total views/likes/comments/shares/impressions/clicks across all published posts, AI credit usage, and AUDIENCE — the latest follower count per connected account plus its change over the period. One call answers "how many posts have I published this week and did my audience grow?" without listing every post. Follower snapshots begin 2026-08-31; an account with only one reading reports change_in_period as null, because a single point is not a trend.
get_best_timesGet Best Times to Postread-onlyFind the best times to post for one or more connected accounts, or for a platform. Each slot gives the weekday (ISO, 1 = Monday), the local time in the requested timezone, the next concrete datetime, a score (1.25 = about 25% better than a typical post; null for general guidance) and a basis: "personal" (measured from that account's own posts), "platform" (what works for PostEverywhere users on that platform) or "general" (guidance, not measured). Pass several account_ids to get one combined recommendation for posting to all of them. next_best is the soonest of the top three slots. Use this wh…
get_brandGet Brandread-onlyGet the workspace's Brand Kit from PostEverywhere (app.posteverywhere.ai/brand): what the business does, its products, audience, voice, language, rules to follow, banned words, required hashtags, colours and fonts. Call this before writing captions yourself so posts sound like the brand and follow its rules. generate_caption already writes in this brand automatically. If brand is null, no brand is set up yet and the message says where to make one.
get_campaignGet Campaignread-onlyGet details of a single campaign on PostEverywhere by its id, including post_count.
get_meGet Workspace Inforead-onlyGet the signed-in PostEverywhere account: the user, the workspace, the granted scopes, the organization's plan, and what is left on each quota (accounts, AI credits, storage). Useful at the start of a conversation to learn the organization_id, scopes and quota state. While the workspace has no posts yet, next_step suggests an easy first post to offer the user.
get_mediaGet Mediaread-onlyGet detailed information about a specific media file on PostEverywhere, including its type, dimensions, file size, upload status, and aspect ratio. Use this to check if an uploaded media file has finished processing before attaching it to a post.
get_platform_rulesGet Platform Rulesread-onlyGet the per-platform publishing limits PostEverywhere enforces: character limit, image and video constraints (size, dimensions, duration, formats), and supported features (threads, carousels, reels, alt text, blog posts). WordPress also lists its blog post fields under platforms.wordpress.blog, and Google Business Profile its post fields (post types, buttons, event and offer fields) under platforms.google_business.local_post. Call this BEFORE composing a post for an unfamiliar platform, or when a post was rejected for length or media format — it is the difference between one correct call and a…
get_postGet Postread-onlyGet detailed information about a specific post on PostEverywhere, including its content, media attachments, schedule, and the publishing status on each destination platform. Use this to check if a post was published successfully or to see error details for failed destinations.
get_post_resultsGet Post Resultsread-onlyGet the per-platform publishing results for a specific post on PostEverywhere. Returns detailed status for each destination including published URLs, error messages, attempt counts, and retry schedules. Use this to check which platforms succeeded or failed after publishing.
get_queueGet Posting Queueread-onlyShow the workspace posting queue: the recurring weekly slots it posts at, and the next openings coming up. Use this before create_post(use_queue: true) so you can tell the user exactly when their post will go out, and use it when they ask "when is my next slot" or "what does my schedule look like". The upcoming list is a FORECAST, not a reservation: a slot is only taken when a post is actually created with use_queue. If no queue is set up the queue field is null and the message explains where to create one.
get_webhookGet Webhookread-onlyGet details of a single webhook subscription on PostEverywhere (does NOT include the signing secret).
list_accountsList Accountsread-onlyList all connected social media accounts on PostEverywhere. Returns account IDs, platform names, usernames, and health status (whether each account can currently post). Use this to see which platforms are available before creating a post. While the workspace has no posts yet, the result ends with a next_step line: offer it to the user as an easy first post.
list_campaignsList Campaignsread-onlyList campaigns in the current workspace on PostEverywhere. Campaigns group related posts (e.g., "Q3 Launch", "Holiday 2026") and can be referenced via campaign_id when creating or filtering posts. Returns id, name, color, status, post_count for each.
list_mediaList Mediaread-onlyList media files in the PostEverywhere media library. Supports filtering by type (image, video, document) and pagination. Returns file metadata including URLs, dimensions, and upload status. Use this to find existing media to attach to posts.
list_postsList Postsread-onlyList scheduled, published, or draft posts on PostEverywhere. Supports filtering by status (scheduled, published, draft) and platform. Returns post content, scheduling info, and per-platform destination statuses. Use this to check what posts are queued or to review published content.
list_posts_advancedAdvanced Post Searchread-onlyList posts on PostEverywhere with the FULL set of filters available on the API (since June 2026). Like list_posts but accepts comma-separated multi-status (e.g. "failed,partially_failed"), comma-separated platforms, date ranges (created/scheduled/published/updated), account_id and campaign_id filters, content search, and sort options. Use this for any non-trivial query — e.g. "all failed TikTok posts from last week" — that the basic list_posts can't express.
list_webhooksList Webhooksread-onlyList all webhook subscriptions on PostEverywhere for the current organization. Returns id, url, subscribed events, is_active, recent delivery stats. Note: the signing secret is NEVER included in list responses.
request_post_changesRequest Changes to PostApproval workflow: send a post waiting for review back to its author with a note saying what to change. The post stays a draft. Needs a reviewer role in the workspace.
retry_failed_postRetry Failed Postcan change or delete dataRetry all failed platform destinations for a specific post on PostEverywhere. Resets failed destinations back to queued status so they will be re-attempted by the publishing system. Use this when a post failed due to temporary issues like rate limits or token expiry (after the token has been refreshed). Irreversible once a retry succeeds: the post becomes public on that social account, and PostEverywhere cannot recall it.
retry_failed_postsRetry Failed Postscan change or delete dataRetry all failed destinations on PostEverywhere that match a filter (account_id, platform, date range, or explicit post_ids). Saves you from making one retry call per failed post. Requires at least one filter — refuses to retry the entire failure history. Irreversible once a retry succeeds: the posts become public on those social accounts, and PostEverywhere cannot recall them.
schedule_postSchedule Postcan change or delete dataPublish or schedule a DRAFT (created with create_post(draft: true)). Pass scheduled_for to schedule it for a future time, or publish_now: true to publish it right away. Optionally pass account_ids to set/override which accounts it posts to (defaults to the accounts saved on the draft). This is the final step of the review workflow: create_post(draft:true) → review with list_posts(status:"draft")/get_post → schedule_post. Only works on drafts — to re-time an already-scheduled post, use update_post. A draft that targets a WordPress account must have a blog title (platform_content.wordpress.setti…
test_webhookTest Webhookcan change or delete dataSend a synthetic test ping to a webhook URL on PostEverywhere so you can verify your endpoint receives the request and validates the HMAC signature. Returns the receiver's HTTP status + duration.
update_campaignUpdate Campaigncan change or delete dataUpdate a campaign on PostEverywhere (name, description, color, or active/archived status). Overwrites the previous values; PostEverywhere keeps no earlier version.
update_postUpdate Postcan change or delete dataUpdate a scheduled or draft post on PostEverywhere. You can change the content, schedule time, timezone, target accounts, media attachments, or per-platform content (including a WordPress blog post's title, status, tags and categories). Only posts with status "scheduled" or "draft" can be edited — published posts cannot be modified. Returns the updated post with all its details. Fields you send replace the old values (per-platform settings are merged, see platform_content); PostEverywhere keeps no earlier version.
update_webhookUpdate Webhookcan change or delete dataUpdate a webhook subscription on PostEverywhere — change url/events/name/description/is_active. Setting is_active=true on an auto-disabled webhook clears the consecutive_failures counter.
upload_media_from_urlUpload Media from URLImport an image OR VIDEO from a public URL into the PostEverywhere media library, ready to attach to posts via media_ids. IMAGES (JPEG, PNG, GIF, WebP, HEIC, HEIF — up to 25 MB) import synchronously: the response media_id is ready immediately. VIDEOS (MP4 only — up to 4 GB) import ASYNCHRONOUSLY: the response returns media_id with media_status "uploading" right away while the file streams in server-side — poll get_media until media_status is "ready" (typically well under a minute), THEN attach it to a post. If media_status becomes "failed", get_media's error_message states exactly why (file to…
Signals
- Stars
- 5
- Forks
- 1
- Open issues
- 1
- Last commit
- Oct 23, 2026 (6 days ago)
- Last release
- Oct 20, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
ai.posteverywhere/mcp- Version
- 1.14.1
- Auth
- Auth not stated, API key
- Packages
- npm @posteverywhere/mcp
- License
- MIT
- Repository
- github.com/posteverywhere/mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Posteverywhere MCP server. Agent Mart. https://agentmart.dev/connectors/posteverywhere-ai-mcp (last updated 2026-10-24)