Skip to main content
Glama

Get a post's status

get_post_status
Read-onlyIdempotent

Returns what the PLATFORM says happened to a post, plus post_id once it is live and fail_reason when it is not. Statuses: prepared (staged, nothing sent), scheduled (due at scheduled_at; schedule_custody says whether aicut or the platform holds it), submitted (handed to aicut's YouTube or Instagram poster, nothing confirmed), publishing (TikTok took the job and is fetching the file), posted, failed and unconfirmed. unconfirmed MEANS WE DO NOT KNOW and is terminal: the post was sent and its outcome never learned, so it may be live under the user's name: tell them to check the account and do NOT publish it again (it could double-post). WHEN: after publish_post. posted is reported only when the platform confirms the post exists: publishing or submitted has not gone out yet, however long it has been. TIMING: TikTok usually finishes well under a minute; YouTube and Instagram run inside aicut's poster and commonly take one to five minutes. Poll about every 10 seconds, with no timers or background shells. 403 insufficient_scope = the user's connection lacks the social:publish permission: not a bad video_id or account_id, and a retry cannot fix it. Tell them to disconnect and reconnect aicut at https://www.aicut.pro/account/settings#connections (the full steps are in prepare_post's REFUSALS), then STOP. A 403 here says nothing about the POST: reading a status takes the same permission as making one, so a post that went out stays live and cannot be read back until the user reconnects. Read-only: posts nothing.

Input Schema

NameRequiredDescriptionDefault
post_idYesThe `id` returned by `prepare_post`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With readOnlyHint already declared, the description still adds substantial non-annotation context: the full terminal/non-terminal status vocabulary, the semantic trap that `posted` only appears on platform confirmation, `unconfirmed` being terminal and potentially live under the user's name, and the timing/polling profile (TikTok sub-minute, YouTube/Instagram 1–5 min, poll every 10s, no background timers). The 403 `insufficient_scope` analysis — that a read takes the same permission as a publish, so a live post stays live but cannot be read back until reconnect — is behaviorally important and not derivable from 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?

Front-loaded with the most important fact (what the platform reports) before the status dictionary, and statuses are laid out as a scannable enumeration. It is dense and long for a single-parameter read tool — the 403 passage and the reference to `prepare_post`'s REFUSALS could be trimmed — but nearly every sentence carries operational value.

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?

There is no output schema, so the description must explain return values, and it does: it enumerates every status value, explains the auxiliary fields (`post_id`, `fail_reason`, `scheduled_at`, `schedule_custody`), and describes timing expectations and polling cadence. An agent has everything needed to call it correctly and to interpret and act on the result.

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% and there is a single parameter, so the schema already documents `post_id` and its origin. The description confirms the identifier is the `post_id` returned by `prepare_post` but adds no format or validation detail beyond what the schema states. Baseline 3 applies when the schema does the heavy lifting.

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 opens with a precise verb+resource+scope: it returns what the platform reports about a post, plus `post_id` when live and `fail_reason` when not. It is immediately distinguishable from the sibling `publish_post` (which creates the post) and `prepare_post` (which stages it). An agent knows exactly what this returns without opening the schema.

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?

It states WHEN explicitly: 'after `publish_post`', and names `prepare_post` as the origin of the `post_id`. It also routes the agent through failure paths: on `unconfirmed` tell the user to check the account and do not republish (double-post risk), and on 403 `insufficient_scope` stop and instruct a reconnect. There is no explicit 'do not use this for X' exclusion, which keeps it just short of a 5.

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.

Directories

Listed in ChatGPT · aicut

Last observed