@damusix/buffer-mcp
Manages social media posts, channels, organizations, and ideas through the Buffer API, enabling creation, retrieval, deletion, and scheduling of content.
Click on "Deploy 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., "@@damusix/buffer-mcplist my organizations"
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 Server
An MCP (Model Context Protocol) server for the Buffer social media API. Manage posts, channels, organizations, and ideas through any MCP-compatible LLM client.
Install
pnpm add @damusix/buffer-mcpOr run directly with npx:
npx @damusix/buffer-mcpRelated MCP server: Elba MCP Server
Configuration
Variable | Required | Description |
| Yes | Your Buffer API access token. Get one from Buffer Developer Settings. |
The server will exit immediately if BUFFER_ACCESS_TOKEN is not set.
Usage with Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"buffer": {
"command": "npx",
"args": ["@damusix/buffer-mcp"],
"env": {
"BUFFER_ACCESS_TOKEN": "your-token-here"
}
}
}
}Usage with Claude Code
claude mcp add buffer -e BUFFER_ACCESS_TOKEN=your-token-here -- npx @damusix/buffer-mcpUsage with Other Clients
For Cursor, Windsurf, or any other MCP-compatible client, add @damusix/buffer-mcp as a stdio MCP server with BUFFER_ACCESS_TOKEN set in the environment. Consult your client's documentation for the exact configuration format.
Tools
use_buffer_api
Execute a Buffer API action. Takes an action name and an optional payload object.
Available actions:
Action | Category | Description |
| query | List all organizations on the account |
| query | List channels for an organization |
| query | Get a single channel by ID |
| query | List posts with pagination and filters |
| query | Get a single post by ID |
| query | Get daily posting limits for channels |
| mutation | Create a new post (draft, queued, or scheduled) |
| mutation | Delete a post by ID |
| mutation | Create a new idea in an organization |
Examples:
List organizations:
{
"action": "listOrganizations"
}List posts with pagination:
{
"action": "listPosts",
"payload": {
"organizationId": "abc123",
"first": 10,
"after": "cursor-string"
}
}Create a draft post:
{
"action": "createPost",
"payload": {
"channelId": "abc123",
"text": "Hello world!",
"schedulingType": "automatic",
"mode": "addToQueue",
"saveToDraft": true
}
}buffer_api_help
Get help on available actions. Takes an optional action name or category filter.
List all actions:
{}List only query actions:
{
"category": "query"
}Get detailed help for a specific action:
{
"action": "createPost"
}Development
pnpm install
pnpm test
pnpm run buildLicense
MIT
Available Tools
2 toolsbuffer_api_helpA
Get help on available Buffer API actions — list all actions or get detailed schema info for a specific action
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Specific action name to get detailed help for (e.g. "listPosts"). Omit to see all available actions. | |
| category | No | Filter actions by category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It clearly indicates a read-only, introspection-like behavior by saying 'Get help', 'list all actions', and 'get detailed schema info'. It could add detail about output format or handling of unknown action names, but the core behavior is transparent enough for a help tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clear sentence, front-loaded with the tool's purpose and then detailing the two invocation modes. Every word contributes; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two optional parameters, no output schema, and a simple introspection purpose, the description covers the main invocation scenarios: list everything or ask about a specific action. It could optionally clarify the return format or recommend pairing with use_buffer_api, but nothing essential to calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter descriptions, including that 'action' can be omitted to list all actions and that 'category' filters by query or mutation. The description reinforces the two usage modes but does not add new parameter-level meaning beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get help on available Buffer API actions', and clearly distinguishes the two modes: listing all actions or retrieving detailed schema for a specific action. It is immediately distinguishable from the sibling execute tool use_buffer_api.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is for help/schema discovery rather than executing API actions, so the intended context is inferable. However, it does not explicitly say 'use this before use_buffer_api' or state when not to use it, so exclusions and alternatives are only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
use_buffer_apiC
Execute a Buffer API action (list organizations, channels, posts, create/delete posts, create ideas, and more)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to execute (e.g. "listPosts", "createPost") | |
| payload | No | Action payload — fields depend on the action. Use buffer_api_help to see available fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavior. It mentions create/delete operations, which implies potentially destructive side effects, but it does not explain consequences, permissions, rate limits, response behavior, or whether operations are reversible. For a tool that can delete posts, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no wasted words. It front-loads the core purpose and gives useful action examples immediately. The phrase 'and more' is slightly open-ended but acceptable for a generic wrapper tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a generic, dynamically-shaped API wrapper with no output schema and no annotations. The description alone does not explain where to get the full action list, how to structure payloads, or what to expect back. The payload schema points to buffer_api_help, but the tool description itself leaves the agent under-equipped for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters at 100%, so the baseline is 3. The description adds no new parameter-level meaning beyond what the schema provides, but it does not need to compensate because the schema clearly documents action as a string and payload as an action-dependent object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource relationship: 'Execute a Buffer API action' with concrete examples of the families it covers (organizations, channels, posts, ideas). It does not fully distinguish itself from the sibling buffer_api_help, but the generic purpose is specific enough for an agent to understand the tool's role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus buffer_api_help or any other alternative. The payload schema does mention using buffer_api_help to discover fields, but that is not in the tool description itself, so the agent gets no explicit routing or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.2.1- First observed
buffer_api_help - First observed
use_buffer_api
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one provides help/schema info, the other executes API actions. No overlap or ambiguity.
Both follow a 'buffer_api_<verb>' snake_case pattern, but one uses 'help' and the other 'use', which is slightly asymmetric. Still mostly consistent.
With only 2 tools, the server feels minimal. While the use_buffer_api tool consolidates many actions, the small count may limit expressiveness for agents.
The use_buffer_api tool claims to cover all major Buffer API actions (list, create, delete), and the help tool provides schema for new actions. Minor gap: no dedicated tool for individual action exploration beyond help.
Maintenance
Related MCP Connectors
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP coordination primitive for multi-agent workflows. Lets multiple AI coding agents (Claude Code, Cursor, n8n, custom clients) discover each other and exchange messages and tasks via a shared SQLite-backed message bus.3764 npm4MIT
- AlicenseAqualityDmaintenanceManage voice AI agents from Claude Code, Cursor, VS Code, or any MCP-compatible assistant.303MIT
- AlicenseAqualityBmaintenanceMCP Server for the Mattermost API, enabling Claude and other MCP clients to interact with Mattermost workspaces.969 npm3MIT
- AlicenseAqualityCmaintenanceEnables MCP-compatible clients to interact with AnythingLLM, providing tools for workspace management, chat and thread operations, document operations, vector search, and system inspection.346MIT