Postoria MCP Server
OfficialThe Postoria MCP Server allows AI clients to manage Postoria social media publishing workflows through the following capabilities:
Workspace & Account Management
List all workspaces available to your API key (
list_workspaces)List social accounts within a workspace (
list_social_accounts)List publishing queues within a workspace (
list_queues)
Media Handling
Create signed upload URLs for raw media bytes (
create_media_upload) and complete the upload afterward (complete_media_upload)Upload local files directly from the MCP server machine (
upload_media_from_file, stdio mode only)Import media from a publicly accessible URL (
import_media_from_url)Check processing status and details of a media item (
get_media)
Post Publishing
Publish a post immediately (
publish_post_now)Schedule a post for a specific UTC date/time (
schedule_post)Add a post to a publishing queue (
add_post_to_queue)Retrieve post status and publishing results (
get_post)Delete or cancel a post (
delete_post)
Post Options (for publish/schedule/queue actions)
Set caption, content type (text, image, video, carousel, link), and link URL
Attach media via media IDs
Add a first comment with optional delay
Configure repost/recycle settings
Apply platform-specific settings for TikTok (duet, stitch, visibility, comments, branded content, etc.) and YouTube (title, tags, category, visibility, made-for-kids, language, etc.)
The server supports local stdio transport for desktop/IDE clients and streamable HTTP for hosted clients, authenticating via Postoria Public API keys.
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., "@Postoria MCP ServerPublish a post to my LinkedIn account now."
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.
Postoria MCP Server
Postoria MCP Server connects MCP-compatible AI clients to Postoria.
Use it to list workspaces, find social accounts and queues, upload or import media, publish posts, schedule posts, add posts to queues, check post status, and delete posts.
Package
npx -y @postoria/mcp-serverRelated MCP server: postiz-mcp
Features
Local
stdiotransport for desktop and IDE MCP clientsStreamable HTTP transport for hosted MCP clients
Works with Postoria Public API keys
Supports Postoria workspaces, social accounts, queues, media, and posts
MCP Registry metadata in
server.json
Supported tools
Tool | Description |
| List available Postoria workspaces |
| List social accounts in a workspace |
| List queues in a workspace |
| Create a signed media upload URL |
| Complete a media upload after raw bytes are uploaded |
| Upload a local file from stdio clients |
| Import media from a public URL |
| Get media status and details |
| Publish a post immediately |
| Schedule a post for a specific time |
| Add a post to a Postoria queue |
| List posts in a workspace with filters and pagination |
| Get post status and details |
| Delete a post created through the Public API |
upload_media_from_file is available only in local stdio mode. It is not exposed through the hosted Streamable HTTP endpoint.
Requirements
Node.js 20+
A Postoria Public API key for local stdio usage
A Postoria Public API key or OAuth access token for hosted Streamable HTTP usage
Local stdio usage
Add this to your MCP client configuration:
{
"mcpServers": {
"postoria": {
"command": "npx",
"args": ["-y", "@postoria/mcp-server"],
"env": {
"POSTORIA_API_KEY": "pst_live_your_api_key_here"
}
}
}
}Hosted Streamable HTTP usage
Hosted endpoint:
https://mcp.postoria.io/mcpSend an Authorization header on every hosted MCP request. Postoria Public API keys are forwarded
to the Public API directly:
Authorization: Bearer pst_live_your_api_key_hereOAuth access tokens accepted by the hosted endpoint are exchanged server-side before calling the Postoria Public API.
OAuth-capable clients discover the authorization server from the protected resource metadata:
https://mcp.postoria.io/.well-known/oauth-protected-resource/mcpMedia upload options
Use import_media_from_url when the media is already available through a public URL.
Use create_media_upload when the client will upload raw file bytes to the returned signed upload URL. After the raw bytes are uploaded with PUT, call complete_media_upload.
Use upload_media_from_file in local stdio mode when the media file exists on the same machine where the MCP server is running.
Run from source
npm install
npm run buildRun in local stdio mode:
POSTORIA_API_KEY=pst_live_your_api_key_here npm run dev:stdioRun in local HTTP mode:
npm run dev:httpHTTP mode requires the MCP client to send Authorization: Bearer <token> on every /mcp request.
POSTORIA_API_KEY is used by local stdio mode only.
Local HTTP endpoint:
http://localhost:3000/mcpHealth check:
http://localhost:3000/healthMCP Registry
server.json includes distribution metadata for:
remote Streamable HTTP endpoint:
https://mcp.postoria.io/mcplocal npm stdio package:
@postoria/mcp-server
Security notes
The MCP server does not store Postoria API keys.
Local stdio mode reads
POSTORIA_API_KEYfrom the environment.Hosted HTTP mode requires
Authorization: Bearer <token>on every MCP request.Hosted HTTP mode exchanges OAuth access tokens server-side and does not store refresh tokens.
POSTORIA_API_KEYis used by local stdio mode only.delete_postis destructive and should only be called after user confirmation.
Development
npm install
npm run typecheck
npm run build
npm run format:checkAvailable Tools
14 toolsadd_post_to_queueB
Create a Postoria post and add it to a publishing queue.
| Name | Required | Description | Default |
|---|---|---|---|
| repost | No | Optional repost/recycle settings. | |
| tiktok | No | Optional TikTok-specific settings. | |
| caption | No | Post caption text. | |
| youtube | No | Optional YouTube-specific settings. | |
| link_url | No | Optional link URL for link posts. | |
| queue_id | Yes | Postoria queue ID. | |
| media_ids | No | Media IDs already created or imported through the Postoria Public API. | |
| content_type | No | Optional content type. If omitted, Postoria will infer it from media/link/caption. | |
| workspace_id | Yes | Postoria workspace ID. | |
| comment_delay | No | Optional first comment delay, in minutes. | |
| first_comment | No | Optional first comment. | |
| social_account_ids | Yes | One or more Postoria social account IDs to publish to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool does, not behavioral traits like idempotency, error handling, side effects (e.g., whether it immediately adds to queue or creates a draft), or prerequisites. For a complex tool with 12 parameters, this is insufficient.
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, which is concise. It front-loads the core action. However, for a tool with many parameters, a slightly more structured description (e.g., listing key parameters or behaviors) could be beneficial.
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 complexity (12 parameters, nested objects, no output schema), the description is too minimal. It does not explain what the tool returns, whether it validates inputs, or any limitations (e.g., queue capacity). The high parameter count demands more 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it merely summarizes the action. The schema already provides descriptions for each parameter, so the tool definition does not need to repeat them.
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 ('Create a Postoria post and add it to a publishing queue'). The verb 'create' and 'add' are specific, and the resource (post, queue) is named. This distinguishes it from siblings like publish_post_now and schedule_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 to use this tool versus alternatives. Sibling tools include publish_post_now and schedule_post, but the description does not specify when to choose this one over them. The context signals mention 12 parameters and 3 required, but no usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_media_uploadB
Complete a media upload after the raw file bytes have been uploaded to the signed upload URL.
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | Postoria media ID. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose what happens if called out of order, error states, or any side effects. It only states the action without behavioral context.
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 with no redundant information. It conveys the essence efficiently.
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 lacks details on the result, error conditions, or workflow context. It is insufficient for a tool that is part of a multi-step process.
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 description adds no extra meaning to the parameters beyond what is in the schema. Baseline score of 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 states a specific verb and resource ('Complete a media upload') and includes the prerequisite ('after the raw file bytes have been uploaded to the signed upload URL'), distinguishing it clearly from related tools.
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 when to use (after uploading bytes) but does not explicitly mention when not to use or provide alternatives among sibling tools like create_media_upload or upload_media_from_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_uploadA
Create a media upload slot and signed upload URL. This tool does not upload file bytes; upload raw bytes to the returned URL with PUT, then call complete_media_upload.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Original file name, for example image.png or video.mp4. | |
| content_type | Yes | MIME content type, for example image/png or video/mp4. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description discloses that the tool only creates a slot and URL, not uploading files, and mentions a necessary follow-up step. It does not detail permissions or side effects, but for a creation tool this is sufficient.
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 long, concise, and front-loaded with the core purpose, 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?
For a simple tool with 3 parameters and no output schema or annotations, the description adequately explains the tool's role in the broader upload workflow. It could mention the response structure, but the flow is clear.
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 with descriptions for all parameters. The description adds minor context (e.g., 'original file name'), but does not significantly enhance understanding 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's action ('Create a media upload slot and signed upload URL') and distinguishes it from actual file upload, which is a separate step.
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 explicitly explains when to use this tool (to get a signed URL) and what NOT to do (uploading directly; instead, use PUT to the returned URL and call complete_media_upload).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postA
Delete/cancel a Postoria post. This is destructive and should only be called after user confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Postoria post ID. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It labels the tool as 'destructive' but does not detail specific behaviors such as error handling, permanence, or permission requirements. This is adequate for a simple delete but leaves some gaps.
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, with two sentences that front-load the action and critical warning. Every sentence adds value without wasted words.
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 simplicity of the tool (2 required parameters, no output schema), the description covers the essential information: what it does and a key usage guideline. It could mention return values or failure modes, but for a delete operation it is reasonably complete.
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%, with both parameters already documented in the input schema. The description adds no additional meaning beyond what the schema provides, so baseline score of 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 action 'Delete/cancel a Postoria post' with a specific verb and resource, distinguishing it from read-only siblings like 'get_post' and scheduling tools. However, it could be more precise about whether it's permanent deletion or cancellation.
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 explicitly states it is destructive and should only be called after user confirmation, providing clear when-to-use guidance. It does not mention alternative tools, but the context of destructiveness implies caution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mediaA
Get the processing status and details for a Postoria media item.
| Name | Required | Description | Default |
|---|---|---|---|
| media_id | Yes | Postoria media ID. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly identifies a read operation ('get the processing status'), but lacks details on error handling, permissions, or what happens if the media does not exist. The description is adequate but minimal.
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, front-loaded sentence with no filler. Every word is valuable, clearly stating the resource and what is retrieved. It is the epitome of conciseness.
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 (2 required parameters, both documented in schema) and no output schema, the description sufficiently explains the purpose. It could slightly elaborate on the return format (e.g., status values), but overall it is complete enough for an agent to understand its function.
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?
Input schema provides descriptions for both parameters (workspace_id and media_id) with 100% coverage. The tool description does not add any additional meaning beyond what the schema already provides, so baseline score of 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 'Postoria media item', specifying that it retrieves processing status and details. This distinguishes it from sibling tools like get_post (post retrieval) and media creation tools (create_media_upload).
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 media status but does not explicitly mention when to use this tool versus alternatives like create_media_upload or complete_media_upload. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postA
Get status and publishing results for a Postoria post.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Postoria post ID. | |
| workspace_id | Yes | Postoria workspace ID. |
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 states the operation is a 'get', implying idempotency, but does not disclose authentication requirements, error behavior, or performance traits. 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?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the core 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?
Given the simplicity (2 parameters, no output schema, no enums), the description is minimally adequate. However, it lacks details about return format, error scenarios, or when results might be empty, leaving some uncertainty for the 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?
Schema description coverage is 100%, so the schema already documents both parameters (workspace_id and post_id). The description adds no additional meaning beyond what the schema provides, meeting the 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?
The description clearly states the verb 'Get' and the resource 'status and publishing results for a Postoria post', which distinguishes it from sibling tools like delete_post or publish_post_now.
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 a read-only retrieval use case but provides no explicit guidance on when to use this tool versus alternatives like list_queues or get_media. No exclusions or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_media_from_urlB
Import media into Postoria from a public URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publicly accessible media URL to import. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as whether import is asynchronous, permissions required, or side effects. Bare minimum 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, front-loaded, no redundancy. However, it is too sparse for a tool with no annotations.
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; description fails to explain return values or confirmation. For a tool with 2 required params, more context is expected.
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 3. Description adds no extra meaning beyond schema; 'public URL' matches schema format.
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 verb 'import', resource 'media into Postoria', and source 'public URL', effectively distinguishing from sibling tools focused on upload.
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 like create_media_upload or complete_media_upload. Agent receives no context for decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsB
List posts in a Postoria workspace, optionally filtered by accounts, queue, status, networks, UTC date range, and cursor pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of posts to return. Defaults to 25; maximum is 100. | |
| cursor | No | Pagination cursor returned by the previous list_posts call. | |
| status | No | Optional post status filter. | |
| date_to | No | Optional UTC ISO 8601 upper bound for scheduled date/time. | |
| networks | No | Optional social network filters. | |
| queue_id | No | Optional Postoria queue ID. | |
| date_from | No | Optional UTC ISO 8601 lower bound for scheduled date/time. | |
| account_ids | No | Optional social account IDs. Posts matching any selected account are returned. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It lists filters but does not explain pagination mechanics, default behavior (e.g., returns 25 posts), or whether filters are AND/OR combined. It omits rate limits or side effects, but the task is read-only and safe.
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 that succinctly captures the tool's purpose and key filter capabilities. No wasted words, front-loaded with the core action.
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 9 parameters and no output schema, the description is too brief. It does not explain pagination iteration, filter combination logic, result ordering, or error conditions. Significant gaps remain for effective agent usage.
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 schema already documents all parameters. The description adds a brief overview of filter categories but no additional semantic detail beyond what the schema provides. Baseline score of 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 specifies the tool lists posts in a Postoria workspace and enumerates optional filters. It distinguishes posts from other resources like queues or accounts, but does not contrast with get_post for single post retrieval.
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 (e.g., get_post for individual posts). No mention of prerequisites or conditions where it would be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_queuesA
List publishing queues in a Postoria workspace. Returns queue IDs that should be used with add_post_to_queue.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Postoria workspace ID. |
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 discloses that the tool returns queue IDs for use with add_post_to_queue, indicating a read-only behavior. However, it lacks details on permissions, rate limits, or 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 two sentences with no unnecessary words. It front-loads the purpose and immediately provides actionable context about the output. 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?
Given the tool's simplicity (one parameter, no output schema), the description adequately explains what it does and what it returns. It could mention pagination or ordering if applicable, but it's sufficient for a basic list operation.
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% for the single parameter (workspace_id), with a description already in the schema. The tool description adds no additional semantic meaning beyond what the schema provides, meeting the baseline for high coverage.
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 (List), resource (publishing queues), and scope (in a Postoria workspace). It also explains the output's purpose (queue IDs for add_post_to_queue), distinguishing it from sibling tools like add_post_to_queue.
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 context (before add_post_to_queue) but does not explicitly state when to use or avoid this tool, nor compare it to siblings like list_workspaces. Guidance is implied but not direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_social_accountsA
List social accounts in a Postoria workspace. Returns account IDs that should be used when publishing, scheduling, or queueing posts.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It describes the tool as a read operation ('List'), but does not explicitly state that it is read-only, safe, or free of side effects. While listing is inherently safe, explicit confirmation of safety would improve 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?
The description is concise with two sentences. It front-loads the core purpose and then adds relevant usage context. No unnecessary words.
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 simple list tool with one parameter and no output schema, the description is largely complete. It covers purpose, return value, and usage context. Missing details like sorting or pagination could be added, but not critical given tool simplicity.
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 schema describes workspace_id as 'Postoria workspace ID.' The tool description adds minimal value beyond stating 'in a Postoria workspace,' not providing additional details like format, source, or constraints. Baseline score of 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 'List', the resource 'social accounts', and the scope 'in a Postoria workspace'. It also specifies the return value (account IDs) and their usage for publishing, scheduling, or queueing posts, distinguishing from sibling tools like list_workspaces and list_queues.
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 provides clear context on when the returned IDs are used (publishing, scheduling, queueing posts), but does not explicitly state when not to use or mention alternatives. The guidance is implicit and sufficient for the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesA
List Postoria workspaces available to the API key. Returns workspace IDs that should be used in follow-up Postoria tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It is adequate but does not disclose behavioral traits like authentication requirements or potential side effects. However, given it is a simple read-only list, the lack of detail is not critical.
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, front-loaded with purpose and value, no wasted words.
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 zero-parameter list tool, the description is complete: it states what it does and what it returns, providing enough context for an agent to use it correctly.
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?
Input schema has no parameters (100% coverage), so description does not need to add parameter info. It mentions returning workspace IDs, which adds value beyond the schema. A baseline of 4 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 'List Postoria workspaces available to the API key' and explicitly mentions returning workspace IDs for follow-up tools, distinguishing it from siblings that require a workspace ID.
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 before other tools by stating 'Returns workspace IDs that should be used in follow-up Postoria tools.' While it lacks explicit when-not or alternatives, it provides sufficient context for a zero-parameter list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_post_nowB
Create and publish a Postoria post immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| repost | No | Optional repost/recycle settings. | |
| tiktok | No | Optional TikTok-specific settings. | |
| caption | No | Post caption text. | |
| youtube | No | Optional YouTube-specific settings. | |
| link_url | No | Optional link URL for link posts. | |
| media_ids | No | Media IDs already created or imported through the Postoria Public API. | |
| content_type | No | Optional content type. If omitted, Postoria will infer it from media/link/caption. | |
| workspace_id | Yes | Postoria workspace ID. | |
| comment_delay | No | Optional first comment delay, in minutes. | |
| first_comment | No | Optional first comment. | |
| social_account_ids | Yes | One or more Postoria social account IDs to publish to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only notes 'immediately' but discloses no other behavioral traits such as potential destructive actions, prerequisites (e.g., media upload), 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, zero wasted words, front-loaded with the key action.
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 11 parameters including nested objects and no output schema, the description provides minimal context. It does not mention required parameters or optional features, leaving the agent underinformed.
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 baseline is 3. The description adds no parameter-specific meaning, but the schema itself is detailed.
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: 'Create and publish a Postoria post immediately.' It uses a specific verb-resource pair and distinguishes from scheduling tools.
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 siblings like schedule_post or add_post_to_queue. The implied usage is for immediate publishing, but explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_postB
Create a Postoria post scheduled for a specific UTC date-time.
| Name | Required | Description | Default |
|---|---|---|---|
| repost | No | Optional repost/recycle settings. | |
| tiktok | No | Optional TikTok-specific settings. | |
| caption | No | Post caption text. | |
| youtube | No | Optional YouTube-specific settings. | |
| link_url | No | Optional link URL for link posts. | |
| media_ids | No | Media IDs already created or imported through the Postoria Public API. | |
| content_type | No | Optional content type. If omitted, Postoria will infer it from media/link/caption. | |
| workspace_id | Yes | Postoria workspace ID. | |
| comment_delay | No | Optional first comment delay, in minutes. | |
| first_comment | No | Optional first comment. | |
| scheduled_time | Yes | UTC ISO 8601 date-time. | |
| social_account_ids | Yes | One or more Postoria social account IDs to publish to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic action of creating a scheduled post but does not mention side effects, required permissions, return values, rate limits, or what happens if the scheduled time is in the past.
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, short sentence with no wasted words. However, it is borderline under-specified for a tool with 12 parameters and no output schema, sacrificing completeness for brevity.
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 complexity (12 parameters, nested objects, no output schema), the description is insufficient. It does not explain what the tool returns (e.g., post ID), how required and optional fields interact, or any post-condition behavior. The description fails to compensate for missing annotations and output schema.
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 baseline is 3. The description adds no additional context beyond the schema's parameter descriptions. For nested objects like 'repost' and 'youtube', the schema provides descriptions but the tool description does not clarify usage scenarios or relationships.
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 ('Create a Postoria post') and the specific constraint ('scheduled for a specific UTC date-time'). It distinguishes this tool from siblings like 'publish_post_now' (immediate) and 'add_post_to_queue' (queued) by specifying scheduling.
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 this tool is for scheduling posts but does not explicitly state when to use it versus alternatives like 'publish_post_now' or 'add_post_to_queue'. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_media_from_fileA
Upload a local file from the machine running this MCP server. Local stdio mode only.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Optional filename to use in Postoria. Defaults to the local file basename. | |
| file_path | Yes | Path to a local file on the machine running the MCP server. | |
| content_type | No | Optional MIME content type. If omitted, it is inferred from the filename. | |
| workspace_id | Yes | Postoria workspace ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states the basic function and the local restriction. It does not disclose what happens to the file after upload (e.g., copied/moved), error handling, or any side effects, leaving significant gaps.
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, highly concise, and front-loaded with the core action. Every word earns its place with no redundancy.
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 lacks details on return values, error handling, and the upload workflow (especially with sibling tools like create_media_upload and complete_media_upload). However, the core action is clear, so it is minimally adequate.
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 'Local stdio mode only' which is a tool-level constraint, but does not add any specific meaning to individual parameters beyond what the schema already provides.
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 'Upload', the resource 'local file', and the source context 'from the machine running this MCP server'. It also specifies 'Local stdio mode only', which distinguishes it from the sibling tool import_media_from_url that handles URL imports.
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 provides clear context by stating the tool is for local files in stdio mode only. This implies when not to use it (e.g., remote files or not stdio mode), but does not explicitly mention alternatives or exclusions.
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. Dates show when Glama detected each change.
1 tool update
v1.1.0- Added
list_posts
1 tool update
v1.0.2- Added
upload_media_from_file
12 tool updates
v1.0.0- First observed
add_post_to_queue - First observed
complete_media_upload - First observed
create_media_upload - First observed
delete_post - First observed
get_media - First observed
get_post - First observed
import_media_from_url - First observed
list_queues - First observed
list_social_accounts - First observed
list_workspaces - First observed
publish_post_now - First observed
schedule_post
TDQS
Each tool has a clearly distinct purpose, with descriptions that clarify differences between similar actions like posting immediately vs. queuing vs. scheduling. No two tools overlap in functionality.
All tools follow a consistent verb_noun pattern using snake_case, such as add_post_to_queue, list_workspaces, and schedule_post. The naming is predictable and easy to parse.
With 13 tools, the server covers media management, posting, and listing operations without being overwhelming or sparse. This is an ideal size for a social media scheduling server.
The tool set covers create, read, and delete for posts and media, but lacks update functionality for both posts and media. This is a notable gap that may hinder workflows requiring edits.
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
Create, schedule, and publish social posts through the hosted SocialSpool MCP connector.
Create, schedule, and publish social posts, manage accounts, and read analytics as MCP tools.
Publish, schedule, and manage social media posts across major platforms via the Postproxy API.
Manage social publishing workflows through OpenPost
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with the Postiz social media management platform through MCP tools. Supports creating and managing posts, retrieving integrations, and accessing account information through multiple transport protocols.2-
- AlicenseAqualityBmaintenanceEnables interaction with Postiz for social media scheduling, content management, and analytics through MCP-compatible clients, with write and delete operations gated by environment variables.20601MIT
- AlicenseAqualityDmaintenanceMCP server for the Post for Me API, enabling publishing, scheduling, editing, deleting, and analyzing social media posts across 9 platforms from any MCP client.27471MIT
- AlicenseAqualityBmaintenancePendpost MCP server — exposes ~43 tools for posting, scheduling, and managing content via the Pendpost platform.433997MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/postoria-app/postoria-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server