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 伺服器。