# ReelsFarm MCP 3.0 migration

MCP server 3.0.0 uses contract version 2026-08-22.1.

The public tool names keep the `reelsfarm_` prefix. Publishing target aliases from MCP 2.x are removed.

## Publishing target changes

Use `connectionId` for every native or integration account target.

| MCP 2.x input | MCP 3.0 input |
| --- | --- |
| `socialConnectionId` | `connectionId` |
| `externalSocialAccountId` | `connectionId` |
| `tiktokPostMode: "DRAFT"` | `tiktokPublishMode: "DRAFT"` |
| `tiktokPostMode: "PRIVATE"` | `tiktokPublishMode: "DIRECT"` and `tiktokPrivacyLevel: "SELF_ONLY"` |
| `tiktokPostMode: "PUBLIC"` | `tiktokPublishMode: "DIRECT"` and `tiktokPrivacyLevel: "PUBLIC_TO_EVERYONE"` |

Do not send `tiktokPrivacyLevel` with `tiktokPublishMode: "DRAFT"`.

## Publishing preflight

Call `reelsfarm_preflight_publishing` before a schedule or publish request.

```json
{
  "contentType": "UGC_VIDEO",
  "contentId": "video_uuid",
  "publishFormat": "VIDEO",
  "connectionIds": ["connection_uuid"]
}
```

The result contains typed media details and one readiness result for each selected account. ReelsFarm repeats this preflight before execution. A Review-mode confirmation can fail if the account, permissions, media, entitlement, or schedule time changed after preparation.

## Strict objects and outputs

MCP 3.0 rejects undeclared input fields. This includes publishing targets, slideshow settings, automation images, and automation publish rules.

Every public tool advertises a strict output object. ReelsFarm validates successful structured results against that output schema before returning them.

## Dashboard-only actions

Use the ReelsFarm dashboard for billing setup, social OAuth setup, integration credentials, MCP credentials, webhook destinations, and permanent deletion. These actions are not discoverable public MCP tools.

## Pending MCP 2.x confirmations

The server can decode unexpired MCP 2.x publishing confirmations internally. New tool calls must use the MCP 3.0 input contract.
