Skip to main content
Glama

Create Scheduled Post

aidelly_create_scheduled_post

Schedule a post for a future time, with optional auto-recycle entries (up to 3 reposts and 3 reshares). Scheduled posts publish automatically at their time; when Team Approvals is on, posts submitted by members are held as pending until approved. LinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as media[].type = "document"; documents are rejected on every other platform. Retry-safe: a repeat call with the same idempotency_key returns the original result.

Input Schema

NameRequiredDescriptionDefault
bodyNoOptional body override for endpoints with sparse parameter schemas.
queryNoOptional query overrides for endpoints with sparse parameter schemas.
payloadYesPost content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace. `media[].type` accepts `image`, `video`, `gif`, or `document`, and is resolved from the media-library row when omitted (`application/pdf` → `document`). LinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as `media[].type = "document"`; documents on any other platform are rejected with `422`. `media[].title` sets the title LinkedIn shows on the document; without it LinkedIn shows the file name.
recycleNo
brand_idNo
platformYes
timezoneNoUTC
account_idNoA provider account ID from `/accounts`, or a social connection UUID selector.
scheduled_atYes
workspace_idNoWorkspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content.
idempotency_keyYes
content_campaign_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / payload / description
      Previous value: -"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace.\n`media[].type` accepts `image`, `video`, `gif`, or `document`, and is resolved from the media-library row when omitted (`application/pdf` → `document`).\nLinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as `media[].type = \"document\"`; documents on any other platform are rejected with `422`.\n"New value: +"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace.\n`media[].type` accepts `image`, `video`, `gif`, or `document`, and is resolved from the media-library row when omitted (`application/pdf` → `document`).\nLinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as `media[].type = \"document\"`; documents on any other platform are rejected with `422`. `media[].title` sets the title LinkedIn shows on the document; without it LinkedIn shows the file name.\n"
    • addedInput schema / properties / payload / properties
      Added value: +{
      +  "media": {
      +    "description": "Attachments. Each item is a media-library UUID string, a media URL string, or an object.",
      +    "items": {
      +      "anyOf": [
      +        {
      +          "description": "Media-library UUID owned by the workspace, or a publishable media URL.",
      +          "type": "string"
      +        },
      +        {
      +          "additionalProperties": true,
      +          "properties": {
      +            "media_id": {
      +              "type": "string"
      +            },
      +            "title": {
      +              "description": "Title LinkedIn shows on a document (PDF carousel) post, trimmed, up to 200 characters. Without one, LinkedIn shows the uploaded file name. Also sent as the title of a LinkedIn video; other platforms ignore it.",
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            "type": {
      +              "enum": [
      +                "image",
      +                "video",
      +                "gif",
      +                "document"
      +              ],
      +              "type": "string"
      +            },
      +            "url": {
      +              "format": "uri",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "maxItems": 10,
      +    "type": "array"
      +  }
      +}
  2. Changed4 schema fields changed
    • addedInput schema / properties / idempotency_key / example
      Added value: +"order-123:create-post:v1"
    • addedInput schema / properties / idempotency_key / maxLength
      Added value: +255
    • addedInput schema / properties / idempotency_key / minLength
      Added value: +1
    • addedInput schema / properties / idempotency_key / pattern
      Added value: +"^[\\x21-\\x7E]{1,255}$"
  3. Changed1 schema field changed
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."New value: +"Workspace to operate in: the `id` of a workspace returned by aidelly_list_workspaces. Optional for read operations; required when creating content."
  4. Changed1 schema field changed
    • changedInput schema / properties / payload / description
      Previous value: -"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace."New value: +"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace.\n`media[].type` accepts `image`, `video`, `gif`, or `document`, and is resolved from the media-library row when omitted (`application/pdf` → `document`).\nLinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as `media[].type = \"document\"`; documents on any other platform are rejected with `422`.\n"
  5. Changed2 schema fields changed
    • addedInput schema / properties / account_id / description
      Added value: +"A provider account ID from `/accounts`, or a social connection UUID selector."
    • addedInput schema / properties / payload / description
      Added value: +"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace."
  6. Changed1 schema field changed
    • addedInput schema / properties / workspace_id / description
      Added value: +"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."
  7. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only cover the generic safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the description carries the interesting burden and does it well: it discloses automatic publishing, pending-approval state under Team Approvals, per-platform rejection of documents with a 422, and retry semantics via idempotency_key. Note the mild tension with idempotentHint=false, though the retry-safety is keyed on an explicit idempotency_key parameter rather than being unconditional, so this reads as nuance rather than contradiction. What is not disclosed is the response shape (e.g., the created scheduled post's id/status).

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?

Four sentences, front-loaded with the core action, then escalating detail on approvals, platform constraints, and retry safety — a sensible ordering. Some redundancy: the LinkedIn PDF limits and document-title behavior are repeated almost verbatim from the payload schema description, so a sentence partially duplicates structured data.

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

Completeness3/5

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

For a 12-parameter, nested-object mutation with no output schema, the description covers the highest-risk behavioral facts (auto-publish, approval hold, platform rejection, retry safety) but omits what a caller gets back, whether an unscheduled/draft state is reachable, and the valid platform set. Adequate to avoid the main mistakes, not complete.

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

Parameters3/5

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

Schema coverage is only 42%, so the description should compensate more than it does. It adds real meaning for two params — recycle ('up to 3 reposts and 3 reshares', refining a maxItems of 6) and idempotency_key (repeat calls return the original result) — but leaves platform (no allowed values), brand_id, timezone default behavior, account_id vs workspace_id, and scheduled_at format/timezone interaction entirely to the bare schema. Partial compensation for a 12-parameter tool.

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

Purpose4/5

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

States a specific verb+resource with a distinguishing scope qualifier: 'Schedule a post for a future time', which separates it from create_post and create_draft. It also names two distinctive capabilities (auto-recycle entries, approval gating). It never names a sibling tool explicitly, so the agent must infer the create_post vs create_scheduled_post boundary from the word 'schedule' alone.

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?

Useful conditional context is present: approval gating when Team Approvals is on, and the LinkedIn-only rule for document posts. However, there is no explicit routing guidance such as when to choose this over aidelly_create_post, aidelly_bulk_create_posts, or aidelly_create_draft, and no stated prerequisite (e.g., that workspace_id is required when creating content, which is only in the schema).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.