MCP Server
PostBoost exposes an MCP (Model Context Protocol) server, letting AI assistants like Claude, Cursor, and Windsurf manage your social media posts, accounts, tags, and workspaces directly — no custom integration required.
The server provides 56 tools covering the full PostBoost API: posts, accounts, media, tags, workspaces, users, subscriptions, and receipts.
Endpoint:
https://postboost.co/mcp/postboost
Authentication
PostBoost uses Bearer token authentication (the same tokens used by the REST API).
Get a token:
- Log in to your PostBoost dashboard
- Go to Settings → Access Tokens
- Click Create Token, enter a name, and copy the token
Tokens are shown only once. Store them securely.
Pass the token as a header in your MCP client config:
Authorization: Bearer YOUR_API_TOKEN
Platform Setup
Claude.ai (Web)
- Go to Settings → MCP Servers
- Click Add Server
- Enter the server URL:
https://postboost.co/mcp/postboost - Add header:
Authorization: Bearer YOUR_API_TOKEN - Save and enable the server
Claude Desktop
Config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"postboost": {
"type": "http",
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Restart Claude Desktop after saving.
Claude Code
Add to .claude/.mcp.json in your project, or ~/.claude/.mcp.json globally:
{
"mcpServers": {
"postboost": {
"type": "http",
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Verify the server is connected with claude /mcp.
Cursor
Config file location: .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"postboost": {
"type": "sse",
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Reload Cursor after editing (Cmd+Shift+P → Reload Window).
Windsurf
Config file location: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"postboost": {
"serverUrl": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Restart Windsurf after saving.
VS Code (GitHub Copilot)
Add to .vscode/mcp.json in your project:
{
"servers": {
"postboost": {
"type": "sse",
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Or add globally under mcp.servers in your user settings.json.
Cline
Open Cline in VS Code → click the MCP icon → Add Server → Add Remote Server, then enter:
- Name:
postboost - URL:
https://postboost.co/mcp/postboost - Header:
Authorization: Bearer YOUR_API_TOKEN
Or edit the config file directly:
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"postboost": {
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
},
"disabled": false
}
}
}
Continue.dev
Config file location: ~/.continue/config.yaml
mcpServers:
- name: postboost
transport:
type: sse
url: https://postboost.co/mcp/postboost
requestOptions:
headers:
Authorization: Bearer YOUR_API_TOKEN
Zed
Config file location: ~/.config/zed/settings.json
{
"context_servers": {
"postboost": {
"settings": {
"url": "https://postboost.co/mcp/postboost",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
Available Tools
All 56 tools are available on every platform. Tools that modify data (create, update, delete) prompt for confirmation in most clients.
Most workspace-scoped tools require a workspaceUuid. Call listWorkspaces first to get yours.
Accounts (2)
| Tool | Description |
|---|---|
listAccounts | List all connected social media accounts in a workspace |
getAccount | Get a single account by UUID |
Posts (9)
| Tool | Description |
|---|---|
listPosts | List posts with optional status/tag filters and pagination |
getPost | Get a single post by UUID |
createPost | Create a new post (draft, scheduled, or publish now) |
updatePost | Update an existing post's content or schedule |
deletePost | Delete a post |
deletePostsBulk | Delete multiple posts at once |
approvePost | Approve a post that is pending review |
addPostToQueue | Add a post to the publishing queue |
schedulePost | Schedule a post for a specific date and time |
Media (9)
| Tool | Description |
|---|---|
listMedia | List media files in a workspace |
getMedia | Get a single media file by UUID |
updateMedia | Update media metadata (name, alt text) |
deleteMediaBulk | Delete multiple media files |
initiateRemoteUpload | Start a remote URL upload job |
getRemoteUploadStatus | Poll the status of a remote upload job |
initiateChunkedUpload | Start a chunked file upload session |
completeChunkedUpload | Finalize a chunked upload |
abortChunkedUpload | Cancel an in-progress chunked upload |
Tags (5)
| Tool | Description |
|---|---|
listTags | List all tags in a workspace |
getTag | Get a single tag by UUID |
createTag | Create a new color-coded tag |
updateTag | Update a tag's name or color |
deleteTag | Delete a tag |
Workspaces (6)
| Tool | Description |
|---|---|
listWorkspaces | List all workspaces (admin only) |
getWorkspace | Get a single workspace by UUID |
createWorkspace | Create a new workspace |
updateWorkspace | Update a workspace's name or settings |
deleteWorkspace | Delete a workspace |
deleteWorkspacesBulk | Delete multiple workspaces |
Users (9)
| Tool | Description |
|---|---|
listUsers | List all users (admin only) |
getUser | Get a single user by ID |
createUser | Create a new user account |
updateUser | Update a user's profile |
deleteUser | Delete a user |
deleteUsersBulk | Delete multiple users |
addUserToWorkspace | Add a user to a workspace with a role |
removeUserFromWorkspace | Remove a user from a workspace |
updateWorkspaceUser | Change a user's role in a workspace |
Subscriptions (10)
| Tool | Description |
|---|---|
getSubscription | Get the subscription for a workspace |
createSubscription | Create a new subscription |
updateSubscription | Update subscription details |
deleteSubscription | Delete a subscription record |
cancelSubscription | Cancel a subscription at period end |
resumeSubscription | Resume a cancelled subscription |
changeSubscriptionPlan | Upgrade or downgrade a subscription plan |
checkoutSubscription | Generate a checkout URL for a new subscription |
addGenericSubscription | Manually grant a subscription (e.g., lifetime deals) |
removeGenericSubscription | Remove a manually granted subscription |
Receipts (6)
| Tool | Description |
|---|---|
listReceipts | List billing receipts |
getReceipt | Get a single receipt |
createReceipt | Create a receipt record |
updateReceipt | Update a receipt |
deleteReceipt | Delete a receipt |
deleteReceiptsBulk | Delete multiple receipts |
Example Usage
Create and tag a post:
User: List my workspaces
→ listWorkspaces() → [{ uuid: "ws-abc123", name: "Acme Co" }]
User: Create a tag "Product Launch" with color #FF5733
→ createTag({ workspaceUuid: "ws-abc123", name: "Product Launch", hex_color: "#FF5733" })
User: Show all scheduled posts
→ listPosts({ workspaceUuid: "ws-abc123", status: "scheduled" })
Draft a post for multiple accounts:
User: What accounts do I have?
→ listAccounts({ workspaceUuid: "ws-abc123" })
→ [{ id: 1, name: "Acme Twitter" }, { id: 2, name: "Acme LinkedIn" }]
User: Draft "Excited to announce our new product!" for both accounts
→ createPost({
workspaceUuid: "ws-abc123",
versions: [
{ account_id: 1, is_original: true, content: [{ body: "Excited to announce our new product!" }] },
{ account_id: 2, is_original: false, content: [{ body: "Excited to announce our new product!" }] }
]
})
Troubleshooting
| Problem | Solution |
|---|---|
Authentication failed | Verify your API token is valid. Regenerate it in Settings → Access Tokens if needed |
Access forbidden | Admin-only tools (workspaces, users, subscriptions) require the token to belong to an admin user |
| Tools not showing | The server returns all 56 tools at once — check your client's MCP panel to confirm the connection is active |
| Connection refused / timeout | Verify the endpoint URL is correct and your PostBoost instance is reachable |