Skip to main content
MCP (Model Context Protocol) is an open standard that lets AI apps use outside tools. The each::labs MCP server is hosted at:

Connect

Add https://mcp.eachlabs.ai/mcp as a remote MCP server, with the Streamable HTTP transport, in any app that supports MCP. The app opens the each::labs sign-in page, you choose your organization, and every run is billed to that organization. There is no API key to create or paste. Apps with a chat interface can show interactive cards. Apps without cards, such as terminals and editors that do not support them, return the same results as text and ask you in the chat for file links or values. Using Claude? Use each::labs in Claude has the steps for claude.ai, Claude Desktop and Claude Code. Environments without a browser (CI, servers) can run the video tools locally with an API key instead. See Headless and CI.

Sign-in and billing

The first call opens the each::labs consent page in your browser. If you are not signed in to the dashboard, the page sends you through sign-in and back. On the consent page you:
  1. Choose the Organization. The page states it plainly: Predictions will run and bill as <organization>.
  2. Review the permissions the client asks for (the scopes below).
  3. Click Approve.

Scopes

A scope is a permission your client asks for at sign-in. The consent page lists each one. A tool that needs a scope your token lacks is refused before anything is submitted, and nothing is billed for a refused call. A connection approved before a scope existed does not have it; disconnect and connect again to approve the full set. The model catalog tools (search_models, get_model_schema) need no scope.

Long jobs

A tool that starts a job waits up to about 20 seconds for it. A job that finishes in that time returns its result in the same call. A longer job returns its id with status: "running" within those 20 seconds, and the AI keeps checking with that id until the job finishes. The job keeps running on each::labs the whole time. Returning early keeps your app from giving up on a call that waits too long. Billing happens once, when the job runs, not per check. Long videos can take 5 to 10 minutes. The AI keeps checking until yours is ready, and asks you before trying a different model.

Recent runs

list_recent_jobs shows your organization’s most recent runs, newest first: id, model, status, time and, once a run is done, its output link. The AI uses it to pick up a run it started earlier, for example after a brief connection interruption, and keeps checking that run with get_job rather than starting a new one. The list never includes prompts or inputs, and it shows the same runs as the runs list in your dashboard.

Tools

Tool names are lowercase with underscores. A call with a parameter the tool does not have is refused before anything runs, and nothing is billed. Each tool also tells your app whether it only reads or starts a billed job; your app uses this to decide which calls need your confirmation. The full list with parameters, defaults and return values is the MCP tool reference.

Video

One tool per Video API capability, plus run_ffmpeg and get_job: 46 tools on the hosted server. Each takes media by URL and returns the result by URL, except the four that measure or detect, which return numbers. With the eight model and workflow tools and the 13 card tools below, the hosted server offers 67 tools. Per-client setup is in the video MCP quickstart.

Model catalog and any model

Three tools cover the whole model catalog, not only video, and list_recent_jobs lists recent runs. The three use the same catalog and the same prediction as List models and Create prediction.

Workflows

Run and read the workflows your organization built in the dashboard. Creating or editing a workflow stays in the dashboard. These tools do not set up webhooks; the AI checks on a run itself until it finishes.

Cards

Tool inputs are URLs. A file attached to a conversation cannot reach a connector tool, so the server provides small interactive cards that your app shows inside the conversation: one to upload files, and others to pick settings, choose a variant, fill in a workflow’s inputs or choose a range or crop. Each card has a matching wait tool that the AI calls right after showing it. When you press the card’s button, the AI receives your choice and continues; you do not need to type anything. Every tool that returns media also carries the result card: the image, a video or audio player and download buttons. When a run asked for several results, the result card is a picker: the person selects a variant, as often as they like, and presses the button under the variants once; it reads Use variant and the number selected. A workflow’s outputs show together as a gallery. An edit of a file the person gave gets a Compare button for a before-and-after view. One upload card takes up to 50 files of up to 100 MB each and uploads four at a time; too many files or a file over 100 MB is refused before anything uploads. The workflow form’s file fields follow the same limits. A card used once keeps showing that choice when the conversation is reopened. Cards are MCP Apps served by this server, so they show in any app that supports MCP Apps. In apps without card support the AI asks in the chat instead, and results come back as text. A card that cannot load in your app says to use the chat instead. How to use the cards is on Use each::labs in Claude.
Last modified on October 12, 2026