buffer_create_ postCreate, schedule, queue or publish a post to ONE channel.
Draft, schedule, edit and publish posts to any connected channel, check daily posting limits before you queue, sort the Ideas backlog, and pull engagement metrics per post or across a date range.
PopMCPBuffer
Search the full catalog of post, Ideas, channel, metrics and account operations, plus the triggers that fire when a post publishes, fails or hits a limit.
buffer_create_ postCreate, schedule, queue or publish a post to ONE channel.
buffer_delete_ postPermanently delete a post by id.
buffer_edit_ postEdit a draft or scheduled post by id (Buffer's mutation is editPost, not updatePost).
buffer_get_ postGet one post by id (the `id` from buffer_list_posts), including its assets, tags, metrics and any publishing error.
buffer_list_ postsList posts for an organization, filtered and sorted, with cursor pagination.
buffer_create_ ideaCreate an Idea — a content note in the backlog, not yet scheduled to a channel/time.
buffer_get_ channelGet one channel by id (the `id` from buffer_list_channels), including its posting schedule (per-day times) and allowed actions.
buffer_list_ channelsList the connected social channels for an organization.
buffer_list_ ideasList Ideas (the content backlog / drafts not yet assigned to a channel or time) for an organization, with cursor pagination.
buffer_get_ accountGet the authenticated Buffer account and the organizations it belongs to.
buffer_get_ post_ metricsGet the performance metrics for one post (likes, comments, shares, reach, impressions, clicks, engagementRate, …).
buffer_list_ organizationsList the organizations on this account (reached via the account).
buffer_graphqlEscape hatch: run ANY Buffer GraphQL query or mutation directly, so nothing in Buffer's schema is ever out of reach (custom field selections, schema introspection, or operations not in the curated surface).
buffer_daily_ posting_ limitsCheck how many posts are already sent/scheduled against each channel's daily posting quota, for a given day.
buffer_list_ idea_ groupsList the Idea groups (columns/buckets that organize Ideas) for an organization.
buffer_aggregated_ post_ metricsGet post metrics AGGREGATED across an organization over a date range (optionally filtered to channels/tags) — the basis for a performance report.
Credentials off one Buffer screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Generate a key in Buffer under Settings → API → Personal Keys → + New Key, pick its permissions, and paste it into Personal API key. No OAuth app or redirect URL. The MCP is locked to the one account that owns it.
••••••••••••3f7aSet the connection read-only for reporting, or allow writes with approval required so nothing publishes to a live channel — or gets deleted — before you see it. The full-catalog toggle decides how much loads.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Buffer credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me engagement across all channels for the last 30 days
buffer_get_accountok
Then just ask for the work
“Show me engagement across all channels for the last 30 days”
“Push every draft scheduled for Friday back to next Tuesday”
“Queue a post about our pricing update on LinkedIn for Tuesday 9am”
“Which ideas in the backlog haven't been turned into scheduled posts?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Buffer behind an AI client.
No. Buffer connects with a personal API key, so there is no OAuth app, client secret, or redirect URL to set up. Generate one in the Buffer app under Settings → API → Personal Keys → + New Key, which is available on every plan, then paste it into the Personal API key field. Whatever permissions you give the key are the permissions the agent inherits, so a read-only key stays read-only no matter what you ask for.
Every channel already connected to the Buffer account that owns the key: Twitter/X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Mastodon, Google Business and the others Buffer supports. list_channels enumerates them for an organization, and get_channel returns a single channel's per-day posting schedule along with the actions it allows. Connecting a brand new channel is still done in Buffer itself, though a Channel connected trigger fires when it happens.
No. create_post targets one channel, so a five-channel announcement is five calls, each with its own copy and timing, which is why an agent usually runs list_channels first. daily_posting_limits reports how many posts each channel has already sent or scheduled against its daily quota for a given day, so you can see where there is room before queueing. There is also a threshold trigger for a channel using up its daily allowance.
get_post_metrics returns one post's likes, comments, shares, reach, impressions, clicks and engagementRate, and get_post returns a post with its assets, tags, metrics and any publishing error attached. For reporting rather than spot checks, aggregated_post_metrics rolls metrics up across an organization over a date range and can be filtered to specific channels or tags. That aggregate call is the one to point an agent at when you ask for a weekly or monthly recap.
16 operations across 6 modules, covering Posts, Ideas, Channels, Account and Metrics, split 11 read to 5 write. 13 load into your client by default and the rest stay searchable, so the tool list your AI sees does not balloon. There are also 10 triggers PopMCP can watch, including post published, post failed to publish, draft created, channel disconnected and a channel hitting its daily limit.
The graphql tool runs any Buffer GraphQL query or mutation directly, including schema introspection and custom field selections, so nothing in Buffer's schema is out of reach. One naming quirk catches people out: Buffer's mutation for changing an existing post is editPost, not updatePost, which is why the curated tool is edit_post. Both edit_post and delete_post work on a post id, and that id comes from list_posts.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 16 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 13-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 16 here. A trigger is something PopMCP watches for you: 10 Buffer events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Buffer.
Launch a hosted MCP endpoint for Buffer, keep tool access under control, and start testing real workflow prompts right away.