Back to Browse

Plesk MCP Server

Developer ToolsUse Caution3.5MCP RegistryLocal
Free

Server data from the Official MCP Registry

Manage your Plesk hosting server using AI assistants.

About

Manage your Plesk hosting server using AI assistants.

Security Report

3.5
Use Caution3.5High Risk

The Plesk MCP server has legitimate functionality for server administration but contains several security concerns that users should be aware of. The server requires authentication and has reasonable permission scoping for its purpose, but the shell command execution capabilities are broad and the code includes patterns that warrant caution around command injection and path traversal, even with existing mitigations. Supply chain analysis found 4 known vulnerabilities in dependencies (2 critical, 1 high severity). Package verification found 1 issue.

6 files analyzed · 14 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

file_system

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

process_spawn

Check that this permission is expected for this type of plugin.

Unverified package source

We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.

What You'll Need

Set these up before or after installing:

Base URL of your Plesk server. May include port. Example: https://plesk.example.com:8443Optional

Environment variable: PLESK_HOST

Plesk API key. Create via `plesk bin secret_key --create -description 'Plesk MCP'` on the server. Required, unless PLESK_USERNAME and PLESK_PASSWORD are provided.Optional

Environment variable: PLESK_API_KEY

Username for authenticating with your Plesk server. Typically "admin".Optional

Environment variable: PLESK_USERNAME

Password for authenticating with your Plesk server.Optional

Environment variable: PLESK_PASSWORD

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-flayedone-plesk-mcp": {
      "env": {
        "PLESK_HOST": "your-plesk-host-here",
        "PLESK_API_KEY": "your-plesk-api-key-here",
        "PLESK_PASSWORD": "your-plesk-password-here",
        "PLESK_USERNAME": "your-plesk-username-here"
      },
      "args": [
        "plesk-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Plesk MCP Server

This MCP server for Plesk allows administrators to manage their Plesk servers using various AI agents and apps. It builds on top of Plesk REST API and WP Toolkit REST API, and provides core administration capabilities, as well as ability to manage the server through shell commands and upload files to the server.

The MCP server runs locally on your machine, so important information doesn't leave your environment.

Plesk Requirements

The MCP server is expected to support any sufficiently recent Plesk version (there are no strict limitations) and any OS (Linux or Windows) that Plesk supports. However, it was tested only on Plesk Obsidian 18.0.76, so prefer using a supported Plesk version.

Obviously, API access must not be disabled on the server.

MCP Server Requirements

You will need uv Python package manager to run the server. Refer to the official documentation for installation instructions.

Usage

Configure the server in your VS Code mcp.json or equivalent (in other agents or apps) using a configuration like:

{
    "servers": {
        "plesk": {
            "command": "uvx",
            "args": [
                "plesk-mcp@latest"
            ],
            "env": {
                // Base URL of your Plesk server. May include port.
                // If you don't have a valid TLS certificate or want to use HTTP,
                // add the --insecure flag to the args above.
                // However, this is not recommended as you credentials may be leaked as a result.
                "PLESK_HOST": "https://plesk.example.net:8443",
                // API key (recommended).
                // Create via `plesk bin secret_key --create -description 'Plesk MCP'` on the server.
                "PLESK_API_KEY": "00000000-0000-0000-0000-000000000000",
                // Alternatively, you can use username and password.
                "PLESK_USERNAME": "admin",
                "PLESK_PASSWORD": "passwd"
            }
        }
    }
}

You may want to use env file (e.g. via "envFile" parameter) if your agent or app supports it. This will avoid putting credentials directly in the config file.

See uvx plesk-mcp@latest --help for details on available options and environment variables.

Recommended Usage

For better behavior, it's recommended to use this MCP server in combination with a documentation MCP server. Select either plesk-local-docs-mcp or plesk-remote-docs-mcp. This will allow the agent to get more accurate information about Plesk usage when needed.

You may also attach several Plesk servers at once if needed (e.g. for managing multiple servers).

Here's an example configuration:

{
    "servers": {
        "plesk-docs": {
            "command": "uvx",
            "args": [
                "plesk-local-docs-mcp@latest"
            ],
            "env": {
                "OPENAI_API_KEY": "sk-..."
            }
        },
        "plesk1": {
            "command": "uvx",
            "args": [
                "plesk-mcp@latest"
            ],
            "env": {
                "PLESK_HOST": "https://plesk1.example.net:8443",
                "PLESK_API_KEY": "00000000-0000-0000-0000-000000000000"
            }
        },
        "plesk2": {
            "command": "uvx",
            "args": [
                "plesk-mcp@latest"
            ],
            "env": {
                "PLESK_HOST": "https://plesk2.example.net",
                "PLESK_USERNAME": "admin",
                "PLESK_PASSWORD": "passwd"
            }
        }
    }
}

Development

MCP server run command:

uv run plesk-mcp --log-level debug --insecure

Before commit:

uv run ruff format
uv run ruff check --fix
uv run mypy .
uv run pytest

Publish:

uv build --clear
uv publish
mcp-publisher login github
mcp-publisher publish

Testing

Using Plesk Docker Image

If you don't have a Plesk instance but want to test this MCP server, you may use Plesk Docker image instead:

docker run -d --rm --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns host -p 80:80 -p 443:443 -p 8880:8880 -p 8443:8443 --name plesk plesk/plesk

The Docker image startup is not instant, so give it a minute or so before trying to connect.

And then configure the MCP server as:

{
    "servers": {
        "plesk": {
            "command": "uvx",
            "args": [
                "plesk-mcp@latest",
                "--insecure"
            ],
            "env": {
                "PLESK_HOST": "https://localhost:8443",
                "PLESK_PASSWORD": "changeme1Q**"
            }
        }
    }
}

Without Plesk Server (Demo Mode)

Alternatively, run in demo mode from sources (with mocked responses):

{
    "servers": {
        "plesk": {
            "command": "uv",
            "args": [
                "run",
                "plesk-mcp"
            ],
            "env": {
                "PLESK_HOST": "https://linux.demo.example.net",
                "PLESK_API_KEY": "-"
            }
        }
    }
}

Automated tests

Unit tests run with uv run pytest (in the project root and in each sub-project). Smoke tests that exercise real services are skipped by default and selected via -m smoke:

# Plesk MCP smoke tests (against a reachable Plesk instance, e.g. from the Docker image described above)
PLESK_HOST=https://localhost:8443 PLESK_PASSWORD='changeme1Q**' PLESK_INSECURE=1 \
    uv run pytest -m smoke

Reviews

No reviews yet

Be the first to review this server!