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.

Netlify MCP 서버

Netlify CLI를 통해 Netlify와 상호 작용할 수 있는 도구와 리소스를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 사이트 배포, 환경 변수 관리, 빌드 등의 작업을 수행할 수 있으며, Netlify CLI v19.1.5와 호환됩니다.

최근 변경 사항(2025년 4월 8일)

  • 호환성 업데이트: Netlify CLI v19.1.5와의 도구 호환성이 검증되었습니다.
  • 지원되지 않는 도구/리소스 제거: 사용할 수 없는 CLI 명령 그룹( dns , forms , plugins , hooks , deploys 과 관련된 기능을 제거했습니다. functions:delete , functions:invoke , sites:get 과 같은 특정 명령도 사용할 수 없거나 MCP 서버를 통한 비대화형 사용과 호환되지 않아 제거되었습니다.
  • 사이트 컨텍스트 해결 방법: 이 CLI 버전에서는 이러한 명령에 대해 --site 플래그가 지원되지 않으므로, 사이트 컨텍스트(예 env:* , logs:function , build , trigger-build )가 필요한 도구를 업데이트하여 NETLIFY_SITE_ID 환경 변수를 통해 siteId 를 전달합니다.

기능(Netlify CLI v19.1.5와 호환)

  • 사이트 배포 및 관리( deploy-site , build-site , trigger-build , link-site , unlink-site , get-status , create-site , delete-site )
  • 환경 변수 관리( set-env-vars , get-env-var , unset-env-var , import-env , clone-env-vars )
  • 함수 로그 가져오기( get-logs )
  • 리소스( list-sites , list-functions , list-env-vars )를 통해 사이트 데이터에 액세스합니다.
  • 포괄적인 오류 처리
  • Zod를 사용한 유형 안전 매개변수 검증

설치

Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 Netlify MCP 서버를 자동으로 설치하려면:

지엑스피1

수동 설치

  1. 저장소를 복제합니다(아직 복제하지 않았다면).
  2. 종속성 설치:
    npm install
  3. 서버를 빌드하세요:
    npm run build
  4. Netlify CLI가 설치되어 있는지 확인하세요(v19.1.5 이상 호환):
    # Example global install: npm install -g netlify-cli@19.1.5

입증

이 MCP 서버는 Netlify CLI와 상호 작용하며, Netlify 계정 인증이 필요합니다. 서버는 비대화형으로 실행되므로 개인 액세스 토큰(PAT)을 사용해야 합니다 .

  1. PAT 생성:
    • Netlify 사용자 설정 > 애플리케이션 > 개인 액세스 토큰( 직접 링크 )으로 이동합니다.
    • 새 액세스 토큰을 선택합니다.
    • 설명을 입력하세요(예: "MCP 서버 토큰").
    • 만료일을 설정하세요.
    • 토큰 생성을 선택합니다.
    • 토큰을 즉시 복사하여 안전하게 보관하세요.
  2. 토큰 구성: 이 토큰을 MCP 서버에서 NETLIFY_AUTH_TOKEN 환경 변수로 사용할 수 있도록 설정해야 합니다. MCP 설정 파일에서 서버 구성의 env 섹션에 토큰을 추가하세요(아래 참조).

참고: netlify login 사용하면 대화형 브라우저 인증이 필요하므로 이 서버에는 적합 하지 않습니다 .

구성

다음 구성을 MCP 설정 파일에 추가합니다(위치는 플랫폼에 따라 다름). "YOUR_NETLIFY_PAT_HERE" 실제 개인 액세스 토큰으로 바꿉니다.

{ "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": [] } } }

/path/to/Netlify-MCP-Server 서버를 복제/설치한 실제 경로로 바꾸세요.

설정 파일 위치:

  • Claude Desktop(macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Cline Dev Extension(VS Code): /home/user/.codeoss-cloudworkstations/data/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json (또는 OS/설정에 따라 유사)
  • 다른 잠재적인 위치에 대해서는 해당 MCP 클라이언트 문서를 참조하세요.

사용 가능한 도구(Netlify CLI v19.1.5 호환)

(매개변수는 src/index.ts 에 정의된 Zod 스키마를 기반으로 합니다)

사이트 및 배포 관리

배포 사이트

Netlify에 사이트 디렉토리를 배포합니다.

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

예:

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

목록 사이트

귀하의 계정에 연결된 모든 Netlify 사이트를 나열합니다.

{} // No parameters

예:

{}

트리거 빌드

사이트에 대한 새 빌드/배포를 트리거합니다. 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

건설 현장

Netlify 빌드를 로컬에서 실행합니다(Netlify 빌드 환경과 유사). siteId 제공된 경우 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

링크 사이트

현재 프로젝트 디렉토리를 Netlify 사이트에 연결합니다(비대화형 사용의 경우 사이트 ID가 필요합니다).

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

예:

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

사이트 링크 해제

현재 프로젝트 디렉토리를 연관된 Netlify 사이트에서 연결 해제합니다.

{} // No parameters

예:

{}

상태 가져오기

링크된 사이트/디렉토리의 Netlify 상태를 표시합니다. (서버 디렉터리 자체가 링크되어 있지 않으면 MCP 서버를 통해 실행할 경우 실패할 가능성이 높습니다.)

{} // No parameters

예:

{}

사이트 생성

Netlify에서 새로운 사이트를 만듭니다(비대화형).

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

예:

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

삭제 사이트

Netlify에서 사이트를 삭제합니다.

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

예:

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

환경 변수 관리

환경 변수 설정

사이트에 대한 하나 이상의 환경 변수를 설정합니다. 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

get-env-var

특정 환경 변수의 값을 가져옵니다. siteId 가 제공된 경우 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

설정 해제-env-var

환경 변수를 설정 해제(삭제)합니다. siteId 제공된 경우 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

가져오기-환경

.env 파일에서 환경 변수를 가져옵니다. 사이트 컨텍스트는 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 }

예:

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

클론-환경-변수

한 사이트에서 다른 사이트로 환경 변수를 복제합니다. 원본 사이트를 NETLIFY_SITE_ID 통해 연결하거나 지정해야 합니다.

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

예:

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

서버리스 함수

get-logs

함수 로그를 봅니다. 사이트 컨텍스트는 NETLIFY_SITE_ID 환경 변수를 통해 전달됩니다.

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

예:

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

사용 가능한 리소스(Netlify CLI v19.1.5 호환)

다음 리소스 URI를 사용하여 Netlify 데이터에 직접 액세스하세요.

  • netlify://sites : 모든 사이트 나열( sites:list --json 의 JSON 출력)
  • netlify://sites/{siteId}/functions : 사이트의 함수 목록( functions:list --json 의 JSON 출력, NETLIFY_SITE_ID={siteId} 환경 변수 필요)
  • netlify://sites/{siteId}/env : 사이트의 환경 변수 나열( env:list --json 의 JSON 출력, NETLIFY_SITE_ID={siteId} 환경 변수 필요)

제한 사항(Netlify CLI v19.1.5)

  • 대화형 명령: 대화형 프롬프트가 필요한 명령(예: netlify login , netlify init , netlify dev )은 이 서버에서 지원되지 않습니다. 인증에는 개인 액세스 토큰을 사용하세요.
  • 사이트 컨텍스트: 많은 명령( env:* , logs:function , build , trigger-build , functions:list )은 사이트 컨텍스트를 필요로 합니다. 이 서버는 이러한 명령을 실행할 때 NETLIFY_SITE_ID 환경 변수를 통해 필요한 siteId 전달합니다. statusunlink 와 같은 명령은 서버의 현재 작업 디렉터리 에서 작동하며, 일반적으로 연결되지 않으므로 MCP 서버를 통해 호출할 경우 예상대로 작동하지 않을 수 있습니다.
  • 지원되지 않는 명령: DNS, 양식, 플러그인, 후크 및 배포(특정 배포 나열, 배포 상태 가져오기)와 관련된 기능은 CLI v19.1.5와의 호환성 문제로 인해 제거되었습니다.

개발

서버를 수정하려면:

  1. src/index.ts 의 소스 코드를 업데이트합니다.
  2. npm run build 로 빌드합니다.
  3. 변경 사항을 적용하려면 클라이언트 애플리케이션에서 MCP 서버를 다시 시작하세요.
  4. 변경 사항을 테스트하세요.

자원

ID: rmzusviqom