Skip to main content
Glama

ig_publish_photo

Publish an Instagram photo by creating a media container then publishing it; requires a public HTTPS JPEG URL.

Instructions

Publish a photo to Instagram. Two-step process: creates container then publishes. Requires image_url (publicly accessible HTTPS URL).

Input Schema

NameRequiredDescriptionDefault
captionNoPost caption (max 2200 chars)
alt_textNoAlt text for accessibility
image_urlYesPublic HTTPS URL of the image (JPEG only)
user_tagsNoJSON array of user tags: [{username, x, y}]
location_idNoFacebook Page location ID
is_ai_generatedNoApply the AI info label to the published media
is_paid_partnershipNoApply the Paid partnership label
branded_content_sponsor_idsNoInstagram user IDs of up to two brand partners

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv2.2.2
    • addedInput schema / properties / branded_content_sponsor_ids
      Added value: +{
      +  "description": "Instagram user IDs of up to two brand partners",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 2,
      +  "type": "array"
      +}
    • addedInput schema / properties / is_ai_generated
      Added value: +{
      +  "description": "Apply the AI info label to the published media",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / is_paid_partnership
      Added value: +{
      +  "description": "Apply the Paid partnership label",
      +  "type": "boolean"
      +}
  2. First observedv2.0.1

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the container-then-publish flow and the public-HTTPS prerequisite, which is valuable, but says nothing about permissions/scopes required, rate or posting limits, whether the container must be polled before publish, or what happens on partial failure.

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?

Three short sentences, front-loaded with the verb and resource, zero filler. The third sentence slightly duplicates the schema's own description of image_url, which is the only wasted effort.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter publish tool with no annotations and no output schema, the description omits what the call returns (a media/container ID) and how that ID relates to the sibling status-check tool. The workflow note is helpful but the operational picture is incomplete.

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%, so every parameter is already documented with its own constraints (caption length, JPEG-only, tag JSON shape, max two sponsors). The description only restates image_url's HTTPS requirement, adding no new parameter semantics; 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.

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 photo to Instagram'), which separates it from ig_publish_video, ig_publish_carousel, ig_publish_reel and ig_publish_story in the sibling list. However, it never explicitly contrasts itself with those siblings or states the format constraints that distinguish them, so the differentiation is implicit from the noun alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Two-step process: creates container then publishes' line implies when the tool is applicable and reveals an internal workflow, and 'Requires image_url (publicly accessible HTTPS URL)' states a hard prerequisite. There is no when-not guidance, no mention of publishing limits, and no pointer to ig_get_container_status for checking container readiness.

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