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
- "Who am I in VTK, and which organisations do I have?"
- "Show me the failed jobs of the last days."
- "Why did job <id> fail?"
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.