buffer-mcp
Provides tools for scheduling social media posts, managing queues, uploading media, and retrieving engagement metrics through Buffer's GraphQL API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@buffer-mcpSchedule a tweet for tomorrow at 10am announcing our latest feature launch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
buffer-mcp
MCP server for Buffer social media scheduling via the GraphQL API. Works with Claude Desktop, Claude Cowork, and any MCP-compatible AI tool.
The legacy REST API (api.bufferapp.com/1/) is deprecated. This server uses Buffer's current GraphQL API exclusively.
Setup
1. Install dependencies
cd buffer-mcp
bash install.shOr manually:
pip install mcp httpx pydantic2. Get your Buffer credentials
Access token: Buffer → Settings → API (or Settings → Beta)
Org ID: Run
buffer_get_accountafter connecting — use the org ID fromaccount.organizations, NOTaccount.id(they differ and using the wrong one causes silent failures)Channel IDs: Run
buffer_list_channelsto get your Twitter/LinkedIn channel IDs
3. Configure environment variables
Copy .env.example to .env and fill in your values:
cp .env.example .env4. Add to Claude Desktop / Cowork
Add to your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"buffer": {
"command": "python3",
"args": ["/absolute/path/to/buffer-mcp/server.py"],
"env": {
"BUFFER_ACCESS_TOKEN": "your-token-here",
"BUFFER_ORG_ID": "your-org-id-here",
"BUFFER_CHANNEL_TWITTER": "your-twitter-channel-id",
"BUFFER_CHANNEL_LINKEDIN": "your-linkedin-channel-id"
}
}
}
}Related MCP server: meta-mcp
Tools
Tool | Description |
| List connected social channels with IDs |
| Get account info and find your org ID |
| Schedule a single post (with images, videos, threads, LinkedIn metadata) |
| Schedule up to 25 posts in one call |
| Edit a scheduled post (atomic delete + recreate) |
| Remove a post from the queue |
| Look up the canonical ID for a post by its scheduled time |
| List scheduled posts in your queue |
| List posts that have already been sent |
| Pull engagement metrics for a published post (Twitter wired; LinkedIn requires Marketing API) |
| Fetch recent tweet URLs for reply/thread follow-up |
| Upload a local image or video to Cloudflare R2 and return a Buffer-safe URL |
| Verify token validity and API connectivity |
Environment Variables
Variable | Required | Description |
| Yes | Your Buffer API access token |
| Yes | Your Buffer organization ID (from |
| No | Twitter channel ID — enables |
| No | LinkedIn channel ID — enables |
| No | Your Twitter username for |
| No | Twitter API v2 bearer token (for reply links + engagement) |
| No | Cloudflare account ID (for |
| No | R2 API token with Object:Write permission |
| No | R2 bucket name (default: |
| No | Public CDN URL for your R2 bucket |
Key Notes
Media hosting
Buffer's media fetcher rejects many free CDNs (catbox, imgur return 0-byte or 429 for Buffer's node-fetch UA). Use Cloudflare R2, AWS S3, or another persistent CDN. The buffer_upload_image tool handles R2 uploads automatically when configured.
Twitter threads
To post a thread, use thread_replies in buffer_create_post. Twitter suppresses posts with links in the body — put your CTA URL in the first reply, not the parent tweet.
Post ID rotation (known Buffer bug)
createPost can return a transient ID that differs from the ID returned by buffer_list_posts for the same post. Always use buffer_find_post_by_schedule to get the canonical (deletable) ID before calling buffer_delete_post or buffer_update_post.
Org ID vs Account ID
Buffer exposes both account.id (account-level) and account.organizations[].id (org-level). Using the account ID as the org ID causes silent "Organization not found" errors. Run buffer_get_account and copy the org ID from the organizations list.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/jakemeany523/buffer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server