A Model Context Protocol (MCP) server for Netlify, providing comprehensive access to ALL Netlify CLI features through the latest MCP SDK v1.12.3 and Netlify CLI v22.1.3. Now with 43 tools covering Blobs, Dev Server, Recipes, Analytics, Forms, and advanced API operations.
- Updated to MCP SDK v1.12.3 - Latest SDK with improved performance and new capabilities
- Netlify CLI v22.1.3 - Latest Netlify CLI with new features and bug fixes
- 43 Comprehensive Tools - Complete coverage of Netlify CLI including Blobs, Dev Server, Recipes
- Netlify Blobs Support - Full blob storage management (get, set, delete, list)
- Dev Server Integration - Local development server tools for testing
- Recipe System - Access to Netlify's automation recipes
- Advanced API Access - Direct Netlify API calls and method discovery
- Enhanced Analytics - Site analytics and performance monitoring
- Form Management - Complete form and submission handling
- Real-time Monitoring - Live log streaming and deployment watching
- Account Management - Multi-account switching and management
- Improved Resource System - Better resource handling with JSON output
- Smart Prompts - Pre-built prompts for common Netlify workflows
- Better Error Handling - More robust error reporting and recovery
- Modern TypeScript Configuration - Updated to latest TypeScript best practices
28 comprehensive workflow templates designed specifically for AI coding agents:
netlify-deploy
- Complete deployment with validation and monitoringnetlify-setup
- Full site setup from creation to productionnetlify-environment-setup
- Environment configuration across contextsnetlify-troubleshoot
- Comprehensive issue diagnosis and resolutionnetlify-function-deploy
- Function deployment with best practicesnetlify-migration
- Site migration with optimizationnetlify-optimization
- Performance, security, and SEO optimizationnetlify-security-audit
- Complete security audit and hardeningnetlify-performance-audit
- Comprehensive performance analysis and optimizationnetlify-edge-functions-setup
- Edge functions deployment and configurationnetlify-blobs-management
- Comprehensive blob storage management workflownetlify-forms-setup
- Form handling and submission management setupnetlify-analytics-dashboard
- Analytics dashboard setup and monitoringnetlify-domain-setup
- Custom domain configuration and DNS managementnetlify-redirects-config
- URL redirects and rewrite rules configurationnetlify-build-optimization
- Build process optimization and cachingnetlify-monitoring-setup
- Comprehensive monitoring and alerting setupnetlify-backup-strategy
- Site backup and disaster recovery planningnetlify-team-collaboration
- Team workflow and collaboration setupnetlify-api-integration
- API integration and webhook configurationnetlify-staging-workflow
- Staging environment and preview deployment workflownetlify-seo-optimization
- SEO optimization and search engine visibilitynetlify-cdn-optimization
- CDN and edge network optimizationnetlify-compliance-audit
- Compliance and accessibility auditnetlify-cost-optimization
- Cost analysis and optimization recommendationsnetlify-disaster-recovery
- Disaster recovery testing and proceduresnetlify-advanced-deployment
- Advanced deployment strategies and blue-green deployments
32 enhanced data sources with live updates:
- Site Resources: Overview, functions, environment variables, deploys, forms, analytics, logs, edge functions, domains, redirects, headers, performance, security, bandwidth, errors
- Blob Storage: Complete blob storage management and data access
- Recipes & API: Automation recipes and direct API method access
- Account Resources: Usage statistics, team information, billing, members, integrations, tokens, notifications
- Global Resources: Service status, deployment regions, and system health
- Real-time Features: Live subscriptions, automatic cache invalidation, event notifications
- Subscribe to any resource URI for real-time updates
- Automatic cache management with intelligent refresh
- Targeted notifications based on change types
- Retry logic for failed notifications
Complete Netlify functionality at your fingertips:
- 🚀 Deployment & Build Management - Deploy, build, trigger, and monitor deployments
- 🏗️ Site Administration - Create, manage, and configure Netlify sites
- ⚙️ Environment Management - Full environment variable control and cloning
- 📦 Netlify Blobs Storage - Complete blob storage operations (get, set, delete, list)
- ⚡ Serverless Functions - Build, invoke, and monitor function execution
- đź”§ Development Tools - Local dev server and built site serving
- 🤖 Recipe Automation - Access to Netlify's automation recipes
- 📊 Analytics & Monitoring - Site analytics, real-time logs, and performance data
- đź“‹ Form Management - Handle forms and submissions
- 🔌 Direct API Access - Make direct Netlify API calls with method discovery
- 👥 Account Management - Multi-account switching and team management
deploy-site
- Deploy a site to Netlify (production or preview)trigger-build
- Trigger a new build and deploybuild-site
- Build site locally with context options
list-sites
- List all Netlify sitescreate-site
- Create a new Netlify sitedelete-site
- Delete a Netlify siteget-site-info
- Get detailed site informationlink-site
- Link current directory to a Netlify siteunlink-site
- Unlink current directory from Netlify siteget-status
- Get current Netlify statusinit-site
- Initialize a new site in current directoryopen-site
- Open site in browser
set-env-vars
- Set environment variables for a siteget-env-var
- Get a specific environment variableunset-env-var
- Unset an environment variableclone-env-vars
- Clone environment variables between sitesimport-env
- Import environment variables from file
list-deploys
- List deploys for a siteget-deploy-info
- Get information about a specific deploycancel-deploy
- Cancel a running deployrestore-deploy
- Restore a previous deploywatch-deploy
- Watch deployment progress in real-time
list-functions
- List all functions for a siteget-logs
- Get function logs for a sitebuild-function
- Build a serverless functioninvoke-function-advanced
- Invoke function with advanced options
get-blob
- Get a blob from Netlify Blobs storageset-blob
- Set/store a blob in Netlify Blobs storagedelete-blob
- Delete a blob from storagelist-blobs
- List all blobs in a store
start-dev-server
- Start Netlify dev server locallyserve-built-site
- Serve a built site locally
list-recipes
- List available Netlify recipesrun-recipe
- Run a specific Netlify recipe
call-netlify-api
- Make direct Netlify API callslist-api-methods
- List available API methods
get-form-submissions
- Get form submissions for a sitemanage-form
- Manage site forms and submissionsget-analytics
- Get site analytics data
stream-logs
- Stream real-time logs from functionsenable-branch-deploy
- Enable branch deploys for a specific branchdisable-branch-deploy
- Disable branch deploys for a specific branch
switch-account
- Switch between Netlify accounts
netlify://sites
- List all sites (JSON)netlify://sites/{siteId}/overview
- Complete site overview with functions, deployments, and analyticsnetlify://sites/{siteId}/functions
- List site functions (JSON)netlify://sites/{siteId}/env
- List environment variables (JSON)netlify://sites/{siteId}/deploys
- List site deployments (JSON)netlify://sites/{siteId}/deploys/{deployId}
- Detailed information about a specific deploymentnetlify://sites/{siteId}/forms
- Form submissions and configurationnetlify://sites/{siteId}/analytics
- Site usage analytics and performance metricsnetlify://sites/{siteId}/logs
- Recent site and function logsnetlify://sites/{siteId}/edge-functions
- List and manage edge functions for a sitenetlify://sites/{siteId}/build-hooks
- Manage build hooks and webhook configurationsnetlify://sites/{siteId}/domains
- Custom domains and DNS configurationnetlify://sites/{siteId}/redirects
- URL redirects and rewrite rulesnetlify://sites/{siteId}/headers
- Custom HTTP headers configurationnetlify://sites/{siteId}/performance
- Site performance analytics and optimization datanetlify://sites/{siteId}/security
- Security headers, SSL, and vulnerability analysisnetlify://sites/{siteId}/bandwidth
- Site bandwidth consumption and analyticsnetlify://sites/{siteId}/errors
- Site error logs and exception trackingnetlify://blobs/{storeName}
- Netlify Blobs storage managementnetlify://blobs/{storeName}/{key}
- Individual blob data and metadatanetlify://recipes
- Netlify automation recipes and templatesnetlify://recipes/{recipeName}
- Detailed recipe configuration and stepsnetlify://api/methods
- Available Netlify API endpoints and methodsnetlify://account/usage
- Account-level usage statistics and limitsnetlify://account/teams
- Team membership and permissionsnetlify://account/billing
- Account billing details and usage costsnetlify://account/members
- Team member management and permissionsnetlify://account/integrations
- Connected services and integrationsnetlify://account/tokens
- Personal access tokens and API keysnetlify://account/notifications
- Email and webhook notification preferencesnetlify://global/regions
- Available deployment regions and edge locationsnetlify://status
- Current Netlify service status and health
netlify-deploy
- Deploy a site with best practices guidancenetlify-setup
- Set up a new Netlify site with configurationnetlify-environment-setup
- Environment configuration across contextsnetlify-troubleshoot
- Comprehensive issue diagnosis and resolutionnetlify-function-deploy
- Function deployment with best practicesnetlify-migration
- Site migration with optimizationnetlify-optimization
- Performance, security, and SEO optimizationnetlify-security-audit
- Complete security audit and hardeningnetlify-performance-audit
- Comprehensive performance analysis and optimizationnetlify-edge-functions-setup
- Edge functions deployment and configurationnetlify-blobs-management
- Comprehensive blob storage management workflownetlify-forms-setup
- Form handling and submission management setupnetlify-analytics-dashboard
- Analytics dashboard setup and monitoringnetlify-domain-setup
- Custom domain configuration and DNS managementnetlify-redirects-config
- URL redirects and rewrite rules configurationnetlify-build-optimization
- Build process optimization and cachingnetlify-monitoring-setup
- Comprehensive monitoring and alerting setupnetlify-backup-strategy
- Site backup and disaster recovery planningnetlify-team-collaboration
- Team workflow and collaboration setupnetlify-api-integration
- API integration and webhook configurationnetlify-staging-workflow
- Staging environment and preview deployment workflownetlify-seo-optimization
- SEO optimization and search engine visibilitynetlify-cdn-optimization
- CDN and edge network optimizationnetlify-compliance-audit
- Compliance and accessibility auditnetlify-cost-optimization
- Cost analysis and optimization recommendationsnetlify-disaster-recovery
- Disaster recovery testing and proceduresnetlify-advanced-deployment
- Advanced deployment strategies and blue-green deployments
To install Netlify MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @DynamicEndpoints/Netlify-MCP-Server --client claude
- Clone this repository:
git clone <repository-url>
cd Netlify-MCP-Server
- Install dependencies:
npm install
- Build the project:
npm run build
- Ensure Netlify CLI is installed (latest version):
npm install -g netlify-cli@latest
This MCP server interacts with the Netlify CLI, which requires authentication with your Netlify account. Since the server runs non-interactively, you must use a Personal Access Token (PAT).
-
Generate a PAT:
- Go to your Netlify User Settings > Applications > Personal access tokens (Direct Link)
- Select New access token
- Give it a description (e.g., "MCP Server Token")
- Set an expiration date
- Select Generate token
- Copy the token immediately and store it securely
-
Configure the Token: You need to make this token available to the MCP server as the
NETLIFY_AUTH_TOKEN
environment variable. Add it to theenv
section of the server's configuration in your MCP settings file (see below).
Note: Using netlify login
is not suitable for this server as it requires interactive browser authentication.
Add the following configuration to your MCP settings file, replacing "YOUR_NETLIFY_PAT_HERE"
with your actual Personal Access Token:
{
"mcpServers": {
"netlify": {
"command": "node",
"args": ["C:\\path\\to\\Netlify-MCP-Server\\build\\index.js"],
"env": {
"NETLIFY_AUTH_TOKEN": "YOUR_NETLIFY_PAT_HERE"
},
"disabled": false,
"autoApprove": []
}
}
}
Settings file locations:
- Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json
- Other MCP clients: Consult your specific MCP client documentation
(Parameters are based on the Zod schemas defined in src/index.ts
)
Deploy a site directory to Netlify.
{
"path": "string", // Required: Path to the site directory
"prod": "boolean?", // Optional: Deploy to production
"message": "string?" // Optional: Deploy message
}
Example:
{
"path": "./dist",
"prod": true,
"message": "Deploying latest changes"
}
List all Netlify sites linked to your account.
{} // No parameters
Example:
{}
Trigger a new build/deploy for a site. Site context is passed via NETLIFY_SITE_ID
env var.
{
"siteId": "string", // Required: Site ID or name
"message": "string?" // Optional: Deploy message
}
Example:
{
"siteId": "your-site-id-here",
"message": "Triggering rebuild"
}
Run a Netlify build locally (mimics Netlify build environment). Site context is passed via NETLIFY_SITE_ID
env var if siteId
is provided.
{
"siteId": "string?", // Optional: Site ID (if project dir not linked)
"context": "string?", // Optional: Build context (e.g., 'production', 'deploy-preview')
"dry": "boolean?" // Optional: Run a dry build (list steps without executing)
}
Example:
{
"siteId": "your-site-id-here",
"context": "production"
}
Link the current project directory to a Netlify site (requires Site ID for non-interactive use).
{
"siteId": "string" // Required: Site ID to link to.
}
Example:
{
"siteId": "your-site-id-here"
}
Unlink the current project directory from the associated Netlify site.
{} // No parameters
Example:
{}
Show the Netlify status for the linked site/directory. (Will likely fail if run via MCP server unless the server directory itself is linked).
{} // No parameters
Example:
{}
Create a new site on Netlify (non-interactively).
{
"name": "string?", // Optional: Site name (subdomain)
"accountSlug": "string?" // Optional: Account slug for the team (defaults to 'playhousehosting' if omitted)
}
Example:
{
"name": "my-awesome-new-site"
}
Delete a site from Netlify.
{
"siteId": "string", // Required: Site ID to delete
"force": "boolean?" // Optional: Force deletion without confirmation (default: true)
}
Example:
{
"siteId": "site-id-to-delete",
"force": true
}
Initialize a new site in the current directory.
{
"name": "string?", // Optional: Site name
"accountSlug": "string?", // Optional: Account slug
"manual": "boolean?" // Optional: Skip git detection
}
Example:
{
"name": "my-new-site",
"manual": true
}
Open site in browser.
{
"siteId": "string?", // Optional: Site ID (if not linked)
"admin": "boolean?" // Optional: Open admin panel instead of site
}
Example:
{
"siteId": "your-site-id-here",
"admin": true
}
Watch deployment progress in real-time.
{
"siteId": "string", // Required: Site ID
"deployId": "string?" // Optional: Specific deploy ID to watch
}
Example:
{
"siteId": "your-site-id-here",
"deployId": "deploy-id-123"
}
Set one or more environment variables for a site. Site context is passed via NETLIFY_SITE_ID
env var.
{
"siteId": "string", // Required: Site ID or name
"envVars": { // Required: Object of key-value pairs
"KEY": "value"
}
}
Example:
{
"siteId": "your-site-id-here",
"envVars": {
"API_KEY": "secret123",
"NODE_ENV": "production"
}
}
Get the value of a specific environment variable. Site context is passed via NETLIFY_SITE_ID
env var if siteId
is provided.
{
"siteId": "string?", // Optional: Site ID (if not linked)
"key": "string", // Required: The environment variable key
"context": "string?", // Optional: Specific context (e.g., 'production')
"scope": "string?" // Optional: Specific scope (e.g., 'builds', 'functions')
}
Example:
{
"siteId": "your-site-id-here",
"key": "API_KEY"
}
Unset (delete) an environment variable. Site context is passed via NETLIFY_SITE_ID
env var if siteId
is provided.
{
"siteId": "string?", // Optional: Site ID (if not linked)
"key": "string", // Required: The environment variable key
"context": "string?" // Optional: Specific context to unset from (otherwise all)
}
Example:
{
"siteId": "your-site-id-here",
"key": "OLD_VAR"
}
Import environment variables from a .env
file. Site context is passed via NETLIFY_SITE_ID
env var.
{
"siteId": "string", // Required: Site ID or name
"filePath": "string", // Required: Path to the .env file
"replace": "boolean?" // Optional: Replace existing variables instead of merging
}
Example:
{
"siteId": "your-site-id-here",
"filePath": ".env.production",
"replace": true
}
Clone environment variables from one site to another. Requires source site to be linked or specified via NETLIFY_SITE_ID
.
{
"fromSiteId": "string", // Required: Source Site ID
"toSiteId": "string" // Required: Destination Site ID
}
Example:
{
"fromSiteId": "source-site-id",
"toSiteId": "destination-site-id"
}
View function logs. Site context is passed via NETLIFY_SITE_ID
env var.
{
"siteId": "string", // Required: Site ID or name
"function": "string?" // Optional: Specific function name to filter logs
}
Example:
{
"siteId": "your-site-id-here",
"function": "my-serverless-func"
}
Access Netlify data directly using these resource URIs:
netlify://sites
: List all sites (JSON output ofsites:list --json
)netlify://sites/{siteId}/functions
: List functions for a site (JSON output offunctions:list --json
, requiresNETLIFY_SITE_ID={siteId}
env var)netlify://sites/{siteId}/env
: List environment variables for a site (JSON output ofenv:list --json
, requiresNETLIFY_SITE_ID={siteId}
env var)netlify://sites/{siteId}/deploys
: List deployments for a site (JSON output ofdeploys:list --json
, requiresNETLIFY_SITE_ID={siteId}
env var)netlify://sites/{siteId}/forms
: List forms for a site (JSON output from form management tools)netlify://sites/{siteId}/analytics
: Site analytics data (JSON output from analytics tools)netlify://blobs/{storeName}
: List blobs in a store (JSON output from blob storage tools)netlify://recipes
: List available recipes (JSON output from recipe tools)netlify://api/methods
: List available API methods (JSON output from API discovery tools)
- Interactive Commands: Commands requiring interactive prompts (like
netlify login
,netlify init
without parameters, interactive dev mode) are not supported by this server. Use a Personal Access Token for authentication and provide required parameters explicitly. - Site Context: Many commands require site context. This server passes the required
siteId
via theNETLIFY_SITE_ID
environment variable when executing these commands. Commands that operate on the current working directory (likestatus
andunlink
) may not function as expected when called via the MCP server unless the server directory is properly linked. - Browser-dependent Features: Some commands that require opening browsers or interactive authentication flows may have limited functionality in the MCP server environment.
- Real-time Streaming: While log streaming is supported, the output is captured and returned rather than providing a true real-time stream interface.
Note: This comprehensive implementation now covers all major Netlify CLI functionality including Blobs, Dev Server, Recipes, Analytics, Forms, and advanced API operations. Previously unsupported features like DNS, Plugins, and Hooks may still have limited support depending on CLI capabilities.
To modify the server:
- Update source code in
src/index.ts
. - Build with
npm run build
. - Restart the MCP server in your client application to load changes.
- Test your changes.