DEVELOPERS

Build on the
creative workflow.

Connect an agent to the free, no-account MCP handoff. It prepares editable copy for your app; you finish a real creative with your own media in the browser.

What works on this preview: The free browser studio makes a clean single carousel ZIP or video, plus an optional handoff ZIP with the output, cover when available, caption, and checksum manifest. Three-output packs remain watermarked. Video downloads as MP4 or WebM depending on the browser. GitLab sign-in can save app facts and create personal API tokens; email-link delivery is not open yet. Private asset uploads, asset-based batch preparation, quotes, and hosted clean renders are closed here.

Connect the free MCP

Use this exact remote MCP URL in a client that supports custom connections. No ReelParcel account, token, or OAuth sign-in is needed.

https://reelparcel.com/mcp-free

Checks ReelParcel endpoint reachability and free-tool discovery only.

A successful prepare_studio_batch call may be counted without storing your briefs or media. To opt out of that count, configure your MCP client to send DNT: 1 or X-ReelParcel-Analytics: off. The browser footer preference applies to browser events, not a separate agent connection. Privacy details →

Claude

  1. Where custom remote connectors are available, open Customize → Connectors, select + → Add custom connector, and enter the URL above.
  2. Add the connector, then enable it for your conversation from the + → Connectors menu. On a managed Team or Enterprise account, an owner first adds the URL under Organization settings → Connectors.

Claude’s current custom connector instructions →

Codex and ChatGPT desktop

  1. Open Settings → MCP servers → Add server. Name it reelparcel-free, choose Streamable HTTP, and enter the free MCP URL above. No token is needed.
  2. Save and restart the app. Type /mcp in the composer to check that prepare_studio_batch is connected.

In Codex CLI, you can also run codex mcp add reelparcel-free --url https://reelparcel.com/mcp-free, then use codex mcp list to check the connection. See OpenAI’s MCP setup guide →

ChatGPT on the web

  1. If your plan and workspace permit custom MCP apps, enable developer mode in Settings → Apps → Advanced settings. Business admins and owners can enable it for themselves; Enterprise and Edu members need access granted by an admin.
  2. Where Apps → Create is available, create a custom app with the public MCP URL above and no ReelParcel authentication, then scan its tools. Admins and owners can also create it from Workspace settings → Apps → Create.
  3. After the app is created, start a new chat and select it from the tools menu or mention it in your prompt. Check that prepare_studio_batch is available before relying on this workflow.

Full MCP support, including write actions, is in beta for ChatGPT Business, Enterprise, and Edu. Pro custom MCP connections are limited to read/fetch actions, so access to this batch-preparation tool is not established on Pro. This free endpoint does not ask ChatGPT to authenticate with ReelParcel. See OpenAI’s developer mode and MCP apps guide →.

When your chat cannot connect to MCP

You can still use the free path without a connector. Ask another assistant for the bounded JSON below, then paste it into the Studio import panel.

Open the chat fallback →

Other HTTP MCP clients

Use the URL above as a Streamable HTTP server with no Authorization header. If your client accepts an mcpServers JSON configuration, this example may help; configuration keys vary by client.

{
  "mcpServers": {
    "reelparcel-free": {
      "type": "http",
      "url": "https://reelparcel.com/mcp-free"
    }
  }
}

From agent draft to free download

  1. Give your agent verified app facts and ask it to call prepare_studio_batch for three distinct briefs. If facts are missing, have it ask you first. Its result also links to clearly labeled first-party GoScript examples for inspection; they are not a file made from your app.
  2. Open the returned Studio URL. It carries editable copy in its fragment, not media or credentials. Anyone with that link can read the copy, so keep private information out of the briefs.
  3. Add screenshots or a recording you own, or explicitly choose owned media from a saved batch for the same app on this browser/device. The original batch stays unchanged. Reconfirm media permission, edit the new drafts, and review every product claim against the selected media.
  4. Export a clean single carousel PNG ZIP or browser-supported MP4/WebM video for free. You can also choose a handoff ZIP that groups one output with a caption, checksum manifest, and cover when available. Save the new batch if you want to reuse it later. Three-output packs remain watermarked. The agent cannot download those files through this remote MCP tool; rendering and download happen in your browser.

Source selection for agents: ReelParcel preserves supplied app UI and cannot invent an interaction. Ask for a 5–15 second real in-app action starting after loading, or 2–4 distinct screenshots of one task. Keep critical controls legible, avoid permission and debug overlays, and disclose simulator, demo, or test access. These are capture tips, not a post-readiness guarantee.

Use ReelParcel's prepare_studio_batch tool to draft three distinct variants for one app. Copy the exact same appName and benefit strings into all three briefs; vary the hook, body, CTA, and template. Use only these facts I have verified: [app name, benefit, supported screens, accurate claims, CTA, brand color, and any demo or test context]. Ask me about missing facts before calling the tool. Give me the returned Studio URL so I can add my own media, review the claims, and export.

The free tool stores no brief, media, or output on the server; it may count a successful call as described above. Studio removes the fragment after import; device-saved drafts remain until you explicitly replace them.

Chat fallback prompt

Give another assistant this prompt with your verified product facts, then paste its JSON response into the Studio’s “Paste a draft from any chat” panel. Review every claim before export.

Help me prepare three editable ReelParcel creative briefs for one app. Use only product facts I confirm. If facts are missing, ask me before writing the briefs.

Return only valid JSON with one top-level key, "briefs", containing exactly three objects. Each object must have appName, benefit, hook, body, cta, template, and accentColor. The optional disclosure field is a one-line context label. Use the same appName and benefit in all three objects, but make the hooks, bodies, and CTAs distinct. Use one template per brief: "walkthrough", "problem-solution", and "tips". accentColor must be a six-digit hex color such as "#4B8CEF".

Maximum lengths: appName 60 characters; benefit 160; hook 120; body 320; cta 80; disclosure 48. Do not add media URLs, credentials, invented features, testimonials, results, or extra keys. If the footage shows a fixture, simulated flow, or test-only paid access, include an accurate short disclosure in each relevant brief and explain the context in its body. Do not use Markdown or code fences.

Verified app name, core benefit, supported screens, accurate claims, intended CTA, brand color, and any demo/test context:
[replace this line with my verified facts]

Open the Studio import panel →

Local stdio MCP companion

If your agent supports local stdio MCP servers, download the local setup script and run it with Node 22+ from a terminal. It downloads and checks the two ReelParcel scripts, installs pinned dependencies and Chromium into a new directory, and writes a ready-to-copy mcp-config.json. It does not replace an existing directory:

REELPARCEL_BASE_URL=https://reelparcel.com node reelparcel-local-setup.mjs ./reelparcel-local

Copy the generated mcp-config.json into a client that supports local stdio MCP servers, then restart that client. The configuration uses an absolute script path, the installation directory as cwd, and this deployment's origin as REELPARCEL_BASE_URL. If the client does not connect, run node reelparcel-local-setup.mjs --doctor ./reelparcel-local for a read-only check of the config, files, dependencies, and pinned hashes. If you prefer manual setup, the MCP server and export sidecar are available separately; keep them together, set REELPARCEL_BASE_URL to https://reelparcel.com in the client environment, and install @modelcontextprotocol/sdk@1.30.0, zod@4.6.5, playwright@1.63.0, and Chromium in that directory.

The generated MCP configuration has this shape (your installed path will be filled in):

{
  "mcpServers": {
    "reelparcel-local": {
      "command": "node",
      "args": ["/ABS/PATH/reelparcel-local/reelparcel-local-mcp.mjs"],
      "cwd": "/ABS/PATH/reelparcel-local",
      "env": { "REELPARCEL_BASE_URL": "https://reelparcel.com" }
    }
  }
}

The local server exposes prepare_studio_batch, start_clean_single_export, and get_clean_single_export. Ask it to prepare three distinct briefs from facts you confirmed. On your first run, start an export with the returned studioUrl as handoffUrl, absolute mediaPaths for one recording or up to eight screenshots, an absolute outputDirectory, and carousel, video, handoff-carousel, or handoff-video. To save before automatic export, pass saveBatchName: "Your batch name". Review all three variants, enter that exact name under “Save or repeat a batch,” and click the visible “Save named batch” button. The helper waits for that exact save confirmation in this Studio session before exporting, and fails without export if the review window expires. It never saves a batch for you. Without saveBatchName, selected-variant review is enough for a clean single export. On a later same-app run, omit mediaPaths and set reuseSavedMedia: true; you choose that batch in the visible Studio and personally reconfirm media permission and the new drafts' exact claims. The original batch stays unchanged. The handoff formats save one ZIP containing the clean output, caption, checksum manifest, and a cover or an explicit note if a video cover cannot be made. Start returns a session ID promptly, so your agent can check status during your review. The completed result includes an absolute path, format, bytes, carousel slide count where applicable, and SHA-256. One review runs at a time and expires after ten minutes by default. The optional single-call export_clean_single works when your MCP client supports a longer tool timeout. Neither workflow uploads media, calls server jobs, selects a saved batch, checks review boxes, or handles three-output packs. Use media you own or have permission to use, and keep private information out of the handoff copy.

Local agent-to-file helper

If your agent can run Node on your computer, download reelparcel-free-export.mjs. It opens a visible browser at the public Studio and attaches local media that you name. With --export carousel|video|handoff-carousel|handoff-video, it waits for you to review the selected variant and preview and personally confirm media permission and its exact claims; then it clicks that clean single export and saves and verifies the file locally. Add --save-batch-name 'Your batch name' with --export to wait for your visible named-batch Save first; you must review all three variants. Without --export, you click the export button yourself. The helper never checks review boxes, saves a batch, uploads media to the MCP server, or renders on ReelParcel’s server.

# In the directory where you run the helper (Node 22+):
npm install playwright
npx playwright install chromium
REELPARCEL_BASE_URL=https://reelparcel.com node reelparcel-free-export.mjs --handoff 'PASTE_STUDIO_HANDOFF_URL' \
  --media ./owned-screen-1.png --media ./owned-screen-2.png \
  --out ./reelparcel-output --export carousel

The MCP result supplies both studioUrl and localExportHelperUrl. Pass the Studio URL to this helper with one recording or up to eight screenshots on the first run. After saving an owned named batch in the visible Studio, pass --reuse-saved-media instead of --media on a later same-app run. You select the saved batch and repeat the review; the helper does not choose it for you. The helper keeps a dedicated browser profile under your home directory across runs and kit reinstalls (~/.reelparcel/browser-profile on macOS/Linux). To erase its saved media and batches, close its browser and delete that directory; node reelparcel-free-export.mjs --profile-location prints the exact location. It waits up to ten minutes by default and never overwrites an existing output file; repeated exports in one directory receive numbered filenames. Three-output packs remain watermarked and are not accepted by this helper. This local path needs a Playwright browser installed on your machine and does not make the free MCP a remote rendering service.

Local helper status: experimental. It opens a visible local browser and keeps the human review boundary, but browser automation can fail on some Chrome builds. If it stops, use the Studio buttons directly; the remote free MCP and browser export remain available.

The separate /mcp endpoint below requires a signed-in account and a scoped personal token or a registered OAuth client. It is not the public free connection.

Account MCP and REST

The owner-scoped /mcp endpoint is available to accounts created through GitLab sign-in. Email-link delivery needs a dedicated sender and is not open yet. Where managed OAuth is enabled on this deployment, compatible clients can register dynamically and continue through sign-in and consent. Use /mcp-free for a no-account creative handoff.

Signed-in users can create a personal bearer token on the integrations page and pass it as an Authorization header. Tokens are scoped, expiring, revocable, and limited by a daily credit ceiling. Check pricing and availability before planning a hosted render; the free browser path remains open.

OAuth is not enabled on this deployment. Personal bearer tokens are the current private connection method when account access is configured.
Hosted rendering is unavailable on this deployment. Private uploads, hosted quotes, and file delivery through REST and account MCP are closed here. Use the free browser Studio or /mcp-free handoff instead.

Generic HTTP MCP setup

Use this JSON only in a client that supports a generic remote HTTP MCP server configuration. Client setup screens and configuration keys vary; there is no ReelParcel npm package or universal one-click installer.

{
  "mcpServers": {
    "reelparcel": {
      "type": "http",
      "url": "https://reelparcel.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Media transfer depends on your client. If it can make a binary HTTP request, call create_upload, send your owned file to its temporary signed URL, then call complete_upload. If it cannot, sign in and upload the file yourself in Workspace when private uploads are open; your connected agent can then call list_assets for the same account and app. Do not paste a local file path, media bytes, token, or signed upload link into chat.

You can also inspect the versioned REST contract at /api/openapi. It is the source for request schemas and the exact paths used by the MCP bridge.

For a runnable paid REST workflow, download developer-example.mjs and run it with Node 22 or newer. It uses a personal token from REELPARCEL_TOKEN, an existing saved app, and your owned image or recording. An MP4 cover requires FFmpeg on your computer. Paid renders must be available on this deployment, and your account needs credits; this example creates no test credits. The one-output hosted trial instead needs account-side review and a zero-cost quote in Workspace.

export REELPARCEL_BASE_URL=https://reelparcel.com
export REELPARCEL_TOKEN=... REELPARCEL_PROJECT_ID=...
export REELPARCEL_ASSET_FILE=./owned-screen.png
export REELPARCEL_WIDTH=1080 REELPARCEL_HEIGHT=1920
node developer-example.mjs
node developer-example.mjs --resume inspect
# Review the exact draft and approve it in /workspace, or use an approval-scoped token:
node developer-example.mjs --resume approve
node developer-example.mjs --resume quote
node developer-example.mjs --resume render --accept-quote QUOTE_ID
node developer-example.mjs --resume next

Keep the token in your private environment and the state file private. The script never prints the token or temporary storage URLs. Drafting, approval, quote and credit-spending render are separate commands. The quoted ID must be repeated when rendering. After success, the script downloads the actual outputs and saves a verified ZIP with a cover, captions, manifest, and SHA-256 checksums. --resume pack retries a pack download with fresh private URLs. The script exports assemblePack(descriptor) for agents that call MCP get_pack; pass its pack descriptor to the helper and save the returned ZIP bytes. get_pack alone returns metadata and temporary URLs, not an assembled ZIP.

One request, with a personal token

curl https://reelparcel.com/api/v1/account \
  -H "Authorization: Bearer rp_live_your_token"

Once your app and owned assets are saved, one retry-safe request creates three editable template and media starters. Different templates and screenshot cuts are not three factual content angles; revise and verify each draft’s product-specific copy before approval or export. With two or more screenshots, image-only batches use the full selected order and two shorter ordered cuts. If you also select one recording, the walkthrough uses it and the image variants use ordered cuts. Select at most one recording for this helper; use manual batches for other recordings. Batch responses include an advisory comparison of exact current copy, templates, and selected media IDs; it cannot judge whether claims fit the media or a post is ready. Keep the same idempotency key and asset order if a response is interrupted. Approval and any paid render remain separate.

POST https://reelparcel.com/api/v1/projects/PROJECT_ID/batches/next
Authorization: Bearer rp_live_your_token
Idempotency-Key: next-batch-2026-09-20
Content-Type: application/json

{"desiredOutcome":"show the first useful moment","assetIds":["OWNED_ASSET_ID"]}

For a carousel made from exactly one screenshot, the optional focus-single-v1 layout shows the full source before enlarging a detail the operator selects. In Studio, choose Focus and drag over the original screenshot. In an API revision, set output.carouselMode to focus-single-v1 and provide output.focusRegion as normalized source coordinates: {"x":0.02,"y":0.05,"width":0.96,"height":0.33}. Width must be 0.08–1, height 0.08–0.6, and the rectangle must stay within the image. This enlarges existing pixels; it cannot reveal detail absent from the source. Review and approve the resulting four slides before export.

For one recording, optional output.videoFocus adds a labeled two-second paused Source detail after the full uncropped motion. Choose a real timeSeconds and normalized region from that same recording, for example {"timeSeconds":3.2,"region":{"x":0.02,"y":0.065,"width":0.96,"height":0.38}}. The selected region must stay within the frame, with width 0.08–1 and height 0.08–0.6. The recording plus detail must fit within output.durationSeconds or the revision is rejected. Review the exact rendered video and its claims before approval.

For a moving recording, output.sourceLedBeats selects one to five timed regions from the real source. Example: [{"startSeconds":0,"endSeconds":4,"contextSeconds":0.55,"region":{"x":0.02,"y":0.2,"width":0.96,"height":0.4},"label":"First useful moment"}]. Optional contextSeconds sets how long that beat shows the complete moving frame before enlarging its region (0.35–1 second, default 0.7). Beats must be contiguous, cover the full uploaded recording, last at least 1.2 seconds each, and use short labels. The full recording must fit the integer output.durationSeconds (maximum 30). Do not combine this with videoFocus or the screenshot draft layout. Studio and Workspace let the operator choose each region on a paused source frame. Saving a timing or region edit creates a new revision and requires a new exact review and approval.

For a screenshot-only MP4 draft, set output.videoLayout to tiktok-conservative, for example {"format":"mp4","durationSeconds":10,"videoLayout":"tiktok-conservative"} with three screenshot asset IDs. The integer durationSeconds is the final length and must be at least ceiling(3.5 + 2 × screenshot count): a 1.5-second opening, at least two seconds per full screenshot, and a two-second closing. The option is silent and unavailable for recordings or carousels. Save and review this exact revision before approval; changing the layout creates a new revision. Its composition guide is approximate and does not verify TikTok import, caption overlap, or organic-feed clearance.

Project-team agent prompt example

Give your agent the product context and a human approval boundary. The agent should use owned media and approved facts, ask for a quote, and wait before spending credits.

Use ReelParcel to prepare a batch from my saved app workspace.
1. Load the approved facts and available private assets.
2. Call make_next_batch with my goal, owned asset IDs, and a stable retry key.
   Treat the three outputs as template and media starters, not finished angles.
3. Inspect each selected source. Use revise_creative to write a different,
   factual, media-supported angle for each creative. Do not invent a friction
   or tip merely because a template is named problem-solution or tips.
4. If footage uses a fixture or test-only access, add a short brief.disclosure
   to each relevant revision so context stays visible in every frame or slide.
   Put the full explanation in its caption. Show me the exact revised drafts
   and review link; wait for my approval and a quote before rendering.
5. Include an Idempotency-Key for any render request as well.
6. Download the pack descriptor's private outputs and assemble and verify
   the cover, captions, manifest, and checksums with developer-example.mjs.
7. For a later run, duplicate the saved batch, edit its fresh drafts, and
   obtain new approvals and a new quote before another render.

The remote MCP exposes make_next_batch for one-call draft preparation, plus tools such as list_apps, list_assets, preview_asset, duplicate_batch, revise_creative, quote_exports, render_approved_creatives, get_render, get_pack, and cancel_render. After listing assets, explicitly call preview_asset for each uploaded screenshot needed to ground the copy. It sends an inline image capped at 720×1280 and 2 MiB to the connected AI client, which may process or retain its pixels under its own terms; assets:read also includes temporary signed source links from list_assets. ReelParcel does not store a separate preview or run inference for this operation. duplicate_batch copies current revisions into fresh drafts in the same app. Use --resume next in the REST example for that repeat workflow. Both draft actions leave approvals empty and spend no credits; review and edit before a new quote.

Permission and spend

A token does not grant account deletion, billing administration, or unlimited autonomous spending. The server checks ownership, scopes, balance, daily limits, approval state, and idempotency for every operation.

  • Ask for a quote before rendering: formats, output count, and credits required.
  • Leave creatives:approve off when your agent should wait for you to approve each revision in the workspace. Grant it only when the agent may approve on your behalf.
  • Use an idempotency key between 8 and 128 characters when retrying a request so a network retry cannot spend twice.
  • For generic MP4 output, durationSeconds is a maximum. One recording ends at its source length, or at its source length plus two seconds when Source detail is selected; 1–8 screenshots play in selected order for max(6 seconds, 2 seconds per screenshot). The optional screenshot draft layout instead uses the exact integer final duration with at least 3.5 seconds of bookends plus two seconds per screenshot. Requests that would cut off source motion are rejected.
  • Daily credit limits count all outputs reserved that UTC day; failed renders return account credits but do not reset the integration’s daily ceiling. Keep tokens private and revoke integrations when no longer needed.