Skip to main content
Glama
mcpflow

Netlify MCP Server

by mcpflow
README.md
# Netlify MCP Server

A Model Context Protocol (MCP) server for managing Netlify sites. This server enables seamless integration with Netlify's API through MCP, allowing you to create, manage, and deploy sites directly from your MCP-enabled environment.

## Features

- Create new sites from GitHub repositories
- List existing Netlify sites
- Get detailed site information
- Delete sites

## Installation

1. Clone this repository:
```bash
git clone https://github.com/MCERQUA/netlify-mcp.git
cd netlify-mcp
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

## Configuration

### Getting Your Netlify Access Token

1. Create a Netlify account at [https://app.netlify.com/signup](https://app.netlify.com/signup)
2. Go to User Settings > Applications > Personal access tokens
3. Click "New access token"
4. Give it a name (e.g., "MCP Integration")
5. Copy the generated token

### Setting Up MCP

1. Create a `.env` file in the project root:
```
NETLIFY_ACCESS_TOKEN=your_token_here
```

2. Add the server to your MCP settings configuration:
```json
{
  "mcpServers": {
    "netlify": {
      "command": "node",
      "args": ["path/to/netlify-mcp/build/index.js"],
      "env": {
        "NETLIFY_ACCESS_TOKEN": "your_token_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

## Available Tools

### createSiteFromGitHub
Create a new Netlify site from a GitHub repository.

```typescript
interface CreateSiteFromGitHubArgs {
  name: string;          // Name for the new site
  repo: string;          // GitHub repository (format: owner/repo)
  branch: string;        // Branch to deploy from
  buildCommand: string;  // Build command to run
  publishDir: string;    // Directory containing the built files
}
```

### listSites
List all Netlify sites you have access to.

```typescript
interface ListSitesArgs {
  filter?: 'all' | 'owner' | 'guest';  // Optional filter for sites
}
```

### getSite
Get detailed information about a specific site.

```typescript
interface GetSiteArgs {
  siteId: string;  // ID of the site to retrieve
}
```

### deleteSite
Delete a Netlify site.

```typescript
interface DeleteSiteArgs {
  siteId: string;  // ID of the site to delete
}
```

## Documentation

For more detailed information, see:
- [Setup Guide](docs/SETUP.md)
- [API Documentation](docs/API.md)
- [Usage Examples](docs/EXAMPLES.md)

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct resource and action: create, list, get, and delete sites. There is no ambiguity because the operation and object are clearly named in each case.

Naming Consistency5/5

All tool names follow a consistent verb+noun pattern in camelCase (e.g., listSites, getSite, deleteSite). Even createSiteFromGitHub follows the same style, just with a longer qualifier for the source.

Tool Count4/5

Four tools is on the low end but still within a reasonable scope for a focused site management server. The set is not bloated, though it could benefit from a few more operations to feel complete.

Completeness3/5

The surface covers create, read (list/get), and delete, but notably lacks an update tool for modifying site settings or configuration. This is a significant gap for common site management workflows, though the core lifecycle covers the main operations.

Maintenance

ActivityInactive
ResponsivenessSyncing