Laravel Forge MCP Server (Extended)
Allows installing and removing Bitbucket repositories on Laravel Forge sites.
Allows configuring Composer install to run during deployments.
Allows getting and updating .env files for Laravel Forge sites.
Allows installing and removing Git repositories from various providers on sites.
Allows installing and removing GitHub repositories on Laravel Forge sites.
Allows installing and removing GitLab repositories on Laravel Forge sites.
Provides management of Laravel Forge servers, sites, databases, workers, daemons, and deployments.
Allows creating daemons specifically for running Laravel Horizon.
Allows obtaining and activating Let's Encrypt SSL certificates for sites.
Allows getting and updating Nginx configuration for Laravel Forge sites.
Allows listing installed PHP versions and configuring PHP version per site.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Laravel Forge MCP Server (Extended) list all my forge servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Attribution
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
Related MCP server: Forge MCP Server
Features
Server Management
List and get details of Laravel Forge servers
View server load metrics (CPU, memory, disk)
Reboot servers
List installed PHP versions
Site Management
Create new sites with custom domains
Delete sites
Update domain aliases
Configure PHP version per site
Isolated site users
Deployment
Deploy sites
View deployment history
Get/update deployment scripts
Toggle quick deploy (auto-deploy on git push)
Reset stuck deployment states
Git Integration
Install Git repositories (GitHub, GitLab, Bitbucket)
Remove Git repositories
Configure composer install on deploy
Environment & Configuration
Get/update .env files
Get/update Nginx configuration
SSL Certificates
List SSL certificates
Obtain Let's Encrypt certificates
Activate certificates
Database Management
List databases
Create databases with optional user
Delete databases
Queue Workers
List workers
Create workers (connection, queue, timeout, processes)
Delete workers
Restart workers
Scheduled Jobs (Cron)
List scheduled jobs
Create scheduled jobs with cron frequency
Delete scheduled jobs
Daemons
List daemons
Create daemons (perfect for Laravel Horizon)
Delete daemons
Restart daemons
Installation
git clone https://github.com/AnomalousCoders/forge-mcp-server.git
cd forge-mcp-server
npm install
npm run buildConfiguration
Prerequisites
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)
Server Tools
Tool | Description |
| List all Laravel Forge servers |
| Get details of a specific server |
| Get server load metrics |
| Reboot a server |
Site Tools
Tool | Description |
| List all sites on a server |
| Get details of a specific site |
| Create a new site |
| Delete a site |
| Update domain aliases |
Deployment Tools
Tool | Description |
| Deploy a site |
| Get deployment history |
| Get deployment script |
| Update deployment script |
| Enable/disable quick deploy |
| Reset stuck deployments |
Git Tools
Tool | Description |
| Install Git repo on site |
| Remove Git repo from site |
Environment Tools
Tool | Description |
| Get .env file contents |
| Update .env file |
SSL Tools
Tool | Description |
| List SSL certificates |
| Get Let's Encrypt certificate |
| Activate a certificate |
Nginx Tools
Tool | Description |
| Get Nginx configuration |
| Update Nginx configuration |
Database Tools
Tool | Description |
| List all databases |
| Create a database |
| Delete a database |
Worker Tools
Tool | Description |
| List queue workers |
| Create a queue worker |
| Delete a worker |
| Restart a worker |
Scheduled Job Tools
Tool | Description |
| List cron jobs |
| Create a cron job |
| Delete a cron job |
Daemon Tools
Tool | Description |
| List daemons |
| Create a daemon |
| Delete a daemon |
| Restart a daemon |
PHP Tools
Tool | Description |
| 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=456Development
# Install dependencies
npm install
# Build
npm run build
# Run in development
npm run devLicense
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Credits
Original author: @bretterer
Extended by: OBS Technologies
Available Tools
39 toolsactivate_ssl_certificateC
Activate an SSL certificate for a site
Inputs: siteId (required), serverId (required), certificateId (required).
create_daemonC
Create a daemon on a server
Inputs: user (required), command (required), serverId (required), directory, +1 more.
create_databaseC
Create a new database on a server
Inputs: name (required), serverId (required), user, password.
create_scheduled_jobB
Create a scheduled job (cron) on a server
Inputs: user (required), command (required), serverId (required), frequency (required).
create_siteC
Create a new site on a server
Inputs: domain (required), serverId (required), projectType (required), database, +3 more.
create_workerB
Create a queue worker for a site
Inputs: siteId (required), serverId (required), connection (required), queue, +6 more.
delete_daemonC
Delete a daemon
Inputs: daemonId (required), serverId (required).
delete_databaseB
Delete a database from a server
Inputs: serverId (required), databaseId (required).
delete_scheduled_jobC
Delete a scheduled job
Inputs: jobId (required), serverId (required).
delete_siteB
Delete a site from a server
Inputs: siteId (required), serverId (required).
delete_workerB
Delete a queue worker
Inputs: siteId (required), serverId (required), workerId (required).
deploy_siteC
Deploy a site
Inputs: siteId (required), serverId (required).
get_deploymentsC
Get deployment history for a site
Inputs: siteId (required), serverId (required).
get_deployment_scriptB
Get the deployment script for a site
Inputs: siteId (required), serverId (required).
get_envB
Get the .env file contents for a site
Inputs: siteId (required), serverId (required).
get_nginx_configB
Get the Nginx configuration for a site
Inputs: siteId (required), serverId (required).
get_serverB
Get details of a specific server
Inputs: serverId (required).
get_server_loadA
Get server load metrics (CPU, memory, disk)
Inputs: serverId (required).
get_siteB
Get details of a specific site
Inputs: siteId (required), serverId (required).
get_ssl_certificatesC
Get SSL certificates for a site
Inputs: siteId (required), serverId (required).
install_git_repositoryB
Install a Git repository on a site
Inputs: branch (required), siteId (required), provider (required), serverId (required), +2 more.
list_daemonsB
List daemons on a server
Inputs: serverId (required).
list_databasesB
List all databases on a server
Inputs: serverId (required).
list_php_versionsA
List PHP versions installed on a server
Inputs: serverId (required).
list_scheduled_jobsB
List scheduled jobs (cron) on a server
Inputs: serverId (required).
list_serversA
List all Laravel Forge servers
Inputs: no named parameters.
list_sitesB
List all sites on a server
Inputs: serverId (required).
list_workersC
List queue workers for a site
Inputs: siteId (required), serverId (required).
obtain_letsencrypt_certB
Obtain a Let's Encrypt SSL certificate
Inputs: siteId (required), domains (required), serverId (required).
reboot_serverD
Reboot a server
Inputs: serverId (required).
remove_git_repositoryB
Remove Git repository from a site
Inputs: siteId (required), serverId (required).
reset_deployment_stateB
Reset deployment state for a site (useful if stuck)
Inputs: siteId (required), serverId (required).
restart_daemonC
Restart a daemon
Inputs: daemonId (required), serverId (required).
restart_workerC
Restart a queue worker
Inputs: siteId (required), serverId (required), workerId (required).
toggle_quick_deployA
Enable or disable quick deploy (auto-deploy on git push)
Inputs: enable (required), siteId (required), serverId (required).
update_deployment_scriptC
Update the deployment script for a site
Inputs: siteId (required), content (required), serverId (required).
update_envC
Update the .env file for a site
Inputs: siteId (required), content (required), serverId (required).
update_nginx_configB
Update the Nginx configuration for a site
Inputs: siteId (required), content (required), serverId (required).
update_site_aliasesB
Update domain aliases for a site
Inputs: siteId (required), aliases (required), serverId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 39 tools
Each tool targets a specific resource and action (e.g., create, delete, list, get, update), with clear boundaries between site operations, server operations, databases, daemons, workers, and scheduled jobs. No two tools appear to serve overlapping purposes.
All tool names follow a consistent 'verb_noun' pattern using snake_case, with clear verbs like create, delete, list, get, update, deploy, reboot, etc. No mixing of conventions or ambiguous names.
With 39 tools, the server covers a broad range of Laravel Forge operations. While some subsets (e.g., site management) are extensive, the count is justified for the domain and not excessive. It is on the higher side but remains well-scoped.
The tool surface provides comprehensive CRUD and lifecycle coverage for servers, sites, databases, daemons, workers, scheduled jobs, and SSL. Minor gaps exist (e.g., no update for databases or daemons, no site logs), but core workflows are well-supported.
Maintenance
Related MCP Connectors
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
Deploy apps from GitHub, read build/runtime logs, and manage your app's users from your AI agent.
Manage Vozora VPS servers, SSH keys, firewalls, DNS and usage from an AI agent.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Related MCP Servers
- AlicenseDqualityDmaintenanceA minimalist MCP server that integrates with Laravel Forge, allowing users to manage their Laravel Forge servers, sites, and deployments through AI assistants like Claude Desktop, Windsurf, or Cursor.12MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates with the Laravel Forge API to provide comprehensive management of servers and sites. It enables users to perform health checks, monitor logs, create resources, and execute deployment tasks through MCP-compliant tools.22 npm2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage SpinupWP infrastructure, including servers, WordPress sites, and SSH keys through the SpinupWP v1 JSON API. Users can perform actions like provisioning sites, purging caches, and restarting services via natural language commands.17MIT
- AlicenseAqualityBmaintenanceA read-only MCP server for the Laravel Forge API, enabling AI assistants to query Forge infrastructure details like servers, sites, deployments, and logs without any write capabilities.2516 npmMIT