关于 Plesk
Plesk MCP 服务让管理员通过 AI Agent 和应用管理 Plesk 主机。它基于 Plesk REST API 与 WP Toolkit REST API,支持本机运行、核心管理、Shell 命令和文件上传。
主要功能
- 01管理 Plesk 服务器
- 02使用 WP Toolkit REST API
- 03执行 Shell 命令
- 04上传服务器文件
- 05在本地运行 MCP 服务
适用场景
- 01通过 AI Agent 管理 Plesk 主机
- 02使用 Shell 命令处理服务器任务
- 03向服务器上传文件
MCP 相关
它向 MCP 客户端提供 Plesk 管理能力,包括核心管理、Shell 命令和文件上传。服务在本地运行,并通过 Plesk REST API 和 WP Toolkit REST API 操作服务器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx plesk-mcpPLESK_HOSTBase URL of your Plesk server. May include port. Example: https://plesk.example.com:8443PLESK_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。