Skip to main content
Glama
Instagram Account MCP

Instagram Account MCP

by joinhackyard

Publish a story

publish_story

Publishes or schedules an Instagram Story from an image or video (3–60s, up to 100MB), requiring user confirmation before posting.

Instructions

Publish (or schedule) a story from an image or a video (3-60 s, up to 100 MB). Stories last 24 hours. Stickers, links, polls and music can't be added through the API. Needs the user's confirmation.

Input Schema

NameRequiredDescriptionDefault
fitNoReframing when converting: keep (only clamp into the allowed range), crop (fill the frame from the centre) or blur (whole frame over a blurred fill). Reels/stories target 9:16.
urlNoPublic http(s) URL of the file instead of a local path.
typeNoOnly needed when the file name does not tell.
accountNoWhich connected account: @username or Instagram user ID. Omit to use the default account.
prepareNoConvert to Instagram's specs with ffmpeg first (JPEG, H.264/AAC MP4, allowed aspect ratio and length). Default true.
file_pathNoPath to the file on this computer, e.g. ~/Pictures/launch.jpg.
user_tagsNoPeople to tag in the media.
publish_atNoSchedule: ISO 8601 date-time with timezone, at least 10 minutes and at most 75 days ahead. Instagram has no API scheduling, so this computer (or the background service) publishes it then; if the computer is off and the time passes by more than 2 hours, it is not published late (reschedule or resume_publish).
wait_secondsNoWait this long for publishing before returning; then follow get_publish_status.
confirmation_tokenNoOnly after the user approved: the confirmation_token returned by the previous call with identical arguments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare write, open-world, non-idempotent, non-destructive, so the bar is lower; the description still adds real behavior: the 24-hour ephemerality, the API-surface limitations (no stickers, links, polls, music), and the human-approval requirement. Scheduling side effects and the 'computer must be on' caveat live only in the schema, which is acceptable given full coverage.

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?

Four short sentences, front-loaded with the action, then limits, then lifetime, then API restrictions, then the confirmation gate. No filler and nothing repeated from the schema.

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?

Given 10 optional parameters, a two-step confirmation flow, scheduling and a status-polling follow-up, the description covers the essentials an agent needs before the first call. It could have mentioned the confirmation round-trip and the get_publish_status follow-up, but the schema documents both, so the gap is minor.

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%, so the schema already explains fit, prepare, publish_at, wait_seconds and confirmation_token in detail. The description adds the media envelope (3-60 s, 100 MB) that constrains which file_path/url values are valid, which is a modest but genuine value-add over the schema rather than a rephrasing of it.

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?

States a specific verb+resource (publish a story) plus the accepted media types and limits (image or 3-60 s video, up to 100 MB), and 'Stories last 24 hours' distinguishes it from the persistent publish_photo/publish_reel siblings. It stops short of naming those siblings explicitly, so the differentiation is inferential rather than spelled out.

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?

Clear context: use it to publish now or to schedule, and it flags the user-confirmation prerequisite, which is the key gate before calling. It gives no exclusions, though — nothing says when to prefer publish_reel over publish_story, or that prepare_media can be used first rather than relying on the prepare flag.

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