Skip to main content
Glama

Postly MCP

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.3/5 across 18 of 18 tools scored.

Server CoherenceA
Disambiguation5/5

Every tool has a clearly distinct purpose, from creating and deleting posts to fetching analytics and schema. Descriptions provide precise guidance on when to use each, minimizing ambiguity.

Naming Consistency5/5

All tool names follow a consistent 'postly_verb_noun' pattern using snake_case, making it easy to predict functionality from the name.

Tool Count3/5

With 18 tools, the set is slightly above the ideal 3-15 range, feeling a bit heavy for a single server. However, each tool covers a distinct aspect of the platform.

Completeness5/5

The tool surface covers the full lifecycle of post management (CRUD, scheduling, validation, media upload) plus analytics, schema exploration, and workspace management, with no obvious gaps.

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. 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
Behavior5/5

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

Discloses that media files are uploaded server-side within the same action, that validation occurs, and that safe platform_posts metadata should be generated. This adds context beyond annotations which already indicate destructive nature (destructiveHint=true). No contradictions.

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 relatively long but well-structured, starting with general purpose, then media handling, multi-platform steps, email specifics, and user interaction. Every sentence adds value, though some redundancy in media_file descriptions could be trimmed.

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 complexity (26 parameters, nested objects, multiple media options) and the presence of an output schema, the description covers all major aspects: media upload, scheduling, platform targeting, email specifics, and validation steps. It is complete 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.

Parameters5/5

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

Adds significant meaning beyond schema: explains preference for media_file over separate upload_media, details on email_subject requirement, and clarifies target_platforms usage. With 81% schema coverage, the description compensates by explaining complex interactions between parameters.

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 creating, queuing, or scheduling Postly posts across social and email channels. It distinguishes from sibling tools like postly_update_post and postly_delete_post by focusing on creation actions.

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 guidance on when to use (create/queue/schedule), steps for multi-platform posts (resolve targets, get channel schemas, validate content), and handling blocked platforms. Also specifies email requirements and instructs to ask user only for missing assets.

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 provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds the types of sources and prerequisite step, but doesn't disclose rate limits, data freshness, or behavior when no data exists. Adequate given 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?

Two sentences with no extraneous words. Purpose is front-loaded. Every sentence earns its place, providing clear usage and a procedural note.

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 5 parameters, output schema exists, and annotations present, the description covers purpose, usage context, and prerequisite. It lacks detail on what analytics are returned, but output schema likely handles that. Very minor 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?

Input schema has 100% description coverage for all 5 parameters. The description lists platforms in text, but this is also in the schema. It does not add new meaning beyond what is already in the schema. Baseline 3 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?

Description clearly states verb 'fetch analytics' and resource 'connected Postly analytics source', listing specific platforms. It distinguishes from siblings like postly_list_analytics_sources (discovery) and postly_get_post_analytics (post-level).

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 instructs to call postly_list_analytics_sources first if user hasn't named a source, and to ask them to choose when multiple sources are available. This provides clear when-to-use and alternative tool reference.

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 provide readOnlyHint, idempotentHint, and destructiveHint. The description adds context about published posts and supported platforms but no additional behavioral traits beyond what annotations convey.

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, front-loaded with the main action, and contains no redundant information. Every sentence adds value.

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 an output schema exists and annotations are rich, the description is mostly complete. It mentions the need to identify workspace, post, platform, and analytics source, which aligns with the required parameters. A minor gap is not explicitly referencing postly.list_analytics_sources for obtaining platform and channel_id, though the schema mentions it.

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 description does not need to elaborate on parameters. The description mentions prerequisites but adds no new meaning beyond the schema descriptions for each parameter.

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 it fetches analytics for a published Postly post on a supported platform, distinguishing it from sibling tools like postly_get_post (post content) and postly_get_account_analytics (account-level analytics).

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 lists prerequisites (workspace, post, platform, analytics source) but does not explicitly state when to use this tool vs alternatives like postly_get_post or postly_get_account_analytics. Usage context is implied but not contrasted.

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. 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, and the description adds that media files are uploaded within the same action. It mentions email requirements but doesn't fully explain update behavior (e.g., whether unspecified fields are left unchanged). 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 front-loaded with the main purpose and is reasonably concise (two sentences plus a detail clause). It could be slightly tighter but is efficient given 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 25 parameters, nested objects, and output schema existence, the description provides a solid high-level overview and critical usage hints (media handling, email). It doesn't cover every param but schema descriptions fill gaps. Complete enough for an agent to use correctly.

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 (80%), so baseline is 3. The description adds value by explaining media_file fields as preferred over separate upload_media and noting email_subject requirement. This goes beyond schema details.

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 updating an existing Postly post, listing specific editable aspects (content, media, labels, targets, schedules). It distinguishes from create (new post) and delete, and the verb-update + resource is specific.

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 (updating existing posts) and provides guidance on media_file vs. separate upload_media, and email requirements. However, it doesn't explicitly contrast with create_post or other sibling tools, though context implies the distinction.

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 non-readonly, non-idempotent, non-destructive behavior. The description adds minimal behavioral context beyond 'upload separately'. It does not disclose what the tool returns or its side effects, but 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?

Two sentences, with the first stating purpose and the second providing usage guidance. Every sentence is relevant and efficient, 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?

While the description is brief, it covers key guidance (when to use) and the schema fully documents parameters. An output schema exists, so return values are not required in the description. It could elaborate on which parameter (url vs data vs file) to prefer, but the schema descriptions suffice.

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 parameters are already well-documented. The description does not add extra meaning beyond what the schema provides, meeting the baseline expectation.

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 identifies it as a 'lower-level media import tool' and distinguishes it from normal flows by advising to pass media directly through postly_create_post or postly_update_post. This contrasts well with sibling tools.

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 states when to use this tool (for separate media upload) and when not to (prefer create/update flows for normal use), providing clear guidance on 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
Behavior5/5

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

Annotations already indicate readOnly, idempotent, non-destructive. The description adds concrete behavior: checks text/media against channels, and on failure suggests auto-fill or offering publish options. No contradiction.

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 core purpose. While somewhat lengthy, every sentence provides value. Slight reduction possible, but overall well-structured.

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 tool with 6 parameters, 1 required, and an output schema, the description covers the validation workflow, failure handling, and interaction with sibling tools. It is thorough and leaves no major gaps.

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 coverage is 100%, but the description adds meaning by explaining when email_subject is required, that target_platforms can be 'all' or omitted, and recommends get_channel_schema for platform_posts. This goes beyond the schema descriptions.

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 validates a post before creation, updating, scheduling, or publishing, and distinguishes it as a prerequisite step. It uses specific verbs and resource (validate post) and differentiates from sibling 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 Guidelines5/5

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

Explicitly instructs when to use (before create/update/schedule/publish) and provides guidance on auto-filling and asking questions on failure. It also mentions passing media to create/update tools, giving clear usage context.

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