Skip to main content
Glama
Laravel Forge MCP Server (Extended)

Laravel Forge MCP Server (Extended)

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 build

Configuration

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_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

Site Tools

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

Deployment Tools

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

Git Tools

Tool

Description

install_git_repository

Install Git repo on site

remove_git_repository

Remove Git repo from site

Environment Tools

Tool

Description

get_env

Get .env file contents

update_env

Update .env file

SSL Tools

Tool

Description

get_ssl_certificates

List SSL certificates

obtain_letsencrypt_cert

Get Let's Encrypt certificate

activate_ssl_certificate

Activate a certificate

Nginx Tools

Tool

Description

get_nginx_config

Get Nginx configuration

update_nginx_config

Update Nginx configuration

Database Tools

Tool

Description

list_databases

List all databases

create_database

Create a database

delete_database

Delete a database

Worker Tools

Tool

Description

list_workers

List queue workers

create_worker

Create a queue worker

delete_worker

Delete a worker

restart_worker

Restart a worker

Scheduled Job Tools

Tool

Description

list_scheduled_jobs

List cron jobs

create_scheduled_job

Create a cron job

delete_scheduled_job

Delete a cron job

Daemon Tools

Tool

Description

list_daemons

List daemons

create_daemon

Create a daemon

delete_daemon

Delete a daemon

restart_daemon

Restart a daemon

PHP Tools

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

Development

# Install dependencies
npm install

# Build
npm run build

# Run in development
npm run dev

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits

Available Tools

39 tools
activate_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

    B3/5.0

    Scored across 39 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      D
      quality
      D
      maintenance
      A 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.
      1
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Integrates 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 npm
      2
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables 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.
      17
      MIT