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
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet 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>Create the Netlify MCP connection
In AgentKit > Connections, create a Netlify MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Netlify MCP server, so you don't need to register an OAuth app.
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.actionsconst connector = 'netlifymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'netlifymcp_get_netlify_coding_context',toolInput: { creationType: 'serverless' },})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "netlifymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Netlify MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"creationType":"serverless"},tool_name="netlifymcp_get_netlify_coding_context",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolnetlifymcp_get_netlify_coding_contextALWAYS call when writing code.Read-onlyGet 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-onlyNetlify 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-onlyNetlify 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-onlyNetlify 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-onlyNetlify 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-onlyNetlify 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.WriteNetlify 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.DestructiveNetlify 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.
netlifymcp_netlify_project_services_updaterWrite operations for Netlify projects/sites.DestructiveNetlify Project Services Updater
Write operations for Netlify projects/sites. Supports operations: update-visitor-access-controls (set password or SSO login requirements), update-forms (enable or disable Netlify Forms), manage-form-submissions (list or delete form submissions), update-project-name (rename a site), manage-env-vars (get, set, or delete environment variables), create-new-project (create a new Netlify site).
Inputs
selectSchemastringrequired- Operation selector. Choose one of: update-visitor-access-controls, update-forms, manage-form-submissions, update-project-name, manage-env-vars, create-new-project.
No tools match.