Skip to main content
Glama

buffer-mcp — Buffer 社媒发布 MCP 服务器

在 mcpservers.org 上列出

通过 Buffer 统一发布/排期到 Facebook、Instagram、YouTube 等渠道,内置 Cloudinary 媒体上传与校验,共 24 个工具。帮助运营与办公场景实现 AI 自动化(内容排期、批量发布、媒体处理与数据分析)。

特性

  • 一条上传链路:cloudinary_upload 把本地文件变成公网 HTTPS 地址;密钥只留在进程内,不回显。

  • 发布前校验:文本长度、各平台必填元数据、媒体类型、YouTube Shorts 方向规则在调用前检查。

  • 发布前探测:media_probe 检查 HTTPS / HEAD / Range / Content-Type / 大小,避免 Buffer 拒收媒体。

  • 写操作安全:写工具需 confirm 令牌;修改/删除还需 allowDestructive=true;HTTP 写入需 allowWrites=true。

  • 无 ffmpeg:MP4 宽高/时长直接解析 moov box。

  • 双传输:stdio 与 Streamable HTTP 共用同一套工具注册。

Related MCP server: SocialHive MCP Server

客户端配置(远程托管,推荐)

{
  "mcpServers": {
    "buffer-mcp": {
      "type": "http",
      "url": "https://mcpweb.wjjnew.cn/buffer-mcp/mcp",
      "headers": { "Authorization": "Bearer <你的 mcp_sk_xxx>" }
    }
  }
}

工具清单(24)

分组

工具

配置(3)

buffer_get_config buffer_set_config buffer_reset_config

渠道(3)

buffer_list_organizations buffer_list_channels buffer_get_channel

帖子(5)

buffer_list_posts buffer_get_post buffer_create_post buffer_update_post buffer_delete_post

媒体(8)

cloudinary_upload cloudinary_upload_batch cloudinary_link cloudinary_variants cloudinary_list_assets cloudinary_delete media_probe media_preflight

分析(5)

buffer_list_daily_limits buffer_get_analytics buffer_list_ideas buffer_list_idea_groups buffer_create_idea

cloudinary_list_assets 支持 resourceType、type(默认 upload)、maxResults、nextCursor、prefix、tags、direction。

写操作确认

工具

confirm

额外要求

buffer_create_post

"create"

允许写入

buffer_update_post / buffer_delete_post

帖子 id

允许修改/删除

cloudinary_upload / cloudinary_upload_batch

"upload"

已配置 Cloudinary

cloudinary_delete

public_id

允许修改/删除

会话与稳定性(HTTP)

  • SaaS 托管默认 MCP_HTTP_STATELESS=true:不依赖 Mcp-Session-Id,服务端重启/会话过期不会出现 Session not found;客户端携带旧 session id 会被直接忽略。

  • 本地需要有状态会话时保持默认(不设置该变量)即可;此时服务端重启后客户端应重新 initialize。

本地运行

npm ci
npm run build

# stdio(默认)
BUFFER_API_KEY=你的Key node dist/index.js

# Streamable HTTP
BUFFER_API_KEY=你的Key MCP_TRANSPORT=http MCP_HTTP_PORT=8787 node dist/index.js

客户端(stdio):

{
  "mcpServers": {
    "buffer-mcp": {
      "command": "node",
      "args": ["/path/buffer-mcp/dist/index.js"],
      "env": { "BUFFER_API_KEY": "你的Key" }
    }
  }
}

配置

  • 环境变量示例:.env.example

  • 完整配置说明:CONFIG.md

  • 配置示例:buffer-mcp.config.example.json

Cloudinary 需自备(CLOUDINARY_CLOUD_NAME / CLOUDINARY_API_KEY / CLOUDINARY_API_SECRET,或 CLOUDINARY_URL);未配置时不启用上传,可改用公网媒体 URL 发布。代码中的默认值为空,不会回退到任何第三方账号。

要求

  • Node.js >= 20

  • Buffer 个人 API Key(Buffer 后台 → Developers / API)

  • 可选:Cloudinary 账号(仅本地上传需要)

License

MIT © 2026 wjjnew123

Available Tools

23 tools
buffer_create_ideaCreate an ideaC

Create an idea on the idea board. Requires confirm="idea".

Inputs: text, title, confirm, services, +1 more.

buffer_create_postCreate a Buffer postA

Create one post per channel. Media can be local paths (uploaded through Cloudinary) or HTTPS URLs. Runs platform validation first; use dryRun to preview the payload without writing.

Inputs: mode, text, dueAt, media, +4 more.

buffer_delete_postDelete a postA
DestructiveIdempotent

Delete a post by id. Requires safety.allowDestructive=true and confirm equal to the post id.

Inputs: postId (required), confirm.

buffer_get_analyticsGet aggregated post metricsA
Read-only

Return aggregated metrics for an organization in a date range. On the free plan the window is capped at 31 days, so longer ranges are clamped and reported.

Inputs: endDateTime (required), startDateTime (required), channelIds, organizationId.

buffer_get_channelGet channelC
Read-only

Fetch a single channel by id.

Inputs: channelId (required).

buffer_get_configGet effective configurationA
Read-only

Return the merged configuration (defaults < config file < environment < CLI). Secrets are masked. Use this to discover the active settings before making changes.

Inputs: no named parameters.

buffer_get_postGet postA
Read-only

Fetch a single post with assets, status and any publishing error.

Inputs: postId (required).

buffer_list_channelsList channelsB
Read-only

List connected channels for an organization with service, timezone, and queue state.

Inputs: organizationId.

buffer_list_daily_limitsCheck daily posting limitsA
Read-only

Return each channel's daily posting limit, how many posts are scheduled and sent, and whether the limit is reached.

Inputs: channelIds (required), date.

buffer_list_idea_groupsList idea groupsC
Read-only

List the idea groups (boards) in an organization.

Inputs: organizationId.

buffer_list_ideasList ideasC
Read-only

List ideas in the organization's idea board.

Inputs: after, first, organizationId.

buffer_list_organizationsList Buffer organizationsA
Read-only

List the organizations available to the configured Buffer API key, including plan limits.

Inputs: no named parameters.

buffer_list_postsList postsA
Read-only

List posts for an organization with optional channel, status, and due-date filters. Returns the newest page by default.

Inputs: after, limit, status, dueAfter, +3 more.

buffer_reset_configReset configurationA
DestructiveIdempotent

Delete the persisted config file and fall back to defaults plus environment variables. Requires safety.allowDestructive=true and confirm="reset".

Inputs: confirm.

buffer_set_configUpdate configurationA
Idempotent

Deep-merge a JSON patch into the config file and persist it. Only non-secret settings are writable unless safety.allowSecretWrite is true. Returns the updated, masked configuration.

Inputs: patch (required), confirm.

buffer_update_postUpdate a postA
DestructiveIdempotent

Edit the text, due date, mode or metadata of an existing draft/scheduled post. Requires safety.allowDestructive=true and confirm equal to the post id.

Inputs: postId (required), mode, text, dueAt, +2 more.

cloudinary_deleteDelete a Cloudinary assetA
DestructiveIdempotent

Permanently delete an asset by public_id. Requires safety.allowDestructive=true and confirm equal to the public_id.

Inputs: publicId (required), confirm, resourceType.

cloudinary_uploadUpload media to CloudinaryA

Upload a local file (or import a remote URL) through the built-in Cloudinary credentials and return the public HTTPS delivery URL plus metadata. This is the only supported upload path; credentials never leave this process.

Inputs: url, path, folder, confirm, +2 more.

cloudinary_upload_batchUpload multiple media filesA

Upload several local files or URLs sequentially, returning per-item results and failures. Maximum 20 items.

Inputs: urls, paths, folder, confirm, +1 more.

cloudinary_variantsGenerate platform media variantsA
Read-only

Return delivery URLs for common platform aspect ratios (16:9, 1:1, 4:5, 9:16 padded, 9:16 cropped) derived from an existing public_id.

Inputs: publicId (required), resourceType.

media_preflightPreflight media against platform rulesB
Read-only

Validate text and media against the selected channels before creating a post: text limits, required metadata, asset types, and the YouTube Shorts orientation rule.

Inputs: url, path, text, channelIds.

media_probeProbe a media URLA
Read-only

Check HTTPS, HEAD support, range support, content type and size of a public media URL. Buffer requires an HTTPS URL whose endpoint answers HEAD instead of returning 404.

Inputs: url (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 23 tools

    Disambiguation4/5

    Most tools are clearly distinct by resource and action (buffer_get_channel vs buffer_list_channels, buffer_get_post vs buffer_create_post). Minor overlap exists between media_probe and media_preflight (both validate media) and between cloudinary_upload and cloudinary_upload_batch, but descriptions clarify the single-vs-batch and URL-vs-channel-rule distinctions. An agent can reliably select the right tool.

    Naming Consistency4/5

    Predictable verb_noun pattern with consistent domain prefixes (buffer_, cloudinary_, media_). Verbs (get/set/list/create/update/delete/upload) are used consistently. Minor deviations: cloudinary_link and cloudinary_variants omit a trailing noun, and buffer_get_analytics/buffer_list_daily_limits slightly break the resource_verb pattern, but overall readable and consistent.

    Tool Count3/5

    23 tools is on the heavy side, spanning config, posts, media, analytics, and ideas domains. Each tool earns its place within its sub-domain, but the surface is large enough that it borders on overwhelming for a single server. Reasonable but at the upper edge of comfortable scoping.

    Completeness4/5

    Posts have full CRUD, config is fully manageable, and media/Cloudinary lifecycle is covered. Gaps: ideas only support list/list-groups/create with no update or delete, analytics is read-only, and channel management is read-only. These are minor gaps agents can work around for core Buffer workflows.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Social media scheduling and publishing for AI agents. 17 validation-first tools to post to X, LinkedIn, Instagram, TikTok, YouTube, Reddit, Discord, Telegram, and more through one connected workspace.
      187 npm
      106
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables AI agents and clients to discover accounts and channels, read scheduling and analytics data, and manage posts, content items, and templates through 41 GraphQL-backed tools with private credential profiles and confirmation-gated mutations.
      41
      41 npm
      AGPL 3.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to upload and schedule videos, images, carousels, and text posts across 17 social platforms, read analytics, and reply to comments through a hosted OAuth connection.
      MIT