Netlify MCP Server
Netlify MCP 服务器
模型上下文协议 (MCP) 服务器,提供通过 Netlify CLI 与 Netlify 交互的工具和资源。该服务器支持部署站点、管理环境变量、构建等功能,并与 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 服务器进行非交互式使用不兼容。**站点上下文解决方法:**更新需要站点上下文的工具(如
env:*、logs:function、build、trigger-build)以通过NETLIFY_SITE_ID环境变量传递siteId,因为此 CLI 版本中的这些命令不支持--site标志。
Related MCP server: NetlifyMCPServer
功能(兼容 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 服务器:
npx -y @smithery/cli install @DynamicEndpoints/Netlify-MCP-Server --client claude手动安装
克隆存储库(如果尚未完成)。
安装依赖项:
npm install构建服务器:
npm run build确保已安装 Netlify CLI(v19.1.5 或兼容):
# Example global install: npm install -g netlify-cli@19.1.5
验证
此 MCP 服务器与 Netlify CLI 交互,需要使用您的 Netlify 帐户进行身份验证。由于服务器以非交互方式运行,因此您必须使用个人访问令牌 (PAT) 。
生成 PAT:
转到您的 Netlify 用户设置 > 应用程序 > 个人访问令牌(直接链接)。
选择**“新建访问令牌”** 。
给出其描述(例如“MCP 服务器令牌”)。
设置到期日期。
选择生成令牌。
立即复制令牌并安全存储。
**配置令牌:**您需要将此令牌作为
NETLIFY_AUTH_TOKEN环境变量提供给 MCP 服务器。请将其添加到 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.jsonCline Dev 扩展(VS 代码):
/home/user/.codeoss-cloudworkstations/data/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json/.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"
}
}获取环境变量
获取特定环境变量的值。如果提供了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": "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 login、netlify init、netlify dev)。请使用个人访问令牌进行身份验证。**站点上下文:**许多命令(
env:*、logs:function、build、trigger-build、functions:list)都需要站点上下文。执行这些命令时,此服务器会通过NETLIFY_SITE_ID环境变量传递所需的siteId和unlink等status会作用于服务器的当前工作目录,而该目录通常未链接,因此通过 MCP 服务器调用时可能无法按预期运行。**不支持的命令:**由于与 CLI v19.1.5 不兼容,与 DNS、表单、插件、钩子和部署(列出特定部署、获取部署状态)相关的功能已被删除。
发展
修改服务器:
更新
src/index.ts中的源代码。使用
npm run build进行构建。在客户端应用程序中重新启动 MCP 服务器以加载更改。
测试您的更改。
资源
Related MCP Connectors
The official MCP Server for the Mux API
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that allows management of Netlify sites, enabling users to create, list, get information about, and delete Netlify sites directly from an MCP-enabled environment.4MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA basic example of developing and running serverless Model Context Protocol (MCP) using Netlify Functions, enabling AI agents to interact with your services via a standardized API.-
- FlicenseNot gradedqualityDmaintenanceA serverless implementation of the Model Context Protocol (MCP) that runs on Netlify Functions, allowing developers to build and deploy MCP-compatible services with minimal configuration.-
- FlicenseNot gradedqualityDmaintenanceA basic example of a serverless Model Context Protocol (MCP) implementation using Netlify Functions, allowing developers to run MCP services without managing traditional server infrastructure.-