MCP服务器工具

Ploi MCP Server是一个将Ploi.io API功能暴露为AI助手工具的MCP服务器,支持一键部署、服务器管理和站点生命周期管理。

  • by sudanese
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 sudanese/ploi-mcp

使用说明

Ploi MCP服务器

一个MCP(模型上下文协议)服务器,它公开 Ploi.io API功能作为人工智能助手(如Claude)的工具。

只需简单的“部署”命令即可部署您的网站,无需在仪表板上点击!

特性

  • 一个命令部署 -只需说“部署”,然后看着它发生
  • 已验证部署 -部署等待真正完成并报告成功/失败(没有虚假的“成功”)
  • 项目链接 -将项目链接到Ploi网站 .ploi.json
  • 整个站点生命周期 -创建、删除、部署、挂起、恢复、查看日志
  • 服务器管理 -列出、重新启动、查看日志
  • 环境和部署脚本 -阅读并更新网站的 .env 无需SSH即可部署脚本
  • 守护进程和队列工作者 -管理 queue:work 守护进程和Ploi的每个站点队列工作进程(创建/重新启动/暂停/删除)
  • 时钟守护作业 -添加/验证Laravel调度程序(* * * * * schedule:run)和其他亲信
  • SSL证书 -请求(Let's Encrypt)、列出和删除证书
  • 数据库 -创建/删除数据库;列出、运行、计划和删除备份
  • 服务重新启动 -重新启动nginx/php fpm/mysql/redis/supervisor
  • 可选id分配列表 -明确变异工具可能涉及的服务器/站点(见 配置)

安装

选项1:全局安装(推荐)

npm install -g ploi-mcp

选项2:不安装(使用npx)

跳过安装-配置后,npx将自动下载并运行它。

快速开始

步骤1:获取您的API令牌

从获取您的令牌 ploi.io/profile/api-keys.

🔐 不要让你的令牌出现在命令行中。 经过 --token 将其暴露在 进程列表(ps aux)并以明文形式存储在 ~/.claude.json。首选以下安全选项之一。ploi mcp解决了 令牌按以下顺序排列: --token-file → --token (已弃用)→ PLOI_API_TOKEN env → ~/.ploi/config.php (官方 ploi token 商店)。

步骤2:配置Claude代码

添加 ~/.claude.json --通过传递令牌 env 块,不是 args:

如果全局安装:

{
  "mcpServers": {
    "ploi": {
      "type": "stdio",
      "command": "ploi-mcp",
      "env": { "PLOI_API_TOKEN": "YOUR_TOKEN" }
    }
  }
}

如果使用npx(不安装):

{
  "mcpServers": {
    "ploi": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "ploi-mcp"],
      "env": { "PLOI_API_TOKEN": "YOUR_TOKEN" }
    }
  }
}

已经在使用 Ploi命令行界面?跑 ploi token 一旦完成,ploi mcp将从以下位置读取令牌 ~/.ploi/config.php 自动——MCP配置中根本没有令牌。

步骤3:重新启动Claude代码

关闭并重新打开Claude Code,以便加载MCP服务器。

步骤4:链接您的项目

在克劳德代码中,说:

"Link this project to mydomain.com"

步骤5:随时部署

只需说:

"deploy"

就是这样!部署将运行并在完成时通知您。

配置

克劳德代码

添加 ~/.claude.json:

{
  "mcpServers": {
    "ploi": {
      "type": "stdio",
      "command": "ploi-mcp",
      "args": ["--token", "YOUR_TOKEN"]
    }
  }
}

或者使用环境变量:

{
  "mcpServers": {
    "ploi": {
      "type": "stdio",
      "command": "ploi-mcp",
      "env": {
        "PLOI_API_TOKEN": "YOUR_TOKEN"
      }
    }
  }
}

克劳德桌面版

添加到配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ploi": {
      "command": "ploi-mcp",
      "args": ["--token", "YOUR_TOKEN"]
    }
  }
}

限制哪些服务器/站点可以进行突变(推荐)

Ploi API代币是 账户范围 --默认情况下,助手可以部署, 重新启动、挂起或删除备份 任何 您帐户中的服务器或站点。 两层可以减小爆炸半径:

  1. 确定令牌本身的范围。 在Ploi中创建最小特权API令牌 (https://ploi.io/profile/api-keys)仅限于您想要的服务器 助理管理。这是最强的界限——MCP不能超过 令牌允许。

  2. 设置id列表 (可选,纵深防御)。当这些环境变量 集,每 突变 工具(deploy_site, deploy_project, restart_server, suspend_site, resume_site, create/run/delete_database_backup)拒绝 ID不在列表中。只读工具(列表/获取)不受影响。

    {
      "mcpServers": {
        "ploi": {
          "command": "ploi-mcp",
          "env": {
            "PLOI_API_TOKEN": "YOUR_TOKEN",
            "PLOI_ALLOWED_SERVER_IDS": "12,34",
            "PLOI_ALLOWED_SITE_IDS": "567,890"
          }
        }
      }
    }
    

    逗号分隔的id。未设置或空白=无限制(默认)。拼写错误(A 非数字id)大声失败,而不是默默地否认一切。

用法

命令行选项

ploi-mcp --token YOUR_TOKEN
ploi-mcp -t YOUR_TOKEN
PLOI_API_TOKEN=YOUR_TOKEN ploi-mcp

项目设置

将项目链接到其Ploi站点以进行一次命令部署:

"Link this project to mydomain.com"

这创造了 .ploi.json 在您的项目中:

{
  "server_id": 12345,
  "site_id": 67890
}

现在只要说 "deploy" 它将:

  1. 触发器部署
  2. 等待完成(每5秒轮询一次)
  3. 报告成功或失败

可用工具

项目工具

工具 说明
deploy_project 部署当前项目并等待完成
init_project 按域将项目链接到Ploi网站
get_project_deploy_status 检查部署状态

服务器管理

工具 说明
list_servers 列出所有服务器
get_server 获取服务器详细信息
restart_server 重新启动服务器
get_server_logs 获取服务器日志(auth、error、lastlog、syslog)

站点管理

工具 说明
list_sites 列出服务器上的站点
get_site 获取网站详细信息
find_site_by_domain 按域搜索网站
create_site 创建新站点(vhost、目录、系统用户)
delete_site 永久删除网站(vhost、文件、系统用户)
deploy_site 部署站点并等待完成
get_site_logs 获取部署日志
suspend_site 暂停网站
resume_site 恢复暂停的站点

环境和部署脚本

工具 说明
get_site_env 阅读网站的 .env
update_site_env 替换网站 .env (完整文件)
get_deploy_script 阅读站点的部署脚本
update_deploy_script 替换站点的部署脚本(完整文件)

守护进程

工具 说明
list_daemons 列出守护进程(例如。 queue:work)在服务器上
create_daemon 创建守护进程
restart_daemon 重新启动守护进程
toggle_daemon 暂停/恢复守护进程
delete_daemon 删除守护进程

定时任务

工具 说明
list_crons 列出服务器上的cron作业
create_cron 创建一个cron作业(例如Laravel调度器)
delete_cron 删除cron作业

队列工作者

工具 说明
list_queues 列出站点的队列工作者
get_queue 获取单个队列工作者
create_queue 创建队列工作者
restart_queue 重新启动队列工作程序
toggle_queue 暂停/恢复队列工作者
delete_queue 删除队列工作者

SSL证书

工具 说明
list_certificates 列出站点的证书
request_certificate 请求证书(默认为Let's Encrypt)
delete_certificate 删除证书

服务

工具 说明
restart_service 重新启动nginx/php fpm/mysql/redis/supervisor

数据库管理

工具 说明
list_databases 列出服务器上的数据库
create_database 创建数据库(可选择使用用户/密码)
delete_database 永久删除数据库
list_database_backups 列出数据库备份配置
get_database_backup 获取数据库备份配置
run_database_backup 立即运行现有备份配置(“立即备份”)
create_database_backup 创建定时备份配置(需要备份目标)
delete_database_backup 删除备份配置

注: 变异工具(任何创建、更新、删除、部署、重启或切换的工具)都带有 destructiveHint 因此MCP主机可以在运行它们之前进行提示,并遵守可选 id反对. update_site_env / update_deploy_script Ploi异步应用写入操作——在读回它们之前,请留出几秒钟的时间。

示例命令

"List my servers"
"Deploy"
"Deploy mydomain.com"
"Create a Laravel site for app.mydomain.com"
"Add the scheduler cron to server 12"
"Restart the queue worker on app.mydomain.com"
"Request a Let's Encrypt cert for app.mydomain.com"
"Show me the .env for app.mydomain.com"
"Restart nginx on server 12"
"List my database backups"
"Run database backup 42 now"

发展

git clone https://github.com/sudanese/ploi-mcp.git
cd ploi-mcp
npm install
npm run build
npm link

许可证

麻省理工学院