Skip to main content
Glama
postbasehq

@postbasehq/mcp

Official
by postbasehq

@postbasehq/mcp

CI npm version npm downloads license Node

The Model Context Protocol server for Postbase — the open-source, MCP-native social scheduler. Add it to Claude, Cursor, or any MCP client and let your AI agent schedule and publish across your channels.

Post everywhere. Even from your AI.

Quick start

  1. Generate an API key in your Postbase dashboard → MCP & API.

  2. Add the server to your MCP client config (see examples below).

  3. Ask your agent: “Schedule this thread for 9am to X and LinkedIn.”

Related MCP server: @posteverywhere/mcp

Example configs

Any MCP client — the minimal config:

{
  "mcpServers": {
    "postbase": {
      "command": "npx",
      "args": ["@postbasehq/mcp"],
      "env": { "POSTBASE_API_KEY": "pb_live_your_key_here" }
    }
  }
}

Claude Desktop — add the same block to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Then restart Claude Desktop.

Cursor — add it to ~/.cursor/mcp.json (or Settings → MCP):

{
  "mcpServers": {
    "postbase": {
      "command": "npx",
      "args": ["@postbasehq/mcp"],
      "env": { "POSTBASE_API_KEY": "pb_live_your_key_here" }
    }
  }
}

Local development — point at a Postbase instance running on your machine:

{
  "mcpServers": {
    "postbase": {
      "command": "npx",
      "args": ["@postbasehq/mcp"],
      "env": {
        "POSTBASE_API_KEY": "pb_live_your_key_here",
        "POSTBASE_API_URL": "http://localhost:3000/api/v1"
      }
    }
  }
}

Tools

Tool

What it does

list_channels

List the channels connected to your workspace.

create_post

Create a post — body, channel_ids, optional ISO scheduled_at (omit for a draft).

schedule_thread

Create an X thread (tweets in order) and optionally schedule it.

list_scheduled

List posts scheduled to publish.

cancel_post

Cancel a scheduled post by id.

Environment

Variable

Required

Default

POSTBASE_API_KEY

yes

—

POSTBASE_API_URL

no

https://www.postbase.so/api/v1

For local development against a Postbase instance on your machine, set POSTBASE_API_URL=http://localhost:3000/api/v1.

License

AGPL-3.0-or-later. Part of the open-source Postbase project.

Available Tools

4 tools
cancel_postA

Cancel a scheduled post by id (returns it to draft).

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesThe id of the post to cancel.

TDQS

A4.1/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 expressly reveals the outcome ('returns it to draft'), which indicates that the post is not deleted but flipped back to draft state. It does not discuss permissions, failure cases, or publish handling, but the most critical behavioral trait is communicated.

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 a single sentence, 'Cancel a scheduled post by id (returns it to draft)', which is extremely concise and front-loads the core action. The parenthetical is an added, necessary behavioral acknowledgment. There is no padding or redundant content.

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?

This is a simple tool with one parameter and no output schema, so the description only needs to explain what the tool does – which it does clearly, including the post-replacement outcome. It gives enough context for an agent to invoke the tool correctly, and no additional guidance seems essential for this low-complexity operation.

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 input schema already fully describes the single parameter post_id ('The id of the post to cancel'), and coverage is 100%. The tool description only re-states the id usage, adding no semantic layer beyond what the schema provides. Thus, 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?

The description uses a specific verb 'Cancel' and a precise resource 'a scheduled post', plus the outcome 'returns it to draft'. It clearly distinguishes this from sibling tools like list_channels, create_post, and list_scheduled by stating exactly what action it performs on which entity.

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 this is the tool to use when a scheduled post needs to be cancelled, but it provides no explicit when-to-use, when-not-to-use, or alternatives. It does not mention sibling tools or prior steps such as obtaining the post_id from list_scheduled, so the guidance is mostly implicit.

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

create_postA

Create a post. Provide channel_ids from list_channels and an ISO 8601 scheduled_at to schedule it (omit to save as a draft).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe post text.
channel_idsNoChannel ids to publish to (from list_channels).
scheduled_atNoISO 8601 time to publish, e.g. 2026-09-12T09:00:00Z. Omit for a draft.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses the draft-vs-schedule behavior and the dependency on list_channels, which is useful. However, it doesn't mention what happens on success (e.g., return value), whether the post is immediately published if scheduled_at is omitted, or any side effects like validation errors. The description is adequate but not rich.

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 a single, compact sentence that front-loads the core action ('Create a post') and then packs the key usage details (channel_ids source, scheduled_at format, draft behavior) without waste. Every clause earns its place.

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 3-parameter tool with no output schema, the description covers the essential usage: what to provide, where to get channel_ids, and how to schedule or draft. It doesn't explain return values or error cases, but given the simplicity and full schema coverage, the description is nearly complete. A brief note on success/return behavior would make it fully 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 three parameters. The description adds a small amount of context by explaining the relationship between scheduled_at and draft behavior, and by pointing to list_channels for channel_ids. However, it doesn't add significant meaning beyond the schema, so 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's purpose: creating a post, with explicit mention of scheduling and draft behavior. It distinguishes itself from siblings by referencing list_channels for channel_ids and by noting the omit-to-draft behavior, which differentiates it from cancel_post and list_scheduled.

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 on when to use the tool: to create a post, optionally schedule it, or save as a draft. It doesn't explicitly state when not to use it or mention alternatives, but the sibling context and the mention of list_channels provide implicit guidance. A clear exclusion or alternative mention would push this to 5.

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

list_channelsA

List the social channels connected to the Postbase workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. 'List' strongly implies a read-only operation, and there is no hint of destructive behavior. However, the description does not disclose details like authentication requirements, result ordering, pagination, or whether the list includes inactive/archived channels.

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 a single sentence with no filler. It front-loads the action and resource, and every word contributes meaning.

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 no-parameter listing tool, the description covers the essential context: what is being listed and the workspace scope. The absence of an output schema is slightly mitigated by the straightforward nature of a list operation, but the return shape is not described. Still, the tool is simple enough that this is a minor gap.

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 tool accepts zero parameters and the schema has 100% coverage with an empty properties object. With no parameters to document, the baseline is 4, and the description does not need to add parameter-level meaning.

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 uses a specific verb ('List') and a specific resource ('social channels connected to the Postbase workspace'). It clearly states what the tool does and is immediately distinguishable from sibling tools like create_post, list_scheduled, and cancel_post.

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 this is the tool to use when you need an overview of connected channels, and the sibling names make alternatives fairly obvious. However, it does not explicitly state when to use this versus another tool or mention any exclusions or prerequisites.

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

list_scheduledA

List posts that are scheduled to publish.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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 behavioral disclosure. It only describes the core action and does not mention ordering, pagination, time-window semantics, whether already-published scheduled posts are included, or any permissions/auth requirements.

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 a single, front-loaded sentence with no filler or redundancy. It gives the essential action and target resource in the most compact useful form.

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 zero-parameter, read-only list tool without an output schema, the description is mostly sufficient: an agent can identify what will be returned. It falls short of 5 only because it does not clarify the meaning or boundaries of 'scheduled to publish' (e.g., future-only, pending status, includes unpublished drafts).

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 tool has zero parameters and the schema is empty, so there is nothing for the description to add. The baseline of 4 applies because parameter semantics are not a concern for this no-input 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 states a specific verb ('List') and resource ('posts that are scheduled to publish'), clearly identifying the exact set of objects returned. It also distinguishes itself from siblings like list_channels (different resource) and create_post/cancel_post (different actions).

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?

No guidance is given about when to use this tool versus the named siblings. While the purpose implicitly suggests it is for viewing scheduled posts, the description does not explicitly exclude alternatives or mention any conditions or context that should trigger its use.

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.

  1. 4 tool updatesv0.1.0
    • First observedcancel_post
    • First observedcreate_post
    • First observedlist_channels
    • First observedlist_scheduled

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct action: listing channels, creating posts, listing scheduled posts, and canceling scheduled posts. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow the consistent verb_noun pattern in snake_case: list_channels, create_post, list_scheduled, cancel_post. The naming is uniform and predictable.

Tool Count5/5

With only 4 tools, the server is tightly scoped for its purpose of managing social media post scheduling. Each tool is necessary and none are redundant.

Completeness3/5

The core workflow of creating, scheduling, and canceling posts is covered, but there are notable gaps: no way to list drafts, update an existing post, or permanently delete a post. Agents cannot fully manage the post lifecycle.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to publish, schedule, and manage social media posts across X (Twitter), Instagram, and Threads through the Sociona API. Supports immediate posting, scheduling, analytics, and account management with natural language commands.
    6
    15 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to schedule and publish social media posts to platforms like Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest using natural language.
    33
    76 npm
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to create, schedule, and publish social media posts across Instagram, X/Twitter, LinkedIn, Threads, Facebook, and other platforms via the PosteAhora API.
    15
    13 npm
    MIT