Skip to main content
Glama

Move or cancel scheduled posts

ig_schedule_change
Destructive

Moves (reschedule with a new when) or cancels posts that ig_publish queued and that have not started publishing yet (status queued in ig_schedule). A post that is processing or published cannot be changed, and published posts cannot be deleted through the API. Only change what the user asked for.

Two steps:

  1. A call without confirm_code sends nothing. It returns a preview (account, exact text, what it applies to, warnings) and a one-time confirm_code valid for about 10 minutes.

  2. A call with the same arguments plus that confirm_code sends, once. It is meant for after the user has approved the preview. Changing any argument needs a new preview. Needs a paid Buzzfy plan.

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": {
      "changes": "<changes>"
    },
    "name": "ig_schedule_change"
  }
}

Input Schema

NameRequiredDescriptionDefault
changesYesThe posts to move or cancel. One preview and one confirm_code cover them all.
confirm_codeNoThe code from this tool's preview. Without it the call only previews; with it and every other argument unchanged, the call sends. Meant for after the user has approved the preview.

Output Schema

NameRequiredDescriptionDefault
cardYesData for Buzzfy's preview card; null when the tool has no card data
toolYesThe tool that made this result
statusYespreview: nothing sent, confirm_code issued · nothing_to_send: every target is blocked · done / partial: executed · in_progress: this code's earlier call has not finished · needs_file: a ChatGPT file id came without its file, so the card asks the user to choose it; no confirm_code yet
accountYesThe Instagram account it acts as, as @username
fix_urlYesA link that fixes what blocks this (reconnect, permission or plan), when there is one
summaryYesOne line on what this does (preview) or did (after confirm); show it to the user
targetsYesEach item it acts on, with its exact text and status
replayedYestrue when this confirm_code had already been used; nothing new was sent
warningsYesWarnings for the whole call; show them with the preview
next_stepYesWhat to do next, written for you
avatar_urlYesThe account's profile picture, for the preview card
expires_atYesISO time the confirm_code stops working
needs_fileNoPositions (from 0) of the media items that still need a file the user chooses in the card
confirm_codeYesSet only on a preview with something ready: pass it back, with the same arguments, after the user agrees
code_rejectedYesSet when a confirm_code was sent but could not be used; this result is then a fresh preview

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / card / anyOf
      Previous value: -[
      -  {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for a new post",
      -        "properties": {
      -          "cover_url": {
      -            "description": "Short-lived link to the reel's cover image, for the card to show it",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "media": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "label": {
      -                  "type": "string"
      -                },
      -                "preview_url": {
      -                  "description": "Short-lived link to a Buzzfy upload, for the card to show it",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "type": {
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "type",
      -                "label",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "options": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "platform": {
      -            "description": "Where it is posted, when not Instagram",
      -            "type": "string"
      -          },
      -          "post_type": {
      -            "type": "string"
      -          },
      -          "type": {
      -            "const": "post",
      -            "type": "string"
      -          },
      -          "when": {
      -            "description": "ISO time it is scheduled for; null means as soon as it is confirmed",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "post_type",
      -          "when",
      -          "media",
      -          "options"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for moving or cancelling scheduled posts",
      -        "properties": {
      -          "items": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "caption": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "from": {
      -                  "description": "ISO time it is scheduled for now",
      -                  "type": "string"
      -                },
      -                "index": {
      -                  "maximum": 9007199254740991,
      -                  "minimum": -9007199254740991,
      -                  "type": "integer"
      -                },
      -                "post_type": {
      -                  "type": "string"
      -                },
      -                "preview_type": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "image",
      -                        "video"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "preview_url": {
      -                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "to": {
      -                  "description": "ISO time it moves to; null means it is cancelled",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "index",
      -                "post_type",
      -                "caption",
      -                "from",
      -                "to",
      -                "preview_type",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "type": {
      -            "const": "schedule",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "items"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "additionalProperties": {},
      +        "description": "What the preview card shows for a new post",
      +        "properties": {
      +          "cover_url": {
      +            "description": "Short-lived link to the reel's cover image, for the card to show it",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "media": {
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "label": {
      +                  "type": "string"
      +                },
      +                "preview_url": {
      +                  "description": "Short-lived link to a Buzzfy upload, for the card to show it",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "type": {
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "type",
      +                "label",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "options": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "platform": {
      +            "description": "Where it is posted, when not Instagram",
      +            "type": "string"
      +          },
      +          "post_type": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "post",
      +            "type": "string"
      +          },
      +          "when": {
      +            "description": "ISO time it is scheduled for; null means as soon as it is confirmed",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "post_type",
      +          "when",
      +          "media",
      +          "options"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": {},
      +        "description": "What the preview card shows for moving or cancelling scheduled posts",
      +        "properties": {
      +          "items": {
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "caption": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "from": {
      +                  "description": "ISO time it is scheduled for now",
      +                  "type": "string"
      +                },
      +                "index": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                },
      +                "post_type": {
      +                  "type": "string"
      +                },
      +                "preview_type": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "image",
      +                        "video"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "preview_url": {
      +                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "to": {
      +                  "description": "ISO time it moves to; null means it is cancelled",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "index",
      +                "post_type",
      +                "caption",
      +                "from",
      +                "to",
      +                "preview_type",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "schedule",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "items"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / code_rejected / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "message": {
      -        "type": "string"
      -      },
      -      "reason": {
      -        "enum": [
      -          "malformed",
      -          "args_changed",
      -          "invalid",
      -          "expired",
      -          "targets_changed"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "reason",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "message": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "enum": [
      +          "malformed",
      +          "args_changed",
      +          "invalid",
      +          "expired",
      +          "targets_changed"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "reason",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / targets / items / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / targets / items / properties / post / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "caption": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "text": {
      -                "type": "string"
      -              },
      -              "truncated": {
      -                "const": true,
      -                "type": "boolean"
      -              },
      -              "untrusted": {
      -                "const": true,
      -                "type": "boolean"
      -              }
      -            },
      -            "required": [
      -              "untrusted",
      -              "text"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "kind": {
      -        "description": "reel, post or carousel",
      -        "type": "string"
      -      },
      -      "thumbnail_url": {
      -        "description": "Temporary Instagram CDN link to the post's cover",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "kind",
      -      "caption",
      -      "thumbnail_url"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "caption": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {},
      +            "properties": {
      +              "text": {
      +                "type": "string"
      +              },
      +              "truncated": {
      +                "const": true,
      +                "type": "boolean"
      +              },
      +              "untrusted": {
      +                "const": true,
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "untrusted",
      +              "text"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "description": "reel, post or carousel",
      +        "type": "string"
      +      },
      +      "thumbnail_url": {
      +        "description": "Temporary Instagram CDN link to the post's cover",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "kind",
      +      "caption",
      +      "thumbnail_url"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / targets / items / properties / target_author / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "text": {
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "const": true,
      -        "type": "boolean"
      -      },
      -      "untrusted": {
      -        "const": true,
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "untrusted",
      -      "text"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "text": {
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "untrusted": {
      +        "const": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "untrusted",
      +      "text"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / targets / items / properties / target_text / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "text": {
      -        "type": "string"
      -      },
      -      "truncated": {
      -        "const": true,
      -        "type": "boolean"
      -      },
      -      "untrusted": {
      -        "const": true,
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "untrusted",
      -      "text"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {
      +      "text": {
      +        "type": "string"
      +      },
      +      "truncated": {
      +        "const": true,
      +        "type": "boolean"
      +      },
      +      "untrusted": {
      +        "const": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "untrusted",
      +      "text"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed24 schema fields changed
    • removedOutput schema / properties / account / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / account / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / avatar_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / avatar_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / card / anyOf
      Previous value: -[
      -  {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for a new post",
      -        "properties": {
      -          "cover_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Short-lived link to the reel's cover image, for the card to show it"
      -          },
      -          "media": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "label": {
      -                  "type": "string"
      -                },
      -                "preview_url": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Short-lived link to a Buzzfy upload, for the card to show it"
      -                },
      -                "type": {
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "type",
      -                "label",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "options": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "platform": {
      -            "description": "Where it is posted, when not Instagram",
      -            "type": "string"
      -          },
      -          "post_type": {
      -            "type": "string"
      -          },
      -          "type": {
      -            "const": "post",
      -            "type": "string"
      -          },
      -          "when": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "ISO time it is scheduled for; null means as soon as it is confirmed"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "post_type",
      -          "when",
      -          "media",
      -          "options"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for moving or cancelling scheduled posts",
      -        "properties": {
      -          "items": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "caption": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "from": {
      -                  "description": "ISO time it is scheduled for now",
      -                  "type": "string"
      -                },
      -                "index": {
      -                  "maximum": 9007199254740991,
      -                  "minimum": -9007199254740991,
      -                  "type": "integer"
      -                },
      -                "post_type": {
      -                  "type": "string"
      -                },
      -                "preview_type": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "image",
      -                        "video"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "preview_url": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it"
      -                },
      -                "to": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "ISO time it moves to; null means it is cancelled"
      -                }
      -              },
      -              "required": [
      -                "index",
      -                "post_type",
      -                "caption",
      -                "from",
      -                "to",
      -                "preview_type",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "type": {
      -            "const": "schedule",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "items"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "description": "What the preview card shows for a new post",
      +        "properties": {
      +          "cover_url": {
      +            "description": "Short-lived link to the reel's cover image, for the card to show it",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "media": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "label": {
      +                  "type": "string"
      +                },
      +                "preview_url": {
      +                  "description": "Short-lived link to a Buzzfy upload, for the card to show it",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "type": {
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "type",
      +                "label",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "options": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "platform": {
      +            "description": "Where it is posted, when not Instagram",
      +            "type": "string"
      +          },
      +          "post_type": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "post",
      +            "type": "string"
      +          },
      +          "when": {
      +            "description": "ISO time it is scheduled for; null means as soon as it is confirmed",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "post_type",
      +          "when",
      +          "media",
      +          "options"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "description": "What the preview card shows for moving or cancelling scheduled posts",
      +        "properties": {
      +          "items": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "caption": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "from": {
      +                  "description": "ISO time it is scheduled for now",
      +                  "type": "string"
      +                },
      +                "index": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                },
      +                "post_type": {
      +                  "type": "string"
      +                },
      +                "preview_type": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "image",
      +                        "video"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "preview_url": {
      +                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "to": {
      +                  "description": "ISO time it moves to; null means it is cancelled",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "index",
      +                "post_type",
      +                "caption",
      +                "from",
      +                "to",
      +                "preview_type",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "schedule",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "items"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / confirm_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / confirm_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / expires_at / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / expires_at / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / fix_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / fix_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / targets / items / properties / error_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / error_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / targets / items / properties / image_url / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / image_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / targets / items / properties / permalink / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / permalink / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / targets / items / properties / post / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "caption": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "text": {
      -                "type": "string"
      -              },
      -              "truncated": {
      -                "const": true,
      -                "type": "boolean"
      -              },
      -              "untrusted": {
      -                "const": true,
      -                "type": "boolean"
      -              }
      -            },
      -            "required": [
      -              "untrusted",
      -              "text"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "kind": {
      -        "description": "reel, post or carousel",
      -        "type": "string"
      -      },
      -      "thumbnail_url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Temporary Instagram CDN link to the post's cover"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "kind",
      -      "caption",
      -      "thumbnail_url"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "caption": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "text": {
      +                "type": "string"
      +              },
      +              "truncated": {
      +                "const": true,
      +                "type": "boolean"
      +              },
      +              "untrusted": {
      +                "const": true,
      +                "type": "boolean"
      +              }
      +            },
      +            "required": [
      +              "untrusted",
      +              "text"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "description": "reel, post or carousel",
      +        "type": "string"
      +      },
      +      "thumbnail_url": {
      +        "description": "Temporary Instagram CDN link to the post's cover",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "kind",
      +      "caption",
      +      "thumbnail_url"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / targets / items / properties / reason / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / reason / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / targets / items / properties / result_id / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / result_id / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / targets / items / properties / text / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / targets / items / properties / text / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / card / anyOf
      Previous value: -[
      -  {
      -    "oneOf": [
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for a new post",
      -        "properties": {
      -          "cover_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Short-lived link to the reel's cover image, for the card to show it"
      -          },
      -          "media": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "label": {
      -                  "type": "string"
      -                },
      -                "preview_url": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Short-lived link to a Buzzfy upload, for the card to show it"
      -                },
      -                "type": {
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "type",
      -                "label",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "options": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "post_type": {
      -            "type": "string"
      -          },
      -          "type": {
      -            "const": "post",
      -            "type": "string"
      -          },
      -          "when": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "ISO time it is scheduled for; null means as soon as it is confirmed"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "post_type",
      -          "when",
      -          "media",
      -          "options"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "description": "What the preview card shows for moving or cancelling scheduled posts",
      -        "properties": {
      -          "items": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "caption": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "from": {
      -                  "description": "ISO time it is scheduled for now",
      -                  "type": "string"
      -                },
      -                "index": {
      -                  "maximum": 9007199254740991,
      -                  "minimum": -9007199254740991,
      -                  "type": "integer"
      -                },
      -                "post_type": {
      -                  "type": "string"
      -                },
      -                "preview_type": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "image",
      -                        "video"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "preview_url": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it"
      -                },
      -                "to": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "ISO time it moves to; null means it is cancelled"
      -                }
      -              },
      -              "required": [
      -                "index",
      -                "post_type",
      -                "caption",
      -                "from",
      -                "to",
      -                "preview_type",
      -                "preview_url"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "type": {
      -            "const": "schedule",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "items"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "additionalProperties": false,
      +        "description": "What the preview card shows for a new post",
      +        "properties": {
      +          "cover_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Short-lived link to the reel's cover image, for the card to show it"
      +          },
      +          "media": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "label": {
      +                  "type": "string"
      +                },
      +                "preview_url": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Short-lived link to a Buzzfy upload, for the card to show it"
      +                },
      +                "type": {
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "type",
      +                "label",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "options": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "platform": {
      +            "description": "Where it is posted, when not Instagram",
      +            "type": "string"
      +          },
      +          "post_type": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "const": "post",
      +            "type": "string"
      +          },
      +          "when": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "ISO time it is scheduled for; null means as soon as it is confirmed"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "post_type",
      +          "when",
      +          "media",
      +          "options"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "description": "What the preview card shows for moving or cancelling scheduled posts",
      +        "properties": {
      +          "items": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "caption": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "from": {
      +                  "description": "ISO time it is scheduled for now",
      +                  "type": "string"
      +                },
      +                "index": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                },
      +                "post_type": {
      +                  "type": "string"
      +                },
      +                "preview_type": {
      +                  "anyOf": [
      +                    {
      +                      "enum": [
      +                        "image",
      +                        "video"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "preview_url": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Short-lived link to the post's first Buzzfy upload, for the card to show it"
      +                },
      +                "to": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "ISO time it moves to; null means it is cancelled"
      +                }
      +              },
      +              "required": [
      +                "index",
      +                "post_type",
      +                "caption",
      +                "from",
      +                "to",
      +                "preview_type",
      +                "preview_url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "schedule",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "items"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / confirm_code / description
      Previous value: -"Leave out on the first call (you get a preview and a code). Send the code only after the user has seen the preview and said yes, with every other argument unchanged."New value: +"The code from this tool's preview. Without it the call only previews; with it and every other argument unchanged, the call sends. Meant for after the user has approved the preview."
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations: describes the mandatory two-step preview/confirm flow, that a call without confirm_code 'sends nothing', that the confirm_code is one-time and valid ~10 minutes, that mutating any argument invalidates the preview, and that the confirm call executes once. This is exactly the behavioral context destructiveHint=true alone cannot convey.

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 core capability, then a numbered two-step block that reads cleanly. The aside about published posts not being deletable is slightly tangential but earns its place by preventing a wrong attempt.

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 destructive, two-phase mutation tool, the description covers eligibility constraints, the confirmation protocol, argument-change invalidation, and plan requirements. With an output schema present, no return-value explanation is needed, and nothing an agent needs before calling is missing.

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 schema already defines changes, action, job_id, when, and confirm_code. The description still adds real semantic value by framing confirm_code as an approval artifact tied to identical arguments and by noting one preview/confirm_code covers the whole batch.

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?

Opens with a specific verb pair and resource ('Moves ... or cancels posts that ig_publish queued'), and pins the exact scope ('status queued in ig_schedule'). It is unmistakably distinct from ig_schedule (which lists the queue) and from social_schedule_change (a different surface).

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?

Explicitly states when the tool applies and when it does not: processing or published posts cannot be changed, and published posts cannot be deleted via the API. It also scopes behavior to 'Only change what the user asked for' and gives the gating condition of a paid Buzzfy plan.

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.