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 239 tools.

Tools
239
What they doRead · write · destructive
137 · 101 · 1137 read101 write1 destructive
Users sign in with
OAuth app
Scalekit's or your own

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. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Vercel, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

    Use your own OAuth app

    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.

  4. 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_get_auth_user',
    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_get_active_attack_statusRetrieve active attack data within the last N days (default: 1 day) CLI fallback on MCP failure (partial): vercel api /v1/security/firewall/attack-status --method GET.Read-only

    Get Active Attack Status

    Retrieve active attack data within the last N days (default: 1 day) CLI fallback on MCP failure (partial): vercel api /v1/security/firewall/attack-status --method GET. Fill placeholders from inputs.

    Inputs

    projectIdstringrequired
    No description.
    teamIdstringrequired
    Team ID to use for this operation.
    sincenumber
    No description.
    slugstring
    Team slug to use for this operation. Use instead of teamId.
  • vercelmcp_get_aliasRetrieves an Alias for the given host name or alias ID.Read-only

    Get Alias

    Retrieves an Alias for the given host name or alias ID. CLI fallback on MCP failure (partial): vercel api /v4/aliases/{idOrAlias} --method GET. Fill placeholders from inputs.

    Inputs

    idOrAliasstringrequired
    The alias or alias ID to be retrieved
    fromnumber
    Get the alias only if it was created after the provided timestamp
    projectIdstring
    Get the alias only if it is assigned to the provided project ID
    sincenumber
    Get the alias only if it was created after this JavaScript timestamp
    slugstring
    Team slug to use for this operation. Use instead of teamId.
    teamIdstring
    Team ID to use for this operation.
    untilnumber
    Get the alias only if it was created before this JavaScript timestamp
  • vercelmcp_get_auth_userRetrieves information related to the currently authenticated User.Read-only

    Get Auth User

    Retrieves information related to the currently authenticated User. CLI fallback on MCP failure (partial): vercel api /v2/user --method GET. Fill placeholders from inputs.

    Inputs

    This tool takes no inputs.

  • vercelmcp_get_bulk_availabilityCheck registration availability for up to 50 domains.Read-only

    Get Bulk Availability

    Check registration availability for up to 50 domains. This is a read-only registry lookup despite using POST; it does not reserve, register, or purchase any domain. CLI fallback on MCP failure (partial): vercel --scope {teamSlugOrId} domains check {domain1} {domain2}. Fill placeholders from inputs.

    Inputs

    requestBodyobjectrequired
    No description.
    teamIdstring
    Team ID to use for this operation.
  • vercelmcp_get_bulk_priceGet price data for multiple domains in a single request.Read-only

    Get Bulk Price

    Get price data for multiple domains in a single request. CLI fallback on MCP failure (partial): vercel --scope {teamSlugOrId} domains price {domain1} {domain2}. Fill placeholders from inputs.

    Inputs

    requestBodyobjectrequired
    No description.
    teamIdstring
    Team ID to use for this operation.
  • vercelmcp_get_bypass_ipRetrieve the system bypass rules configured for the specified project CLI fallback on MCP failure (partial): vercel --scope {teamSlugOrId} firewall system-bypass list --project {projectIdOrName}.Read-only

    Get Bypass Ip

    Retrieve the system bypass rules configured for the specified project CLI fallback on MCP failure (partial): vercel --scope {teamSlugOrId} firewall system-bypass list --project {projectIdOrName}. Fill placeholders from inputs.

    Inputs

    projectIdstringrequired
    No description.
    domainstring
    Filter by domain
    limitnumber
    No description.
    offsetstring
    Used for pagination. Retrieves results after the provided id
    projectScopeboolean
    Filter by project scoped rules
    slugstring
    Team slug to use for this operation. Use instead of teamId.
    sourceIpstring
    Filter by source IP
    teamIdstring
    Team ID to use for this operation.
  • vercelmcp_get_cert_by_idGet cert by id CLI fallback on MCP failure (partial): vercel api /v8/certs/{id} --method GET.Read-only

    Get Cert By Id

    Get cert by id CLI fallback on MCP failure (partial): vercel api /v8/certs/{id} --method GET. Fill placeholders from inputs.

    Inputs

    idstringrequired
    The cert id
    slugstring
    Team slug to use for this operation. Use instead of teamId.
    teamIdstring
    Team ID to use for this operation.
  • vercelmcp_get_configurationRetrieve an installed integration configuration by ID.Read-only

    Get Configuration

    Retrieve an installed integration configuration by ID. The authenticated account or selected team must own the configuration. CLI fallback on MCP failure (partial): vercel api /v1/integrations/configuration/{id} --method GET. Fill placeholders from inputs.

    Inputs

    idstringrequired
    ID of the configuration to check
    slugstring
    Team slug to use for this operation. Use instead of teamId.
    teamIdstring
    Team ID to use for this operation.