mcpField
P
Plesk

Plesk

本地服务
github.com/FlayedOne云与基础设施625 周前更新

关于 Plesk

Plesk MCP 服务让管理员通过 AI Agent 和应用管理 Plesk 主机。它基于 Plesk REST API 与 WP Toolkit REST API,支持本机运行、核心管理、Shell 命令和文件上传。

主要功能

  1. 01管理 Plesk 服务器
  2. 02使用 WP Toolkit REST API
  3. 03执行 Shell 命令
  4. 04上传服务器文件
  5. 05在本地运行 MCP 服务

适用场景

  1. 01通过 AI Agent 管理 Plesk 主机
  2. 02使用 Shell 命令处理服务器任务
  3. 03向服务器上传文件

MCP 相关

它向 MCP 客户端提供 Plesk 管理能力,包括核心管理、Shell 命令和文件上传。服务在本地运行,并通过 Plesk REST API 和 WP Toolkit REST API 操作服务器。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"plesk": {
"command": "uvx",
"args": [
"plesk-mcp"
],
"env": {
"PLESK_HOST": "<PLESK_HOST>",
"PLESK_API_KEY": "<PLESK_API_KEY>",
"PLESK_USERNAME": "<PLESK_USERNAME>",
"PLESK_PASSWORD": "<PLESK_PASSWORD>"
}
}
}
}
启动命令uvx plesk-mcp
需要配置的环境变量
PLESK_HOSTBase URL of your Plesk server. May include port. Example: https://plesk.example.com:8443
PLESK_API_KEY密钥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.
PLESK_USERNAMEUsername for authenticating with your Plesk server. Typically "admin".
PLESK_PASSWORD密钥Password for authenticating with your Plesk server.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiplesk-mcp0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Plesk MCP 服务

这个适用于 Plesk 的 MCP 服务允许管理员使用各种 AI Agent 和应用管理其 Plesk 服务。它基于 Plesk REST API 和 WP Toolkit REST API 构建,提供核心管理功能,还可以通过 shell 命令管理服务并向服务上传文件。

MCP 服务在你的计算机上本地运行,因此重要信息不会离开你的环境。

Plesk 要求

MCP 服务预期支持所有足够新的 Plesk 版本(没有严格限制),以及 Plesk 支持的所有操作系统(Linux 或 Windows)。不过,它只在 Plesk Obsidian 18.0.76 上经过测试,因此建议使用受支持的 Plesk 版本。

显然,服务上不得禁用 API 访问。

MCP 服务要求

你需要使用 Python 包管理器 uv 来运行服务。安装说明请参阅官方文档。

用法

使用如下配置,在 VS Code 的 mcp.json 或其他 Agent 或应用中的等效文件里配置服务:

{
    "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"
            }
        }
    }
}

如果你的 Agent 或应用支持,可以使用 env 文件(例如通过 "envFile" 参数),以免将凭据直接写入配置文件。

有关可用选项和环境变量的详细信息,请参阅 uvx plesk-mcp@latest --help。

推荐用法

为获得更好的使用效果,建议将此 MCP 服务与文档 MCP 服务搭配使用。选择 plesk-local-docs-mcp 或 plesk-remote-docs-mcp。这样,Agent 就能在需要时获取有关 Plesk 用法的更准确的信息。

你也可以根据需要同时连接多个 Plesk 服务(例如,用于管理多个服务)。

配置示例:

{
    "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"
            }
        }
    }
}

开发

MCP 服务运行命令:

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

提交前:

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

发布:

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

测试

使用 Plesk Docker 镜像

如果你没有 Plesk 实例,但想测试此 MCP 服务,可以改用 Plesk Docker 镜像:

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

Docker 镜像启动并非即时完成,因此请等待大约一分钟后再尝试连接。

然后按如下方式配置 MCP 服务:

{
    "servers": {
        "plesk": {
            "command": "uvx",
            "args": [
                "plesk-mcp@latest",
                "--insecure"
            ],
            "env": {
                "PLESK_HOST": "https://localhost:8443",
                "PLESK_PASSWORD": "changeme1Q**"
            }
        }
    }
}
没有 Plesk 服务(演示模式)

也可以从源代码以演示模式运行(使用模拟响应):

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

单元测试使用 uv run pytest 运行(在项目根目录和每个子项目中)。默认跳过会调用真实服务的冒烟测试,可通过 -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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。