Skip to main content
Glama
Social MCP

Social MCP

by ituzov

threads_publish_image

Publishes one image to Threads after account, image, and caption approval, using a public HTTP(S) URL with optional caption and alt text. Local files and private URLs are unsupported.

Instructions

Publish one image only after the user approves the account, image and caption.

Requires threads_content_publish. Meta downloads image_url from a public HTTP(S) server; local files and private URLs will not work. URL, caption and alt_text are sent unchanged. Caption and alt_text are optional. Processing takes about 30 seconds. Do not use this tool to test access. Returns post_id after confirmed publication. This action is not idempotent. After a timeout, cancellation or unknown outcome, check threads_list_posts before attempting another publication to avoid duplicates.

Input Schema

NameRequiredDescriptionDefault
textNo
alt_textNo
image_urlYes
account_idYes

Output Schema

NameRequiredDescriptionDefault
post_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the required OAuth scope, the hard constraint that Meta fetches image_url from a public HTTP(S) server, ~30 seconds of processing latency, pass-through of URL/caption/alt_text without transformation, and post_id as the confirmed return. The non-idempotency note reinforces idempotentHint=false with actionable recovery guidance (check threads_list_posts after timeout/cancel/unknown outcome).

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

Conciseness5/5

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

Front-loads the purpose and the approval precondition, then moves through constraints, side effects and recovery in a logical order. Every sentence carries operational information; nothing is padding, and the short 'Processing takes about 30 seconds' / 'This action is not idempotent' lines are deliberately scannable.

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 one-shot publishing mutation with an output schema, the description covers the gaps structured fields cannot: auth scope, external URL fetchability, latency, non-idempotency and duplicate-avoidance workflow. An agent has everything needed to decide, call, and safely recover.

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?

With 0% schema description coverage the description must carry the load, and it does add real meaning: image_url must point at a public server fetched by Meta, and caption/alt_text are optional and sent unchanged. It does not explain account_id (the ThreadsID pattern reference) or note the 500/1000 character caps, and it calls the 'text' parameter 'caption', leaving a small naming mismatch for the agent to resolve.

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 ('Publish one image') plus an explicit cardinality constraint ('one image only'), which separates it cleanly from threads_publish_carousel, threads_publish_text and threads_quote_post. The precondition clause ('only after the user approves the account, image and caption') further pins down the exact operation.

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 when-to-use (after user approval of account, image and caption), an explicit when-not ('Do not use this tool to test access'), and a named fallback for the ambiguous-outcome case: check threads_list_posts before retrying. The external prerequisite (threads_content_publish scope) is also stated.

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