Plesk Deploy
io.github.usama-saeed831由 GitHub 账号 usama-saeed831 发布v0.1.0更新于 Nov 7, 2026
Safe, approval-gated Plesk deployments: inspect, generate and validate a kit; status, logs, rollback
发布方自己的服务:deploy.social
概览
为项目生成、校验并检查需人工审批的 Plesk 部署套件,还能通过你自己的 SSH 读取部署状态与日志或回滚。
- 可以做什么
- 检查项目并给出经核实的部署事实、应用、命令与环境变量名
- 以可审阅的 diff 渲染部署套件(GitHub Actions 工作流、发布管理器、安装脚本),默认仅试运行
- 校验套件:shell 与 YAML 检查、安全设置、迁移前备份、密钥扫描及发布管理器自带测试
- 在本地或通过 SSH 运行只读的服务器探测命令
- 读取指定主机上某应用的部署状态与部署日志末尾
- 回滚到上一个正常版本,并查看最近的 GitHub Actions 部署运行与待审批状态
- 适用场景
- 想让 AI 助手为 Plesk 或其他 Linux 服务器搭建安全、可重复的部署流水线,或查看当前线上版本并回滚有问题的发布时使用。适合希望先以 diff 审阅生成的套件、再动生产环境的人。
- 运行要求
- 以 npx 运行的本地进程,需要 Node.js 22 或更高版本(Claude Desktop 自带)。除非在 PLESK_DEPLOY_SSH_HOSTS 中列出 ~/.ssh/config 别名,否则 SSH 工具关闭;这些主机需有部署账号、已预先接受的 host key 和已载入 ssh-agent 的密钥。私有仓库运行状态可选 PLESK_DEPLOY_GITHUB_TOKEN;可选 PLESK_DEPLOY_SSH_BIN。
安装
在 SourceWeft 中
- 打开 控制台中的 Plesk Deploy,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
plesk-deploy-mcp
An MCP server that helps any AI agent (Claude Code, Claude Desktop, Cursor, VS Code and others) set up and run safe deployments to Plesk servers. Deploys work like this:
- GitHub Actions tests your project and builds a release bundle.
- A person approves it.
- A small release manager on the server unpacks it into a new release folder, backs up the database, migrates, switches over atomically and checks health.
- If the new release isn't healthy, it rolls back by itself.
The server packages a workflow that has been proven in production. It inspects your project, generates the whole deploy kit as a diff you review, and validates it. Once you turn the SSH tools on, it can also read deploy status and logs and roll back over your own SSH.
Not affiliated with or endorsed by Plesk or WebPros.
Contents
- How it keeps production safe
- Install
- Turning on the SSH tools
- Using it
- Tools
- Resources and prompt
- Configuration
- FAQ
How it keeps production safe
- No secrets pass through it.
- No tool accepts or returns a key, password or token.
- SSH uses your system
ssh, your~/.ssh/configalias, your ssh-agent and yourknown_hosts. - Env files are read for variable names only, and real
.envfiles are never opened. - Every result is scanned, and anything that looks like a secret is redacted.
- No deploys from your laptop. Deploys always run in GitHub Actions, behind an approval in the
productionenvironment. No tool builds, uploads or deploys. - The SSH tools are off until you name the hosts they may reach, in
PLESK_DEPLOY_SSH_HOSTS. - The SSH tools run fixed commands only. They run read-only discovery commands from a fixed list, or the release manager's own
--status,--logand--rollback. There is no "run this command" tool. - Every input is checked against a strict pattern before it reaches a file or a command line, and is then shell-quoted.
- Host keys are always checked strictly (
StrictHostKeyChecking=yes), and agent forwarding is always off. Your own config can't loosen this. - Generating the kit is a dry run by default.
- It writes only with
write: true, inside your git repository, and never through a symlink. - It never deletes anything.
- It never replaces an existing file unless you list that file in
overwrite.
- It writes only with
- Rollback needs an exact confirmation:
confirm: "<app>@<host>". It is never interrupted halfway. - No telemetry. The only network traffic is SSH to the hosts you named, and
api.github.comwhen you ask for run status.
Details: the threat model and the privacy policy.
Install
You need Node.js 22 or later, except in Claude Desktop, which brings its own.
Claude Code
With the SSH tools on for the alias myserver (see below):
Check it with claude mcp list (it should say ✔ Connected), or /mcp in a session.
Or as a plugin. It brings the server and the plesk-deploy skill, which loads by itself when you talk about deploying to Plesk:
Claude Code then asks for the allowed SSH host aliases (leave it empty to keep the SSH tools off) and an optional read-only GitHub token, which it stores as a secret.
Claude Desktop
As an extension: download plesk-deploy-mcp-<version>.mcpb from the releases, then go to Settings → Extensions → Advanced settings → Install Extension… and choose the file. The extension's settings let you enter the allowed SSH host aliases and an optional read-only GitHub token.
Or in claude_desktop_config.json (Settings → Developer → Edit Config):
Cursor
In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
VS Code
Run this:
Or add it to .vscode/mcp.json:
In any client, leave out env to keep the SSH tools off. The local tools work without them.
Turning on the SSH tools
-
Add a host alias to
~/.ssh/config. The safest account is the deploy account thatserver-setup.shcreates: its only sudo right is the release manager, so it can read status and logs and roll back, and nothing else. -
Connect once yourself (
ssh myserver). Before accepting the host key, compare its fingerprint with the output ofssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubon the server. This server never adds host keys for you. -
List the alias in
PLESK_DEPLOY_SSH_HOSTS(comma-separated), then restart the MCP server.
If the key has a passphrase, load it into your ssh-agent (ssh-add). The server never prompts for passwords or passphrases.
Using it
Ask your agent:
Set up a Plesk deployment for this project.
Or start the prompt directly. In Claude Code, /mcp__plesk-deploy__setup-plesk-deployment walks through the 8 phases:
- inspect the project
- inspect the server, read-only
- choose the deployment model
- agree a plan with you
- generate and validate the kit
- hand over the manual steps (server, Plesk, GitHub)
- verify the first deploy and do a rollback drill
- document it
The agent stops for your agreement before anything touches production. It tells you where each secret goes, and never asks you for one.
Other things you can ask:
- "Inspect this project and show me its deployment facts."
- "What's live on
myserverfor appacme, and what did the last deploy log say?" - "Roll back
acmeonmyserver." The agent shows you what would become live and asks you to confirm first. - "Did the last Deploy to Plesk run in
me/acmepass? Is it waiting for approval?"
Tools
Every tool declares title, readOnlyHint, destructiveHint, idempotentHint and openWorldHint, and returns structured content next to readable text.
inspect_project
It reads manifests, lockfiles, runtime pins, framework configs, Dockerfiles, CI, migrations and source code. It returns a Deployment facts table where each fact is verified (with the file it came from) or unknown, so nothing is guessed. It also lists the apps with their build, start and migrate commands, and the env variable names, split into build-time and run-time.
server_discovery_commands
It returns the read-only block to run as root on the server and paste back: Plesk and the OS, PM2 as root and as the domain user, ports, nginx directives, the document root, env file names, databases, crontabs, and whether .env and .git are exposed.
generate_deploy_kit
It renders these files:
.github/workflows/deploy-plesk.ymldeploy/plesk/:build-bundle.sh, the<app>-deployrelease manager,deploy.conf.example,server-setup.sh,<app>-db-backup, PM2 or systemd definitions, optional nginx directives, andREADME.md
Each new file is shown as a diff against the vetted template it came from. Values it doesn't know are left as FILL IN, and you get a list of what a person still has to adapt.
Call it again with "write": true once you've agreed the diff. Add "overwrite": ["deploy/plesk/README.md"] only for a file you agreed to replace.
validate_deploy_kit
It runs these checks:
bash -non every script, andshellcheckif it's installed- a YAML parse of the workflows
- the workflow's safety settings: strict host keys, the
productionapproval gate, deploys never cancelled, the key removed afterwards, read-only permissions, callable CI - that the release manager kept every safety check
- that a backup runs before migrations
- a secret scan, which reports file and line, never the value
- the release manager's own test suite, against your adapted copy
server_discover
It runs the server_discovery_commands list over one SSH session. Each command runs under a timeout with stdin closed, and output that looks like a secret is redacted. Add "sudo": true to run as root through sudo -n, which only works with password-less sudo.
deploy_status
It runs /usr/local/bin/<app>-deploy --status, which needs no sudo.
deploy_logs
It runs sudo -n <app>-deploy --log <lines>. The log is root-only, so this goes through the deploy account's single sudo rule.
rollback
It runs sudo -n <app>-deploy --rollback and reports which release was live before and which is live now. Migrations are not undone; that's why migrations must only ever add (expand, then contract).
github_deploy_runs
It reads runs, their jobs, and runs waiting for approval from api.github.com. For a private repository, set PLESK_DEPLOY_GITHUB_TOKEN to a fine-grained token with Actions: read and Metadata: read.
Resources and prompt
plesk-deploy://workflow: the 8 phases and the rules that are never relaxed.plesk-deploy://references/<name>: discovery, hosting-models, github-actions, release-manager, environment-and-database, security-and-safety, verification-checklist, troubleshooting, rollback, and worked-example.plesk-deploy://templates/<dir>/<file>: the 12 templates the kit is rendered from, for exampleplesk-deploy://templates/server/app-deploy.- The prompt
setup-plesk-deployment, with two optional arguments:project_dirandhost_alias.
Configuration
Run npx -y plesk-deploy-mcp --help to see this list.
FAQ
Does it deploy from my machine?
No. Deploys run in GitHub Actions after a person approves them in the production environment. Locally, the server only reads, renders files, and runs scripts inside temporary folders.
Which SSH account should the alias use?
Use the deploy account (<app>-deploy). Its only sudo right is the release manager, so deploy_status, deploy_logs and rollback all work through it. server_discover is more useful as root, but it only ever runs read-only commands.
Can it read my .env?
No. Locally, real .env files are reported as present, never opened. On the server, env files are listed as NAME=<set> or NAME=<empty> by a command that prints nothing else, not even the continuation lines of multi-line values. Everything returned also passes through the redactor.
Why is generate_deploy_kit marked destructive?
It can replace a file, but only one you listed in overwrite. By default it is a dry run and writes nothing.
My servers run an older release manager. Does deploy_logs still work?
--log is new in this kit. Re-run server-setup.sh with the new kit, which reinstalls the release manager, or read the log as root yourself. deploy_logs tells you which.
Does it work if my server isn't Plesk? The release manager and the pipeline work on any Linux server with SSH. The Plesk-specific parts are only the discovery commands and the guidance, which cover the document root, nginx directives, PHP-FPM and system users.
Windows?
The local tools work on Windows. validate_deploy_kit needs bash for its shell checks; without it, those checks report skipped. The SSH tools use the Windows OpenSSH client.
Which version runs with npx -y plesk-deploy-mcp?
The latest one, though npx may reuse a cached copy. To pin a version, use [email protected].
Contributing, security, licence
CONTRIBUTING.md explains how to work on the code. Report vulnerabilities privately (SECURITY.md). MIT licensed (LICENSE).
来源:README.md,提交 fff908e
工具
0版本历史
1- v0.1.0最新Nov 7, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Deploy 集成
deploy.social
social.deploy官方发布者
远程 MCP 服务器,让助手把一条短视频一次性发布到 YouTube Shorts、Instagram/Facebook Reels、TikTok、Threads、X 和 Bluesky。

DeployAngel
com.deployangel
以只读方式访问 DeployAngel 的生产部署验证:等待结论、查看发现项、异常与演练计划。

Ftp Deploy Mcp
由 GitHub 账号 alebgl77 发布
本地 stdio MCP 服务器,让 AI 编程助手在你自己的 FTP、FTPS 或 SFTP 服务器上列出、读取、上传、下载和部署文件。

kapaweb deploy
由 GitHub 账号 kapaweb 发布
在 Claude 对话中把网站、PHP 应用和 WordPress 部署到 kapaweb 主机(DirectAdmin,Plesk 预览),支持备份与回滚。

Agent Lab Deploy
由 GitHub 账号 jinhsueh 发布
让助手直接从 Claude Code 或 Codex 部署网站、应用、智能体和 MCP 服务器。