Skip to main content
Glama

Repost a post

sprkly_repost

Post a copy of a post that already went out, as a new scheduled post. It is the same as Repost in the app: the same plan, post cap, X cap and media checks. One new post per account; the original stays as it is. Only a post that went out (posted). A failed post is never sent again: one that may already be live is refused with may_be_live, and any other failed post with failed_not_reposted, so tell the user why it failed and let them decide. A photo or video deleted from sprkly is refused with media_expired. A copy already waiting to go out on that account is refused with already_queued and its id: do not call again. Every paid plan: Free gets upgrade_required. Confirm the time and the accounts with the user first, and only when they ask.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "post_id": "<post_id>"
    },
    "name": "sprkly_repost"
  }
}

Input Schema

NameRequiredDescriptionDefault
post_idYesThe id of the post that went out.
profile_idsNoThe accounts to post the copy to, from sprkly_list_profiles. Left out, it goes to the same accounts as the original.
scheduled_timeNoISO 8601 time to publish the copy. Must be in the future. Left out, it goes out on the next publisher run, about a minute from now.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-idempotent, non-destructive, open-world write, and the description adds real substance beyond that: the original post is left untouched, exactly one new post per account, the same plan/post-cap/X-cap/media checks apply, and named refusal codes (may_be_live, failed_not_reposted, media_expired, already_queued, upgrade_required) with their meanings. It stops short of describing what a successful response returns or how to inspect the resulting scheduled post, which keeps it from a 5.

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?

Purpose is front-loaded in the first clause, followed by side effects and then the refusal cases in a logical order; no sentence is filler. It is dense — the run-on error-code litany in the middle takes effort to parse — but every clause carries information the agent needs to act or to explain a failure to the user.

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?

For a mutating, non-idempotent tool with no output schema and no annotation coverage of error behavior, the description supplies exactly what is missing: what is created, what is preserved, plan gating, and a complete map of refusal codes to user-facing explanations. An agent could invoke this correctly and handle every documented failure without further context.

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 description coverage is 100% and the schema already documents all three parameters, including the defaults ('Left out, it goes to the same accounts as the original', 'next publisher run, about a minute from now') and the future-time constraint. The description adds only indirect meaning via 'One new post per account', so the schema is doing the heavy lifting and the baseline 3 applies.

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 and resource ('Post a copy of a post that already went out, as a new scheduled post') and immediately scopes it against the create-from-scratch siblings by anchoring on an existing published post. The eligibility clause 'Only a post that went out (posted)' removes any ambiguity about what input qualifies.

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 explicit when-to-use ('Only a post that went out'), explicit when-not cases (failed posts, expired media, already-queued copies), and an interaction rule ('Confirm the time and the accounts with the user first, and only when they ask') that prevents premature invocation. It also tells the agent not to retry on already_queued, which is the exact failure mode an agent would otherwise loop on.

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