Netlify MCP connector
OAuth 2.0/DCR Developer ToolsAutomationProductivityBuild, deploy, and manage Netlify projects — sites, functions, environment variables, forms, blobs, and edge functions — from AI agents via the Netlify...
Netlify 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 Netlify MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Before connecting Netlify MCP, enable the Model Context Protocol feature in your Slack app settings. This allows your Slack app to share context with LLMs and agents.
-
Enable MCP in your Slack app
- Go to api.slack.com/apps and open your app.
- In the left sidebar, under Features, click Agents & AI Apps.
- Under Model Context Protocol, toggle it on.
-
Connect in Scalekit
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Netlify MCP and click Create.
-
-
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 = '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)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: 'netlifymcp_get_netlify_coding_context',toolInput: { creationType: 'YOUR_CREATIONTYPE' },})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 = "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":"YOUR_CREATIONTYPE"},tool_name="netlifymcp_get_netlify_coding_context",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:
- Get netlify coding context — ALWAYS call when writing code
- Reader netlify deploy services, netlify extension services, netlify project services — Read Netlify deploy information
- Updater netlify deploy services, netlify extension services, netlify project services — Write operations for Netlify deployments
Common workflows
Section titled “Common workflows”Proxy API call
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.actions
const connector = 'netlifymcp'const identifier = 'user_123'
// Read a channel's message historyconst result = await actions.executeTool({ connector, identifier, toolName: 'netlifymcp_slack_read_channel', toolInput: { channel_id: 'C01234567' },})console.log(result)from scalekit import ScalekitClientimport os
scalekit_client = ScalekitClient( os.environ['SCALEKIT_ENV_URL'], os.environ['SCALEKIT_CLIENT_ID'], os.environ['SCALEKIT_CLIENT_SECRET'],)
connector = 'netlifymcp'identifier = 'user_123'
# Read a channel's message historyresult = scalekit_client.actions.execute_tool( connector=connector, identifier=identifier, tool_name='netlifymcp_slack_read_channel', tool_input={'channel_id': 'C01234567'},)print(result)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.
netlifymcp_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. 1 param
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.
creationType string required The type of Netlify feature to get coding context for. netlifymcp_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). 1 param
Read Netlify deploy information. Supports operations: get-deploy (retrieve a deploy by ID), get-deploy-for-site (retrieve a specific deploy for a site).
selectSchema string required 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_deploy_services_updater
#
Write operations for Netlify deployments. Supports operation: deploy-site (trigger a new deploy for an existing Netlify site). 1 param
Write operations for Netlify deployments. Supports operation: deploy-site (trigger a new deploy for an existing Netlify site).
selectSchema object required Operation selector. Use operation='deploy-site' with a siteId to trigger a deploy. netlifymcp_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). 1 param
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).
selectSchema string required 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_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). 1 param
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).
selectSchema string required 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_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). 1 param
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).
selectSchema string required Operation selector. Choose 'get-project', 'get-projects', or 'get-forms-for-project'. netlifymcp_netlify_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). 1 param
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).
selectSchema string required Operation selector. Choose one of: update-visitor-access-controls, update-forms, manage-form-submissions, update-project-name, manage-env-vars, create-new-project. netlifymcp_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). 1 param
Read Netlify team information. Supports operations: get-teams (list all teams for the current user), get-team (retrieve a specific team by ID).
selectSchema string required Operation selector. Use 'get-teams' to list all teams, or 'get-team' with a teamId to get a specific team. netlifymcp_netlify_user_services_reader
#
Read Netlify user information. Supports operation: get-user (returns the currently authenticated user's profile). 1 param
Read Netlify user information. Supports operation: get-user (returns the currently authenticated user's profile).
selectSchema object required Operation selector. Set operation to 'get-user' to retrieve the current user's profile.