Skip to content

CI/CD

Vercel
API integration

Ship CI/CD features without building the integration. Full Vercel API access via Proxy, normalized data through Unified APIs, and 80+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Vercel

Use Cases

Why integrate with Vercel

Common scenarios for SaaS companies building Vercel integrations for their customers.

01

Sync Vercel team structures into your SaaS tenant model

Map your customers' Vercel Teams, members, and roles directly into your product's workspace model using Truto's Unified User Directory API. This lets you automatically align permissions, seats, and access controls without asking users to manually configure team mappings.

02

Auto-provision user accounts from Vercel team membership

When your customer connects their Vercel account, automatically discover all team members and their roles to pre-populate your product's user directory. This eliminates manual onboarding friction and ensures your SaaS reflects the customer's actual org structure from day one.

03

Enforce role-based access controls mirroring Vercel permissions

Pull Vercel roles and group memberships into your product to enforce consistent access policies. A platform engineer with an 'Owner' role in Vercel can automatically receive admin-level permissions in your SaaS, reducing misconfiguration risk.

04

Offer native Vercel connectivity for developer-facing SaaS products

If your product serves developers or DevOps teams, offering a one-click Vercel integration signals first-class support for their deployment workflow. Truto handles the OAuth flow, token management, and API abstraction so your team can ship the integration in days instead of weeks.

What You Can Build

Ship these features with Truto + Vercel

Concrete product features your team can ship faster by leveraging Truto’s Vercel integration instead of building from scratch.

01

Automatic team and workspace discovery

On connection, pull all Vercel Teams as Workspaces into your product so customers can select which team context to operate in.

02

Real-time member roster sync

Continuously sync Vercel team members into your user directory, detecting new additions, removals, and role changes without manual intervention.

03

Role-mapped permission provisioning

Translate Vercel roles (Owner, Member, Viewer) into your product's permission tiers so access controls stay aligned across both platforms.

04

Group-based feature gating

Use Vercel group memberships surfaced through the Unified User Directory API to control which user segments can access specific features in your product.

05

Unified org chart across multiple integrations

Combine Vercel user directory data with other connected platforms via Truto's Unified User Directory API to give customers a single, consolidated view of their organization's members and roles.

SuperAI

Vercel AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_vercel_teams

List Vercel teams. Returns team records including id, slug, name, description, avatar, and emailDomain. Optionally filter by slug, search text, role, or timestamp range.

get_single_vercel_team_by_id

Get a Vercel team by id. Returns the team record including id, slug, name, description, avatar, and emailDomain. Required: id.

create_a_vercel_team

Create a new Vercel team. Returns the id and slug of the newly created team. Required: slug.

update_a_vercel_team_by_id

Update a Vercel team's settings by id. Returns the updated team record including id, slug, name, description, avatar, and emailDomain. Required: id.

delete_a_vercel_team_by_id

Delete a Vercel team by id. Returns an empty 204 response on success. Required: id.

list_all_vercel_members

List members of a Vercel team. Returns: id. Required: team_id.

delete_a_vercel_member_by_id

Remove a member from a Vercel team by id. Returns an empty 204 response on success. Required: team_id, id.

update_a_vercel_member_by_id

Update a member of a Vercel team by id. Returns: id. Required: team_id, id.

create_a_vercel_member

Add a new member to a Vercel team. Returns: id. Required: team_id.

list_all_vercel_me

Get the currently authenticated Vercel user. Returns: id, email, username, name, and createdAt.

list_all_vercel_projects

List Vercel projects. Returns: id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, and speedInsights. Optionally scope the request to a specific team via teamId or slug.

get_single_vercel_project_by_id

Get a single Vercel project by id. Returns the full project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, dataCache, and other configuration fields. Required: id.

create_a_vercel_project

Create a new Vercel project with the provided configuration. Returns the created project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, and dataCache. Required: name.

update_a_vercel_project_by_id

Update a Vercel project by id. Returns the updated project object including id, name, accountId, createdAt, framework, buildCommand, devCommand, env, analytics, speedInsights, crons, and dataCache. Required: id.

delete_a_vercel_project_by_id

Delete a Vercel project by id. Returns an empty 204 response on success. Required: id.

vercel_projects_pause

Pause a Vercel project by id. Disables auto-assigning custom production domains and blocks the active Production Deployment. Returns an empty 200 response on success. Required: id.

list_all_vercel_project_members

List members of a Vercel project. Returns: id. Required: project_id.

delete_a_vercel_project_member_by_id

Remove a member from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.

list_all_vercel_project_members

List members of a vercel project. Returns member objects including uid. Required: project_id.

create_a_vercel_project_member

Add a member to a vercel project. Returns the added member's uid. Required: project_id.

delete_a_vercel_project_member_by_id

Remove a member from a vercel project by id. Returns: id of the removed member. Required: project_id, id.

list_all_vercel_project_envs

List all environment variables for a Vercel project by project id or name. Returns: id, key, type, value, target, createdAt, updatedAt for each variable. Required: project_id.

get_single_vercel_project_env_by_id

Get a single environment variable from a Vercel project by id. Returns: id, key, type, value, target, createdAt, updatedAt, and additional metadata fields. Required: project_id, id.

create_a_vercel_project_env

Create a new environment variable for a Vercel project. Returns: id, key, type, value, target, createdAt for the created variable. Required: project_id, key, type, value.

update_a_vercel_project_env_by_id

Update an existing environment variable for a Vercel project by id. Returns: id, key, type, value, target, updatedAt for the updated variable. Required: project_id, id.

delete_a_vercel_project_env_by_id

Delete an environment variable from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.

list_all_vercel_project_domains

List all domains associated with a Vercel project. Returns: name, apexName, projectId, verified, createdAt, gitBranch, redirect, and verification details per domain. Required: project_id.

get_single_vercel_project_domain_by_id

Get a single domain from a Vercel project by id. Returns: name, apexName, projectId, verified, createdAt, gitBranch, redirect, redirectStatusCode, and verification challenges. Required: project_id, id.

create_a_vercel_project_domain

Add a domain to a Vercel project. Returns the added domain object including name, apexName, projectId, verified, createdAt, redirect, and verification challenges. If the domain is not yet verified, verified will be false and a verification challenge will be returned. Required: project_id, name.

update_a_vercel_project_domain_by_id

Update a Vercel project domain's configuration, including its git branch, redirect target, and redirect status code. Returns the updated domain object including name, apexName, projectId, verified, updatedAt, redirect, redirectStatusCode, and verification challenges. Required: project_id, id.

delete_a_vercel_project_domain_by_id

Remove a domain from a Vercel project by id. Returns an empty 204 response on success. Required: project_id, id.

list_all_vercel_deployments

List Vercel deployments. Returns: id, name, url. Required: idOrUrl.

get_single_vercel_deployment_by_id

Get a single Vercel deployment by id. Returns: id, name, url. Required: id.

create_a_vercel_deployment

Create a new Vercel deployment. For non-git deployments all files must be provided; alternatively a gitSource can be specified. Returns: id, name, url.

delete_a_vercel_deployment_by_id

Delete a Vercel deployment by id. Returns an empty 204 response on success. Required: id.

vercel_deployments_cancel

Cancel a Vercel deployment that is currently in progress. Returns: id, name, url. Required: id.

list_all_vercel_deployment_events

List events for a Vercel deployment. Returns: type, created. Required: deployment_id.

list_all_vercel_deployment_files

List the file tree structure of a Vercel deployment's source code by deployment ID. Returns an array of file tree items including name, type, uid, and children for each node. Required: deployment_id.

list_all_vercel_deployment_aliases

List all Vercel deployment aliases for a given deployment. Returns: uid, alias, created, redirect, and protectionBypass. Required: deployment_id.

create_a_vercel_deployment_alias

Assign a new alias to a Vercel deployment, automatically transferring it from any prior deployment if it is already in use. Returns: uid, alias, created, oldDeploymentId. Required: deployment_id.

list_all_vercel_aliases

List vercel aliases for the authenticated user or team. Optionally filter by domain or project. Returns: uid, alias, created, createdAt, deploymentId, projectId, creator, deployment, redirect, redirectStatusCode, updatedAt.

get_single_vercel_alias_by_id

Get a single vercel alias by id. Returns: uid, alias, created, createdAt, deploymentId, projectId, creator, deployment, redirect, redirectStatusCode, updatedAt. Required: id.

delete_a_vercel_alias_by_id

Delete a vercel alias by id. Returns: status (always 'SUCCESS' when the alias is successfully removed). Required: id.

list_all_vercel_domains

List vercel domains in an account or team. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, expiresAt, boughtAt, creator. Required: domain.

get_single_vercel_domain_by_id

Get information for a single vercel domain by id. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, expiresAt, boughtAt, creator.

create_a_vercel_domain

Add an existing apex domain to the vercel platform. Returns: id, name, verified, nameservers, intendedNameservers, serviceType, createdAt, boughtAt, expiresAt, creator. Required: name.

update_a_vercel_domain_by_id

Update or move an apex vercel domain. Supports an 'update' operation (zone, renew, nameservers) and a 'move-out' operation (transfer to another user or team). Returns: moved, token, renew, customNameservers, zone. Required: id, domain.

delete_a_vercel_domain_by_id

Remove a previously registered vercel domain by id; associated aliases are automatically removed. Returns: uid. Required: id, domain.

list_all_vercel_domain_records

List DNS records for a vercel domain. Returns: id, name, type, value, creator, createdAt, updatedAt, ttl, comment. Required: domain.

create_a_vercel_domain_record

Create a DNS record for a vercel domain. Returns: uid, updated. Required: domain, type.

update_a_vercel_domain_record_by_id

Update an existing vercel DNS record by id. Returns: id, name, type, value, creator, createdAt, updatedAt, ttl. Required: id.

delete_a_vercel_domain_record_by_id

Delete a DNS record from a vercel domain by id. Returns an empty 200 response on success. Required: domain, id.

list_all_vercel_log_drains

List all Vercel log drains owned by the authenticated account (deprecated endpoint). Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas per drain.

get_single_vercel_log_drain_by_id

Get a single Vercel log drain by id. Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas, projectIds. Required: id.

create_a_vercel_log_drain

Create a new Vercel log drain. Returns: id, name, ownerId, status, createdAt, updatedAt, delivery, source, schemas.

delete_a_vercel_log_drain_by_id

Delete a Vercel log drain by id. Returns an empty 204 response on success. Required: id.

list_all_vercel_webhooks

List all vercel webhooks for an account or team. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds for each webhook. Optionally filter by projectId.

get_single_vercel_webhook_by_id

Get a single vercel webhook by id. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds. Required: id.

create_a_vercel_webhook

Create a new vercel webhook to receive event notifications at a target URL. Returns: id, url, events, ownerId, createdAt, updatedAt, and projectIds. Required: url, events.

delete_a_vercel_webhook_by_id

Delete a vercel webhook by id. Returns an empty 204 response on success. Required: id.

list_all_vercel_edge_configs

List all vercel Edge Configs. Returns: id, slug, ownerId, digest, sizeInBytes, itemCount, createdAt, updatedAt for each config.

get_single_vercel_edge_config_by_id

Get a single vercel Edge Config by id. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: id.

create_a_vercel_edge_config

Create a new vercel Edge Config. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: slug.

update_a_vercel_edge_config_by_id

Update a vercel Edge Config's slug by id. Returns: id, slug, ownerId, digest, createdAt, updatedAt, sizeInBytes, itemCount. Required: id, slug.

delete_a_vercel_edge_config_by_id

Delete a vercel Edge Config by id. Returns an empty 204 response on success. Required: id.

list_all_vercel_edge_config_items

List all items in a Vercel Edge Config. Returns: key, value, description for each item. Required: edge_config_id.

update_a_vercel_edge_config_item_by_id

Update multiple Vercel Edge Config items in batch, supporting create, update, upsert, and delete operations per item. Returns: status. Required: edge_config_id, items.

list_all_vercel_edge_config_tokens

List all tokens of a Vercel Edge Config. Returns: id, token. Required: edge_config_id.

create_a_vercel_edge_config_token

Create a new token for a Vercel Edge Config. Returns: id, token. Required: edge_config_id, label.

delete_a_vercel_edge_config_token_by_id

Delete one or more tokens from a Vercel Edge Config by supplying either an array of token strings or an array of token IDs. Returns an empty 204 response on success. Required: edge_config_id. Supply either tokens or ids in the request body.

list_all_vercel_user_tokens

List auth tokens for the current Vercel user. Returns: id, name, expiresAt, createdAt per token.

get_single_vercel_user_token_by_id

Get metadata for a single Vercel auth token. Returns: token (including id, name, expiresAt, createdAt). Required: id. The special value 'current' retrieves metadata for the token used in the current request.

create_a_vercel_user_token

Create a new Vercel auth token for the current user. Returns: token (id, name, expiresAt, createdAt) and bearerToken — the bearerToken is returned only once and cannot be retrieved again, so save it immediately. Required: name.

delete_a_vercel_user_token_by_id

Delete a Vercel auth token by id, invalidating it for future requests. Returns: tokenId of the deleted token. Required: id. The special value 'current' invalidates the token used in the current request.

get_single_vercel_cert_by_id

Get a Vercel cert by id. Returns: id, createdAt, expiresAt, autoRenew, cns. Required: id.

create_a_vercel_cert

Issue a new cert in Vercel for one or more common names. Returns: id, createdAt, expiresAt, autoRenew, cns.

update_a_vercel_cert_by_id

Upload a custom cert to Vercel by providing the certificate, key, and certificate authority. Returns: id, createdAt, expiresAt, autoRenew, cns. Required: ca, key, cert.

delete_a_vercel_cert_by_id

Delete a Vercel cert by id. Returns an empty response on success. Required: id.

list_all_vercel_secrets

List Vercel secrets. Returns: id.

get_single_vercel_secret_by_id

Get a single Vercel secret by id. Returns: id. Required: id.

create_a_vercel_secret

Create a new Vercel secret. Returns: id.

update_a_vercel_secret_by_id

Update a Vercel secret by id. Returns: id. Required: id.

delete_a_vercel_secret_by_id

Delete a Vercel secret by id. Returns an empty 204 response on success. Required: id.

list_all_vercel_events

List Vercel user events generated by actions such as logging in, creating a deployment, or joining a team. Returns: id, type, createdAt, userId, payload. Optionally filter results by since, until, types, principalId, projectIds, withPayload, teamId, or slug.

Why Truto

Why use Truto’s MCP server for Vercel

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Vercel

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Groups

Groups are a collection of users in the source application. In some applications, they might also be called Teams.

View Docs

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

Workspaces

Workspaces represent concepts like teams, workspaces, projects in apps that support them

View Docs

How It Works

From zero to integrated

Go live with Vercel in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Vercel account

Use Truto’s frontend SDK to connect your customer’s Vercel account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Vercel

Truto’s Proxy API is a 1-to-1 mapping of the Vercel API. You call us, we call Vercel, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Vercel’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Vercel on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Vercel integration use?

Vercel supports OAuth 2.0 for third-party integrations. Truto manages the full OAuth flow, token storage, and automatic refresh so your team never handles raw credentials.

What data can I access through Truto's Unified User Directory API for Vercel?

You can access Users (team members), Groups, Roles, and Workspaces (mapped from Vercel Teams). This covers team membership, permission levels, and organizational structure.

Are there specific Truto tools available for Vercel's deployment or environment variable APIs?

Not yet. Truto currently maps Vercel to the Unified User Directory API. Additional tools for deployments, environment variables, log drains, and other Vercel API capabilities are built on request based on your use case.

How does Truto handle Vercel's API rate limits?

Truto automatically manages rate limiting, retry logic, and pagination when calling the Vercel API, so your application doesn't need to implement backoff strategies or handle HTTP 429 responses directly.

Can I request custom Vercel API capabilities beyond the Unified User Directory?

Yes. Vercel exposes a rich REST API covering deployments, projects, environment variables, log drains, and more. Truto builds additional tools on request — reach out with your specific use case and the team will scope the integration.

How are Vercel Teams mapped in Truto's unified model?

Vercel Teams map to Workspaces in Truto's Unified User Directory API. Team members map to Users, and Vercel's permission levels (Owner, Member, Viewer, Developer) map to Roles, giving you a normalized structure consistent across all integrations.

Vercel

Get Vercel integrated into your app

Our team understands what it takes to make a Vercel integration successful. A short, crisp 30 minute call with folks who understand the problem.