publer-mcp-server
This server provides an MCP interface to Publer's social media management API, enabling AI assistants to automate and manage social media activities across multiple platforms.
Account & Workspace Management: Get user profile, list workspaces, and list connected social accounts (Facebook, Instagram, X, LinkedIn, TikTok, YouTube, Bluesky, etc.).
Post Management: Create and schedule posts with text, photos, videos, carousels, links, and more—either immediately, at a specific time, or as drafts. Update or delete posts, list and filter posts by state, date, account, type, or search. Get a single post's details and manage labels (set labels, list workspace labels).
Media Management: Upload media from a URL and browse/search the media library by type or name.
Async Job Polling: Check the status of long-running operations like post creation and media uploads.
Analytics & Insights: Retrieve charts for followers, reach, and engagement; view per-post performance metrics; analyze hashtag effectiveness; and get best times to post based on audience activity.
Enables scheduling, publishing, and managing posts on Bluesky via the Publer API.
Allows uploading media from Dropbox URLs to the Publer media library for use in posts.
Supports posting, scheduling, and analytics for Facebook pages and profiles.
Enables scheduling and publishing posts, including photos and videos, on Instagram.
Allows creating and scheduling posts for Mastodon accounts.
Enables pin scheduling and publishing on Pinterest boards.
Supports posting messages and media to Telegram channels and groups.
Allows scheduling and publishing posts on Threads via the Publer integration.
Enables video posting, scheduling, and analytics for TikTok accounts.
Supports publishing and scheduling blog posts to WordPress sites.
Allows video uploads, scheduling, and analytics for YouTube channels.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@publer-mcp-serverSchedule a photo post to Facebook and Twitter for next Monday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
18 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
Related MCP server: postforme-mcp-pro
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 |
| Yes | Your Publer API key |
| Yes | Your Publer workspace ID |
Finding Your Workspace ID
Option 1: From the API
curl -H "Authorization: Bearer-API YOUR_API_KEY" https://app.publer.com/api/v1/meYour workspace IDs are in the workspaces array in the response.
Option 2: From the Publer URL
Log in to Publer, open your browser's developer tools (F12), go to the Network tab, and look for any API request — the Publer-Workspace-Id header shows your workspace ID.
Available Tools
Account Management
Tool | Description |
| Get current authenticated user profile |
| List all workspaces |
| List all connected social accounts |
Posts
Tool | Description |
| List and filter posts by state, date, type, account, or search |
| Create and schedule a post (text, photo, video, carousel, etc.) |
| Publish a post immediately |
| Update existing post text/media/scheduling, not labels |
| Delete a post |
| Fetch a single post by ID, including its labels |
| Attempt existing-post label updates; not for drafts |
| Discover all labels used in the workspace (best-effort scan) |
Media
Tool | Description |
| Import media from a URL (Dropbox, cloud storage, etc.) |
| Browse and search the media library |
Jobs
Tool | Description |
| Poll async job status (post creation, media upload) |
Analytics
Tool | Description |
| Get analytics charts (followers, reach, engagement) |
| Get per-post performance metrics |
| Analyse hashtag performance |
| 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 linkPoll
publer_get_job_statusuntil the upload completesCall
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 IDCall
publer_get_post_insightswith the date rangePresent the results
Label posts for a campaign
"Create a draft post for next month's launch and label it 'launch-q3'."The AI assistant will:
Call
publer_list_accountsto find the target account IDCall
publer_create_postwithstate: "draft"andlabels: ["launch-q3"]Call
publer_get_postafter the async job completes to inspect the saved labels
Publer documents labels on create/schedule requests. Existing draft labels are not updatable via the documented API; live tests showed label update payloads return success but do not persist. To relabel an existing draft, ask the user before recreating it with labels and deleting the original, because that changes the post ID and may not preserve every internal Publer field.
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.
Available Tools
15 toolspubler_create_postA
Create and schedule a social media post. Supports text, photo, video, link, carousel, reel, story, and more. Posts are created asynchronously — returns a job_id to poll for status. Media must be pre-uploaded using upload_media or upload_media_from_url first.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL for link posts | |
| text | Yes | Post caption/text content | |
| type | No | Content type | status |
| state | Yes | How to handle the post: schedule it, or save as draft | |
| media_ids | No | Array of pre-uploaded media IDs | |
| account_ids | Yes | Array of account IDs to post to | |
| scheduled_at | No | ISO 8601 datetime for scheduled posts (e.g. 2025-06-01T10:00:00+10:00) | |
| auto_schedule | No | Use AI-powered auto-scheduling | |
| auto_schedule_end | No | Auto-schedule range end date | |
| auto_schedule_start | No | Auto-schedule range start date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations available, so description carries full burden. It discloses async return of job_id and pre-upload media requirement. Lacks details on authentication or rate limits, but adequate for post creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. Front-loaded with main purpose and key constraints. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters and no output schema or annotations, description covers async behavior, media pre-upload, and supported types. Could mention how to poll job status, but sibling tool covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all 10 parameters. Description adds context about pre-uploading media but has minor inconsistency: mentions 'reel, story' not in enum. Adequate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates and schedules social media posts, lists supported content types, and mentions async behavior. It distinguishes from siblings like publer_publish_post_now and publer_update_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies that media must be pre-uploaded and posts are created asynchronously. Does not explicitly state when to use versus alternatives, but context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_delete_postB
Delete a post by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ID of the post to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'Delete' without disclosing irreversibility, permissions, or side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff, but could be improved by front-loading critical behavioral info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing essential context for a destructive action (e.g., permanence, permissions); under-informative for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the param description is adequate; the tool description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'post by its ID', distinguishing it from sibling tools like publer_create_post or publer_update_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool relative to alternatives; no mention of prerequisites or consequences of deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_analyticsB
Get analytics charts for a social account (followers, reach, engagement over time).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (ISO) | |
| from | No | Start date (ISO) | |
| account_id | Yes | Account ID to get analytics for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether this is a read-only operation, authentication requirements, rate limits, or any side effects. For a tool returning analytics data, this lack of transparency is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's function. It is front-loaded and contains no unnecessary words, though it could be structured with bullet points for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description is minimal but covers the basic purpose. However, it lacks details on return format, date range behavior (e.g., inclusive/exclusive), or how charts are structured, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are described in the input schema (100% coverage), so the description adds minimal value beyond listing metrics. The mention of 'over time' hints at date range usage, but does not provide additional semantics not already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'analytics charts for a social account', listing specific metrics (followers, reach, engagement). However, it does not differentiate from sibling tools like publer_get_hashtag_analysis or publer_get_post_insights, which may have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool over alternatives (e.g., get_post_insights). Usage is implied by the name and description, but without exclusions or context, an agent may not choose it correctly in ambiguous scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_best_timesB
Get the best times to post for maximum engagement — returns a day/hour heatmap.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (ISO) | |
| from | No | Start date (ISO) | |
| account_id | Yes | Account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must reveal behavioral traits, but it only says 'returns a day/hour heatmap'. It does not disclose read-only nature, authentication needs, rate limits, or any side effects. The description is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 15 words, immediately stating the tool's purpose and output. It is concise and front-loaded with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about the heatmap format, interpretation, parameter defaults, or limitations. It omits these details, making it less complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its three parameters. The tool description does not add any extra meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Get the best times to post for maximum engagement', which clearly states the verb and resource. It also specifies the output as a 'day/hour heatmap', distinguishing it from sibling tools like publer_get_analytics or publer_get_post_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like publer_get_analytics. There is no discussion of prerequisites, best practices, or context that would help an agent decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_hashtag_analysisC
Get hashtag performance analysis — which hashtags drive the most engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (ISO) | |
| from | No | Start date (ISO) | |
| account_id | Yes | Account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source for behavioral disclosure. It lacks details about return format, pagination, permissions, or rate limits. 'Performance analysis' is vague and does not explain how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise in one sentence, but it lacks structure and does not follow a standard format. It is not excessively long, but it could be more organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what the output contains, how to interpret results, or the effect of date range parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are present but minimal. The tool description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'hashtag performance analysis', and specifies the outcome 'which hashtags drive the most engagement'. However, it does not differentiate from sibling tools like publer_get_analytics or publer_get_post_insights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions. The description does not mention when hashtag analysis is appropriate or when to choose another analytics tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_job_statusA
Poll the status of an async Publer job (post creation, media upload). Returns working, complete, or failed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID from a previous async operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns 'working, complete, or failed' but lacks details on polling behavior, idempotency, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. It is well-structured and easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 1-parameter tool with no output schema, the description covers the key information: purpose, example usage, and possible return states. Missing minor details about polling frequency or typical durations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds context that job_id comes from a previous async operation, which enriches the schema's parameter description. Schema coverage is 100%, so the description adds meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool polls the status of an async Publer job, with examples (post creation, media upload). It effectively distinguishes from sibling tools like publer_create_post and publer_upload_media_from_url, which are action-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking job status after async operations, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_meA
Get the current authenticated Publer user profile
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It does not disclose authentication requirements, side effects, rate limits, or other behavioral traits beyond the basic action. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is minimally complete for a parameterless getter, but it omits any description of the return value structure, which could help an agent. With no output schema, some additional context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline score of 4 applies. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves the current authenticated user's profile, with specific verb 'Get' and resource 'Publer user profile'. It distinguishes from sibling tools that focus on other resources (e.g., posts, analytics, accounts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It is implied that this is the only tool for getting the user profile, but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_get_post_insightsB
Get per-post performance metrics (reach, engagement, clicks) for a social account.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (ISO) | |
| from | No | Start date (ISO) | |
| page | No | Page number | |
| account_id | Yes | Account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral traits. It only states that metrics are retrieved, but does not mention rate limits, permission requirements, pagination behavior, or what happens with invalid inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently conveys the tool's purpose without extraneous words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 4 parameters and no output schema, the description is too brief. It omits details on pagination (page), date constraints (from/to), and what the response looks like, which is essential for an agent to effectively invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no parameter-specific details beyond the schema; it only mentions the types of metrics returned. No additional semantic context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets per-post performance metrics (reach, engagement, clicks) for a social account. It uses a specific verb and resource, distinguishing it from sibling tools like publer_get_analytics, which is broader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as publer_get_analytics or publer_list_posts. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_list_accountsA
List all connected social media accounts (Facebook, Instagram, X, LinkedIn, TikTok, YouTube, Bluesky, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It correctly identifies a non-destructive read operation but does not disclose potential behaviors like authentication requirements, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler. Every word adds value, listing the action and the platforms covered. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is nearly complete. It could mention output format (like list of account details) but is sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is 100%. With no parameters, the description cannot add semantic meaning beyond the schema; baseline for 0 params is 4, and the description meets it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all connected social media accounts and enumerates supported platforms, providing a specific verb and resource that distinguishes it from sibling tools like publer_create_post or publer_delete_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing accounts but offers no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Sibling tools cover different actions, so context is clear but lacking when-not advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_list_mediaC
Browse the Publer media library. Filter by type (photo, video, gif), usage status, source, or search by name.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (0-based) | |
| types | No | Media types to include | |
| search | No | Search term for name or caption |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies read-only browsing but does not disclose pagination behavior, rate limits, or what data is returned. The mention of a 'page' parameter is present in schema but not explained in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, minimal verbosity. However, the second sentence includes inaccurate information, which detracts from clarity. Could be improved by omitting false filter claims.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return values and pagination. It mentions the page parameter but doesn't describe page size or how to iterate. Lacks details on result format and limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description introduces filters (usage status, source) that are not actual parameters, causing confusion. It does add some value by linking 'search' to name/caption, but misinformation reduces overall quality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (browse) and resource (Publer media library). Mentions filtering capabilities, distinguishing it from sibling tools like publer_list_posts and publer_upload_media_from_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description claims filters for 'usage status' and 'source' that do not exist in the input schema. While it does list some valid filters, the inclusion of non-existent filters is misleading and provides poor guidance for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_list_postsB
List and filter social media posts. Filter by state (scheduled, published, draft, failed), date range, account, post type (photo, video, carousel, reel, story), or search by content text.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO date: include posts on/before this date | |
| from | No | ISO date: include posts on/after this date | |
| page | No | Page number (0-based) | |
| query | No | Search keyword in post content | |
| state | No | Post state filter | |
| postType | No | Filter by post type | |
| account_ids | No | Filter by account IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention pagination behavior, result ordering, rate limits, authentication requirements, or what happens with large datasets. The 'page' parameter is omitted entirely from the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that covers key filter capabilities. It is appropriately front-loaded. Could be slightly more structured (e.g., listing filters) but remains concise and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description provides adequate initial context but lacks details on pagination, default state, result format, or error scenarios. It is minimally complete for a listing tool but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter documented. The description summarizes filter types (e.g., 'date range', 'post type') but adds no meaning beyond the schema. It omits the 'page' parameter entirely, though the schema covers it. Meets baseline but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool lists and filters social media posts, enumerating relevant filter dimensions (state, date, account, post type, search). This clearly distinguishes it from sibling tools like create, update, delete, and list_media (which handles media, not posts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or refer to sibling tools like search or analytics. The usage context is implied but not explicitly addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_list_workspacesA
List all workspaces in the Publer account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. 'List all workspaces' implies a read-only operation, but it does not explicitly state no side effects, rate limits, or authentication requirements. The description is minimal but sufficient for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that clearly communicates the tool's purpose with no unnecessary words. It is front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no annotations, no output schema), the description is minimally adequate. However, it could be improved by elaborating on what workspaces are or the expected output format to provide complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100% and the description adds no parameter-specific information. Baseline score of 3 is appropriate as no additional meaning is needed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists workspaces with a specific verb and resource. However, it lacks differentiation from sibling tools like 'publer_list_accounts', which could cause confusion about the distinction between workspaces and accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving workspace listings, but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites. With no parameters, usage is straightforward but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_publish_post_nowA
Publish a post immediately across selected accounts. Returns a job_id.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL for link posts | |
| text | Yes | Post caption/text content | |
| type | No | Content type | status |
| media_ids | No | Array of pre-uploaded media IDs | |
| account_ids | Yes | Array of account IDs to post to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool returns a job_id, hinting at asynchronous behavior. With no annotations provided, the description carries full burden; however, it does not disclose potential side effects, authentication requirements, or error states. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core purpose and outcome, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on parameter relationships (e.g., required conditions for different content types) and does not explain the async workflow fully. With no output schema, more context on return value would help. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents each parameter. The description adds no additional semantic detail beyond 'across selected accounts' which maps to account_ids. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (publish immediately) and the resource (post across selected accounts). It specifies the outcome (returns a job_id). However, it does not differentiate from sibling tools like publer_create_post, which likely handles scheduled posts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'immediately' implies use for instant publishing, but there is no explicit guidance on when to use this tool versus alternatives like publer_create_post or publer_update_post. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_update_postB
Update an existing post's text, media, or scheduling.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Updated text content | |
| post_id | Yes | ID of the post to update | |
| media_ids | No | Updated media IDs | |
| scheduled_at | No | Updated schedule time (ISO 8601) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only says 'update', which implies mutation, but omits critical details like required permissions, whether updates are partial or full replacements, side effects on existing media or scheduling, and error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence of 8 words. It front-loads the verb and resource, making the purpose immediately clear with zero redundant or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutating nature, the description is incomplete. It does not mention the return value (e.g., updated post or success status), whether the update is partial (only provided fields change), or interactions with other tools (e.g., can you update after scheduling?). The lack of output schema further increases the need for these details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for all 4 parameters. The description lists three of them ('text, media, or scheduling') but adds no additional semantic nuance beyond the schema's own descriptions. This meets the baseline for a schema-complete tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update', the resource 'existing post', and the specific attributes that can be modified ('text, media, or scheduling'). It distinguishes well from sibling tools like publer_create_post (create new) and publer_delete_post (remove).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies the tool is for modifying existing posts, it provides no explicit guidance on when to use it versus alternatives like delete+recreate, nor does it specify prerequisites or limitations (e.g., can only update posts in draft status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publer_upload_media_from_urlA
Upload media to Publer from a URL (e.g. a Dropbox shared link, public image URL). Returns a job_id for async processing. Poll with get_job_status to get the media ID for use in posts.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the media file to import | |
| name | Yes | Filename for the media | |
| caption | No | Caption for the media | |
| in_library | No | Save to media library |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains async processing and the need to poll for the media ID. However, it does not mention error handling, rate limits, or prerequisites like authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence states the purpose; the second explains the async flow and next step. Every sentence is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return value (job_id) and usage pattern. It covers the async behavior and how to obtain the media ID. It could mention file size limits or accepted formats, but overall complete for a URL upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's additional context adds value beyond the schema. The mention of example URL types (Dropbox shared link, public image) provides practical guidance for the 'url' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Upload media') and resource ('Publer from a URL'), with concrete examples (Dropbox shared link, public image URL). It clearly distinguishes itself from siblings like publer_get_job_status by mentioning async processing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool (upload media from a URL) and provides a clear next step (poll with get_job_status). It lacks explicit when-not-to-use or alternatives, but the context is sufficient.
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.
15 tool updates
v1.0.2- First observed
publer_create_post - First observed
publer_delete_post - First observed
publer_get_analytics - First observed
publer_get_best_times - First observed
publer_get_hashtag_analysis - First observed
publer_get_job_status - First observed
publer_get_me - First observed
publer_get_post_insights - First observed
publer_list_accounts - First observed
publer_list_media - First observed
publer_list_posts - First observed
publer_list_workspaces - First observed
publer_publish_post_now - First observed
publer_update_post - First observed
publer_upload_media_from_url
TDQS
Scored across 15 tools
Each tool targets a distinct action and resource (e.g., hashtag analysis, best times, user profile, workspaces, accounts, posts CRUD, media, job status, analytics, post insights). No two tools have overlapping purposes, ensuring an agent can clearly differentiate them.
All tools follow a consistent 'publer_verb_noun' pattern (e.g., publer_list_posts, publer_create_post, publer_upload_media_from_url). The naming convention is uniform and predictable across the entire toolset.
With 15 tools, the set is well-scoped for a social media management server. It covers essential operations like user management, workspace/account listing, full post lifecycle, media handling, analytics, and async job polling without unnecessary bloat or gaps.
The tool surface covers core workflows: authentication, workspace/account management, post CRUD with scheduling and immediate publishing, media upload, analytics, and hashtag insights. A minor gap is the lack of a direct 'get post by ID' tool, but filtering with publer_list_posts mitigates this.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Social media MCP: publish, schedule & analyze posts on TikTok, Instagram, YouTube, LinkedIn & X
Manage SocialBu posts, scheduling, publishing, automations, and analytics from MCP clients.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Instagram Graph API, Threads API & Meta platform — posting, insights, comments, messaging5730724MIT
- AlicenseAqualityCmaintenanceMCP server for the Post for Me API, enabling publishing, scheduling, editing, deleting, and analyzing social media posts across 9 platforms from any MCP client.27241MIT
- AlicenseNot gradedqualityDmaintenanceSocial media API and MCP server for AI agents that enables publishing to X, Instagram, LinkedIn, Reddit, Bluesky, and Threads from a single endpoint.13MIT
- AlicenseAqualityBmaintenanceMCP server to manage social media accounts from AI assistants, enabling post creation, scheduling, publishing, and media uploads across multiple platforms.131821MIT