amplifyBack to Amplify

Amplify MCP

Connect Codex or Claude to Amplify to read your brand, create and refine Content Studio posts, images, and videos, and manage publishing through your connected accounts.

Amplify is a remote MCP server over Streamable HTTP, with OAuth sign-in. Copy the Amplify server URL from Settings → Connections. The URL ends in /mcp; there is no local server package to install.

Publishing success means queued, not delivered. Check the Calendar for the final outcome. Only publish when the customer asks.

Quickstart: Codex

  1. In Amplify, open Settings → Connections and copy Amplify server URL.
  2. Replace the example URL below with the copied URL, then run:
codex mcp add amplify --url "https://YOUR-AMPLIFY-API/mcp"
codex mcp login amplify
  1. Complete browser sign-in. Choose Brand, Access, and Daily credit limit, then select Connect.
  2. Run codex mcp list, open Codex, and use /mcp to check the connection.
  3. Ask: “Use Amplify to read my workspace and Studio options. Tell me what formats I can create without starting a generation.”

The first calls should be get_workspace and get_studio_options. They cost no generation credits. Use the returned workspace ID for subsequent calls when working across brands.

See the official Codex MCP instructions for client configuration and OAuth commands. This quickstart does not require storing an Amplify password or manually copying an access token.

Quickstart: Claude

For Claude Code, copy the same server URL and run:

claude mcp add --transport http amplify "https://YOUR-AMPLIFY-API/mcp"

Open Claude Code, run /mcp, select Amplify, and follow its OAuth authentication flow. In Amplify, choose your brand, access, and daily credit limit, then select Connect. Ask Claude to read your workspace and Studio options first.

For Claude clients that expose remote custom connectors, enter the copied URL in their connector settings and complete OAuth. Client availability and organization policies can differ; use the client's current instructions. A local stdio configuration is not the connection method for this server.

See the official Claude Code MCP instructions.

Access and workspaces

SettingWhat it controls
BrandThe default workspace for calls that omit workspace_id.
View onlyRead tools, including Studio options, estimates, jobs, and remix preparation. No customer mutations or new credit reservations.
View and make changesCustomer write tools, subject to existing app permissions, plan access, credits, and publishing rules.
Daily credit limitThe most this connection can reserve in a UTC day. The consent screen starts at 500; choose a number from 0 to 1,000,000.

The chosen brand is a default, not a one-brand security boundary. workspace_id can select another workspace the signed-in user belongs to. list_workspaces returns that user's accessible workspaces. Membership is checked on every customer call, and every result identifies workspaceId and brandName. A missing or inaccessible ID is reported as not found.

OAuth uses the server's protected-resource metadata at /.well-known/oauth-protected-resource, which points the client to Amplify's authorization service. The advertised identity scopes are openid, email, and profile. View only and View and make changes are Amplify connection permissions, not extra OAuth scope strings to invent.

Connected assistants call Amplify through MCP tools. Their OAuth tokens cannot call Amplify REST routes directly. For uploads, call prepare_media_upload, send the file bytes to its signed storage URL using the returned headers, then call complete_media_upload through MCP. Do not attach the OAuth token to the storage upload.

Use Disconnect in Settings → Connections to revoke a client connection. The assistant cannot create, upgrade, or revoke its own MCP access through customer tools. Each person signs in as themselves.

Older write connections may still allow the original tools but lack expanded Studio access. New Studio write tools then return connection_reauthorization_required.

Open Settings → Connections, select Review access for the connection, read the permissions, and select Connect. This approval explicitly covers creating images and videos, uploading files, publishing now, managing posts, influencers and accounts, and deleting media, influencers or accounts. Read access alone does not enable those actions.

Face and voice permission is separate from connection access. Ask the customer explicitly before record_media_consent, use the version and purposes returned by get_studio_options, and pass confirm: true. An upload or brief is not consent. Similarly, ask whether each uploaded asset is AI-generated before publishing; never infer it from appearance or filenames.

Tool calls and results

Use the tool reference for exact argument names, required fields, defaults, enums, input examples, and result contracts. Names intentionally follow the shipped tools: schedule_post takes contentItemId and accountId, while get_content takes content_id. Do not translate one spelling into another.

All customer tools except list_workspaces accept optional workspace_id. Every customer write requires idempotency_key: a nonblank string of at most 200 characters. Read tools do not require it. Deletion tools additionally require confirm: true.

Successful ordinary calls return both text containing JSON and structuredContent with the same object:

{
  "content": [
    {
      "type": "text",
      "text": "{\"workspaceId\":\"11111111-1111-4111-8111-111111111111\",\"brandName\":\"Example brand\",\"maximumCreditCost\":35}"
    }
  ],
  "structuredContent": {
    "workspaceId": "11111111-1111-4111-8111-111111111111",
    "brandName": "Example brand",
    "maximumCreditCost": 35
  }
}

This is an illustrative estimate result, not a recorded live call. Actual cost depends on the request. Array route results appear under result; object route results keep their fields. get_workspace and list_workspaces both include the app's account/workspace response, including workspace, workspaces, plan, and creditBalance.

Background actions return jobId, status, and nextAction. Follow nextAction and poll get_job about every two seconds. Success is not a finished render. Signed media and download URLs expire; request new ones instead of storing them as permanent links.

A tool failure returns isError: true and explanatory text. Tool errors are not guaranteed to carry a separate machine-readable code field. Authentication and transport errors can instead be HTTP or JSON-RPC errors. Never equate an HTTP success with tool success.

Credits and daily limits

get_studio_options returns current credit rates. estimate_content_cost accepts the same generation settings as create_content and returns maximumCreditCost without starting work. Estimates are upper bounds; included first influencer shoots or reused media can cost less.

The current rates are 5 credits for post planning or text regeneration, 5 per fresh photo, 16 per generated video second, 20 per talking-head second, and 125 for influencer creation, including the first face shoot. Image improvements cost 1; tweaks cost 5 plus reserved fresh photos; ordinary variations cost 5 each. Video rates include their planning rather than adding the post-planning charge. Use the reference and returned options for action-specific costs and conditions.

Credit reservations through a connection are checked inside the same transaction as the customer's debit. The ceiling resets at 00:00 UTC, which is 08:00 in Manila. It is separate from the customer's available balance and plan access. A zero ceiling permits free actions but blocks spending.

Successful spending calls add creditBalance when credits were reserved. Failed or refunded synchronous actions release unused daily claims. Do not assume every later background refund immediately restores the connection's daily allowance.

Connecting a self-connected account charges 100 credits when completed. Resuming a released account can cost 100 for a self-connected account or 2,000 for a managed account. The one-time charge from an MCP-started connection is attributed to its initiating connection, including when a webhook finishes it later. Ordinary monthly account renewals continue under the app's account rules rather than this per-connection ceiling.

Retries and recovery

Use one key per intended mutation. If the outcome is lost, repeat the same tool, workspace, key, and input to recover the saved result. A changed input needs a new key. Keys are scoped to the connection and tool and retained for 24 hours; start_account_connection keys last 72 hours to cover deferred authorization and billing.

OutcomeNext step
conflictThe same key was used with different input. Restore the original input or use a new key for a genuinely new action.
in_progressThe original call is still running. Wait and inspect the job, content, or Calendar.
outcome_unknownA running call is older than five minutes or its outcome could not be confirmed. Inspect existing results before starting anything again.
Saved tool failureThe same key replays the failure. Resolve the cause and use a new key for the next intended action.
post_own_file saved a draft but scheduling failedUse the returned content_id with schedule_post or publish_content; do not upload or create the draft again.
Account completion is still pendingLet the customer finish provider authorization. Use a new key on the next completion check; the previous key replays its pending snapshot.

Expired keys no longer deduplicate a call. Find the earlier result first rather than relying on an old key. A failed generation should not automatically trigger another paid generation.

Troubleshooting

SymptomWhat to do
Sign-in opens, but never completesFinish sign-in in the browser for the intended account. If the authorization request expired, start again from the client.
Browser says 127.0.0.1 refused the connectionThe local OAuth callback listener is unavailable. Keep the client running and start its OAuth login again. Use the new sign-in link; do not reuse an old callback URL.
Unauthorized or connection revokedUse OAuth login again. Check that the configured URL matches Amplify server URL and that the connection still appears in Settings.
read_only_connectionReconnect and choose View and make changes if the customer wants writes.
connection_reauthorization_requiredOpen Settings → Connections, select Review access, then Connect.
invalid_inputCheck required fields, exact names, enums, and nested schemas in the reference. Route rules can reject otherwise well-formed input.
not_foundCheck the workspace and object IDs and the user's membership.
workspace_pausedResume or select an active brand in Amplify.
insufficient_creditsCheck the required and available credits in the error; add credits or reduce the requested work.
daily_credit_ceilingThe error states the required credits, used allowance, ceiling, and next UTC reset. Wait or reconnect with an appropriate ceiling.
credit_window_changedWork crossed the daily reset. Inspect its results before beginning another action.
account_action_required on a readUse complete_account_connection or update_account with write access to finish account setup before reading it again.
A preview or download link expiresCall get_media_url or download_content again.
A video is still being put together or changes are still savingWait for the render. Read get_content until the saved render is ready and not stale.
Publishing requires AI disclosureAsk the customer about the uploaded assets and provide mediaAiDeclarations.
An account cannot publish or its day is fullCheck account connection state and Calendar; choose an allowed future day or resolve account setup.

Limits and verification

MCP exposes the tools listed in the reference, not every Amplify feature. Brand and product data can be read but not edited through these tools. There are no customer tools for billing purchases, changing plans, purchasing managed accounts, changing MCP permissions, managing workspace membership, creating saved templates, or manually retrying a failed generation job. Use the app for those actions.

Publishing supports the app's connected TikTok and Instagram accounts. Scheduling takes a valid calendar day in the account's timezone, not an arbitrary timestamp or exact hour. Managed accounts cannot post immediately and require the app's lead time. Existing plan, account readiness, capacity, media validation, disclosure, export, and consent rules still apply.

Ordinary tool calls and get_job work without MCP Tasks. The optional Tasks path is limited to create_content, tasks/get, and tasks/cancel, requires the advertised Tasks extension, and currently requires protocol 2026-07-28 with matching routing headers. Prefer ordinary job polling for interoperability. The server does not advertise a resources or prompts catalogue.

Next steps

Read workflows for complete creation, editing, upload, and publishing sequences, or open the tool reference for individual contracts.