publer-mcp-server
v1.0.0
Published
An open-source Model Context Protocol (MCP) server for the Publer social media management API. Schedule posts, upload media, pull analytics, and manage accounts across 15+ social networks from your AI assistant.
Downloads
148
Maintainers
Readme
Publer MCP Server
An open-source Model Context Protocol (MCP) server for the Publer social media management API.
Schedule posts, upload media, pull analytics, and manage accounts across 15+ social networks — all from your AI assistant.
Created by Kess Media
Features
- 14 tools covering the full Publer API
- Create, schedule, publish, update, and delete posts
- Upload media via URL (perfect for Dropbox/cloud storage integration)
- Browse and search media library
- Analytics: charts, post insights, hashtag analysis, best times to post
- Multi-account posting across Facebook, Instagram, X, LinkedIn, TikTok, YouTube, Bluesky, and more
- Async job polling for post creation and media uploads
Requirements
- Node.js 18+
- Publer Business plan (API access is Business-only)
- Publer API key (Settings → Access & Login → API Keys)
Quick Start
Claude Desktop App / Claude Code Desktop (Mac)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"publer": {
"command": "npx",
"args": ["-y", "publer-mcp-server"],
"env": {
"PUBLER_API_KEY": "your-api-key-here",
"PUBLER_WORKSPACE_ID": "your-workspace-id-here"
}
}
}
}Restart the app — Publer will appear under Connectors → Desktop.
Claude Code (CLI)
Add to ~/.claude/mcp.json:
{
"mcpServers": {
"publer": {
"command": "npx",
"args": ["-y", "publer-mcp-server"],
"env": {
"PUBLER_API_KEY": "your-api-key-here",
"PUBLER_WORKSPACE_ID": "your-workspace-id-here"
}
}
}
}Or via the CLI:
claude mcp add publer -- npx -y publer-mcp-server \
--env PUBLER_API_KEY=your-key \
--env PUBLER_WORKSPACE_ID=your-workspace-idCloudflare Worker (Remote — No Local Install)
Deploy as a Cloudflare Worker and connect from any Claude interface without installing anything locally. One deployment, multiple users.
Deploy:
git clone https://github.com/alexkess/publer-mcp-server.git
cd publer-mcp-server/worker
npm install
npx wrangler deploy
npx wrangler secret put PUBLER_API_KEY
npx wrangler secret put PUBLER_WORKSPACE_IDYour server is now live at https://publer-mcp.<your-subdomain>.workers.dev/mcp.
Connect from Claude Code (~/.claude/mcp.json):
{
"mcpServers": {
"publer": {
"type": "http",
"url": "https://publer-mcp.<your-subdomain>.workers.dev/mcp"
}
}
}Connect from Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
The Desktop app's Connectors UI doesn't support custom HTTP MCP servers directly. Use the Claude Code config above, or add the URL via the custom connector flow in Settings → Connectors → +.
Security note: The Worker URL acts as your access credential — keep it private. Each user deploys their own Worker with their own Publer API key, so there's no shared access risk.
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"publer": {
"command": "npx",
"args": ["-y", "publer-mcp-server"],
"env": {
"PUBLER_API_KEY": "your-api-key-here",
"PUBLER_WORKSPACE_ID": "your-workspace-id-here"
}
}
}
}Environment Variables
| Variable | Required | Description |
|---|---|---|
| PUBLER_API_KEY | Yes | Your Publer API key |
| PUBLER_WORKSPACE_ID | Yes | Your Publer workspace ID |
Finding Your Workspace ID
- Log in to Publer
- Go to Settings → Workspace
- Copy the workspace ID from the URL or settings page
Available Tools
Account Management
| Tool | Description |
|---|---|
| publer_get_me | Get current authenticated user profile |
| publer_list_workspaces | List all workspaces |
| publer_list_accounts | List all connected social accounts |
Posts
| Tool | Description |
|---|---|
| publer_list_posts | List and filter posts by state, date, type, account, or search |
| publer_create_post | Create and schedule a post (text, photo, video, carousel, etc.) |
| publer_publish_post_now | Publish a post immediately |
| publer_update_post | Update an existing post |
| publer_delete_post | Delete a post |
Media
| Tool | Description |
|---|---|
| publer_upload_media_from_url | Import media from a URL (Dropbox, cloud storage, etc.) |
| publer_list_media | Browse and search the media library |
Jobs
| Tool | Description |
|---|---|
| publer_get_job_status | Poll async job status (post creation, media upload) |
Analytics
| Tool | Description |
|---|---|
| publer_get_analytics | Get analytics charts (followers, reach, engagement) |
| publer_get_post_insights | Get per-post performance metrics |
| publer_get_hashtag_analysis | Analyse hashtag performance |
| publer_get_best_times | Get best times to post heatmap |
Example Workflows
Schedule a photo post
"Upload this image from my Dropbox to Publer, then schedule it
to my Alex Kess Bluesky account for Thursday at 10am AEST
with the caption 'Cronulla from above.'"The AI assistant will:
- Call
publer_upload_media_from_urlwith the Dropbox link - Poll
publer_get_job_statusuntil the upload completes - Call
publer_create_postwith the media ID, caption, account ID, and scheduled time
Check post performance
"How did my posts perform last week on Instagram?"The AI assistant will:
- Call
publer_list_accountsto find the Instagram account ID - Call
publer_get_post_insightswith the date range - Present the results
Development
git clone https://github.com/alexkess/publer-mcp-server.git
cd publer-mcp-server
npm install
npm run buildRun locally
PUBLER_API_KEY=your-key PUBLER_WORKSPACE_ID=your-id npm startSupported Networks
Facebook, Instagram, X (Twitter), LinkedIn, Pinterest, YouTube, TikTok, Google Business Profile, WordPress, Telegram, Mastodon, Threads, Bluesky.
License
MIT — see LICENSE
Contributing
PRs welcome! This is an open-source project by Kess Media.
