laravel-forge-mcp
Provides tools to read and modify .env files for sites managed by Laravel Forge.
Integrates with Laravel Forge, providing tools for managing servers, sites, deployments, environment variables, Nginx configuration, logs, background processes, and scheduled jobs.
Provides tools to view and update Nginx configuration for sites managed by Laravel Forge.
Click on "Install 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-mcpDeploy my main site and check the deployment log"
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
An MCP server exposing the full Laravel Forge API v2 (273 operations) to Claude Code and other MCP clients.
Why not 273 tools
One tool per operation would burn roughly 43,000 tokens of context before you say anything. This server uses two layers instead:
Layer | Contents | Purpose |
Curated (26 tools) | deploys, logs, | one call per common task |
Universal (2 tools) |
| reaches all 273 operations |
Total: ~5,500 tokens, with no loss of API coverage.
Related MCP server: Forge MCP Server
Install
claude mcp add forge --env FORGE_API_TOKEN=your_token -- npx -y @wdevcom/laravel-forge-mcpGenerate a token at https://forge.laravel.com/profile/api.
Variable | Meaning |
| required |
| optional default organization slug; without it the server uses your only organization or asks |
The token is read only from the environment. Passing it as an argument is rejected, because process
arguments are visible in ps.
Safety modes
Forge has no trash can - a deleted server does not come back. Operations are classified into three levels:
laravel-forge-mcp # read + write (default), no destructive operations
laravel-forge-mcp --allow-destructive # everything, including DELETE and reboot
laravel-forge-mcp --read-only # read only, 19 toolsLevel | Rule | Operations |
| GET | 133 |
| POST, PUT, PATCH | 93 |
| DELETE plus | 47 |
Classification depends on the request body, not just the HTTP method - restarting a service passes,
stopping the same service is blocked. Tools also carry MCP annotations (readOnlyHint, destructiveHint)
so the client can ask for confirmation.
Tools
site and server arguments accept a domain, name, or ID - you never need numeric IDs.
Context:
forge_whoami,forge_list_servers,forge_list_sites,forge_resolveServer:
forge_get_server,forge_server_events,forge_restart_service,forge_server_action,forge_get_server_logDeploy:
forge_get_site,forge_deploy_site,forge_list_deployments,forge_get_deployment_log,forge_deployment_status,forge_get_deployment_script,forge_update_deployment_scriptConfig:
forge_get_env,forge_update_env,forge_get_nginx_config,forge_update_nginx_configDiagnostics:
forge_get_site_logs,forge_run_commandProcesses:
forge_list_background_processes,forge_background_process_action,forge_list_scheduled_jobs,forge_list_databases
Everything else - certificates, firewall, VPC, roles, recipes, backups - goes through the universal layer:
forge_search_operations("certificate") → matching operations with parameter schemas
forge_call("organizations.servers.sites.domains.certificates.store", { ... })A missing {organization} parameter is filled in automatically.
How it works
OpenAPI is the source of truth. The spec/forge.openapi.json snapshot ships with the package and loads
locally, so the server starts without network calls. New Forge endpoints become reachable through the
universal layer as soon as the file is refreshed (npm run sync:spec).
The resolver caches domain → {organization, server, site} mappings for five minutes; Forge allows only
60 requests per minute. On ambiguity (same domain on two servers) it returns candidates instead of guessing.
The formatter flattens JSON:API, dropping the links and relationships that dominate raw responses.
Pagination follows at most 5 pages and marks the result as truncated.
Development
npm install
npm test # 130 tests
npm run typecheck
npm run dev # run without buildingA contract test asserts that every operationId used in the code exists in the spec, catching Forge-side
changes before they blow up mid-conversation.
Notes
Transport is stdio; HTTP and SSE are not supported.
API v2 has no site-level workers, despite the PHP SDK exposing them (
$forge->workers(...)). Useforge_list_background_processesat server level.forge_get_envreturns secrets in plain text.
License
Apache-2.0. Forge API reference.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseDqualityDmaintenanceA 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.11
- Alicense-qualityCmaintenanceIntegrates 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.202MIT
- AlicenseBqualityDmaintenanceMCP server for managing Laravel Forge servers, sites, and deployments via the Forge API.128908MIT
- Alicense-qualityCmaintenanceMCP server wrapping the full VitoDeploy REST API to manage projects, servers, sites, databases, services, workers, SSL, DNS, and more through any MCP-compatible agent, with 108 tools covering every endpoint.MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Official Sevalla MCP — full PaaS API access through just 2 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wdevcom/laravel-forge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server