Skip to main content
Glama
instagram-mcp-server

instagram-mcp-server

by qaassimq

Publish Reel

instagram_publish_reel

Publishes a video from a public HTTPS URL as an Instagram Reel and waits for processing before making it live.

Instructions

Publish a video as a Reel.

Reels are the only way to publish video to the feed — Instagram converted standalone feed video to Reels. The video must be at a public HTTPS URL; Meta downloads and transcodes it, which takes time, so this tool waits for processing before publishing.

If processing outlasts wait_seconds the tool returns the container ID instead of failing; finish with instagram_get_container_status then instagram_publish_container.

Specs: MOV or MP4, 3s-15min, aspect ratio 0.01:1 to 10:1, up to 1GB.

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": {
      "video_url": "<video_url>"
    },
    "name": "instagram_publish_reel"
  }
}

Input Schema

NameRequiredDescriptionDefault
captionNoCaption text, up to 2200 characters. Hashtags and @mentions work inside the caption. Instagram counts a maximum of 30 hashtags.
cover_urlNoPublic HTTPS URL of a custom cover image. Overrides thumb_offset.
user_tagsNoPeople to tag. Images need x and y coordinates; videos and reels take username only. The tagged account must be public.
video_urlYesPublic HTTPS URL of an MP4 or MOV video
account_idNoInstagram professional account ID. Omit to use the token's own account.
audio_nameNoName for the audio track attributed to this reel
location_idNoFacebook Page ID of a location to tag
thumb_offsetNoMilliseconds into the video to use as the thumbnail
wait_secondsNoSeconds to wait for video processing before giving up and returning the container ID. 0 publishes immediately (images only). Default 60.
collaboratorsNoUp to 3 public usernames invited as collaborators
share_to_feedNoWhether the reel also appears in the main feed grid. Defaults to Instagram's setting.
is_ai_generatedNoMark the content as AI-generated

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, idempotent=false, openWorld=true, so mutation and open-world risk are known. The description usefully adds that Meta downloads and transcodes asynchronously and that the tool blocks for up to wait_seconds rather than failing — behavior annotations cannot express — but it says nothing about permission scope, rate limits, or irreversibility of a published post.

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 action, then the platform rationale, then the failure fallback, then a compact specs line — well ordered and short for a 12-parameter tool. Minor redundancy: the public HTTPS requirement is repeated from the schema's video_url description.

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 12-parameter, no-output-schema publish tool, the description covers the asynchronous processing model, the timeout fallback chain, and media acceptance constraints — the three things an agent must know before calling. Remaining details (caption limits, tagging, collaborators) are fully documented in the schema.

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 coverage is 100%, so the baseline is 3; the description earns above that by supplying validation constraints for video_url (MOV or MP4, 3s-15min, aspect ratio 0.01:1 to 10:1, up to 1GB) and the public-HTTPS requirement, none of which are encoded in the schema.

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?

"Publish a video as a Reel" gives a specific verb and resource, and the follow-up sentence clarifies the platform constraint that Reels are the only feed-video path, which disambiguates it from the image/story/carousel publish siblings.

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 states the condition under which the tool cannot complete in one call and explicitly routes the agent: if processing outlasts wait_seconds, finish with instagram_get_container_status then instagram_publish_container. That is an explicit alternative path, not just implied usage.

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