
Your agent needs to work with a Vimeo library: find the right video, read its metadata, rewrite a description, pull a transcript, report on plays. Vimeo now ships two ways in. There is a first-party MCP server, announced at REFRAME in October 2025 and still in public beta, and there is the REST API at api.vimeo.com that has been stable for a decade. They are not interchangeable. The capability coverage differs, the auth model differs, and for background agents one of those differences is a hard stop.
These are two separate products from the same vendor, at very different stages of maturity. One is a beta surface built for assistants; the other is the versioned interface everything else at Vimeo is built on.
Vimeo announced Model Context Protocol support at its REFRAME conference on October 23, 2025, alongside Ask Your Library, describing it as a way to connect video libraries directly to LLMs and AI agents for custom workflows beyond the Vimeo platform. It remains in beta. The server is remote and Vimeo-hosted, and it authenticates through an OAuth sign-in against the user's Vimeo account rather than a static key.
Vimeo has not published a crawlable tool inventory for the beta. The documented capability areas are library-shaped: listing and searching videos, reading details and statistics, updating video metadata, and working with transcripts and captions. Read the current surface on Vimeo's own page: Working with Vimeo MCP Server.
The REST API lives at api.vimeo.com and is versioned through the Accept header, with application/vnd.vimeo.*+json;version=3.4 as the current version. It covers videos, folders (projects), showcases (albums), channels, comments, likes, users, text tracks, webhooks, uploads via the tus resumable protocol, and the separately gated Analytics, Live, and OTT surfaces.
Authentication is OAuth 2.0 with four grant types: Authorization Code, Client Credentials, Implicit, and Device Code. Twelve scopes gate access, including public, private, create, edit, delete, interact, upload, stats, and video_files. Full endpoint documentation is at the Vimeo API Reference.
Four dimensions decide this for a production agent: what the agent can call, what credential it holds, what breaks in production, and which workload it is actually running.
The MCP beta is a good fit for an assistant that reads and edits a library in a chat window. Everything that makes a Vimeo agent operational rather than conversational lives on the REST side.
Two rows carry plan gates worth knowing before you scope a project. Upload access is automatic on paid plans but manually reviewed for free accounts, a process Vimeo says can take up to five business days. The Analytics API is Enterprise-only and has to be enabled by Vimeo support against your client ID.
The ceiling is not a missing tool or two. It is the absence of an event surface. Webhooks are how a Vimeo agent learns that a video finished transcoding, that privacy changed, or that a comment landed; without them, the agent can only act when a human prompts it.
That shapes what you can build. "Rewrite the descriptions on these five videos" works on MCP. "Every time a video finishes processing, generate a description, attach captions, and file it in the right folder" does not.
MCP puts you on one path only: the user signs in to Vimeo through a browser consent flow, and the agent inherits exactly what that person can see and do. That is architecturally correct for an assistant and a blocker for anything scheduled.
The REST API gives you three practical options. Authorization Code produces the same per-user delegated grant the MCP path produces, with a refresh token you control. Personal access tokens, generated from a Vimeo app, work without a browser at runtime. Client Credentials produces an app token with no user attached.
Here is the constraint most teams find late. Vimeo's Client Credentials grant returns a token that can only read public data. It cannot see a customer's private library, cannot edit their videos, and cannot read their stats.
So the usual escape hatch does not exist. There is no Vimeo equivalent of a GitHub App installation token or a Salesforce JWT Bearer grant: no org-scoped, non-interactive credential that acts on private content. Your only headless option is a personal access token, and a PAT is still one human's identity with one human's permissions, revoked the day that human leaves. What the user can't do, the agent can't do, and on Vimeo there is no admin shortcut around it.
On the MCP path, Vimeo owns hosting, tool schemas, and permission enforcement. You own token storage per user, refresh, revocation handling, and the fact that a beta tool surface can change under you with no version header to pin.
On the REST path you own more: endpoint selection, pagination, retry logic, field filtering, error handling, and the full token lifecycle for AI agents. In exchange you get a versioned contract. For a deterministic pipeline where an unannounced schema change is an incident, that tradeoff usually favors REST.
This one bites multi-tenant agents specifically. Vimeo enforces rate limits against the API app making the request, and returns X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset on every response. Exceeding them returns a 429 and a temporary block; Vimeo also notes that apps which repeatedly exceed limits can be blocked outright.
The math changes fast with agents. An agentic workflow that lists a folder and then fetches details per video turns one user request into dozens of calls, and every tenant shares the same app bucket. Vimeo's rate limiting guidelines are the reference; note separately that Vimeo's AI API endpoints are capped at 10 requests per minute per endpoint.
Both lists below assume a real Vimeo workload, not a generic MCP preference.
Use Vimeo MCP when:
Use the Vimeo API directly when:
Pick either path and you end up holding the same object: one Vimeo credential per user, with a lifecycle you did not design and cannot ignore.
A content operations agent serving 60 marketers across 12 customer accounts is 60 OAuth grants. Each one has to be stored encrypted, isolated by tenant, refreshed before it expires, and invalidated when the person leaves or disconnects the app in Vimeo's settings.
Vimeo will not tell you when that revocation happens. Your agent finds out through a 401 mid-run, and if you have not handled it explicitly the task fails silently rather than prompting a re-auth. Understanding how to handle token refresh for AI agents is essential before this becomes a production incident.
Neither the MCP server nor the REST API ships a token vault, rotation logic, tenant isolation, or a revocation flow. The MCP path gives you a session per user; the REST path gives you a token per user. The credential type differs. The infrastructure you have to build is identical.
Scalekit's Vimeo connector handles the OAuth flow, token storage, and rotation for both paths, so the MCP versus API decision does not change your auth infrastructure.
Scalekit ships one Vimeo connector, built on the REST API rather than proxying Vimeo's MCP beta. It exposes 31 prebuilt tools across videos, folders, showcases, channels, comments, likes, watch later, and webhooks, with LLM-ready schemas and per-tool scope requirements documented. The full inventory is on the Vimeo connector docs page, and the connector overview is at scalekit.com/connectors/vimeo.
Create a Vimeo app in the Vimeo Developer Portal, then create a Vimeo connection in the Scalekit dashboard under AgentKit, Connections. Paste Scalekit's redirect URI into your Vimeo app's callback URL field, then add the client ID, client secret, and scopes (public, private, create, edit, interact, delete) back in Scalekit.
One thing to get right up front: the connection_name you pass in code must match the connection name configured in the Scalekit dashboard exactly. This is the most common integration error, and it fails at runtime rather than at startup.
The agent never touches a Vimeo token. It works against a stable identifier for the user, and Scalekit resolves the credential server-side on every call.
Before the agent runs, load the tools this user's connected account is authorized to call. This is not a connector catalog; it is a scoped, deterministic surface derived from what that specific user granted.
The filter matters for accuracy as much as for cost. A library agent needs six Vimeo tools, not 31, and the decision space the model chooses from should reflect that.
Scalekit returns schemas with input_schema, which is the shape Anthropic's tool use API already expects, so there is no conversion step. execute_tool resolves the user's Vimeo credential, applies the scope check, calls Vimeo, and returns structured data.
The Node SDK follows the same discovery and execution split, with camelCase parameters.
If you want your Vimeo agent to speak MCP without building or hosting an MCP server, Scalekit's Virtual MCP servers give you a scoped endpoint per agent role. You declare which connections and which tools it exposes; Scalekit generates the URL. This approach is similar to building production-ready agent workflows with remote MCP servers.
Create the server once, not once per user. The response carries a static mcp_server_url you reuse for every user and every session.
Note what is absent from that list. vimeo_video_delete exists in the connector and is deliberately not exposed here, so a summarizer agent cannot delete a customer's video even if a prompt injection tells it to.
Runtime is two calls. Confirm the user's Vimeo connection is still live, then mint a short-lived token bound to that user and pass it as bearer auth.
Vimeo's own MCP beta gives one server to one signed-in account. That does not compose into a product where 12 customers each have their own library and your agent also needs Slack, Google Drive, and a CRM in the same run.
Virtual MCP inverts it. One server definition serves all users, and the identity arrives per run through the session token. The endpoint is static; the identity is not. There is no MCP server to deploy, host, or maintain, and adding a second connector to the same agent role is a config change rather than a new auth integration. This directly addresses the auth challenges that emerge when moving from single-tenant to multi-tenant tool calling.
A Vimeo agent makes claims about someone's content. When a description changes or a video moves folders, the question that follows is who authorized it, and a shared token cannot answer that.
Every tool call executed through Scalekit is logged against the user whose connected account authorized it: which tool ran, with what inputs, and what came back, with 90 days of history that can be streamed to a SIEM or warehouse. Understanding audit trails for agent auth in B2B SaaS explains why this level of attribution matters for compliance and incident response. Scalekit's auth logs cover the connection and token lifecycle events alongside the tool calls, so an expired Vimeo grant and the failed call it caused sit in the same trace.
Run a Vimeo agent on one shared PAT and every audit entry resolves to that token's owner. Attribution collapses, per-user filtering stops working, and offboarding that person silently breaks the agent for everyone.
Scalekit resolves the real user credential at request time, so attribution and scope both stay accurate. Credentials never touch the agent runtime or the LLM context. This is a core principle covered in depth when examining credential ownership across agent tool-calling patterns.
If your Vimeo agent is interactive and the user is present for the sign-in, Vimeo's MCP beta is the shortest route to something working. Accept that the surface can move under you and that there is no version to pin.
If your agent runs on a schedule, reacts to upload or transcode events, uploads files, manages folders and showcases, or serves more than one customer's library, build against the REST API. The event surface and the versioned contract are not optional for that class of agent.
Most production Vimeo agents run both modes in the same product. Either way you hold one credential per user with no service account to fall back on, and that is the part that needs production-grade infrastructure. The broader patterns for agent tool calling auth in production apply directly here.
Building a content or media agent on Vimeo and want to compare notes on scopes, rate limits, or the beta MCP surface? Join the Scalekit Slack community and ask.
If you would rather work through your architecture with someone directly, talk to an engineer.
Browse the Scalekit Vimeo connector: scalekit.com/connectors/vimeo