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. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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