Laravel Forge MCP服务器
](https://hub.docker.com/r/ddrcn/forge-mcp)   
用于管理Laravel Forge服务器、站点和部署的模型上下文协议(MCP)服务器。与任何MCP客户端兼容。
特性
- 179工具 -完全控制锻造API
- 9资源 -综合文件和最佳做法
- 6提示 -常见操作的指导工作流程
- Docker就绪 -优化容器,便于分发
快速开始
先决条件
- Docker已安装
- 伪造API令牌(在这里买一个)
- 任何兼容MCP的客户端
配置
将服务器添加到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 testCI/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时,工作流将:
- 分析自上次标记以来的提交
- 确定版本差异
- 使用changelog创建GitHub版本
- 构建和推送Docker镜像
手动释放
要手动触发释放:
git tag v1.1.0
git push origin v1.1.0故障排除
连接问题
- 确保Docker正在运行
- 验证
FORGE_API_TOKEN设置正确 - 配置更改后重新启动MCP客户端
API错误
# Test API directly
curl -H "Authorization: Bearer $FORGE_API_TOKEN" \
-H "Accept: application/json" \
https://forge.laravel.com/api/v1/servers文档
许可证
该项目根据MIT许可证获得许可。
致谢
- Laravel Forge -服务器管理平台
- 模型上下文协议 -MCP规范
- Laravel MCP -Laravel MCP实现
