Skip to main content
Glama

set_post_status

Record a session's LinkedIn, X, YouTube, or Shorts post as draft, ready, scheduled, or posted—including scheduled time or live URL—to track progress and mark it published.

Instructions

Record what you did on LinkedIn or X (platform=x) for a session's post. status=scheduled after you scheduled it (records the time and text you scheduled, so later changes show up as an action); status=posted with url once it is live (also marks the session published); ready to undo. The user marks posts ready in the app; only set ready or draft when asked. A post you were asked to schedule that has no time: pass at, the time you picked on the platform.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
atNoThe time it goes out (or went out), ISO 8601 with offset, e.g. 2026-09-29T09:32:00-07:00. Pass it with status=scheduled when the post has no time yet or you scheduled it for another time: the post takes this time. Default for posted: now.
tzNoOptional IANA zone for at, e.g. America/Los_Angeles. Default: the post's zone, else this Mac's.
urlNoLink to the live post (status=posted).
statusYesdraft, ready, scheduled or posted.
sessionYesSession as 'Project/folder', an absolute path, or its id (from get_session). An old path still works after a rename or move.
platformNoWhich post of the session: linkedin (default, posts/linkedin.md), x (posts/x.md), youtube (the long wide video: title + description, posts/youtube.md) or vertical (one vertical video and caption for TikTok, Instagram Reels and YouTube Shorts, posts/vertical.md).
first_comment_postedNotrue after you posted first_comment under the live post.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the readOnly=false annotation, the description discloses non-obvious side effects: status=posted 'also marks the session published', scheduled records the time and text so later changes appear as an action, and the change is reversible ('ready to undo' – consistent with destructiveHint=false). This is meaningful behavioral context the annotations alone don't convey.

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

Conciseness3/5

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

The action is front-loaded, but the prose is dense with stacked parentheticals ('records the time and text you scheduled, so later changes show up as an action') and the phrase 'ready to undo' is ambiguous about what is actually undoable. Every clause carries information, but readability suffers mildly.

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 7-parameter mutation tool with no output schema, it covers the transitions, the 'at' fallback, the publish side effect, and reversibility. It omits mention of parameters like tz and first_comment_posted (schema covers those) and doesn't describe the response, but that is a minor gap given the schema's completeness.

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 100%, so the baseline is 3, but the description adds real signal by linking parameter choices to situations ('pass at, the time you picked on the platform', 'status=posted with url once it is live', platform=x). It stays consistent with the schema-stated defaults rather than restating them.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Record what you did on LinkedIn or X for a session's post') and names the tool's role in the post lifecycle, distinguishing it from siblings like set_post and set_published. It is clear, though the framing is a bit colloquial and never states directly that this tool writes/updates a status field.

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?

It gives explicit conditional routing: use status=scheduled after scheduling, status=posted with url once live, and it explicitly says when NOT to act freely ('only set ready or draft when asked', 'the user marks posts ready in the app'). It also tells the agent to pass 'at' when a scheduled post has no time.

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