Skip to main content
Glama
damusix

Buffer MCP Server

by damusix
README.md
# Buffer MCP Server

An MCP (Model Context Protocol) server for the [Buffer](https://buffer.com) social media API. Manage posts, channels, organizations, and ideas through any MCP-compatible LLM client.

## Install

```bash
pnpm add @damusix/buffer-mcp
```

Or run directly with npx:

```bash
npx @damusix/buffer-mcp
```

## Configuration

| Variable              | Required | Description                                                                                            |
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `BUFFER_ACCESS_TOKEN` | Yes      | Your Buffer API access token. Get one from [Buffer Developer Settings](https://developers.buffer.com). |

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`):

```json
{
    "mcpServers": {
        "buffer": {
            "command": "npx",
            "args": ["@damusix/buffer-mcp"],
            "env": {
                "BUFFER_ACCESS_TOKEN": "your-token-here"
            }
        }
    }
}
```

## Usage with Claude Code

```bash
claude mcp add buffer -e BUFFER_ACCESS_TOKEN=your-token-here -- npx @damusix/buffer-mcp
```

## Usage 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                                     |
| ----------------------- | -------- | ----------------------------------------------- |
| `listOrganizations`     | query    | List all organizations on the account           |
| `listChannels`          | query    | List channels for an organization               |
| `getChannel`            | query    | Get a single channel by ID                      |
| `listPosts`             | query    | List posts with pagination and filters          |
| `getPost`               | query    | Get a single post by ID                         |
| `getDailyPostingLimits` | query    | Get daily posting limits for channels           |
| `createPost`            | mutation | Create a new post (draft, queued, or scheduled) |
| `deletePost`            | mutation | Delete a post by ID                             |
| `createIdea`            | mutation | Create a new idea in an organization            |

**Examples:**

List organizations:

```json
{
    "action": "listOrganizations"
}
```

List posts with pagination:

```json
{
    "action": "listPosts",
    "payload": {
        "organizationId": "abc123",
        "first": 10,
        "after": "cursor-string"
    }
}
```

Create a draft post:

```json
{
    "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:

```json
{}
```

List only query actions:

```json
{
    "category": "query"
}
```

Get detailed help for a specific action:

```json
{
    "action": "createPost"
}
```

## Development

```bash
pnpm install
pnpm test
pnpm run build
```

## License

MIT

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation5/5

use_buffer_api executes API actions while buffer_api_help provides discovery and schema details. There is no overlap between executing and getting help, so an agent can clearly distinguish when to use each.

Naming Consistency3/5

Both names contain 'buffer_api', but one uses a 'use_' prefix and the other uses a '_help' suffix. This is a readable but mixed naming convention rather than a consistent verb_noun pattern.

Tool Count3/5

With only two tools, the server feels minimal, but the generic executor plus help tool is a deliberate design that keeps the surface small. It is borderline because one tool does most of the work while the other is purely informational.

Completeness4/5

The generic executor covers a broad range of Buffer actions, including organizations, channels, posts, and ideas, with additional actions implied by 'and more.' The help tool fills discovery gaps, though the lack of explicit typed tools for individual operations is a minor limitation.

Maintenance

ActivityInactive
ResponsivenessNo issues