Skip to main content
Glama

Schedule Feed Post

li_schedule_post

Queue a post for a specific future time, visible and cancellable until it goes out. Use this when a HUMAN has chosen the moment ("publish this Thursday 09:00"); for "post something today if there is something worth saying", use li_create_post at the moment you decide. The text is stored exactly as given and never regenerated at send time. scheduledAt is stored as provided and is NEVER silently moved into the account's activity window — a time outside it returns a warning instead, since a human may be deliberately targeting another timezone. When the account cannot post RIGHT NOW (paused, signed out or blocked by LinkedIn, plan ended) the post is still queued but the reply carries accountHold { kind, message } with the link that fixes it: tell the user, because the post fails at its time unless that is fixed first. Never move it to another account.

Input Schema

NameRequiredDescriptionDefault
textYesExact post text (max 3000 chars)
imageUrlNoPublic http(s) image URL to attach
sessionIdNoAccount id from li_list_accounts. Needed (or sessionLabel) when you have more than one account; never guessed.
scheduledAtYesISO-8601 with offset, e.g. 2026-09-03T09:00:00+05:30. Must be in the future.
sessionLabelNoWhich account posts. Required when more than one account is active.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / sessionId / description
      Added value: +"Account id from li_list_accounts. Needed (or sessionLabel) when you have more than one account; never guessed."
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say readOnly=false, destructive=false, openWorld=true) by disclosing that text is stored exactly and never regenerated at send time, that scheduledAt is never silently normalized into the activity window and instead returns a warning, and that a paused/signed-out/blocked/expired account still queues the post but returns `accountHold { kind, message }` that must be surfaced because the post will fail at its scheduled time.

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 core action and its cancellation window are front-loaded in the opening clause, and each subsequent sentence carries a distinct operational fact. It is on the long side for a five-parameter tool, but there is little filler to cut other than mild repetition around account handling.

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 no output schema, the description usefully characterizes the reply (the `accountHold` object and its kind/message shape) and the deferred-failure behavior, and it covers the account-selection constraint. It does not mention whether the response returns an identifier for later cancellation via li_cancel_scheduled_post, which is the one thing an agent would still need to infer.

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 already 100%, so the baseline is 3, but the description adds real semantics the schema lacks: text is stored verbatim with no regeneration, and scheduledAt is honored exactly even outside the activity window rather than being adjusted. It also implies sessionId/sessionLabel should target the same account rather than being moved.

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?

States a specific verb+resource+scope: 'Queue a post for a specific future time', and immediately adds the lifecycle boundary ('visible and cancellable until it goes out'). This distinguishes it from li_create_post (publish now) and li_cancel_scheduled_post without needing to open any schema.

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?

Gives an explicit when-to-use rule with a quoted trigger ('publish this Thursday 09:00' when a HUMAN has chosen the moment) and names the alternative with its own condition ('post something today if there is something worth saying' → li_create_post at the moment you decide). It also states the counterfactual constraint 'Never move it to another account.'

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.

Resources