Skip to main content

netlify-mcp (Python)

A Python port of the official Netlify MCP server, built to behave identically to the TypeScript original for the local stdio use case: same tool names, same input schemas, same response text.

This port targets the local stdio server only. Two things in the original are intentionally out of scope:

  • The remote proxy deploy mode (--proxy-path / JWE flow), used when the MCP server runs behind Netlify's hosted remote endpoint.
  • The full remote OAuth/OIDC hosting server.

Everything else is ported: the user, team, project, deploy, and extension domain tool groups, the netlify-coding-rules context tool, and the Claude Design "Send to Netlify" import tools (import-claude-design-from-url, get-design-import-job-status).


Requirements

  • Python 3.12+
  • A Netlify account, authenticated via one of:
    • netlify login (using the Netlify CLI) — this server reads the same config.json the CLI writes.
    • The NETLIFY_PERSONAL_ACCESS_TOKEN environment variable, which overrides the CLI-managed token when set.

Install and run

uv sync
uv run netlify-mcp

Or, for one tool per operation instead of the grouped read/write selector tools:

uv run netlify-mcp --verbose

MCP client configuration

{
  "mcpServers": {
    "netlify": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/python-netlify-mcp", "netlify-mcp"]
    }
  }
}

Tools

By default, each domain exposes two selector tools: netlify-<domain>-services-reader (read-only operations) and netlify-<domain>-services-updater (write operations). Each selector takes a selectSchema of {operation, params} covering every operation listed below for that domain. Pass --verbose to instead register one tool per operation, named netlify-<domain>-<operation>.

user

Operation Read-only Description
get-user Yes Get the current authenticated Netlify user's account details.

team

Operation Read-only Description
get-teams Yes List the Netlify teams (accounts) the user belongs to.
get-team Yes Get details for a specific Netlify team.

project

Operation Read-only Description
get-project Yes Get details for a specific Netlify project.
get-projects Yes List Netlify projects, optionally filtered by team or name.
get-forms-for-project Yes List (or fetch one) Netlify Forms form(s) configured for a project.
update-visitor-access-controls No Configure SSO or password-based visitor access control for a project.
update-forms No Enable or disable Netlify Forms processing for a project.
manage-form-submissions No Get or delete form submissions for a project.
update-project-name No Rename a Netlify project.
manage-env-vars No Get, create/update, or delete environment variables for a project.
create-new-project No Create a new Netlify project.

deploy

Operation Read-only Description
get-deploy Yes Get a deploy by id.
get-deploy-for-site Yes Get a specific deploy for a given project.
deploy-site No Zip up a local directory and deploy it to a Netlify project.

extension

Operation Read-only Description
get-extensions Yes List extensions available to any Netlify team.
get-full-extension-details Yes Get full details for a specific extension on a team.
change-extension-installation No Install or uninstall an extension for a team (and optionally a site).
initialize-database No Return setup instructions for the @netlify/database package.

Standalone tools

These are registered individually, not as part of a domain's reader/updater selector, and are unaffected by --verbose.

Tool Read-only Description
netlify-coding-rules Yes Context tool that must be called before writing any serverless or Netlify SDK/library code.
import-claude-design-from-url No Deploy a Claude Design export to Netlify as a new project ("Send to Netlify").
get-design-import-job-status Yes Check the status of an in-progress Claude Design import deploy job.

Configuration

Environment variables (see .env.example):

Variable Description
NETLIFY_PERSONAL_ACCESS_TOKEN Optional. Skips the CLI-managed token lookup when set.
LOG_LEVEL Logging level (default INFO).

Development

uv sync --group dev
uv run pytest
uv run ruff check .
uv run mypy src

Metadata

Release files for netlify-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netlify-mcp 1.0.0
File Size Uploaded
netlify_mcp-1.0.0.tar.gz 32.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netlify-mcp 1.0.0
File Interpreter ABI Platform
netlify_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.7 kB

Release files / netlify_mcp-1.0.0.tar.gz

Download URL netlify_mcp-1.0.0.tar.gz
Size 32.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d2013d7a6624d21fa6f8531c94770a013423f8790c9290be54ac0d3beaf9f11b
BLAKE2b-256 checksum
How to use checksums
40c1bb1646855cc40e982550cc4c06259a68ed2b128e671cd4a13c2ab3bef927
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release files / netlify_mcp-1.0.0-py3-none-any.whl

Download URL netlify_mcp-1.0.0-py3-none-any.whl
Size 52.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24ce309b01937c40bef80f1ca14337996d6ad01883ad47aa81b0f130a2bd03f5
BLAKE2b-256 checksum
How to use checksums
c4bb1ea9147415fd77d5a8c15451da37f7e630cf1003c5ea8058ea7f0692238a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page