Skip to content

Zarklab-AI/zark-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zark MCP

Zark is a remote MCP server for creator-ready image and video work.

Use it from MCP-compatible agents to generate images, edit images, create videos, animate images, edit videos, import files from public URLs, list recent files, and fetch generated file previews.

Server

https://api.zarklab.ai/v1/mcp

Authentication is via your Zark API key:

X-API-Key: <your-zark-api-key>

Get access at zarklab.ai.

CLI

The repo also includes a small CLI for the Zark file/storage workflow.

git clone https://github.com/Zarklab-AI/zark-mcp.git
cd zark-mcp
npm link
export ZARK_API_KEY="<your-zark-api-key>"

List recent files:

zark files list --limit 10

Import a public image, video, or audio URL into Zark storage:

zark files import-url "https://example.com/product-photo.png" --filename product-photo.png

Fetch a generated or imported file preview:

zark files get file-...

Upload a local file:

zark files upload ./product-photo.png

When calling a lower-level development endpoint directly, pass explicit context:

zark files upload ./product-photo.png --workspace wks_... --user user_...

List MCP tools:

zark mcp tools

Quick Test

List tools:

curl --request POST \
  --url https://api.zarklab.ai/v1/mcp \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your-zark-api-key>' \
  --data '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

Generate an image:

curl --request POST \
  --url https://api.zarklab.ai/v1/mcp \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your-zark-api-key>' \
  --data '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "generate_image",
      "arguments": {
        "prompt": "Create a cinematic poster image for a creator coffee brand, warm studio lighting, premium social campaign look.",
        "aspectRatio": "4:5",
        "quality": "High"
      }
    }
  }'

Fetch a generated file preview:

curl --request POST \
  --url https://api.zarklab.ai/v1/mcp \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your-zark-api-key>' \
  --data '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "get_file",
      "arguments": {
        "fileId": "file-..."
      }
    }
}'

Import a public file URL:

curl --request POST \
  --url https://api.zarklab.ai/v1/mcp \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <your-zark-api-key>' \
  --data '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "import_file_from_url",
      "arguments": {
        "url": "https://example.com/product-photo.png",
        "filename": "product-photo.png"
      }
    }
  }'

Tools

Tool What it does
generate_image Create a new image from a prompt. Supports aspect ratio, quality, model choice, and batch count.
edit_image Edit, reframe, upscale, resize, remove background, remove objects, or remove text from source images.
generate_video Create a new video from a prompt with model, aspect ratio, duration, resolution, and sound controls.
animate_image Turn one or more source images into a video.
edit_video Edit, reference-edit, extend, upscale, lip-sync, add audio, or motion-transfer a source video.
get_file Fetch metadata plus preview/download URLs for generated or referenced Zark files.
get_run_status Poll status for a long-running job started with wait: false.
get_run_events Fetch timeline events for a long-running job.
cancel_run Request cancellation for an active creative run.
list_files List recent uploaded, generated, or imported files for the API key workspace.
import_file_from_url Import a public image, video, or audio URL and return a reusable Zark file ID.

Long Jobs

Image generation often finishes inside a normal MCP response. Video can take longer. For long jobs, pass wait: false to a media tool and poll the returned run_id.

{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "generate_video",
    "arguments": {
      "runId": "client-run-001",
      "wait": false,
      "prompt": "Create a vertical launch video for a creator coffee brand.",
      "aspectRatio": "9:16",
      "durationSeconds": 6
    }
  }
}

Poll status:

{
  "jsonrpc": "2.0",
  "id": 6,
  "method": "tools/call",
  "params": {
    "name": "get_run_status",
    "arguments": {
      "runId": "client-run-001"
    }
  }
}

Fetch events:

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "get_run_events",
    "arguments": {
      "runId": "client-run-001",
      "sinceEventId": 0,
      "limit": 50
    }
  }
}

Registry Links

About

Public MCP metadata and examples for Zark creative media tools.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors