Vercel MCP
Vendor MCP34 toolsOAuth 2.1Developer ToolsProductivityConnect to Vercel MCP to manage deployments, projects, domains, environment variables, and team resources directly from your AI workflows.
Vercel MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your Vercel MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Scalekit environment with the Vercel MCP connector so Scalekit handles the OAuth flow and token lifecycle for your users. Follow every step below from start to finish — by the end you will have a working connection.
-
Create a Vercel OAuth integration
You need a Vercel OAuth integration to get the Client ID and Client Secret that Scalekit will use to authorize your users.
Go to the Vercel Integrations Console:
-
Open vercel.com/dashboard/integrations/console in your browser and sign in.
-
Click Create Integration (top right of the page).
-
Fill in the form:
Field What to enter Integration Name A recognizable name, e.g. My Vercel MCP AgentURL Slug Auto-generated from the name — you can leave it as-is Website URL Your app’s public URL. For testing you can use https://localhostShort Description Brief description of your integration -
Leave the Redirects section empty for now. You will add the Scalekit callback URL in the next step.
-
Click Create →.
After the integration is created, Vercel takes you to the integration’s settings page. Keep this tab open.
-
-
Copy the redirect URI from Scalekit
Scalekit gives you a callback URL that Vercel will redirect users back to after they authorize your app.
In the Scalekit dashboard:
- Go to app.scalekit.com and sign in.
- In the left sidebar, click AgentKit > Connections > Create Connection.
- Search for Vercel MCP and click Create.
- A connection details panel opens. Find the Redirect URI field — it looks like:
https://<YOUR_ENV>.scalekit.cloud/sso/v1/oauth/conn_<ID>/callback
- Click the copy icon next to the Redirect URI.
-
Add the redirect URI and copy credentials from Vercel
Switch back to the Vercel integration tab you left open.
Register the redirect URI:
- In the left sidebar of your integration settings, click Credentials.
- Scroll down to the Redirect URIs section.
- Paste the redirect URI you copied from Scalekit into the input field.
- Click Add URI, then click Save Changes.
Copy your credentials:
- Scroll up to the OAuth Credentials section.
- Client ID — shown in plain text. Click Copy ID.
- Client Secret — click Reveal to show the secret, then copy it.
-
Configure permissions in Vercel
-
In the Vercel integration settings sidebar, click Permissions.
-
Enable the scopes your integration needs:
Scope Access granted openidRequired to issue an ID token for user identification emailUser’s email address profileUser’s name, username, and profile picture offline_accessRefresh token for long-lived access without re-authorization -
Click Save Changes.
-
-
Add credentials in Scalekit
Switch back to the Scalekit dashboard tab.
-
Go to AgentKit > Connections and click the Vercel MCP connection you created in step 2.
-
Fill in the credentials form:
Field Value Client ID Paste the Client ID from step 3 Client Secret Paste the Client Secret from step 3 Scopes Enter the scopes you enabled in step 4, e.g. openid profile email offline_access -
Click Save.
Your Vercel MCP connection is now configured. Scalekit will use these credentials to run the OAuth flow whenever a user connects their Vercel account.
-
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'vercelmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Vercel MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'vercelmcp_deploytovercel',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "vercelmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Vercel MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="vercelmcp_deploytovercel",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Updateprojectdeploymentprotection records — Enable or disable password protection, Vercel Authentication, and Trusted IPs for a Vercel project
- Listagentruns records — List Agent Runs for a project
- Listagentrunprojects records — List projects that have Agent Runs, with counts
- Getwebanalytics records — Query Web Analytics visits or custom events for a project, as a total count or aggregated by dimension
- Getruntimeerrors records — Get grouped runtime error clusters for a project (error name, occurrence count, affected routes, sample messages, first/last seen)
- Getpurchasequote records — Get a signed price quote for a Vercel Pro upgrade, credits top-up, add-on, or domain purchase, before executing it
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
vercelmcp_addtoolbarreaction#Add an emoji reaction to a message in a toolbar thread4 params
Add an emoji reaction to a message in a toolbar thread
emojistringrequiredThe emoji character to use as the reaction (e.g. '👍', '❤️')messageIdstringrequiredThe ID of the message to react toteamIdstringrequiredThe ID of the team that owns the threadthreadIdstringrequiredThe ID of the toolbar thread containing the messagevercelmcp_buyaddon#Execute an add-on purchase previously quoted by get_purchase_quote. Requires a prior quote and confirm:true5 params
Execute an add-on purchase previously quoted by get_purchase_quote. Requires a prior quote and confirm:true
productAliasstringrequiredThe add-on to purchase. Only "siem" is available today.quantityintegerrequiredNumber of units to purchase.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.confirmbooleanoptionalSet true to execute the charge; requires the idempotencyKey from get_purchase_quote.idempotencyKeystringoptionalThe idempotencyKey returned by get_purchase_quote.vercelmcp_buycredits#Execute a credits top-up previously quoted by get_purchase_quote. Requires a prior quote and confirm:true5 params
Execute a credits top-up previously quoted by get_purchase_quote. Requires a prior quote and confirm:true
amountintegerrequiredAmount to purchase, in whole US dollars (1-1000).creditTypestringrequiredWhich credit balance to top up: v0, gateway (AI Gateway), or agent (Vercel Agent).teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.confirmbooleanoptionalSet true to execute the charge; requires the idempotencyKey from get_purchase_quote.idempotencyKeystringoptionalThe idempotencyKey returned by get_purchase_quote.vercelmcp_buydomain#Execute a single-domain registration previously quoted by get_purchase_quote (product:domain). Requires a prior quote and confirm:true8 params
Execute a single-domain registration previously quoted by get_purchase_quote (product:domain). Requires a prior quote and confirm:true
domainstringrequiredThe domain to register, e.g. "example.com".teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.autoRenewbooleanoptionalWhether to auto-renew at the end of the term. Defaults to true.confirmbooleanoptionalSet true to execute the purchase; requires the idempotencyKey from get_purchase_quote.contactobjectoptionalRegistrant (WHOIS) contact. Not needed for the quote; REQUIRED on confirm. All fields must be provided.expectedPricenumberoptionalRequired on confirm: the purchasePrice (USD) from the quote. The server rejects the order if it no longer matches the live price.idempotencyKeystringoptionalThe idempotencyKey returned by get_purchase_quote.yearsintegeroptionalRegistration term in years. Required on confirm — must match the term shown in the quote.vercelmcp_buypro#Execute a Vercel Pro upgrade previously quoted by get_purchase_quote. Requires a prior quote and confirm:true3 params
Execute a Vercel Pro upgrade previously quoted by get_purchase_quote. Requires a prior quote and confirm:true
teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.confirmbooleanoptionalSet true to execute the upgrade; requires the idempotencyKey from get_purchase_quote.idempotencyKeystringoptionalThe idempotencyKey returned by get_purchase_quote.vercelmcp_changetoolbarthreadresolvestatus#Change the resolve status of a toolbar thread3 params
Change the resolve status of a toolbar thread
resolvedbooleanrequiredSet to true to mark the thread as resolved, false to mark it as unresolvedteamIdstringrequiredThe ID of the team that owns the threadthreadIdstringrequiredThe ID of the toolbar thread to updatevercelmcp_creategitproject#Create (or link) a Vercel project from a Git repository6 params
Create (or link) a Vercel project from a Git repository
repostringrequiredRepository as "owner/name", or a repository URL such as https://github.com/owner/name.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.deploybooleanoptionalWhether to create a preview deployment from the linked repository's production branch.projectNamestringoptionalVercel project to create or reuse. Defaults to the lowercased repository name.providerstringoptionalGit provider to link. Inferred from the repository URL; defaults to "github".rootDirectorystringoptionalRoot-relative directory to build in a monorepo. Only applied when creating the project.vercelmcp_deploytovercel#Deploy the current project to Vercel0 params
Deploy the current project to Vercel
vercelmcp_edittoolbarmessage#Edit an existing message in a toolbar thread4 params
Edit an existing message in a toolbar thread
markdownstringrequiredThe updated message content in Markdown formatmessageIdstringrequiredThe ID of the message to editteamIdstringrequiredThe ID of the team that owns the threadthreadIdstringrequiredThe ID of the toolbar thread containing the messagevercelmcp_getaccesstovercelurl#Creates a temporary shareable link that bypasses authentication for a Vercel deployment URL1 param
Creates a temporary shareable link that bypasses authentication for a Vercel deployment URL
urlstringrequiredThe Vercel deployment URL to create a temporary shareable access link forvercelmcp_getagentrun#Get details for a single Agent Run7 params
Get details for a single Agent Run
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.runIdstringrequiredThe Agent Run ID to inspect.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.environmentstringoptionalAgent run environment, usually "production" or "preview". Defaults to "production".fromstringoptionalStart time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.periodstringoptionalPreset time range. Ignored when both from and to are provided.tostringoptionalEnd time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.vercelmcp_getagentruntrace#Get the execution trace for a single Agent Run8 params
Get the execution trace for a single Agent Run
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.runIdstringrequiredThe Agent Run ID to inspect.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.environmentstringoptionalAgent run environment, usually "production" or "preview". Defaults to "production".fromstringoptionalStart time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.maxFieldLengthnumberoptionalMaximum length for individual string fields in the returned trace. Defaults to 8000; use 0 to disable truncation.periodstringoptionalPreset time range. Ignored when both from and to are provided.tostringoptionalEnd time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.vercelmcp_getdeployment#Get a specific deployment by ID or URL2 params
Get a specific deployment by ID or URL
idOrUrlstringrequiredThe deployment ID or URL to retrieveteamIdstringrequiredThe ID of the team that owns the deploymentvercelmcp_getdeploymentbuildlogs#Get the build logs of a deployment by deployment ID or URL2 params
Get the build logs of a deployment by deployment ID or URL
idOrUrlstringrequiredThe deployment ID or URL whose build logs to retrieveteamIdstringrequiredThe ID of the team that owns the deploymentvercelmcp_getdomainorder#Get the status of a domain purchase order returned by buy_domain, to confirm whether the registration completed2 params
Get the status of a domain purchase order returned by buy_domain, to confirm whether the registration completed
orderIdstringrequiredThe orderId returned by buy_domain.teamIdstringoptionalThe team ID to scope the request to. Alternatively the team slug can be used.vercelmcp_getproject#Get a specific project in Vercel2 params
Get a specific project in Vercel
projectIdstringrequiredThe ID of the project to retrieveteamIdstringrequiredThe ID of the team that owns the projectvercelmcp_getprojectdeploymentprotection#Get the effective password protection, Vercel Authentication, and Trusted IP settings for a Vercel project2 params
Get the effective password protection, Vercel Authentication, and Trusted IP settings for a Vercel project
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.vercelmcp_getpurchasequote#Get a signed price quote for a Vercel Pro upgrade, credits top-up, add-on, or domain purchase, before executing it9 params
Get a signed price quote for a Vercel Pro upgrade, credits top-up, add-on, or domain purchase, before executing it
productstringrequiredWhich purchase to quote.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.amountintegeroptionalRequired for product:credits — amount in whole US dollars (1-1000).autoRenewbooleanoptionalFor product:domain — whether to auto-renew at term end. Defaults to true.creditTypestringoptionalRequired for product:credits — which credit balance to top up.domainstringoptionalRequired for product:domain — the domain to register.productAliasstringoptionalRequired for product:addon — the add-on to quote. Only "siem" is available today.quantityintegeroptionalRequired for product:addon — number of units.yearsintegeroptionalFor product:domain — registration term in years (defaults to the TLD minimum).vercelmcp_getruntimeerrors#Get grouped runtime error clusters for a project (error name, occurrence count, affected routes, sample messages, first/last seen)5 params
Get grouped runtime error clusters for a project (error name, occurrence count, affected routes, sample messages, first/last seen)
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.routesstringoptionalComma-separated route paths to filter by.sincestringoptionalStart of the window as an ISO date or relative lookback from now. Defaults to 24h ago; max lookback is 7d.untilstringoptionalOptional end of the window as an ISO date, relative lookback, or "now".vercelmcp_getruntimelogs#Get runtime logs for a project or deployment4 params
Get runtime logs for a project or deployment
projectIdstringrequiredThe ID of the project whose runtime logs to retrieveteamIdstringrequiredThe ID of the team that owns the projectdeploymentIdstringoptionalOptional deployment ID to filter runtime logs to a specific deploymentlimitnumberoptionalMaximum number of log entries to returnvercelmcp_gettoolbarthread#Get a specific toolbar thread by ID2 params
Get a specific toolbar thread by ID
teamIdstringrequiredThe ID of the team that owns the threadthreadIdstringrequiredThe ID of the toolbar thread to retrievevercelmcp_getwebanalytics#Query Web Analytics visits or custom events for a project, as a total count or aggregated by dimension9 params
Query Web Analytics visits or custom events for a project, as a total count or aggregated by dimension
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.byarrayoptionalOne or two dimensions for aggregate mode (e.g. day, country, deviceType, requestPath).datasetstringoptionalData to query: visits for automatically tracked pageviews, or events for custom events sent with track(). Defaults to visits.filterstringoptionalOData filter expression, for example requestPath eq '/pricing' and country eq 'US'.limitintegeroptionalMaximum distinct results in aggregate mode. Remaining values are grouped into Others. Defaults to 10.modestringoptionalCount returns one total. Aggregate returns rows grouped by one or two by dimensions and requires since, until, and by. Defaults to count.sincestringoptionalStart of the date range as a date string, ISO 8601 timestamp, or Unix timestamp in milliseconds. Since and until must be provided together.teamIdstringoptionalThe team ID to scope the request to. Alternatively the team slug can be used.untilstringoptionalEnd of the date range as a date string, ISO 8601 timestamp, or Unix timestamp in milliseconds. Since and until must be provided together.vercelmcp_importclaudedesignfromurl#Import a design into Vercel from a publicly fetchable URL3 params
Import a design into Vercel from a publicly fetchable URL
teamIdstringrequiredThe ID of the team to import the design intourlstringrequiredThe publicly fetchable URL of the design to importprojectIdstringoptionalThe ID of the project to associate the design with (optional)vercelmcp_listagentrunprojects#List projects that have Agent Runs, with counts5 params
List projects that have Agent Runs, with counts
teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.environmentstringoptionalAgent run environment, usually "production" or "preview". Defaults to "production".fromstringoptionalStart time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.periodstringoptionalPreset time range. Ignored when both from and to are provided.tostringoptionalEnd time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.vercelmcp_listagentruns#List Agent Runs for a project9 params
List Agent Runs for a project
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.environmentstringoptionalAgent run environment, usually "production" or "preview". Defaults to "production".fromstringoptionalStart time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.pagenumberoptional1-based page number. Defaults to 1.pageSizenumberoptionalNumber of runs per page. The dashboard endpoint caps this at 100.periodstringoptionalPreset time range. Ignored when both from and to are provided.searchstringoptionalServer-side title search for Agent Runs.tostringoptionalEnd time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.vercelmcp_listdeployments#List all deployments for a project4 params
List all deployments for a project
projectIdstringrequiredThe ID of the project whose deployments to listteamIdstringrequiredThe ID of the team that owns the projectlimitnumberoptionalMaximum number of deployments to returnstatestringoptionalFilter deployments by state (e.g. READY, ERROR, BUILDING, QUEUED, CANCELED)vercelmcp_listprojects#List all Vercel projects for a user (with a max of 50)3 params
List all Vercel projects for a user (with a max of 50)
teamIdstringrequiredThe ID of the team whose projects to listlimitnumberoptionalMaximum number of projects to return (max 50)searchstringoptionalSearch query to filter projects by namevercelmcp_listteams#List the user's teams0 params
List the user's teams
vercelmcp_listtoolbarthreads#List Vercel toolbar comment threads for a team3 params
List Vercel toolbar comment threads for a team
teamIdstringrequiredThe ID of the team whose toolbar threads to listdeploymentIdstringoptionalFilter threads by deployment ID (optional)projectIdstringoptionalFilter threads by project ID (optional)vercelmcp_replytotoolbarthread#Add a reply message to an existing toolbar thread3 params
Add a reply message to an existing toolbar thread
markdownstringrequiredThe reply message content in Markdown formatteamIdstringrequiredThe ID of the team that owns the threadthreadIdstringrequiredThe ID of the toolbar thread to reply tovercelmcp_searchverceldocumentation#Search the Vercel documentation for information about a topic2 params
Search the Vercel documentation for information about a topic
topicstringrequiredThe topic or query to search for in the Vercel documentationlimitnumberoptionalMaximum number of documentation results to returnvercelmcp_updateprojectdeploymentprotection#Enable or disable password protection, Vercel Authentication, and Trusted IPs for a Vercel project5 params
Enable or disable password protection, Vercel Authentication, and Trusted IPs for a Vercel project
projectIdstringrequiredThe project ID to scope the request to. Alternatively the project slug can be used.teamIdstringrequiredThe team ID to scope the request to. Alternatively the team slug can be used.passwordProtectionstringoptionalEnable or disable password protection. Omit to preserve the current setting.ssoProtectionstringoptionalEnable or disable Vercel Authentication. Omit to preserve the current setting.trustedIpsstringoptionalEnable or disable Trusted IPs. Omit to preserve the current setting.vercelmcp_webfetchvercelurl#Fetches a Vercel deployment URL and returns the response body1 param
Fetches a Vercel deployment URL and returns the response body
urlstringrequiredThe Vercel deployment URL to fetch