The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Plesk MCP listing page.
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.
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.
You will need uv Python package manager to run the server. Refer to the official documentation for installation instructions.
Configure the server in your VS Code mcp.json or equivalent (in other agents or apps) using a configuration like:
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.
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:
MCP server run command:
Before commit:
Publish:
If you don't have a Plesk instance but want to test this MCP server, you may use Plesk Docker image instead:
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:
Alternatively, run in demo mode from sources (with mocked responses):
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: