PostProxy MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POSTPROXY_API_KEY | Yes | Your PostProxy API key. | |
| POSTPROXY_BASE_URL | No | Base URL for PostProxy API. Default: https://api.postproxy.dev/api | https://api.postproxy.dev/api |
| POSTPROXY_MCP_DEBUG | No | Set to '1' to enable debug logging. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Check authentication status, API configuration, and workspace information |
| profile_groups_listA | List all profile groups accessible with your API key. Profile groups are organizational containers (e.g. per brand or client) that hold related social media profiles. Use the returned group |
| profiles_listA | List all available social media profiles for posting. Optionally filter by profile_group_id. |
| upload_createA | Create a temporary file upload URL for sandboxed environments. Returns a |
| post_publishA | Publish a post to specified social media profiles. Supports text content, media attachments, scheduling, drafts, threads (X and Threads only), and platform-specific customization via the 'platforms' parameter. |
| post_statusA | Get status of a published post by post ID |
| post_publish_draftA | Publish a draft post. Only posts with draft status can be published using this endpoint |
| post_updateA | Update an existing post. Only drafts or scheduled posts (more than 5 min before publish) can be updated. Only send fields you want to change — omitted fields are left unchanged. |
| post_deleteA | Delete a post from the database. By default does NOT remove from social media platforms. Pass delete_on_platform=true to also remove from all published platforms before DB deletion. |
| post_delete_on_platformA | Delete a published post from social media platforms WITHOUT removing it from the database. Async via background job. Optionally narrow scope by post_profile_id (covers entire thread for that profile), profile_id, or network. With no scope, deletes from all published platforms. Supported: Facebook, Threads, X (Twitter), LinkedIn, Pinterest, YouTube. NOT supported: Instagram, TikTok. |
| history_listB | List recent post jobs |
| post_statsA | Get stats snapshots for one or more posts. Returns all matching snapshots so you can see trends over time. Supports filtering by profiles/networks and timespan. |
| profiles_placementsA | List available placements for a profile. For Facebook: business pages. For LinkedIn: personal profile and organizations. For Pinterest: boards. For Telegram: channels the bot can post to. For Google Business: locations (returned as full resource paths 'accounts/X/locations/Y' to pass as location_id). Available for facebook, linkedin, pinterest, telegram, and google_business profiles. |
| profiles_statsA | Get the follower/engagement timeseries for a profile. Returns daily snapshots (captured every ~23h). placement_id is required for facebook, linkedin, and telegram profiles (get it from profiles_placements); omit for other networks. Fields in records[].stats are platform-native and not normalized. |
| queues_listA | List all posting queues. Queues automatically schedule posts into recurring weekly timeslots with priority-based ordering. |
| queues_getA | Get details of a single posting queue including its timeslots and post count |
| queues_createA | Create a new posting queue with weekly timeslots. Use profiles.list to find the profile_group_id. |
| queues_updateA | Update a queue's settings, timeslots, or pause/unpause it. Changes to timezone or timeslots trigger rearrangement of all queued posts. |
| queues_deleteA | Delete a posting queue. Posts in the queue will have their queue reference removed but will not be deleted. |
| queues_next_slotA | Get the next available timeslot for a queue |
| comments_listA | List comments on a published post. Returns paginated top-level comments with nested replies. Not all platforms support comments. |
| comments_getA | Get a single comment with its replies |
| comments_createA | Create a comment or reply on a published post. The comment is published to the platform asynchronously. Supported on Instagram, Facebook, Threads, YouTube, and LinkedIn. |
| comments_deleteA | Delete a comment from the platform asynchronously. Supported on Instagram, Facebook, YouTube, and LinkedIn. Not supported on Threads. |
| comments_hideA | Hide a comment on the platform asynchronously. Supported on Instagram, Facebook, and Threads. |
| comments_unhideA | Unhide a previously hidden comment on the platform asynchronously. Supported on Instagram, Facebook, and Threads. |
| comments_likeA | Like a comment on the platform asynchronously. Currently only supported on Facebook. |
| comments_unlikeA | Remove a like from a comment on the platform asynchronously. Currently only supported on Facebook. |
| profile_comments_listA | List profile-scoped comments. Currently surfaces Google Business reviews (reviews live on a location, not a post, so they cannot be reached via comments_list). Each item may include nested replies. Reviews sync from Google twice daily (06:00 and 18:00 UTC). |
| profile_comments_getA | Get a single profile comment (review or your reply) by Postproxy hashid or the platform's external_id (e.g. 'accounts/.../locations/.../reviews/...'). |
| profile_comments_createA | Reply to an existing profile comment (Google Business review). Top-level comments are NOT allowed — you can only reply to a review that already exists. parent_id is required. Response is returned immediately with status 'pending'; a background job then publishes to Google and updates status to 'published' or 'failed'. |
| profile_comments_deleteA | Delete your reply to a profile comment. Only your own reply is removed — the underlying review is NOT deleted (Google does not allow businesses to delete reviews). Returns {accepted: true} while the delete is dispatched asynchronously. |
| dm_chats_listA | List direct-message chats (conversations) for a DM-capable profile, ordered by most recent activity. Supported on Facebook (Messenger), Instagram, Telegram, and Bluesky. |
| dm_chat_createA | Find or create a chat for a participant on a DM-capable profile (idempotent — returns the existing chat if one already exists). Use before sending a message to a participant the profile has not yet messaged. |
| dm_chat_getA | Get a single chat by Postproxy hashid or by the platform's external_conversation_id. |
| dm_messages_listA | List messages in a chat, most recent first. Optionally filter by direction or status. |
| dm_message_sendA | Send an outbound direct message. Provide EITHER body (text) OR media (a single attachment), not both. The message is queued and delivered asynchronously (returns status: pending). Outside Meta's 24h messaging window, pass tag: HUMAN_AGENT (Facebook/Instagram only). reply_to_external_id and reply_markup are Telegram-only. |
| dm_message_getB | Get a single message by Postproxy hashid or by the platform's external_id. |
| dm_message_editA | Edit a previously-sent outbound message on the platform. Telegram only — Facebook and Instagram do not expose outbound edits. Provide body (new text/caption) and/or reply_markup (pass {} to clear the keyboard); at least one is required. |
| dm_message_reactA | Add a reaction from your business account to a message. Facebook Messenger and Instagram Direct only (not Telegram or Bluesky). A second react replaces the previous one. |
| dm_message_unreactA | Remove your business account's reaction from a message. Facebook Messenger and Instagram Direct only. |
| dm_chat_archiveA | Archive (mute) a chat. Bluesky only — calls Bluesky's muteConvo. Returns the chat with archived: true. |
| dm_chat_unarchiveA | Unarchive (unmute) a chat. Bluesky only — calls Bluesky's unmuteConvo. Returns the chat with archived: false. |
| dm_comment_private_replyA | Send a DM to the author of a comment, in reply to that comment (Meta 'Private Replies'). Bypasses the 24h window (comments up to 7 days old) and creates/reuses a chat automatically. One private reply per comment, ever. Instagram and Facebook (Page comments) only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/postproxy/postproxy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server