Laravel Forge服务器管理工具

一个基于Model Context Protocol (MCP) 的服务器,用于管理Laravel Forge服务器、站点和部署,兼容任何MCP客户端。

  • by danie1net0
  • PHP
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 danie1net0/laravel-forge-mcp

使用说明

Laravel Forge MCP服务器

用于管理Laravel Forge服务器、站点和部署的模型上下文协议(MCP)服务器。与任何MCP客户端兼容。

特性

  • 179工具 -完全控制锻造API
  • 9资源 -综合文件和最佳做法
  • 6提示 -常见操作的指导工作流程
  • Docker就绪 -优化容器,便于分发

快速开始

先决条件

配置

将服务器添加到MCP客户端配置中:

{
    "mcpServers": {
        "forge": {
            "command": "docker",
            "args": [
                "run",
                "--rm",
                "-i",
                "-e",
                "FORGE_API_TOKEN",
                "ddrcn/forge-mcp:latest"
            ],
            "env": {
                "FORGE_API_TOKEN": "your_token_here"
            }
        }
    }
}

替换 your_token_here 使用您的Forge API令牌。

本地运行(无Docker)

{
    "mcpServers": {
        "forge": {
            "command": "php",
            "args": ["/path/to/forge-mcp/artisan", "mcp:start", "forge"],
            "env": {
                "FORGE_API_TOKEN": "your_token_here"
            }
        }
    }
}

可用工具

服务器(13个工具)

工具 说明
list-servers-tool 列出所有服务器
get-server-tool 获取服务器详细信息
create-server-tool 创建新服务器
update-server-tool 更新服务器设置
delete-server-tool 删除服务器
reboot-server-tool 重新启动服务器
update-database-password-tool 重新生成数据库密码
revoke-server-access-tool 撤销Forge SSH访问
reconnect-server-tool 重新连接到服务器
reactivate-server-tool 重新激活已删除的服务器
get-server-log-tool 获取服务器日志文件
list-events-tool 列出服务器事件
get-event-output-tool 获取事件输出

网站(18个工具)

工具 说明
list-sites-tool 列出服务器上的所有站点
get-site-tool 获取网站详细信息
get-site-log-tool 获取站点日志
create-site-tool 创建新网站
update-site-tool 更新站点设置
delete-site-tool 删除网站
change-php-version-tool 更改网站的PHP版本
clear-site-log-tool 清除站点日志文件
list-aliases-tool 列出域别名
update-aliases-tool 更新域别名
get-load-balancing-tool 获取负载平衡配置
update-load-balancing-tool 更新负载平衡
install-wordpress-tool 在网站上安装WordPress
uninstall-wordpress-tool 从网站中删除WordPress
install-phpmyadmin-tool 安装phpMyAdmin
uninstall-phpmyadmin-tool 删除phpMyAdmin
get-packages-auth-tool 获取Composer身份验证配置
update-packages-auth-tool 更新Composer身份验证配置

部署(11个工具)

工具 说明
deploy-site-tool 触发部署
get-deployment-log-tool 获取部署日志
get-deployment-script-tool 获取部署脚本
update-deployment-script-tool 更新部署脚本
enable-quick-deploy-tool 启用推送自动部署
disable-quick-deploy-tool 禁用自动部署
list-deployment-history-tool 列出部署历史记录
get-deployment-history-deployment-tool 获取特定部署
get-deployment-history-output-tool 获取部署输出
reset-deployment-state-tool 重置卡住的部署状态
set-deployment-failure-emails-tool 设置故障通知电子邮件

SSL证书(7个工具)

工具 说明
list-certificates-tool 列出所有证书
get-certificate-tool 获取证书详细信息
obtain-lets-encrypt-certificate-tool 获取Let's Encrypt证书
install-certificate-tool 安装自定义证书
get-certificate-signing-request-tool 获得企业社会责任
delete-certificate-tool 删除证书
activate-certificate-tool 激活SSL证书

数据库(10个工具)

工具 说明
list-databases-tool 列出数据库
get-database-tool 获取数据库详细信息
create-database-tool 创建数据库
update-database-tool 更新数据库
delete-database-tool 删除数据库
list-database-users-tool 列出数据库用户
get-database-user-tool 获取用户详细信息
create-database-user-tool 创建数据库用户
update-database-user-tool 更新用户权限
sync-database-tool 从服务器同步数据库

复合工具(5个工具)

工具 说明
server-health-check-tool 通过指标聚合进行全面的服务器健康检查
site-status-dashboard-tool 使用SSL、部署和工作人员完成站点仪表板
bulk-deploy-tool 跨服务器同时部署多个站点
ssl-expiration-check-tool 检查所有站点的SSL证书过期情况
clone-site-tool 将站点配置克隆到新域/服务器

其他工具

类别 计数 描述
备份 7 备份配置和还原
命令 3 执行和监视站点命令
复合 5 聚合工具(运行状况检查、批量部署、克隆站点)
配置 4 Nginx配置和.env文件管理
凭据 1 列出提供程序凭据
守护进程 5 管理长时间运行的进程
防火墙 4 管理防火墙规则
Git 5 存储库和部署密钥管理
集成 21 Laravel集成(地平线、辛烷值、混响、脉冲、惯性、维护、调度器)
作业 5 计划作业(cron)
监视器 4 服务器监视
Nginx模板 6 自定义Nginx配置
PHP 5 PHP版本管理和OPcache
食谱 6 可重复使用的服务器脚本
重定向规则 4 URL重定向
区域 1 列出可用的云提供商区域
安全规则 4 HTTP身份验证
服务 15 MySQL、Nginx、Postgres、PHP-FPM、Blackfire、Papertrail、通用启动/停止/重启
SSH密钥 4 SSH密钥管理
用户 1 经过身份验证的用户信息
Webhooks 4 部署Webhooks
工人 6 排队工人

总计:179个工具

可用资源

资源 描述
forge-api-docs 锻造API文件参考
deployment-guidelines 分步部署指南
deployment-best-practices Laravel部署的最佳实践
security-best-practices 服务器安全建议
troubleshooting-guide 常见问题和解决方案
php-upgrade-guide PHP版本升级程序
queue-worker-guide 队列工作者配置指南
nginx-optimization Nginx性能调优
security-hardening 高级服务器安全强化

可用提示

提示 描述
deploy-laravel-app Laravel应用程序部署指南
setup-new-server 完成服务器配置工作流程
migrate-site 服务器之间的站点迁移
troubleshoot-deployment 部署故障诊断
ssl-renewal SSL证书续订工作流程
setup-laravel-site 从头开始创建Laravel网站

发展

构建Docker镜像

docker build -t ddrcn/forge-mcp:latest .

本地测试

# Via Docker
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | \
  docker run --rm -i -e FORGE_API_TOKEN=your_token ddrcn/forge-mcp:latest

# Via PHP
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | \
  FORGE_API_TOKEN=your_token php artisan mcp:start forge

运行测试

php artisan test

CI/CD

本项目使用GitHub Actions进行持续集成和部署:

  • 测试:推送和拉取请求时自动运行
  • 码头工人:镜像被构建并在推送到master时推送到Docker Hub

必需的秘密

在GitHub存储库设置中配置这些机密:

机密 描述
DOCKERHUB_USERNAME 您的Docker Hub用户名
DOCKERHUB_TOKEN Docker Hub访问令牌(在此处创建一个)

自动发布

发布是基于常规提交自动创建的:

提交类型 版本冲突 示例
feat: 未成年人(1.0.0→1.1.0) feat(tools): add new tool
feat!: 或 BREAKING CHANGE: 专业(1.0.0→2.0.0) feat!: redesign API
fix:, docs:, chore:等等。 补丁(1.0.0→1.0.1) fix(api): handle errors

当您推送到master时,工作流将:

  1. 分析自上次标记以来的提交
  2. 确定版本差异
  3. 使用changelog创建GitHub版本
  4. 构建和推送Docker镜像

手动释放

要手动触发释放:

git tag v1.1.0
git push origin v1.1.0

故障排除

连接问题

  1. 确保Docker正在运行
  2. 验证 FORGE_API_TOKEN 设置正确
  3. 配置更改后重新启动MCP客户端

API错误

# Test API directly
curl -H "Authorization: Bearer $FORGE_API_TOKEN" \
     -H "Accept: application/json" \
     https://forge.laravel.com/api/v1/servers

文档

许可证

该项目根据MIT许可证获得许可。

致谢