Laravel Forge MCP Server (Extended)
A comprehensive Model Context Protocol (MCP) server for interacting with Laravel Forge API. This server enables AI assistants to fully manage Laravel Forge servers, sites, databases, workers, daemons, SSL certificates, and deployments.
This project is a fork of bretterer/forge-mcp-server by @bretterer .
Original features by bretterer:
Server listing and details
Site management (list, get)
Deployment triggering and script management
Quick deploy toggle
Server reboot and load metrics
Extended by OBS Technologies :
Site creation and deletion
Git repository installation/removal
Environment file management (.env)
SSL certificate management (Let's Encrypt)
Nginx configuration
Database management (create, list, delete)
Queue workers (create, list, delete, restart)
Scheduled jobs/cron (create, list, delete)
Daemons (create, list, delete, restart) - perfect for Laravel Horizon
PHP version listing
Site aliases management
Improved error handling
List and get details of Laravel Forge servers
View server load metrics (CPU, memory, disk)
Reboot servers
List installed PHP versions
Create new sites with custom domains
Delete sites
Update domain aliases
Configure PHP version per site
Isolated site users
Deploy sites
View deployment history
Get/update deployment scripts
Toggle quick deploy (auto-deploy on git push)
Reset stuck deployment states
Install Git repositories (GitHub, GitLab, Bitbucket)
Remove Git repositories
Configure composer install on deploy
Environment & Configuration
Get/update .env files
Get/update Nginx configuration
List SSL certificates
Obtain Let's Encrypt certificates
Activate certificates
List databases
Create databases with optional user
Delete databases
List workers
Create workers (connection, queue, timeout, processes)
Delete workers
Restart workers
List scheduled jobs
Create scheduled jobs with cron frequency
Delete scheduled jobs
List daemons
Create daemons (perfect for Laravel Horizon)
Delete daemons
Restart daemons
git clone https://github.com/AnomalousCoders/forge-mcp-server.git
cd forge-mcp-server
npm install
npm run build
You need a Laravel Forge API key. Get one from your Laravel Forge account settings .
Claude Code Configuration
Add to your ~/.claude/settings.json:
{
"mcpServers" : {
"forge" : {
"command" : " node" ,
"args" : [" /path/to/forge-mcp-server/dist/index.js" ],
"env" : {
"FORGE_API_KEY" : " your_forge_api_key"
}
}
}
}
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers" : {
"forge" : {
"command" : " node" ,
"args" : [" /path/to/forge-mcp-server/dist/index.js" ],
"env" : {
"FORGE_API_KEY" : " your_forge_api_key"
}
}
}
}
Available Tools (37 Total)
Tool
Description
list_servers
List all Laravel Forge servers
get_server
Get details of a specific server
get_server_load
Get server load metrics
reboot_server
Reboot a server
Tool
Description
list_sites
List all sites on a server
get_site
Get details of a specific site
create_site
Create a new site
delete_site
Delete a site
update_site_aliases
Update domain aliases
Tool
Description
deploy_site
Deploy a site
get_deployments
Get deployment history
get_deployment_script
Get deployment script
update_deployment_script
Update deployment script
toggle_quick_deploy
Enable/disable quick deploy
reset_deployment_state
Reset stuck deployments
Tool
Description
install_git_repository
Install Git repo on site
remove_git_repository
Remove Git repo from site
Tool
Description
get_env
Get .env file contents
update_env
Update .env file
Tool
Description
get_ssl_certificates
List SSL certificates
obtain_letsencrypt_cert
Get Let's Encrypt certificate
activate_ssl_certificate
Activate a certificate
Tool
Description
get_nginx_config
Get Nginx configuration
update_nginx_config
Update Nginx configuration
Tool
Description
list_databases
List all databases
create_database
Create a database
delete_database
Delete a database
Tool
Description
list_workers
List queue workers
create_worker
Create a queue worker
delete_worker
Delete a worker
restart_worker
Restart a worker
Tool
Description
list_scheduled_jobs
List cron jobs
create_scheduled_job
Create a cron job
delete_scheduled_job
Delete a cron job
Tool
Description
list_daemons
List daemons
create_daemon
Create a daemon
delete_daemon
Delete a daemon
restart_daemon
Restart a daemon
Tool
Description
list_php_versions
List installed PHP versions
Example: Deploy a Laravel App with Horizon
# 1. Create site
create_site: domain=myapp.com, projectType=php, serverId=123
# 2. Install Git repo
install_git_repository: provider=github, repository=user/repo, branch=main, composer=true
# 3. Set up environment
update_env: content=" APP_ENV=production\n..."
# 4. Get SSL certificate
obtain_letsencrypt_cert: domains=[" myapp.com" , " www.myapp.com" ]
# 5. Create Horizon daemon
create_daemon: command=" php /home/forge/myapp.com/artisan horizon" , user=forge
# 6. Create scheduler cron
create_scheduled_job: command=" php /home/forge/myapp.com/artisan schedule:run" , frequency=" * * * * *" , user=forge
# 7. Deploy
deploy_site: serverId=123, siteId=456
# Install dependencies
npm install
# Build
npm run build
# Run in development
npm run dev
MIT
Contributions are welcome! Please feel free to submit a Pull Request.