Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Netlify MCP server

Vendor MCP
Open markdown

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

Tools
9
What they doRead · write · destructive
6 · 1 · 26 read1 write2 destructive
Users sign in with
OAuth app
Scalekit's or your own

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 Netlify MCP connection

    In AgentKit > Connections, create a Netlify MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Netlify MCP server, so you don't need to register an OAuth app.

  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 = 'netlifymcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Netlify 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: 'netlifymcp_get_netlify_coding_context',
    toolInput: { creationType: 'serverless' },
    })
    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
  • netlifymcp_get_netlify_coding_contextALWAYS call when writing code.Read-only

    Get Netlify Coding Context

    ALWAYS call when writing code. Required step before creating or editing any type of Netlify functions, SDK/library usage, etc. Returns up-to-date code patterns and guidance for the selected creation type.

    Inputs

    creationTypestringrequired
    The type of Netlify feature to get coding context for.one of serverlessedge-functionsblobsimage-cdnformsdb
  • netlifymcp_netlify_deploy_services_readerRead Netlify deploy information.Read-only

    Netlify Deploy Services Reader

    Read Netlify deploy information. Supports operations: get-deploy (retrieve a deploy by ID), get-deploy-for-site (retrieve a specific deploy for a site).

    Inputs

    selectSchemastringrequired
    Operation selector. Choose 'get-deploy' to retrieve a deploy by ID, or 'get-deploy-for-site' to retrieve a deploy for a specific site.
  • netlifymcp_netlify_extension_services_readerRead Netlify extension information.Read-only

    Netlify Extension Services Reader

    Read Netlify extension information. Supports operations: get-extensions (list all available Netlify extensions), get-full-extension-details (retrieve detailed information about a specific extension for a team).

    Inputs

    selectSchemastringrequired
    Operation selector. Use 'get-extensions' to list all extensions, or 'get-full-extension-details' with extensionSlug and teamId to get details for a specific extension.
  • netlifymcp_netlify_project_services_readerRead Netlify project/site information.Read-only

    Netlify Project Services Reader

    Read Netlify project/site information. Supports operations: get-project (get a site by ID), get-projects (list sites, optionally filtered by team or name), get-forms-for-project (get forms for a site).

    Inputs

    selectSchemastringrequired
    Operation selector. Choose 'get-project', 'get-projects', or 'get-forms-for-project'.
  • netlifymcp_netlify_team_services_readerRead Netlify team information.Read-only

    Netlify Team Services Reader

    Read Netlify team information. Supports operations: get-teams (list all teams for the current user), get-team (retrieve a specific team by ID).

    Inputs

    selectSchemastringrequired
    Operation selector. Use 'get-teams' to list all teams, or 'get-team' with a teamId to get a specific team.
  • netlifymcp_netlify_user_services_readerRead Netlify user information.Read-only

    Netlify User Services Reader

    Read Netlify user information. Supports operation: get-user (returns the currently authenticated user's profile).

    Inputs

    selectSchemaobjectrequired
    Operation selector. Set operation to 'get-user' to retrieve the current user's profile.
  • netlifymcp_netlify_deploy_services_updaterWrite operations for Netlify deployments.Write

    Netlify Deploy Services Updater

    Write operations for Netlify deployments. Supports operation: deploy-site (trigger a new deploy for an existing Netlify site).

    Inputs

    selectSchemaobjectrequired
    Operation selector. Use operation='deploy-site' with a siteId to trigger a deploy.
  • netlifymcp_netlify_extension_services_updaterWrite operations for Netlify extensions.Destructive

    Netlify Extension Services Updater

    Write operations for Netlify extensions. Supports operations: change-extension-installation (install or uninstall a Netlify extension for a team or site), initialize-database (initialize the Netlify database extension).

    Inputs

    selectSchemastringrequired
    Operation selector. Use 'change-extension-installation' to install or uninstall an extension, or 'initialize-database' to set up the Netlify database extension.