Skip to main content
Glama

Server Details

AI agents can create, schedule, publish, and analyze social content through Postly.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 18 of 18 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose. Even overlapping areas like listing posts are differentiated by scope (recent vs scheduled vs publishing activity). Descriptions explicitly guide selection.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with the common prefix 'postly_'. No mixing of conventions or unclear verbs.

Tool Count4/5

18 tools is slightly above the typical range but justified by the breadth of social media management features (creation, analytics, scheduling, validation, etc.). Each tool serves a distinct function.

Completeness4/5

Covers full CRUD for posts, analytics, listings, media upload, validation, and channel schemas. Minor gaps like bulk operations or aggregated analytics are absent but not critical for core workflows.

Available Tools

18 tools
postly_create_postCreate PostA
Destructive
Inspect

Use this when an AI agent needs to create, queue, or schedule a Postly post through the publishing pipeline, including social channels and email/newsletter targets. If media was attached, generated, selected, or supplied as a temporary/local file reference, pass it in media_file, media_file_2, and so on; the server uploads those files to Postly storage inside this same create action. For multi-platform posts, first resolve targets, call postly_get_channel_schema for unfamiliar social platforms, validate content, generate safe platform_posts metadata, and apply defaults. Email/newsletter targets require email_subject and body text. Ask the user only for missing media/assets, business facts, or compliance-sensitive choices that cannot be inferred. If the user asks to publish everywhere and some platforms remain blocked, offer to publish to ready channels while skipping blocked ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
mediaNoAlready-hosted media objects for the post. If the source is a ChatGPT-generated image, selected file, local file, base64 data, or temporary URL, prefer the media_file fields so Postly imports the asset inside this same create/update action.
labelsNo
media_fileNoChatGPT/OpenAI file reference for the first attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_2NoChatGPT/OpenAI file reference for the number 2 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_3NoChatGPT/OpenAI file reference for the number 3 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_4NoChatGPT/OpenAI file reference for the number 4 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_5NoChatGPT/OpenAI file reference for the number 5 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_6NoChatGPT/OpenAI file reference for the number 6 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_7NoChatGPT/OpenAI file reference for the number 7 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_8NoChatGPT/OpenAI file reference for the number 8 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_9NoChatGPT/OpenAI file reference for the number 9 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
workspace_idYesPostly workspace ID.
email_subjectNoRequired when targeting email/newsletter channels. Generate a concise subject line if the user asks to publish to email and enough context is available.
first_commentNo
media_file_10NoChatGPT/OpenAI file reference for the number 10 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_uploadsNoOptional inline upload specs for agents that can supply public URLs, temporary URLs, base64, or data URLs. Postly imports these assets and appends them to media before creating or updating the post.
workspace_idsNoOptional list of Postly workspace IDs. Use instead of workspace_id when creating the same post in multiple workspaces.
audience_groupNoAudience group ID or IDs. Do not combine with target_platforms.
platform_postsNoPlatform-specific overrides. Each item should include identifier and settings. Call postly_get_channel_schema for each selected platform to see required settings and simple capture guidance.
email_targetingNoOptional advanced email targeting map keyed by email integration ID. Each value is a resource ID, a resource object with id, or an array of those. Usually not needed when using email channel_id values returned by postly_list_social_accounts.
media_alt_textsNoOptional alt text values aligned with media_file, media_file_2, and later media_file fields.
one_off_scheduleNo
target_platformsNoSocial platform names, email/newsletter, provider names, or channel IDs. Use "all" to target all connected publishing targets in the workspace. Email targets require email_subject and text.
email_preview_textNoOptional short preview text for email/newsletter delivery.
recurring_scheduleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
dataNo
messageNo
Behavior4/5

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

Beyond annotations (destructiveHint=true), the description adds important behavioral details: server uploads files, scheduling capabilities, and multi-platform handling. It does not contradict annotations, and the added context aids agent reasoning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that front-loads the primary purpose and covers key points efficiently. While it could be more structured (e.g., bullet points), it is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (26 params, multi-platform logic), the description covers major workflows: media file handling, scheduling, multi-platform steps, and edge cases like blocked platforms. The output schema handles return value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (81%), but the description adds value by explaining when to use media_file vs media, and that email_subject is required for email targets. This context helps agents choose parameters correctly beyond what schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'create, queue, or schedule a Postly post through the publishing pipeline'. It distinguishes itself from sibling tools like postly_update_post or postly_upload_media by explicitly mentioning the creation pipeline and file upload integration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use ('Use this when...'), steps for multi-platform posts (e.g., resolve targets, call postly_get_channel_schema), and handling blocked platforms. It does not explicitly state when not to use it, but the context is clear.

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

postly_delete_postDelete PostA
Destructive
Inspect

Use this when an AI agent needs to delete an existing Postly post after explicit user confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesPostly post ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
dataNo
messageNo
Behavior4/5

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

Annotations already mark destructiveHint=true, but the description adds critical behavioral context: requiring explicit user confirmation. This goes beyond annotation data without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose and usage condition. Every word earns its place; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one required parameter, an output schema, and clear annotations, the description fully covers what an agent needs: purpose, when to use (with confirmation), and no missing details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of post_id. The tool description does not add extra detail beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes an existing Postly post, distinguishing it from siblings which are all non-delete operations. The verb 'delete' and resource 'Postly post' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies 'after explicit user confirmation', providing clear usage context. While it doesn't explicitly name alternatives, siblings are all non-delete, making the guidance sufficient.

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

postly_get_account_analyticsGet Account AnalyticsA
Read-onlyIdempotent
Inspect

Use this to fetch analytics for a connected Postly analytics source such as an Instagram account, Facebook page, LinkedIn page/profile, Pinterest account, YouTube channel, Google Business location, or X account. If the user has not named a source, first call postly_list_analytics_sources and ask them to choose when multiple sources are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOptional ISO-8601 start date/time for platforms that support ranges.
untilNoOptional ISO-8601 end date/time for platforms that support ranges.
platformYesAnalytics platform identifier returned by postly_list_analytics_sources, such as instagram, facebook, linkedin, pinterest, youtube, googleMyBusiness, google_my_business, or x.
channel_idYesAnalytics source channel_id returned by postly_list_analytics_sources.
workspace_idYesPostly workspace ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
dataNo
messageNo
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds no new behavioral traits beyond stating it fetches analytics, which is consistent. No additional context on rate limits, errors, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose, second provides actionable guidance. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values are covered. The description addresses source selection and prerequisite. It could mention supported analytics types, but overall sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with detailed descriptions. The description adds minimal semantic value, only linking to list_analytics_sources for obtaining platform and channel_id. The schema already covers the rest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches analytics for connected sources like Instagram, Facebook, etc. It uses a specific verb-resource pair. However, it does not explicitly differentiate from sibling tool postly_get_post_analytics, which may cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to call postly_list_analytics_sources if no source is named, helping the agent choose the correct prerequisite. It lacks alternatives or when not to use, but the context is specific enough.

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

postly_get_channel_schemaGet Channel SchemaA
Read-onlyIdempotent
Inspect

Use this before creating or scheduling content to understand platform rules, character limits, media limits, and required settings for a Postly social channel. Minimize user friction: generate safe text metadata, apply defaults, and ask only one bundled follow-up for missing assets, business facts, or compliance decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYesPlatform identifier such as x, linkedin, instagram, telegram, facebook, threads, bluesky, pinterest, youtube, tiktok, or google_my_business.

Output Schema

ParametersJSON Schema
NameRequiredDescription
schemaNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds context about the output (rules, limits, settings) and behavioral advice on defaulting, without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, and no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers purpose and usage. Minor missing detail on error handling, but overall complete for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add further detail about the platform parameter beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves platform rules, limits, and settings for social channels, distinguishing it from sibling tools like postly_create_post or postly_validate_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states to use the tool before creating or scheduling content, and provides guidance on minimizing user friction. However, it does not explicitly mention when not to use it or alternatives.

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

postly_get_postGet PostA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs sanitized details for a specific Postly post.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesPostly post ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
postNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. Description adds 'sanitized details' but does not elaborate on security, rate limits, or other behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, no wasted words. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get tool with 1 parameter and an output schema, the description is sufficient. It provides context on the nature of the returned data ('sanitized') but could further differentiate from postly_get_post_status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with a clear description for post_id. The tool description adds no extra parameter information beyond what the schema provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'sanitized details for a specific Postly post', with a specific verb ('get') and resource. Distinguishes from siblings like postly_list_posts, postly_get_post_analytics, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when an AI agent needs sanitized details'), providing clear context. Does not explicitly exclude alternative uses, but the intent is clear.

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

postly_get_post_analyticsGet Post AnalyticsA
Read-onlyIdempotent
Inspect

Use this to fetch analytics for a published Postly post on a supported platform. First identify the workspace, post, platform, and analytics source/channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesPostly post ID.
platformYesAnalytics platform identifier returned by postly_list_analytics_sources, such as instagram, facebook, linkedin, pinterest, youtube, googleMyBusiness, google_my_business, or x.
channel_idYesAnalytics source channel_id returned by postly_list_analytics_sources.
workspace_idYesPostly workspace ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
dataNo
messageNo
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that the post must be 'published' and platform 'supported', but does not disclose potential failure modes 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, front-loaded purpose, efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and annotations cover safety, the description adequately informs an agent. Could optionally mention that platform and channel_id come from postly_list_analytics_sources.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description reiterates parameter roles (workspace, post, platform, source) but adds no new semantic detail beyond the prerequisite hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'fetch analytics for a published Postly post on a supported platform' – a clear verb+resource. It distinguishes from siblings like postly_get_account_analytics by specifying post-level analytics, but does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes prerequisite instruction 'First identify the workspace, post, platform, and analytics source/channel' but provides no explicit guidance on when not to use this tool or comparisons to siblings.

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

postly_get_post_statusGet Post StatusA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs the current publishing status for a specific Postly post.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesPostly post ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
post_idNo
effective_statusNo
failed_delivery_countNo
published_delivery_countNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds that it gets 'current publishing status', but does not elaborate on behavior such as what happens if the post_id is invalid or what the response structure looks like. With annotations covering safety and idempotency, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states when to use the tool. No unnecessary words or details, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, strong annotations, and an output schema), the description is sufficient. It could be improved by mentioning the types of status values returned, but the presence of an output schema likely covers that. Overall, it is complete enough for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one required parameter (post_id) with a description in the schema itself. The tool description does not add any additional meaning or context for the parameter. Schema description coverage is 100%, so baseline 3 is used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: getting the current publishing status for a specific Postly post. It uses a specific verb and resource, and implicitly distinguishes from siblings like postly_get_post (which likely returns full post data) and postly_list_posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit use case ('when an AI agent needs the current publishing status'), which is good. However, it does not mention when not to use this tool or explicitly differentiate from alternatives like postly_get_post or postly_get_post_analytics, though the context of siblings makes it clear enough.

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

postly_get_publishing_activityGet Publishing ActivityA
Read-onlyIdempotent
Inspect

Use this whenever a user asks how many posts were published today, yesterday, this week, or in another date range, or asks what is queued/processing after publishing. This counts actual published delivery receipts separately from queued or processing posts, so do not describe queued posts as published.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional exact local date in YYYY-MM-DD format. The timezone argument determines the local day.
skipNo
limitNo
timezoneNoOptional IANA timezone for relative_range or date, for example Africa/Lagos or America/New_York. Defaults to the account timezone or UTC.
workspace_idNoOptional workspace ID. Omit to search accessible workspaces.
activity_fromNoOptional inclusive ISO-8601 activity start boundary. Must be used with activity_until.
activity_untilNoOptional exclusive ISO-8601 activity end boundary. Must be used with activity_from.
published_fromNoAlias for activity_from when the user asks about published posts.
relative_rangeNoNatural date window. Use "today" or "yesterday" when a user asks how many posts were published on a local day. Defaults to next_7_days when no date or range is provided.
scheduled_fromNoOptional inclusive ISO-8601 start boundary. Must be used with scheduled_until.
organization_idNoOptional organization ID. Use this to limit the search before choosing a workspace.
published_untilNoAlias for activity_until when the user asks about published posts.
scheduled_untilNoOptional exclusive ISO-8601 end boundary. Must be used with scheduled_from.

Output Schema

ParametersJSON Schema
NameRequiredDescription
postsNo
windowNo
summaryNo
total_countNo
returned_countNo
Behavior5/5

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

Beyond the readOnlyHint annotation, the description reveals that the tool separates actual published delivery receipts from queued/processing posts. This is valuable context for accurate response generation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The first sets the use case, the second clarifies a critical behavioral nuance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema presence and comprehensive annotations, the description covers all essential context: when to use, what it counts, and a key distinction. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (85%), so the description need not repeat parameter details. The description focuses on usage context rather than parameter semantics, which is acceptable but adds minimal additional meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states to use the tool for counting published posts in date ranges and queued/processing posts. It clearly distinguishes from sibling list tools like postly_list_posts or postly_list_scheduled_posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use instructions for user queries about post counts and date ranges. Also includes a behavioral warning not to describe queued posts as published, aiding correct invocation.

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

postly_list_analytics_sourcesList Analytics SourcesA
Read-onlyIdempotent
Inspect

Use this when a user asks what analytics are available in Postly. Lists connected accounts, pages, profiles, locations, or channels that support analytics for one workspace or every accessible workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idNoOptional Postly workspace ID. Omit to scan all accessible workspaces.
organization_idNoOptional organization ID to limit the workspace scan.

Output Schema

ParametersJSON Schema
NameRequiredDescription
workspacesNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's role is to add context beyond safety. It explains the result covers accounts, pages, profiles, etc., and specifies workspace scoping, which is useful additional 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no superfluous words. The first sentence provides the usage context, the second details the resource and scope. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with two optional parameters and an output schema, the description covers the essential behavior and scope. It could benefit from mentioning that it returns a list, but the output schema presumably fills that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters adequately. The description adds minimal new information about parameters beyond restating the optionality mentioned in the schema, so it only meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'list' and resource 'analytics sources', clearly distinguishing it from siblings like postly_get_account_analytics which retrieves analytics data. It also specifies the scope (one workspace or all accessible workspaces), leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear when-to-use statement: 'when a user asks what analytics are available in Postly'. However, it does not explicitly contrast with sibling tools for analytics data retrieval, missing an opportunity to clarify when not 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.

postly_list_organizationsList OrganizationsA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs the Postly organizations available to the authenticated user or connection grant before choosing a workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
organizationsNo
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds limited behavioral detail. It clarifies that the result depends on the authenticated user or connection grant, but does not discuss error conditions (e.g., authentication failure or empty results), which would be useful given the importance of the tool in the workflow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, succinct sentence that front-loads the purpose and usage context. Every word earns its place; there is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter list tool with an output schema (present but not shown), the description is complete. It states what the tool returns (organizations) and when to use it (before workspace selection). Annotations cover safety concerns entirely. No additional information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is trivially 100%. The description adds no parameter information, but this is acceptable because there are no parameters to document. According to the rubric, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'Postly organizations', specifying the scope as 'available to the authenticated user or connection grant'. This directly distinguishes it from the sibling tool 'postly_list_workspaces', which lists workspaces after organizations are selected.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use this tool 'before choosing a workspace', providing a clear contextual trigger. It implies that this should be the first step in workspace selection, which is strong guidance for the agent.

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

postly_list_postsList PostsA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs recent Postly posts, optionally scoped to a workspace and post status. For questions like "how many posts did I publish today?", prefer postly_get_publishing_activity because Postly stores actual published deliveries on each target channel, not as a top-level published status.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNo
limitNo
statusNoOptional status such as draft, scheduled, queued, processing, pending_approval, or unknown.
workspace_idNoOptional Postly workspace ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
postsNo
Behavior4/5

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

Adds context about recency and handling of published status beyond annotations, though could elaborate on pagination or ordering. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, annotations cover safety. Description covers essential usage context; minor missing detail on ordering but overall complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%; description adds no further parameter meaning beyond what schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists recent Postly posts with optional workspace and status scoping, and distinguishes from sibling tool postly_get_publishing_activity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (need recent posts) and when to prefer alternative (for publish counts), providing a concrete example and reason.

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

postly_list_scheduled_postsList Scheduled PostsA
Read-onlyIdempotent
Inspect

Use this whenever a user asks about posts they have lined up, queued for a future date, scheduled tomorrow, coming up next week, or similar wording. Prefer relative_range for natural language dates such as today, tomorrow, next_7_days, next_30_days, this_week, or next_week. Use date for an exact local YYYY-MM-DD day, or scheduled_from/scheduled_until for an explicit ISO range.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional exact local date in YYYY-MM-DD format. The timezone argument determines the local day.
skipNo
limitNo
timezoneNoOptional IANA timezone for relative_range or date, for example Africa/Lagos or America/New_York. Defaults to the account timezone or UTC.
workspace_idNoOptional workspace ID. Omit to search accessible workspaces.
relative_rangeNoNatural date window. Use "tomorrow" for requests like "How many posts do I have lined up for tomorrow?" Defaults to next_7_days when no date or range is provided.
scheduled_fromNoOptional inclusive ISO-8601 start boundary. Must be used with scheduled_until.
organization_idNoOptional organization ID. Use this to limit the search before choosing a workspace.
scheduled_untilNoOptional exclusive ISO-8601 end boundary. Must be used with scheduled_from.

Output Schema

ParametersJSON Schema
NameRequiredDescription
postsNo
windowNo
total_countNo
returned_countNo
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety and idempotency. The description adds parameter usage context but does not disclose additional behaviors like pagination or rate limits. With annotations, the bar is lower; a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, each serving a distinct purpose: stating tool purpose, guiding on relative_range, date, and scheduled_from/until. No redundant or vague language; front-loaded with the core trigger scenario.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, an output schema, and good schema descriptions, the description fills gaps by explaining parameter selection. It does not cover pagination (limit/skip) or workspace filtering in detail, but the schema provides that. Overall complete given the available metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value beyond the schema by explaining when to use each date-related parameter and giving concrete examples (e.g., 'Use "tomorrow" for requests like...'). Schema coverage is 78%, and the description compensates well for the remaining 22% by clarifying usage semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for listing scheduled posts, using phrases like 'posts they have lined up, queued for a future date, scheduled tomorrow'. It distinguishes from sibling tools like postly_list_posts by specifically targeting scheduled content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use each parameter: prefer relative_range for natural language dates, date for exact local day, scheduled_from/scheduled_until for ISO ranges. Also provides example triggers like 'How many posts do I have lined up for tomorrow?'.

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

postly_list_social_accountsList Publishing TargetsA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs connected social channels or email/newsletter targets for a Postly workspace before creating or reviewing posts.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYesPostly workspace ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
social_accountsNoConnected publishing targets, including social channels and email/newsletter targets. Email targets use platform=email and can be passed by channel_id to target_platforms.
Behavior3/5

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

Annotations already indicate this is a read-only, idempotent, non-destructive operation. Description adds that it lists specific types of targets (social channels, email/newsletter) but does not elaborate on other behavioral aspects like pagination or response format. With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single, tightly worded sentence that front-loads the purpose and usage context. No unnecessary words or repetition, making it highly concise and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter and an output schema, the description sufficiently defines when to use it and what it returns. It could mention output details, but the output schema handles that. Overall adequate for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'workspace_id' with a schema description. The tool description does not add additional meaning beyond the schema. Since schema coverage is 100%, baseline score of 3 is justified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the tool lists connected social channels or email/newsletter targets for a Postly workspace, clearly indicating the action and resource. The title 'List Publishing Targets' aligns with this purpose, and the description helps distinguish from sibling tools by specifying the context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description clearly says when to use the tool: 'before creating or reviewing posts.' It provides the context of needing connected targets for a workspace. However, it does not explicitly state when not to use it or provide alternatives, but the guidance is sufficient for appropriate use.

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

postly_list_workspacesList WorkspacesA
Read-onlyIdempotent
Inspect

Use this when an AI agent needs the Postly workspaces available to the authenticated user or API key, optionally filtered by organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
organization_idNoOptional Postly organization ID to filter by.

Output Schema

ParametersJSON Schema
NameRequiredDescription
workspacesNo
Behavior4/5

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

Annotations already indicate a read-only, non-destructive, idempotent operation. The description adds context about the scope (workspaces available to the authenticated user) and the optional filter, which is valuable beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-constructed sentence that immediately conveys the tool's purpose and key feature. No excess information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown) and rich annotations, the description provides sufficient context for an AI agent to understand when to invoke this tool. It covers purpose, scope, and optional filtering.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already includes a description for the single optional parameter (organization_id). Description coverage is 100%, so the tool description adds no new meaning beyond reiterating the filter option. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing Postly workspaces available to the authenticated user. It mentions the optional filter by organization, which distinguishes it from sibling tools like list_posts or list_organizations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool (when an AI agent needs workspaces), but it does not mention when not to use it or provide alternatives among siblings. The guidance is adequate but lacks exclusion criteria.

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

postly_resolve_publishing_targetsResolve Publishing TargetsA
Read-onlyIdempotent
Inspect

Use this when a user asks for channels by natural language, platform, organization, or workspace, such as "my Telegram channels", before creating or scheduling a post.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNoOptional channel/workspace/organization name fragment to match.
platformNoOptional platform identifier such as telegram, x, linkedin, instagram, facebook, threads, or bluesky.
workspace_idNoOptional workspace ID to search within.
organization_idNoOptional organization ID to search within.

Output Schema

ParametersJSON Schema
NameRequiredDescription
targetsNo
Behavior3/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds the 'before creating or scheduling a post' usage context, but does not elaborate on return structure or pagination behavior. It is adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently communicates the tool's purpose and usage context. Every part earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides adequate context for a lookup tool with an output schema. It explains when to use the tool, but does not describe the return format or handling of edge cases. However, given the output schema exists, the description is sufficiently complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, with most parameters described in the input schema (query, platform, workspace_id, organization_id). The overall description does not add additional semantic details beyond what is already in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves publishing targets based on natural language, platform, organization, or workspace queries. It uses a specific verb (resolve) and resource (publishing targets), and distinguishes from sibling tools like postly_list_social_accounts by focusing on resolution before posting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: 'when a user asks for channels by natural language... before creating or scheduling a post.' It implies the tool is for pre-publish resolution but doesn't name alternative tools for cases where specific IDs are already known. Still, the context is clear.

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

postly_update_postUpdate PostA
Destructive
Inspect

Use this when an AI agent needs to update editable content, media, labels, social/email targets, or schedules for an existing Postly post. If media was attached, generated, selected, or supplied as a temporary/local file reference, pass it in media_file, media_file_2, and so on; the server uploads those files to Postly storage inside this same update action. Email/newsletter targets require email_subject and body text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
mediaNoAlready-hosted media objects for the post. If the source is a ChatGPT-generated image, selected file, local file, base64 data, or temporary URL, prefer the media_file fields so Postly imports the asset inside this same create/update action.
labelsNo
post_idYesPostly post ID.
media_fileNoChatGPT/OpenAI file reference for the first attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_2NoChatGPT/OpenAI file reference for the number 2 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_3NoChatGPT/OpenAI file reference for the number 3 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_4NoChatGPT/OpenAI file reference for the number 4 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_5NoChatGPT/OpenAI file reference for the number 5 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_6NoChatGPT/OpenAI file reference for the number 6 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_7NoChatGPT/OpenAI file reference for the number 7 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_8NoChatGPT/OpenAI file reference for the number 8 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_file_9NoChatGPT/OpenAI file reference for the number 9 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
email_subjectNoRequired when targeting email/newsletter channels. Generate a concise subject line if the user asks to publish to email and enough context is available.
first_commentNo
media_file_10NoChatGPT/OpenAI file reference for the number 10 attached, selected, or generated media file. Prefer this over calling postly_upload_media separately when creating or updating a post.
media_uploadsNoOptional inline upload specs for agents that can supply public URLs, temporary URLs, base64, or data URLs. Postly imports these assets and appends them to media before creating or updating the post.
audience_groupNoAudience group ID or IDs. Do not combine with target_platforms.
platform_postsNoPlatform-specific overrides. Each item should include identifier and settings. Call postly_get_channel_schema for each selected platform to see required settings and simple capture guidance.
email_targetingNoOptional advanced email targeting map keyed by email integration ID. Each value is a resource ID, a resource object with id, or an array of those. Usually not needed when using email channel_id values returned by postly_list_social_accounts.
media_alt_textsNoOptional alt text values aligned with media_file, media_file_2, and later media_file fields.
one_off_scheduleNo
target_platformsNoSocial platform names, email/newsletter, provider names, or channel IDs. Use "all" to target all connected publishing targets in the workspace. Email targets require email_subject and text.
email_preview_textNoOptional short preview text for email/newsletter delivery.
recurring_scheduleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
dataNo
messageNo
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds that media files are uploaded as part of the update action, and email_subject is required for email targets. This provides useful procedural detail beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loads the main purpose, and gives specific usage hints for media and email. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count and complex nested objects, the description covers the essential update capabilities and adds key procedural detail. It does not explain scheduling or platform overrides in depth, but the output schema and high schema coverage compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, so the baseline is 3. The description adds context for media_file parameters and email_subject, but most parameters are adequately documented in the schema descriptions. The description does not significantly improve parameter understanding beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'update' and the resource 'existing Postly post', listing specific editable aspects (content, media, labels, targets, schedules). It distinguishes from create operations by implying the post already exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use the tool and provides specific guidance for media files and email targets. However, it does not explicitly exclude use cases or mention alternatives like postly_create_post, leaving some ambiguity.

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

postly_upload_mediaUpload MediaAInspect

Lower-level media import tool for agents that need to upload media separately from publishing. For normal create/update flows, prefer passing attached, selected, generated, local, temporary, base64, or non-Postly media directly through postly_create_post or postly_update_post media_file fields so the user approves one publishing action.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic or temporary URL to import into Postly storage when no file reference is available.
dataNoBase64 content or a data URL for agents that can provide bytes instead of a URL.
fileNoChatGPT/OpenAI file reference for an attached, selected, or generated file. ChatGPT supplies this when the tool metadata marks file as an openai/fileParams field.
typeNoOptional MIME type such as image/png, video/mp4, or application/pdf.
alt_textNoOptional alt text to carry forward into the returned Postly media object.
file_nameNoOptional file name. Required when using data/base64 without a file reference.

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeNo
mediaNo
usageNo
messageNo
raw_uploadNo
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description does not need to repeat these. The description adds context about when the tool is used (separate from publishing), but does not disclose additional behavioral traits such as rate limits, permissions, or side effects beyond what annotations provide. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences. The first sentence clearly states the tool's purpose and level, and the second provides key usage guidance. Every sentence adds value, and it is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters (none required), an output schema, and comprehensive annotations. The description explains its role relative to sibling tools and outlines when to use it. It does not cover error handling or return value details, but the output schema exists to describe returns. Given the tool's complexity, the description is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema coverage is 100% with thorough descriptions for each parameter (url, data, file, type, alt_text, file_name). The tool description does not add further meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it's a 'Lower-level media import tool for agents that need to upload media separately from publishing.' It clearly identifies the verb (upload), resource (media into Postly storage), and distinguishes from sibling tools by contrasting with normal create/update flows. The mention of various media types (attached, selected, generated, etc.) further specifies its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises: 'For normal create/update flows, prefer passing ... media directly through postly_create_post or postly_update_post media_file fields so the user approves one publishing action.' This tells when to use this tool (separate upload) and when to avoid it (prefer integrated flows with other tools), providing clear context and alternatives.

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

postly_validate_postValidate PostA
Read-onlyIdempotent
Inspect

Use this before creating, updating, scheduling, or publishing a post to check text and media against the selected Postly workspace channels. If the user attached or generated media, pass it directly to postly_create_post or postly_update_post through the media_file fields so the server can upload it inside the same confirmed action. If validation fails, auto-fill fields that are safe to generate, ask one concise bundled question for true blockers, or offer to publish to ready channels and skip blocked ones.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoPost text or caption to validate.
mediaNoOptional media objects that will be attached to the post.
workspace_idYesPostly workspace ID.
email_subjectNoRequired when validating a post for email/newsletter targets.
platform_postsNoOptional platform-specific overrides. Use postly_get_channel_schema for the selected platform before supplying settings.
target_platformsNoOptional platform names, email/newsletter, provider names, or channel IDs. Use "all" or omit to validate against all connected workspace publishing targets.

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailNo
validNo
errorsNo
limitsNo
warningsNo
platformsNo
agent_guidanceNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context beyond this, such as the validation action and instructions for handling failures. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of three sentences, clearly front-loading the main purpose. It is concise and each sentence adds value, though it could be slightly more terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, full schema coverage, and presence of annotations and output schema, the description provides comprehensive context. It covers the validation workflow, post-validation actions, and integration with sibling tools, making it complete for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with each parameter already well-documented. The description does not add significant per-parameter meaning beyond the schema, so it meets the baseline of 3 but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Use this before creating, updating, scheduling, or publishing a post to check text and media against the selected Postly workspace channels.' It identifies the specific verb (validate), resource (post), and scope (against workspace channels), and distinguishes it from sibling mutation tools like postly_create_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use the tool ('before creating, updating, scheduling, or publishing a post') and what to do with the result (auto-fill, ask questions, offer to publish to ready channels). It also instructs how to handle media for subsequent tools. However, it does not explicitly list when not to use it or name alternative tools for other situations.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources