MISSINdevelopersLog in

MCP

Posts tools

MCP tools for posts: what each does, the key level it needs, the operation it runs and its input schema. Part of the MISSIN public API: call it with an API…

An operation tool runs one API operation and takes its variables, so the operation's page says what each accepts. Two differences: the server fills in workspaceId and updatedBy, and campaignId, partnerId, formId, discountCodeId, socialNetworkId, waitlistId, incentiveId, channelId also take the record's name. A task tool chains several operations and is described here in full. Every tool's input schema, keyed by tool name: posts.schema.json.

Task tools

assign_posts_to_campaign

Access: Write · Kind: task · Toolset: core · Hints: idempotent

File posts into a campaign: give post ids, or a partner and an optional published-at window. Needs_choice when the campaign or partner name is ambiguous. Posts are filed in batches of 100, not atomically: if a batch fails the earlier batches stay filed, the error says how many, and running it again is safe. Returns { campaignId, matched, updated }.

Try: “Add @test11's posts from March to my spring campaign.”

Input schema
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "campaign": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "Campaign UUID or name (never the default campaign); null clears the posts' campaign."
    },
    "postIds": {
      "description": "These posts. Or give partner (and optionally a date window) instead.",
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "partner": {
      "description": "Partner UUID, name or @handle — files that partner's posts.",
      "type": "string"
    },
    "publishedFrom": {
      "description": "Only posts published at or after this instant (with a zone offset).",
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "publishedTo": {
      "description": "Only posts published before this instant (with a zone offset).",
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "limit": {
      "default": 200,
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "campaign"
  ]
}

Operation tools

ToolOperationAccessToolsetHintsWhat it does
delete_partner_postDeletePartnerPostWritepostsdestructiveDelete one captured post. Irreversible.
fetch_twitter_post_repliesFetchTwitterPostRepliesWritepostsdestructiveFetch the replies to an X/Twitter post; spends capture credits. Spends capture credits and cannot be priced ahead: tell the merchant it spends credits and get a yes before calling.
get_postPostDetailReadcoreread-only, idempotentGet one post by id (rowId) with metrics, campaign, partner, attributions and an optional metric series. Totals and detail are off unless requested: set withSeries to true to include them.
get_post_group_totalsPostGroupTotalsReadpostsread-only, idempotentPost counts matching a filter, grouped by validity, platform and campaign.
get_post_repliesPostRepliesReadpostsread-only, idempotentList the captured replies to one post.
get_posts_heldPostsHeldReadpostsread-only, idempotentAttributed orders held by the given posts.
get_post_siblingsPostSiblingsReadpostsread-only, idempotentList cross-posts of the same content on other platforms (by crosspost group id).
list_postsPostsListReadcoreread-only, idempotentList partner posts with filter, sort and cursor paging: partner, campaign, metrics and validity. Totals and detail are off unless requested: set withSeries to true to include them.
get_retention_drop_off_medianRetentionDropOffMedianReadpostsread-only, idempotentMedian day after publishing at which posts stop gaining views.
set_partner_post_campaignSetPartnerPostCampaignWritepostsidempotentFile posts under a campaign, or clear their campaign with campaignId null.
set_partner_post_partnerSetPartnerPostPartnerWritepostsidempotentReassign posts to a different partner and rescore attribution.
set_partner_post_placement_windowSetPartnerPostPlacementWindowWritepostsidempotentSet the in-video placement window, in seconds, of a YouTube post.
set_partner_post_settingsSetPartnerPostSettingsWritepostsdestructive, idempotentSet a post's tracking and sponsored flags. Commits recurring spend: scheduled captures that follow from this spend credits on every run, so confirm with the merchant first.
set_partner_post_validitySetPartnerPostValidityWritepostsidempotentSet a post's review state: approved, rejected, pending, change requested or needs review.
get_tracked_postsTrackedPostsReadpostsread-only, idempotentCount of posts with metric tracking on, by post type.

For AI agents: a markdown index of this site is at /llms.txt, and every page is available as markdown by adding .md to its URL.