Skip to main content
Glama
ahernan2

buffer-mcp

by ahernan2

Buffer MCP Server

MCP server for Buffer social media management — create, schedule, and manage posts across all your connected social platforms via Claude.

Built on Buffer's new GraphQL API (public beta, Feb 2026).

Setup

Requirements: Node.js >= 20

npm install
npm run build

Related MCP server: vibemarketing-mcp

Buffer Access Token

  1. Go to publish.buffer.com/settings/api

  2. Click "Generate API Key"

  3. Copy your access token

Environment Variables

Variable

Required

Description

BUFFER_ACCESS_TOKEN

Yes

Your Buffer API access token

Usage with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "buffer": {
      "command": "node",
      "args": ["/path/to/buffer-mcp/dist/index.js"],
      "env": {
        "BUFFER_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Usage with Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "buffer": {
      "command": "node",
      "args": ["/path/to/buffer-mcp/dist/index.js"],
      "env": {
        "BUFFER_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Tools (7)

Tool

Description

account_info

Get account, organizations, and their IDs

channels_list

List all connected social channels for an org

channel_get

Get details for a single channel

posts_list

List posts with filters (status, channel, date range) and pagination

post_get

Get a single post by ID

post_create

Create a post (queue, schedule, publish now, or publish next)

idea_create

Save an idea to the Buffer ideas board

Resources (1)

URI

Description

buffer://info/api

API info, rate limits, supported platforms, limitations

Limitations

  • No edit/delete via API: The beta GraphQL API supports creating posts only. Use the Buffer dashboard to edit or delete.

  • No analytics: Engagement metrics (likes, comments, reach) are not available via API.

  • No DMs: Only public posts are supported.

  • Media via URL only: Attach images/videos by providing a hosted URL. No file upload endpoint yet.

  • Rate limit: 100 requests per 15 minutes per client.

Available Tools

7 tools
account_infoA

Get the authenticated Buffer account: email, name, timezone, connected organizations and their IDs. Call this first to get the organizationId needed by other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. The verb 'Get' and the phrase 'authenticated account' imply a read-only operation with no side effects, and the dependency note about organizationId is useful behavioral context. It does not explicitly state 'read-only' or mention authentication mechanics, but for a simple zero-parameter read, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundant phrases. The core purpose and returned fields are front-loaded, followed by a valuable usage note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema, the description is complete. It lists the key return fields, states the tool's ordering role, and distinguishes it from siblings. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so the baseline is 4. The description adds no parameter-specific meaning because there are none, but it does clarify what will be returned, which helps set expectations for using the tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and resource ('authenticated Buffer account'), and lists the exact returned data (email, name, timezone, connected organizations and their IDs). This clearly distinguishes it from the sibling channel/post/idea tools, so an agent knows exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to 'Call this first' in order to obtain the organizationId required by other tools. This provides a clear, actionable when-to-use rule, even though no alternative tool exists for account info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channel_getA

Get detailed info for a single channel including posting schedule, metadata, and queue status.

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesChannel ID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description partially carries the burden by disclosing what kind of information is returned. It does not mention error behavior, read-only guarantees, or output shape beyond the listed categories, but 'Get' strongly implies a non-mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence immediately states the action and the object, then lists the key information categories. There is no redundancy or wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool, the description sufficiently explains the purpose and the type of information returned. Minor gaps like not-found handling and exact response structure are acceptable given the low complexity and lack of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the channel_id parameter is already fully documented in the schema. The description adds no additional parameter syntax or format details, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information about a single channel, naming specific content areas (posting schedule, metadata, queue status). This distinguishes it from sibling list-style tools like channels_list by emphasizing 'single channel'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when detailed information about one specific channel is needed and channel_id is known. However, it does not explicitly state when to prefer this over alternatives or provide any exclusions, so usage guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

channels_listA

List all connected social media channels for an organization. Returns channel IDs needed by post_create and posts_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idYesOrganization ID (get from account_info)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It correctly implies a read-only listing operation and states the output includes channel IDs. However, it doesn't mention pagination, whether channels are only connected ones, or any ordering/filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and is front-loaded with the main action and scope. The second sentence conveys important downstream usage without wasting words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one required parameter, the description gives enough context to call it correctly and explains what the output is used for. Since there is no output schema, stating that the return contains channel IDs is valuable, though it could be more explicit about the full response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter with 100% coverage, including the helpful 'get from account_info' hint. The description adds context about why the returned IDs matter but doesn't add new parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all connected social media channels') and the resource ('for an organization'). It also explicitly notes the returned channel IDs are required by post_create and posts_list, giving it a distinct purpose from sibling tools like channel_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating that this tool returns channel IDs needed by post_create and posts_list, implying it should be called before those tools. It doesn't explicitly compare against channel_get, but the 'all channels' wording makes the scope clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

idea_createB

Save an idea to the Buffer ideas board for later use. Ideas can have text, images, tags, and target services.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoIdea body text
titleNoIdea title
servicesNoTarget social platforms for this idea
image_urlNoURL of an image to attach
organization_idYesOrganization ID

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action and allowed content types, but it does not explain permissions, return behavior, idempotency, duplicate handling, or the scope of side effects. For a mutating tool, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the main purpose, and avoids unnecessary filler. The second sentence is compact but slightly inaccurate due to the unsupported 'tags' mention, which prevents a perfect structural score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema is fully self-descriptive and the tool is fairly simple, so the description does not need to explain every parameter. Still, the missing guidance on when to use this tool versus post_create, the misleading 'tags' reference, and the lack of behavioral detail leave noticeable gaps. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond restating text, images, and services, and it mentions 'tags' even though no tags parameter exists in the schema and additionalProperties is false. This could mislead the agent into sending an invalid property.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Save an idea to the Buffer ideas board for later use.' This clearly conveys what the tool does and separates it from post_create by emphasizing deferred use. However, it does not explicitly name or contrast sibling tools, so the differentiation is implied rather than fully articulated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for later use' implies this tool is for capturing drafts or ideas rather than publishing, but the description does not explicitly say when to use it versus post_create or other siblings. There are no exclusions or alternative recommendations, leaving the agent to infer routing from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_createA

Create a new post on a channel. Use mode to control scheduling: "addToQueue" (default queue), "shareNow" (publish immediately), "shareNext" (next in queue), or "customScheduled" (set dueAt).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoScheduling mode (default: addToQueue)
textYesPost content text
due_atNoISO 8601 datetime for scheduled post (required when mode is customScheduled)
tag_idsNoTag IDs to apply to the post
video_urlNoURL of a video to attach
channel_idYesChannel ID to post to (get from channels_list)
image_urlsNoURLs of images to attach
scheduling_typeNoPublishing type: "automatic" (Buffer publishes) or "notification" (sends reminder). Default: automatic

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It clearly states the side effect (creating a post), explains scheduling semantics (default queue, immediate publish, next in queue, custom schedule), and hints at the dueAt dependency. It does not mention permission requirements or reversibility, but for a create operation the core behaviors are well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no filler. The core purpose is front-loaded in the first sentence, and the second sentence packs the key parameter guidance. Every word earns its place, and the structure is easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the central action and the most complex decision (scheduling modes), while the schema fully documents the remaining optional parameters like media, tags, and scheduling_type. The due_at dependency for customScheduled is partially indicated in the description and fully specified in the schema. For a tool with this parameter count and full schema coverage, the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all eight parameters. The description adds a small amount of extra meaning by expanding the mode enum values, but it mostly restates what the schema provides. It adds no value for channel_id, text, media URLs, tags, or scheduling_type. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource, 'Create a new post on a channel', making the tool's purpose immediately clear. The second sentence further clarifies scheduling behavior, which differentiates this from sibling read/list tools like posts_list and post_get. The purpose is unambiguous and not a tautology of the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on how to use the mode parameter, enumerating all four scheduling choices with their intended effects. This is valuable context for selecting the correct behavior. However, it does not explicitly contrast with sibling tools or state when not to use this tool (e.g., versus idea_create), leaving some usage inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

post_getA

Get a single post by its ID with full details including assets, tags, notes, and allowed actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesPost ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral burden. It conveys that this is a read operation and lists returned content, but it does not disclose authentication requirements, error behavior, or side effects, which would be useful for a tool with no annotation safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It names both the operation and the key fields returned, making every word informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter getter with no output schema, the description is largely complete: it identifies the required input and what the caller will receive. Minor gaps around auth or error conditions exist, but the low complexity keeps them from being critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, post_id, is already documented in the schema as 'Post ID', and the description merely echoes 'by its ID' without adding format, source, or validation context. With 100% schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action, 'Get a single post by its ID', and clearly identifies the response scope ('full details including assets, tags, notes, and allowed actions'). The singular, ID-based framing distinguishes it from siblings like posts_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as posts_list or channel_get. It implies single-post retrieval but never states exclusions or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

posts_listA

List posts for an organization with optional filters by status, channel, and date range. Supports cursor-based pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoCursor for pagination (from pageInfo.endCursor)
firstNoNumber of posts to return (default: 20, max: 100)
statusNoFilter by post status (e.g. ["scheduled", "sent"])
sort_byNoSort field (default: dueAt)
due_at_endNoFilter posts due before this ISO 8601 datetime
channel_idsNoFilter by channel IDs
due_at_startNoFilter posts due after this ISO 8601 datetime
sort_directionNoSort direction (default: asc)
organization_idYesOrganization ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the transparency burden. It discloses that this is a read-only list operation, that filters are optional, and that pagination is cursor-based, which is useful behavioral context. It does not detail return shape or sorting behavior, but those are partially visible in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and scope, followed by the key pagination behavior. Every phrase earns its place; there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With nine parameters but full schema coverage, the description's summary of filters and cursor pagination is enough to orient an agent. It does not describe the output shape, though the after-cursor reference to pageInfo.endCursor in the schema partially fills that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already individually documented with types, defaults, and enums. The description groups filters as 'status, channel, and date range' but does not add materially new meaning beyond the property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb ('List'), resource ('posts'), and organizational scope, plus the filter dimensions (status, channel, date range). This distinguishes it from singular post_get and mutating post_create siblings even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear this is the listing/filtering operation for posts in an organization, which gives sufficient context for when to call it. It does not explicitly name alternatives or exclusions, so it stops short of 5.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observedaccount_info
    • First observedchannel_get
    • First observedchannels_list
    • First observedidea_create
    • First observedpost_create
    • First observedpost_get
    • First observedposts_list

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource: account, channels list/detail, posts list/detail/create, and ideas create. There is no ambiguity between list-versus-get or across different resource types.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (channels_list, channel_get, posts_list, post_create). The only deviation is account_info, which would be more consistent as get_account_info.

Tool Count5/5

Seven tools provide a focused scope for Buffer account, channel, post, and idea operations. The count is appropriate and each tool has a clear purpose.

Completeness4/5

Core workflows are covered: discover account and channels, list and create posts, and save ideas. Missing update/delete operations for posts and a way to list ideas are minor gaps but do not block primary scheduling workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/ahernan2/buffer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server