Netlify MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides comprehensive tools for working with Netlify through their CLI, enabling deploying sites, managing deployments, handling environment variables, DNS settings, serverless functions, forms, plugins, and webhooks.

Servidor MCP de Netlify

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas y recursos para interactuar con Netlify a través de su CLI. Este servidor permite implementar sitios, administrar variables de entorno, compilaciones y más, compatible con la CLI de Netlify v19.1.5.

Cambios recientes (8 de abril de 2025)

  • Actualización de compatibilidad: Se verificó la compatibilidad de la herramienta con Netlify CLI v19.1.5.
  • Herramientas/recursos no compatibles eliminados: Se eliminó la funcionalidad relacionada con los grupos de comandos CLI no disponibles: dns , forms , plugins , hooks y deploys . Comandos específicos como functions:delete , functions:invoke y sites:get también se eliminaron por no estar disponibles o ser incompatibles con el uso no interactivo a través del servidor MCP.
  • Solución alternativa del contexto del sitio: se actualizaron las herramientas que requieren que el contexto del sitio (como env:* , logs:function , build , trigger-build ) pase el siteId a través de la variable de entorno NETLIFY_SITE_ID , ya que el indicador --site no es compatible con estos comandos en esta versión de CLI.

Características (compatible con Netlify CLI v19.1.5)

  • Implementar y administrar sitios ( deploy-site , build-site , trigger-build , link-site , unlink-site , get-status , create-site , delete-site )
  • Administrar variables de entorno ( set-env-vars , get-env-var , unset-env-var , import-env , clone-env-vars )
  • Obtener registros de funciones ( get-logs )
  • Acceda a los datos del sitio a través de Recursos ( list-sites , list-functions , list-env-vars )
  • Manejo integral de errores
  • Validación de parámetros de tipo seguro usando Zod

Instalación

Instalación mediante herrería

Para instalar Netlify MCP Server para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @DynamicEndpoints/Netlify-MCP-Server --client claude

Instalación manual

  1. Clonar el repositorio (si aún no lo ha hecho).
  2. Instalar dependencias:
    npm install
  3. Construir el servidor:
    npm run build
  4. Asegúrese de que Netlify CLI esté instalado (v19.1.5 o compatible):
    # Example global install: npm install -g netlify-cli@19.1.5

Autenticación

Este servidor MCP interactúa con la CLI de Netlify, lo que requiere autenticación con su cuenta de Netlify. Dado que el servidor se ejecuta de forma no interactiva, debe usar un token de acceso personal (PAT) .

  1. Generar un PAT:
    • Vaya a Configuración de usuario de Netlify > Aplicaciones > Tokens de acceso personal ( Enlace directo ).
    • Seleccione Nuevo token de acceso .
    • Dale una descripción (por ejemplo, "Token de servidor MCP").
    • Establecer una fecha de vencimiento.
    • Seleccione Generar token .
    • Copie el token inmediatamente y guárdelo de forma segura.
  2. Configurar el token: Debe poner este token a disposición del servidor MCP como la variable de entorno NETLIFY_AUTH_TOKEN . Añádala a la sección env de la configuración del servidor en el archivo de configuración de MCP (ver más abajo).

Nota: el uso netlify login no es adecuado para este servidor, ya que requiere autenticación del navegador interactiva.

Configuración

Agregue la siguiente configuración a su archivo de configuración de MCP (la ubicación varía según la plataforma), reemplazando "YOUR_NETLIFY_PAT_HERE" con su token de acceso personal real:

{ "mcpServers": { "netlify": { "command": "node", "args": ["/path/to/Netlify-MCP-Server/build/index.js"], // Adjust path if needed "env": { "NETLIFY_AUTH_TOKEN": "YOUR_NETLIFY_PAT_HERE" }, "disabled": false, "autoApprove": [] } } }

Reemplace /path/to/Netlify-MCP-Server con la ruta real donde clonó/instaló el servidor.

Ubicaciones de los archivos de configuración:

  • Escritorio de Claude (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Extensión Cline Dev (VS Code): /home/user/.codeoss-cloudworkstations/data/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (o similar según el sistema operativo/configuración)
  • Consulte la documentación específica de su cliente MCP para conocer otras ubicaciones potenciales.

Herramientas disponibles (compatible con Netlify CLI v19.1.5)

(Los parámetros se basan en los esquemas Zod definidos en src/index.ts )

Gestión de sitios e implementaciones

sitio de implementación

Implementar un directorio de sitio en Netlify.

{ "path": "string", // Required: Path to the site directory "prod": "boolean?", // Optional: Deploy to production "message": "string?" // Optional: Deploy message }

Ejemplo:

{ "path": "./dist", "prod": true, "message": "Deploying latest changes" }

sitios de listas

Enumere todos los sitios de Netlify vinculados a su cuenta.

{} // No parameters

Ejemplo:

{}

construcción de gatillo

Activa una nueva compilación/implementación para un sitio. El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID .

{ "siteId": "string", // Required: Site ID or name "message": "string?" // Optional: Deploy message }

Ejemplo:

{ "siteId": "your-site-id-here", "message": "Triggering rebuild" }

sitio de construcción

Ejecutar una compilación de Netlify localmente (imitando el entorno de compilación de Netlify). El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID si se proporciona siteId .

{ "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) }

Ejemplo:

{ "siteId": "your-site-id-here", "context": "production" }

sitio de enlaces

Vincula el directorio del proyecto actual a un sitio de Netlify (requiere ID de sitio para uso no interactivo).

{ "siteId": "string" // Required: Site ID to link to. }

Ejemplo:

{ "siteId": "your-site-id-here" }

desvincular sitio

Desvincular el directorio del proyecto actual del sitio Netlify asociado.

{} // No parameters

Ejemplo:

{}

obtener estado

Muestra el estado de Netlify del sitio o directorio vinculado. (Probablemente fallará si se ejecuta a través del servidor MCP, a menos que el directorio del servidor esté vinculado).

{} // No parameters

Ejemplo:

{}

crear sitio

Crear un nuevo sitio en Netlify (no interactivo).

{ "name": "string?", // Optional: Site name (subdomain) "accountSlug": "string?" // Optional: Account slug for the team (defaults to 'playhousehosting' if omitted) }

Ejemplo:

{ "name": "my-awesome-new-site" }

eliminar sitio

Eliminar un sitio de Netlify.

{ "siteId": "string", // Required: Site ID to delete "force": "boolean?" // Optional: Force deletion without confirmation (default: true) }

Ejemplo:

{ "siteId": "site-id-to-delete", "force": true }

Gestión de variables ambientales

establecer variables de entorno

Establezca una o más variables de entorno para un sitio. El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID .

{ "siteId": "string", // Required: Site ID or name "envVars": { // Required: Object of key-value pairs "KEY": "value" } }

Ejemplo:

{ "siteId": "your-site-id-here", "envVars": { "API_KEY": "secret123", "NODE_ENV": "production" } }

obtener-variable-de-entorno

Obtiene el valor de una variable de entorno específica. El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID si se proporciona siteId .

{ "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') }

Ejemplo:

{ "siteId": "your-site-id-here", "key": "API_KEY" }

variable de entorno no establecida

Eliminar una variable de entorno. El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID si se proporciona siteId .

{ "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) }

Ejemplo:

{ "siteId": "your-site-id-here", "key": "OLD_VAR" }

importar-env

Importar variables de entorno desde un archivo .env . El contexto del sitio se pasa mediante la variable de entorno NETLIFY_SITE_ID .

{ "siteId": "string", // Required: Site ID or name "filePath": "string", // Required: Path to the .env file "replace": "boolean?" // Optional: Replace existing variables instead of merging }

Ejemplo:

{ "siteId": "your-site-id-here", "filePath": ".env.production", "replace": true }

variables de entorno clonadas

Clonar variables de entorno de un sitio a otro. Requiere que el sitio de origen esté vinculado o especificado mediante NETLIFY_SITE_ID .

{ "fromSiteId": "string", // Required: Source Site ID "toSiteId": "string" // Required: Destination Site ID }

Ejemplo:

{ "fromSiteId": "source-site-id", "toSiteId": "destination-site-id" }

Funciones sin servidor

obtener registros

Ver registros de funciones. El contexto del sitio se transmite mediante la variable de entorno NETLIFY_SITE_ID .

{ "siteId": "string", // Required: Site ID or name "function": "string?" // Optional: Specific function name to filter logs }

Ejemplo:

{ "siteId": "your-site-id-here", "function": "my-serverless-func" }

Recursos disponibles (compatible con Netlify CLI v19.1.5)

Acceda a los datos de Netlify directamente utilizando estos URI de recursos:

  • netlify://sites : Lista todos los sitios (salida JSON de sites:list --json )
  • netlify://sites/{siteId}/functions : enumera las funciones de un sitio (salida JSON de functions:list --json , requiere la variable de entorno NETLIFY_SITE_ID={siteId} )
  • netlify://sites/{siteId}/env : enumera las variables de entorno de un sitio (salida JSON de env:list --json , requiere la variable de NETLIFY_SITE_ID={siteId} )

Limitaciones (Netlify CLI v19.1.5)

  • Comandos interactivos: Este servidor no admite comandos que requieren indicaciones interactivas (como netlify login , netlify init y netlify dev ). Utilice un token de acceso personal para la autenticación.
  • Contexto del sitio: Muchos comandos ( env:* , logs:function , build , trigger-build , functions:list ) requieren contexto del sitio. Este servidor pasa el siteId requerido mediante la variable de entorno NETLIFY_SITE_ID al ejecutar estos comandos. Comandos como status y unlink operan en el directorio de trabajo actual del servidor, que normalmente no está vinculado y, por lo tanto, podrían no funcionar correctamente al ser llamados a través del servidor MCP.
  • Comandos no compatibles: la funcionalidad relacionada con DNS, formularios, complementos, ganchos e implementaciones (enumerar implementaciones específicas, obtener el estado de la implementación) se ha eliminado debido a la incompatibilidad con CLI v19.1.5.

Desarrollo

Para modificar el servidor:

  1. Actualizar el código fuente en src/index.ts .
  2. Construya con npm run build .
  3. Reinicie el servidor MCP en su aplicación cliente para cargar los cambios.
  4. Pruebe sus cambios.

Recursos

ID: rmzusviqom