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 を介して操作するためのツールとリソースを提供する Model Context Protocol (MCP) サーバー。このサーバーは、Netlify CLI v19.1.5 と互換性があり、サイトのデプロイ、環境変数の管理、ビルドなどを可能にします。

最近の変更点(2025年4月8日)

  • 互換性アップデート: Netlify CLI v19.1.5 とのツール互換性が検証されました。
  • **サポートされていないツール/リソースの削除:**使用できないCLIコマンドグループ( dnsformspluginshooksdeploys )に関連する機能が削除されました。また、 functions:deletefunctions:invokesites:getなどの特定のコマンドも、MCPサーバー経由の非対話型使用では使用できないか、互換性がないため削除されました。
  • **サイト コンテキストの回避策:**この CLI バージョンではこれらのコマンドに対して--siteフラグがサポートされていないため、サイト コンテキスト ( env:*logs:functionbuildtrigger-build ) を必要とするツールを更新し、 NETLIFY_SITE_ID環境変数を介してsiteIdを渡すようにしました。

機能(Netlify CLI v19.1.5と互換性あり)

  • サイトのデプロイと管理 ( deploy-sitebuild-sitetrigger-buildlink-siteunlink-siteget-statuscreate-sitedelete-site )
  • 環境変数を管理する ( set-env-varsget-env-varunset-env-varimport-envclone-env-vars )
  • 関数のログを取得する ( get-logs )
  • リソース経由でサイトデータにアクセスする ( list-siteslist-functionslist-env-vars )
  • 包括的なエラー処理
  • Zodを使用した型安全なパラメータ検証

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Netlify MCP Server を自動的にインストールするには:

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

手動インストール

  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 デスクトップ (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変数を介して渡されます。

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

環境変数管理

環境変数の設定

サイトに1つ以上の環境変数を設定します。サイトのコンテキストは、 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" } }

環境変数を取得する

特定の環境変数の値を取得します。siteIdが指定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" }

環境変数の設定解除

環境変数を設定解除(削除)します。siteId が指定されている場合、サイトコンテキストはNETLIFY_SITE_ID 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) }

例:

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

サーバーレス関数

ログを取得する

関数のログを表示します。サイトコンテキストは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 loginnetlify initnetlify devなど)は、このサーバーではサポートされていません。認証には個人アクセストークンを使用してください。
  • **サイトコンテキスト:**多くのコマンド ( env:*``status``logs:functionbuildtrigger-buildfunctions:list ) はサイトコンテキストを必要とします。このサーバーは、これらのコマンドを実行する際に、必要なsiteId``NETLIFY_SITE_ID環境変数を介して渡します。status やunlinkなどのコマンドは、サーバーの現在の作業ディレクトリに対して実行されます。このディレクトリは通常リンクされていないため、MCPサーバー経由で呼び出された場合、期待どおりに動作しない可能性があります。
  • サポートされていないコマンド: DNS、フォーム、プラグイン、フック、およびデプロイに関連する機能 (特定のデプロイの一覧表示、デプロイ ステータスの取得) は、CLI v19.1.5 との非互換性のため削除されました。

発達

サーバーを変更するには:

  1. src/index.tsのソースコードを更新します。
  2. npm run buildでビルドします。
  3. 変更をロードするには、クライアント アプリケーションで MCP サーバーを再起動します。
  4. 変更をテストします。

リソース

ID: rmzusviqom