Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Vercel MCP server

Vendor MCP
Open markdown

The Vercel MCP connector routes your AI agent's tool calls to Vercel's own MCP server through Scalekit. Each user signs in to Vercel once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 34 tools.

Tools
34
What they doRead · write · destructive
21 · 8 · 521 read8 write5 destructive
Users sign in with
OAuth app
Your own Vercel app

What you can do

  • Deploy projects: deploy the current project or create a project from a Git repository
  • Inspect deployments: list and fetch deployments, read build logs, and open protected deployment URLs
  • Debug production: pull runtime logs and grouped runtime errors with affected routes and counts
  • Review analytics: query Web Analytics visits and custom events for a project
  • Buy domains and upgrades: check domain availability and pricing, get quotes, and purchase domains, credits, or Pro
  • Handle toolbar comments: list, reply to, edit, react to, and resolve toolbar comment threads

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Vercel MCP connection

    In AgentKit > Connections, create a Vercel MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Vercel connections use your own OAuth app. Register one with Vercel and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Vercel MCP connection.

    Console steps with screenshots

    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.

    1. 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:

        FieldWhat to enter
        Integration NameA recognizable name, e.g. My Vercel MCP Agent
        URL SlugAuto-generated from the name — you can leave it as-is
        Website URLYour app’s public URL. For testing you can use https://localhost
        Short DescriptionBrief 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.

    2. 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.
    3. 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.
    4. Configure permissions in Vercel

      • In the Vercel integration settings sidebar, click Permissions.

      • Enable the scopes your integration needs:

        ScopeAccess 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.

    5. 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:

        FieldValue
        Client IDPaste the Client ID from step 3
        Client SecretPaste the Client Secret from step 3
        ScopesEnter 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.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'vercelmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Vercel MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'vercelmcp_listteams',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • vercelmcp_checkdomainavailabilityandpriceCheck if domain names are available for purchase and get pricing informationRead-only

    Vercel Check Domain Availability

    Check if domain names are available for purchase and get pricing information

    Inputs

    namesarrayrequired
    List of domain names to check for availability and pricing
  • vercelmcp_getagentrunGet details for a single Agent RunRead-only

    Vercel Get Agent Run

    Get details for a single Agent Run

    Inputs

    projectIdstringrequired
    The project ID to scope the request to. Alternatively the project slug can be used.
    runIdstringrequired
    The Agent Run ID to inspect.
    teamIdstringrequired
    The team ID to scope the request to. Alternatively the team slug can be used.
    environmentstring
    Agent run environment, usually "production" or "preview". Defaults to "production".
    fromstring
    Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.
    periodstring
    Preset time range. Ignored when both from and to are provided.one of 5m15m1h6h12h1d3d7d14d30d90d
    tostring
    End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.
  • vercelmcp_getagentruntraceGet the execution trace for a single Agent RunRead-only

    Vercel Get Agent Run Trace

    Get the execution trace for a single Agent Run

    Inputs

    projectIdstringrequired
    The project ID to scope the request to. Alternatively the project slug can be used.
    runIdstringrequired
    The Agent Run ID to inspect.
    teamIdstringrequired
    The team ID to scope the request to. Alternatively the team slug can be used.
    environmentstring
    Agent run environment, usually "production" or "preview". Defaults to "production".
    fromstring
    Start time as ISO 8601, Unix seconds, Unix milliseconds, or a relative duration. Must be used with to.
    maxFieldLengthnumber
    Maximum length for individual string fields in the returned trace. Defaults to 8000; use 0 to disable truncation.
    periodstring
    Preset time range. Ignored when both from and to are provided.one of 5m15m1h6h12h1d3d7d14d30d90d
    tostring
    End time as ISO 8601, Unix seconds, Unix milliseconds, a relative duration, or "now". Must be used with from.
  • vercelmcp_getdeploymentGet a specific deployment by ID or URLRead-only

    Vercel Get Deployment

    Get a specific deployment by ID or URL

    Inputs

    idOrUrlstringrequired
    The deployment ID or URL to retrieve
    teamIdstringrequired
    The ID of the team that owns the deployment
  • vercelmcp_getdeploymentbuildlogsGet the build logs of a deployment by deployment ID or URLRead-only

    Vercel Get Deployment Build Logs

    Get the build logs of a deployment by deployment ID or URL

    Inputs

    idOrUrlstringrequired
    The deployment ID or URL whose build logs to retrieve
    teamIdstringrequired
    The ID of the team that owns the deployment
  • vercelmcp_getdomainorderGet the status of a domain purchase order returned by buy_domain, to confirm whether the registration completedRead-only

    Vercel Get Domain Order

    Get the status of a domain purchase order returned by buy_domain, to confirm whether the registration completed

    Inputs

    orderIdstringrequired
    The orderId returned by buy_domain.
    teamIdstring
    The team ID to scope the request to. Alternatively the team slug can be used.
  • vercelmcp_getprojectGet a specific project in VercelRead-only

    Vercel Get Project

    Get a specific project in Vercel

    Inputs

    projectIdstringrequired
    The ID of the project to retrieve
    teamIdstringrequired
    The ID of the team that owns the project
  • vercelmcp_getprojectdeploymentprotectionGet the effective password protection, Vercel Authentication, and Trusted IP settings for a Vercel projectRead-only

    Vercel Get Project Deployment Protection

    Get the effective password protection, Vercel Authentication, and Trusted IP settings for a Vercel project

    Inputs

    projectIdstringrequired
    The project ID to scope the request to. Alternatively the project slug can be used.
    teamIdstringrequired
    The team ID to scope the request to. Alternatively the team slug can be used.