Video Toolkit MCP server

Look at your VTK jobs, tasks and logs from an AI assistant. Read-only, signed in as you.

Server URL

Whatever client you use, this is what you give it:

https://mcp.vtk.castlabs.com/mcp

Not the address of this page: the URL ends in /mcp.

Connect

Claude Code

claude mcp add --transport http vtk https://mcp.vtk.castlabs.com/mcp

Then start claude, type /mcp, choose vtk and select Authenticate. A browser opens for the sign-in; use the browser on the same computer.

Claude (claude.ai and Claude Desktop)

Settings, then Connectors, then add a custom connector (depending on your plan). Name it VTK, paste the server URL, leave any client id or secret fields empty, and connect.

ChatGPT

Settings, then Connectors. Depending on your plan you may first have to enable developer mode. Create a custom connector, paste the server URL and choose OAuth as the authentication. Menu names change between releases; the URL is what matters.

Cursor, VS Code, Gemini CLI

Cursor, ~/.cursor/mcp.json:

{
  "mcpServers": {
    "vtk": {
      "url": "https://mcp.vtk.castlabs.com/mcp"
    }
  }
}

VS Code, .vscode/mcp.json:

{
  "servers": {
    "vtk": {
      "type": "http",
      "url": "https://mcp.vtk.castlabs.com/mcp"
    }
  }
}

Gemini CLI, ~/.gemini/settings.json:

{
  "mcpServers": {
    "vtk": {
      "httpUrl": "https://mcp.vtk.castlabs.com/mcp"
    }
  }
}

Any other client

Any MCP client that supports remote servers (Streamable HTTP) with OAuth sign-in will do: give it the server URL and it registers itself. If your client can only start local programs, let a small bridge speak for it:

npx mcp-remote https://mcp.vtk.castlabs.com/mcp

Signing in

The first connection opens your Castlabs sign-in in a browser. After that the client keeps you signed in and renews the session by itself; you only see the browser again when that stops working. The assistant can do only what your own VTK permissions allow.

What it can do

whoami
Who you are in VTK and the organisations you can act in.
list_jobs
List jobs, in the order the API returns them.
list_bundle_jobs
List the jobs of a job bundle, by its name (such as DL_project1).
get_job
One job with its tasks (id, tool, status).
list_tasks
The tasks of a job, optionally filtered by status code or tool name.
get_task_log
The last `tail` log lines of a task (at most 1000, 20000 characters), oldest first.
get_job_metrics
Usage of a job: compute units, video minutes and gigabytes in and out, per task.

Nothing here changes anything in VTK.

Try it

Status

Tried so far: Claude Code. Expected to work but not yet verified: claude.ai, Claude Desktop, ChatGPT, Cursor, VS Code, Gemini CLI. If a client does not connect, tell the VTK team which one and what it showed.