Netlify站点管理服务器

一个基于模型上下文协议(MCP)的服务器,用于通过MCP环境无缝集成Netlify API,实现站点的创建、管理和部署。

  • by MCERQUA
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 MCERQUA/netlify-mcp

使用说明

Netlify MCP服务器

用于管理Netlify站点的模型上下文协议(MCP)服务器。该服务器能够通过MCP与Netlify的API无缝集成,允许您直接从支持MCP的环境中创建、管理和部署站点。

特性

  • 🚀 从GitHub存储库创建新网站
  • 📋 列出具有分页功能的现有Netlify网站
  • 🔍 获取详细的网站信息
  • 🗑️ 删除网站
  • 🔐 使用Netlify API进行安全身份验证
  • ⚡ 使用TypeScript构建类型安全
  • 🐳 Docker支持,易于部署

需求

  • Node.js 18或更高版本
  • 具有API访问权限的Netlify帐户
  • 用于部署站点的GitHub存储库

安装

来源

  1. 克隆此存储库:
git clone https://github.com/MCERQUA/netlify-mcp.git
cd netlify-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

使用Docker

docker build -t netlify-mcp .
docker run -e NETLIFY_ACCESS_TOKEN=your_token_here netlify-mcp

配置

获取您的Netlify访问令牌

  1. 在以下网址创建Netlify帐户 https://app.netlify.com/signup
  2. 前往“用户设置”>“应用程序”>“个人访问令牌”
  3. 点击“新建访问令牌”
  4. 为其命名(例如,“MCP集成”)
  5. 复制生成的令牌

设置MCP

  1. 创建一个 .env 项目根目录中的文件:
NETLIFY_ACCESS_TOKEN=your_token_here
  1. 将服务器添加到MCP设置配置中:
{
  "mcpServers": {
    "netlify": {
      "command": "node",
      "args": ["path/to/netlify-mcp/build/index.js"],
      "env": {
        "NETLIFY_ACCESS_TOKEN": "your_token_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

可用工具

从GitHub创建站点

从GitHub存储库创建一个新的Netlify站点。

interface CreateSiteFromGitHubArgs {
  name: string;          // Name for the new site (subdomain)
  repo: string;          // GitHub repository (format: owner/repo)
  branch?: string;       // Branch to deploy from (default: main)
  buildCommand: string;  // Build command to run
  publishDir: string;    // Directory containing the built files
  envVars?: Record<string, string>; // Environment variables
}

listSites

列出您有权访问的所有Netlify网站。

interface ListSitesArgs {
  filter?: 'all' | 'owner' | 'guest';  // Filter for sites
  page?: number;         // Page number for pagination
  perPage?: number;      // Items per page (max 100)
}

getSite

获取特定网站的详细信息。

interface GetSiteArgs {
  siteId: string;  // ID or name of the site
}

删除网站

删除Netlify网站。

interface DeleteSiteArgs {
  siteId: string;  // ID or name of the site
}

文档

有关更多详细信息,请参阅:

发展

# Run in development mode with auto-rebuild
npm run dev

# Clean build artifacts
npm run clean

# Build the project
npm run build

故障排除

常见问题

  1. “NETLIFY_ACCESS_TOKEN环境变量是必需的”

    • 确保您已在环境中设置了令牌,或者 .env 文件
  2. “创建站点失败:401未经授权”

    • 您的访问令牌可能无效或已过期
    • 从Netlify设置生成新令牌
  3. “无效的仓库格式”

    • 确保存储库的格式正确 owner/repo
    • 例子: facebook/react,不 https://github.com/facebook/react

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢