AdaptlyPost
Server Details
Schedule and post to Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Pinterest, Threads, Bluesky.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
12 toolsbulk_schedule_postsBulk Schedule PostsAInspect
Schedule multiple posts at once. Each post gets its own text, content type, schedule time, and optional media. All posts share the same target platforms and connection IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Array of posts to schedule | |
| pageIds | No | Facebook page IDs | |
| timezone | No | IANA timezone | UTC |
| platforms | Yes | Target platforms | |
| tiktokConfigs | No | TikTok per-connection config. Each entry needs connectionId + privacyLevel at minimum | |
| youtubeConfigs | No | YouTube per-connection config with video title, tags, privacy, etc. | |
| facebookConfigs | No | Facebook per-page config with post type and video title | |
| instagramConfigs | No | Instagram per-connection config to set post type (FEED, REEL, STORY) | |
| pinterestConfigs | No | Pinterest per-connection config. boardId is required for Pinterest posts | |
| tiktokConnectionIds | No | TikTok account connection IDs to post from | |
| blueskyConnectionIds | No | Bluesky account connection IDs to post from | |
| threadsConnectionIds | No | Threads account connection IDs to post from | |
| twitterConnectionIds | No | X (Twitter) account connection IDs to post from | |
| youtubeConnectionIds | No | YouTube channel connection IDs to post from | |
| linkedinConnectionIds | No | LinkedIn account connection IDs to post from | |
| instagramConnectionIds | No | Instagram account connection IDs to post from | |
| pinterestConnectionIds | No | Pinterest account connection IDs to post from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The created scheduled post records with their ids, statuses, and schedule times as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly=false and destructive=false, and the description adds a useful behavioral constraint: all posts share the same platforms and connection IDs. However, it does not disclose partial-failure behavior, validation limits, or what happens after scheduling is complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core purpose is front-loaded, and the second sentence adds a high-value structural clarification about shared versus per-post inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter tool with many per-platform configs, the description is a solid overview but omits operational context like batch limits, partial failures, or whether scheduled posts can be edited later. The detailed schema and output schema fill many gaps, so this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real value by grouping parameters into per-post fields versus shared fields. This helps an agent assemble the correct payload structure without needing to infer the relationship from the large schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action — 'Schedule multiple posts at once' — and clearly distinguishes this from single-post tools like create_post. It also explains the per-post versus shared parameter model, which makes the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'multiple posts at once' implies this is the right tool for bulk scheduling, but it never explicitly names alternatives or states when not to use it. An agent must infer that create_post is for single posts and publish_draft is for existing drafts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postCreate PostAInspect
Create and schedule a post to one or more platforms. Pass connection IDs from list_accounts to target specific accounts. Omit scheduledAt to post immediately, or set saveAsDraft to save without publishing. For platform-specific options (YouTube titles, TikTok privacy, Pinterest boards, Instagram post type), use the corresponding platform configs.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Default post text shared across platforms | |
| pageIds | No | Facebook page IDs | |
| timezone | No | IANA timezone (e.g. "America/New_York") | UTC |
| mediaUrls | No | Media URLs to attach. Use publicUrl values from upload_media or get_upload_urls | |
| platforms | Yes | Target platforms (e.g. ["LINKEDIN", "TWITTER"]) | |
| contentType | Yes | Content type: TEXT, IMAGE, VIDEO, or CAROUSEL | |
| saveAsDraft | No | Save as draft instead of publishing | |
| scheduledAt | No | ISO 8601 datetime to schedule (e.g. "2026-03-15T10:00:00Z"). Omit to post immediately | |
| thumbnailUrl | No | Custom thumbnail image URL for video posts | |
| platformTexts | No | Per-platform caption overrides | |
| tiktokConfigs | No | TikTok per-connection config. Each entry needs connectionId + privacyLevel at minimum | |
| youtubeConfigs | No | YouTube per-connection config with video title, tags, privacy, etc. | |
| facebookConfigs | No | Facebook per-page config with post type and video title | |
| instagramConfigs | No | Instagram per-connection config to set post type (FEED, REEL, STORY) | |
| pinterestConfigs | No | Pinterest per-connection config. boardId is required for Pinterest posts | |
| tiktokConnectionIds | No | TikTok account connection IDs to post from | |
| blueskyConnectionIds | No | Bluesky account connection IDs to post from | |
| threadsConnectionIds | No | Threads account connection IDs to post from | |
| thumbnailTimestampMs | No | Generate thumbnail from video at this timestamp (milliseconds) | |
| twitterConnectionIds | No | X (Twitter) account connection IDs to post from | |
| youtubeConnectionIds | No | YouTube channel connection IDs to post from | |
| linkedinConnectionIds | No | LinkedIn account connection IDs to post from | |
| instagramConnectionIds | No | Instagram account connection IDs to post from | |
| pinterestConnectionIds | No | Pinterest account connection IDs to post from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The created post record including its id, status, and scheduled time as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal this is a mutating operation (readOnlyHint=false, destructiveHint=false), and the description adds useful behavior: scheduling vs immediate publishing, draft behavior, and delegation to platform configs. It does not describe every side effect, but the annotations and output schema reduce the burden on the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The main action is front-loaded, and each sentence adds a distinct decision or category: connection targeting, scheduling/draft behavior, and platform-specific configs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity, 24-parameter tool, the description supplies the essential workflow: how to target accounts, how to choose immediate vs scheduled vs draft, and where to find platform-specific settings. The schema covers detailed parameters and an output schema exists, so the description is reasonably complete for an agent selecting and invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already explains scheduledAt, saveAsDraft, contentType, and connection IDs. The description adds only high-level grouping ('use the corresponding platform configs') and references list_accounts, which is also in the schema, so it does not materially expand parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Create and schedule a post to one or more platforms.' It immediately distinguishes this tool from siblings by covering scheduling, immediate posting, draft saving, and platform-specific options, while also referencing list_accounts for connection IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: pass connection IDs from list_accounts, omit scheduledAt for immediate posting, set saveAsDraft to avoid publishing, and use platform configs for platform-specific settings. It does not explicitly mention alternatives like bulk_schedule_posts or update_post, so exclusions are absent rather than explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postDelete PostADestructiveInspect
Delete a scheduled or draft post. Can't delete published posts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to delete |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The deletion confirmation for the post as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds value by specifying that only scheduled or draft posts are eligible and published posts are protected, which is behavior not captured in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences. It front-loads the core action and immediately states the key limitation, with no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with output schema and clear annotations, the description is largely complete. It states what the tool does and a key edge case. It does not describe error behavior when attempting to delete a published post, but that is not essential for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the only parameter, id, with description 'Post ID to delete,' so schema coverage is 100%. The tool description adds no additional parameter details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a scheduled or draft post.' It also distinguishes the tool's scope by adding 'Can't delete published posts,' making it clear this tool is not a generic post deletion tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit exclusion: it cannot delete published posts, which tells an agent when not to invoke it. However, it does not name alternative tools from the sibling list, so the when-to-use guidance is present but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postGet PostARead-onlyInspect
Get full details of a single post by ID, including per-platform publishing status and error messages.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The full post record including its id, status, per-platform publishing status, and error messages as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context by specifying that the result includes per-platform publishing status and error messages, giving the agent a better sense of what the response will contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence that front-loads the action and resource, then adds the key distinguishing detail about per-platform status and error messages. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-ID lookup tool, the description is complete: it names the resource, the identifier, and the notable contents. An output schema exists, so return-value details do not need to be spelled out, and annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter 'id' is already described as 'Post ID' in the schema. The description's use of 'by ID' reinforces the parameter's role but adds no new format or semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get full details'), a specific resource ('a single post by ID'), and the useful scope of those details ('per-platform publishing status and error messages'). This clearly distinguishes it from list-style siblings like list_posts and list_post_results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'a single post by ID' implies this tool is for fetching one known post rather than listing or bulk operations. However, it does not explicitly name alternatives or state when not to use it, leaving the routing decision mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upload_urlsGet Media Upload URLsAInspect
Get presigned upload URLs for direct file uploads. Returns uploadUrl (PUT your file here) and publicUrl (use in create_post mediaUrls). This only mints a URL — you MUST PUT the file to uploadUrl and confirm a 2xx response before using publicUrl, otherwise create_post/bulk rejects it with "Media file(s) not found in storage". Prefer the upload_media tool, which performs the upload for you. For each file, provide fileName and mimeType. Supported types: image/jpeg, image/png, image/webp, video/mp4, video/quicktime.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Files to get upload URLs for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | An object with urls: one { uploadUrl, publicUrl, key } entry per requested file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the minimal annotations by disclosing that this tool only mints a URL rather than uploading a file, that the caller must PUT the file separately, and that failing to do so causes create_post/bulk to reject the media. This is critical behavioral context the agent could not infer from readOnlyHint/destructiveHint alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and includes essential workflow details. It is longer than necessary because the supported-types list duplicates the schema enum, but every other sentence contributes meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values are covered structurally. The description supplies everything else needed: when to use it, how the returned URLs relate to create_post, the required manual upload step, the error consequence, and the preferred sibling alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents files, fileName, and mimeType with 100% coverage, so the baseline is 3. The description adds 'For each file, provide fileName and mimeType' and repeats the supported types, which mirrors the enum rather than adding substantial new semantics about the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get presigned upload URLs for direct file uploads.' It clearly differentiates this tool from the upload_media sibling by noting that upload_media performs the upload, making the scope of get_upload_urls unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends 'Prefer the upload_media tool, which performs the upload for you,' giving a clear alternative. It also explains the sequential requirement: PUT to uploadUrl and confirm a 2xx response before using publicUrl, with a concrete failure mode ('Media file(s) not found in storage').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsList Connected AccountsARead-onlyInspect
List all connected social media accounts across all platforms (LinkedIn, YouTube, Instagram, Facebook, TikTok, Pinterest, Threads, Bluesky, Twitter). Returns connection IDs needed for creating posts. Facebook page accounts also include a pageId (the Facebook Page ID) since pages have no username.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The connected social accounts with their platform, connection ID, username, and pageId for Facebook pages as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as read-only and non-destructive. The description adds useful behavioral context beyond annotations: it lists the exact platforms covered, states that connection IDs are returned, and flags that Facebook page accounts include a pageId because pages have no username. No contradictions with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it states the core behavior in the first sentence and adds only the most relevant nuance about Facebook pages in the second. Every sentence adds value without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters and an output schema exists, the description is complete for an agent to select and invoke the tool. It explains the tool's purpose, who might need it, and an important output nuance that is not obvious from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description adds meaningful context about what the returned identifiers are used for, even though there are no parameter definitions to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('all connected social media accounts'), enumerates the supported platforms, and states that it returns connection IDs needed for creating posts. This clearly distinguishes it from sibling tools focused on posts and scheduling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Returns connection IDs needed for creating posts' clearly signals when to use this tool: before creating posts. It does not explicitly name alternative tools or provide exclusions, but the usage context is obvious given the listed siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_post_resultsList Post ResultsARead-onlyInspect
Check per-platform posting results — success/failure status with error details for each platform a post was sent to.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to check results for |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The per-platform posting results with success/failure status and error details as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that the operation inspects per-platform delivery status and error details. It does not mention rate limits, authorization requirements, or pagination, but for a read-only lookup backed by an output schema those omissions are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that opens with the verb and object, then specifies the exact returned information. There is no redundant filler, making the description easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema and safety annotations, the description is largely sufficient. It could be more complete by hinting that this is the tool to use after scheduling or publishing to verify delivery, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter 'id' is already described as 'Post ID to check results for'. The description does not add new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') with a clear resource ('per-platform posting results') and defines the scope ('success/failure status with error details for each platform a post was sent to'). This distinguishes the tool from siblings like get_post or create_post, which target the post itself rather than per-platform delivery outcomes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used after a post has been sent to platforms to check delivery outcomes, but it does not explicitly say when to prefer it over get_post or whether get_post also surfaces similar results. No when/when-not guidance or named alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsList PostsARead-onlyInspect
List posts with optional filters by status, platform, or date range. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| offset | No | Pagination offset | |
| endDate | No | End date (ISO 8601) | |
| statuses | No | Filter by status (e.g. ["SCHEDULED", "DRAFT"]) | |
| platforms | No | Filter by platform | |
| sortOrder | No | NEWEST or OLDEST | |
| startDate | No | Start date (ISO 8601) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The matching posts with their ids, statuses, platforms, and schedule times as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds behavioral context by noting optional filters and pagination support. It does not contradict the annotations, and mentioning pagination is a genuine behavioral trait beyond the structured annotation data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with the core capability front-loaded. Every phrase adds useful information—filters, pagination—and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no required parameters and an output schema present, the description plus annotations and input schema provide a complete enough picture. Minor details like default ordering or pagination limits are already covered by the schema, so the description does not need to restate them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters including limit, offset, statuses, platforms, dates, and sortOrder. The description's mention of 'status, platform, or date range' maps to those parameters but adds no new semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('posts'), and names the optional filtering dimensions (status, platform, date range) plus pagination. This clearly distinguishes it from mutation siblings like create_post, update_post, and delete_post, and from get_post, which targets a single post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that the tool is for listing posts with filtering and pagination, so usage context is implied. However, it does not explicitly say when to prefer this over list_post_results or get_post, and it offers no exclusionary guidance or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_draftPublish DraftAInspect
Publish a draft post immediately or schedule it for later.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Draft post ID | |
| timezone | No | IANA timezone | UTC |
| scheduledAt | No | Schedule time (ISO 8601). Omit to publish now |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The published or scheduled post record with its updated status as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not destructive, and open-world, so the basic mutation profile is clear. The description adds the immediate-vs-scheduled distinction but does not disclose additional behavioral context such as external side effects, irreversibility of publishing, or validation rules around scheduledAt.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no filler. It front-loads the core action and includes the key behavioral distinction. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations cover return values and the basic safety profile. Still, the description does not address scheduling edge cases such as requiring a future scheduledAt or how timezone is applied, and it does not mention when to prefer bulk_schedule_posts. For a mutating external-world tool, a bit more context would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description adds no new parameter-level meaning beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('publish'), a specific resource ('draft post'), and the two modes: immediate or scheduled. The word 'draft' differentiates it from siblings like create_post and update_post, making the operation unambiguous even without naming an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when you have an existing draft and want to publish it, whether now or later. However, it gives no explicit guidance on when to choose this over bulk_schedule_posts or how it relates to update_post and create_post.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_failed_platformsRetry Failed PlatformsAInspect
Retry publishing on platforms that failed. Get platform IDs from list_post_results.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID | |
| platformIds | Yes | Failed platform IDs to retry |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The retry outcome for the requested platform IDs as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is a mutating operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the 'retry on failed platforms' semantic but does not disclose additional behavioral traits such as partial-failure handling, idempotency, or side effects. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The core action is front-loaded, and the parameter source hint is included without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage, an output schema, and annotations, the description covers the essential workflow and parameter sourcing. It is slightly light on operation outcomes, but the output schema and annotations compensate, making it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds extra value by telling the agent that platformIds should come from list_post_results, which is important provenance information beyond the schema's generic 'Failed platform IDs to retry.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'Retry publishing on platforms that failed,' targeting a clear resource. It differentiates itself from siblings like publish_draft and create_post by emphasizing failed platforms, so an agent can identify when this tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool for platforms that previously failed, and it even tells the agent where to get the required platform IDs ('Get platform IDs from list_post_results'). It does not explicitly list alternatives or when-not-to-use conditions, but the workflow context is strong enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postUpdate PostAInspect
Update a scheduled or draft post's caption, schedule, accounts, media, or platform configs. Cannot update published posts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to update | |
| text | No | Updated text | |
| pageIds | No | Facebook page IDs | |
| timezone | No | IANA timezone for the schedule time | |
| mediaUrls | No | Updated media URLs. Use publicUrl values from upload_media or get_upload_urls | |
| platforms | No | Updated target platforms | |
| contentType | No | ||
| scheduledAt | No | Updated schedule time (ISO 8601) | |
| thumbnailUrl | No | Custom thumbnail image URL for video posts | |
| platformTexts | No | ||
| tiktokConfigs | No | TikTok per-connection config. Each entry needs connectionId + privacyLevel at minimum | |
| youtubeConfigs | No | YouTube per-connection config with video title, tags, privacy, etc. | |
| facebookConfigs | No | Facebook per-page config with post type and video title | |
| instagramConfigs | No | Instagram per-connection config to set post type (FEED, REEL, STORY) | |
| pinterestConfigs | No | Pinterest per-connection config. boardId is required for Pinterest posts | |
| tiktokConnectionIds | No | TikTok account connection IDs to post from | |
| blueskyConnectionIds | No | Bluesky account connection IDs to post from | |
| threadsConnectionIds | No | Threads account connection IDs to post from | |
| thumbnailTimestampMs | No | Generate thumbnail from video at this timestamp (milliseconds) | |
| twitterConnectionIds | No | X (Twitter) account connection IDs to post from | |
| youtubeConnectionIds | No | YouTube channel connection IDs to post from | |
| linkedinConnectionIds | No | LinkedIn account connection IDs to post from | |
| instagramConnectionIds | No | Instagram account connection IDs to post from | |
| pinterestConnectionIds | No | Pinterest account connection IDs to post from |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The updated post record including its id, status, and scheduled time as returned by the AdaptlyPost API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one useful behavioral constraint beyond annotations: published posts cannot be updated. However, it does not disclose whether this is a partial update where omitted fields remain unchanged, or whether all provided fields replace existing values. For an update tool with 24 optional parameters, that semantic is important for correct invocation. The annotations already indicate this is not read-only and not destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, information-dense sentences. It front-loads the main purpose and immediately states the most important limitation. There is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—24 parameters across many platform-specific configs—the description is minimal but sufficient for basic selection. It identifies the resource, the allowed updates, and the critical published-post restriction. However, it lacks guidance on update semantics (partial vs full replacement) and on how the various connectionIds and configs interact, which leaves some ambiguity for an agent handling complex multi-platform updates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the schema already explains the parameters well. The description adds broad categories like 'caption, schedule, accounts, media, or platform configs,' which help orient the agent, but it does not provide parameter-level details beyond what the schema already contains. This is an acceptable baseline given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the exact resource ('a scheduled or draft post') with the specific fields that can be changed: caption, schedule, accounts, media, or platform configs. It further distinguishes itself by explicitly excluding published posts, which sets it apart from publish_draft and create_post. This gives an agent a precise understanding of what the tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for when to use the tool: when a scheduled or draft post needs modification. It also provides a key exclusion: cannot update published posts. However, it does not explicitly point to alternative sibling tools like publish_draft or create_post, so the routing guidance is slightly incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_mediaUpload MediaAInspect
Upload media files for use in posts. Supports two modes:
URLs: pass public image/video URLs — the server downloads and re-uploads them.
Files: pass base64-encoded file data directly (e.g. when the user attaches an image in the conversation). Returns mediaUrls ready to pass into create_post. The user does NOT need to see the returned URLs — just pass them to create_post.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | Public URLs of images or videos to upload (e.g. ["https://example.com/photo.jpg"]) | |
| files | No | Direct file uploads as base64. Use this when the user attaches/pastes an image or video in the conversation |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | An object with uploaded (array of { publicUrl, key } per file) and mediaUrls (the public URLs ready to pass to create_post). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description reveals meaningful behavior: the server downloads and re-uploads URLs, files are accepted as base64, and the returned URLs are for internal use only. These details help the agent predict side effects and downstream usage. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized. The opening sentence states the purpose, the two modes are numbered clearly, and the crucial downstream instruction about passing mediaUrls to create_post is front-loaded. Every sentence contributes necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers both parameter modes and the return flow, which is sufficient for basic invocation. However, given the sibling get_upload_urls, it omits explicit disambiguation about when to choose server-side upload_media versus generating upload URLs. It also does not mention constraints like file size limits or whether both urls and files can be provided together. These gaps make it adequate but not fully complete for an AI agent navigating the toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of parameter descriptions, but the tool description adds value by explaining the behavioral distinction between the two modes: 'server downloads and re-uploads them' for URLs, and 'when the user attaches an image in the conversation' for files. This enriches the schema's otherwise structural definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb-resource statement: 'Upload media files for use in posts.' It then enumerates two concrete modes (URLs and base64 files), making the tool's purpose and scope explicit. The reference to returning mediaUrls for create_post further distinguishes it from sibling tools like get_upload_urls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear situational guidance for each mode: URLs for public media, base64 files for user-attached content. It also states the output should be passed to create_post and that the user should not see the returned URLs. However, it does not explicitly contrast with the sibling get_upload_urls or state when NOT to use this tool, leaving some ambiguity in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
- First observed
bulk_schedule_posts - First observed
create_post - First observed
delete_post - First observed
get_post - First observed
get_upload_urls - First observed
list_accounts - First observed
list_post_results - First observed
list_posts - First observed
publish_draft - First observed
retry_failed_platforms - First observed
update_post - First observed
upload_media
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
- RavenpostOAuthst.ravenpo
Schedule and publish posts to Instagram, TikTok, X, LinkedIn, YouTube, Pinterest, Facebook & more.
Schedule social media posts to 10 platforms: Instagram, TikTok, X, YouTube, LinkedIn, and more
Schedule, publish, and analyze social posts on TikTok, Instagram, YouTube, X, Threads, LinkedIn.
Create, schedule and publish social posts to TikTok, Instagram, Facebook and YouTube.
Related MCP Servers
- FlicenseAqualityCmaintenanceSchedule and manage social media posts across Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok, and Pinterest directly from Claude.10-

AdaptlyPostofficial
AlicenseNot gradedqualityBmaintenanceGives AI agents the ability to schedule and publish social media posts to Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky. Create, schedule, and bulk-plan posts with per-platform captions, then check per-platform results and retry failures.MIT- AlicenseAqualityDmaintenanceAI-powered social media posting across 14 platforms. Post to Twitter, Instagram, TikTok, Facebook, LinkedIn, YouTube and more with one command. AI adapts content per platform, schedules posts, and generates 30-day content calendars.6MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to schedule and publish social media posts to platforms like Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest using natural language.331633MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools are clearly separated by resource and action, but get_post and list_post_results both expose per-platform publishing status/errors, which could cause misselection. create_post and bulk_schedule_posts are closely related, though the descriptions make the single-vs-bulk distinction clear.
All tools follow a consistent verb_noun pattern: create_post, list_posts, upload_media, retry_failed_platforms, etc. Even multi-word actions like bulk_schedule_posts preserve the same style, making the naming predictable and easy to navigate.
With 12 tools, the set is well-scoped for a social media scheduling server. It covers post lifecycle management, bulk operations, media handling, account discovery, and retries without feeling bloated or sparse.
The tool surface covers the full publishing workflow: account listing, media upload, post creation, scheduling, listing, retrieval, updating, deletion, draft publishing, retry, and per-platform result inspection. Limitations like not updating published posts reflect expected platform constraints rather than missing server functionality.