Faber MCP Server
Allows for reading and modifying environment variables within .env files to manage Laravel application configuration.
Manages Git repository configurations and branches for automated application deployment workflows.
Automates GitHub deploy key setup using Device Flow OAuth for secure server-side repository access.
Provides tools for deploying and managing Laravel applications, including full stack provisioning, release management, and zero-downtime deployments.
Supports database management tasks such as listing, creating databases, and restarting the MySQL service on target servers.
Enables management and restarting of the NGINX service for web server operations.
Provides capabilities to manage PHP versions and restart PHP services required for application runtimes.
Supports monitoring and restarting the Redis service as part of the application infrastructure.
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., "@Faber MCP Server deploy this project to production"
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.
Faber MCP Server
MCP (Model Context Protocol) server for deploying Laravel applications to Faber servers directly from Cursor.
Overview
Faber MCP enables you to deploy and manage Laravel applications on Faber servers using AI agents in Cursor. Simply ask your AI assistant to "deploy this project to production" and it handles the rest - including provisioning new stacks, managing GitHub deploy keys, and triggering deployments.
Features
Deploy Laravel apps from Cursor with natural language commands
Available globally across all your projects
Multi-server support (production, staging, etc.)
Automatic GitHub deploy key setup via Device Flow OAuth
Full stack management (apps, domains, databases, SSL)
Release management and rollbacks
Real-time logs and debugging
Related MCP server: laravel-artisan-mcp
Installation
Option 1: Install from npm (when published)
npm install -g faber-mcpOption 2: Install from source
git clone https://github.com/JoshTrebilco/faber-mcp.git
cd faber-mcp
npm install
npm run build
npm link # Makes it available globallyConfiguration
Step 1: Create Server Configuration
Create ~/.faber-mcp.json with your Faber server details.
You can copy example-config.json as a starting point:
cp example-config.json ~/.faber-mcp.json
# Edit with your server details
nano ~/.faber-mcp.jsonOr create it from scratch:
{
"defaultServer": "production",
"servers": {
"production": {
"host": "your-production-server.com",
"user": "root",
"keyPath": "~/.ssh/id_rsa",
"port": 22
},
"staging": {
"host": "staging.example.com",
"user": "root",
"keyPath": "~/.ssh/id_rsa"
}
}
}Requirements:
SSH key must have access to the Faber server
faberCLI must be installed on the serverYou must be able to authenticate as root
Step 2: Configure Cursor
Edit ~/.cursor/mcp.json (create if it doesn't exist):
{
"mcpServers": {
"faber": {
"command": "faber-mcp"
}
}
}Alternative configurations:
If Cursor can't find the global command, use the full path:
{
"mcpServers": {
"faber": {
"command": "node",
"args": ["/usr/local/lib/node_modules/faber-mcp/dist/index.js"]
}
}
}Or use npx (no global install needed):
{
"mcpServers": {
"faber": {
"command": "npx",
"args": ["-y", "faber-mcp"]
}
}
}Important: Restart Cursor completely after adding the MCP server configuration.
Usage Examples
Deploy Current Project
Simply ask Cursor's AI agent:
"Deploy this project to production"
The agent will:
Check if the app already exists on the server
If not, prompt you for:
Project name (username in Faber)
Git repository URL
Domain name
PHP version
Git branch
Create the full stack (app, domain, database, SSL, .env)
GitHub Authorization (if GitHub OAuth is configured on server):
Cursor will display a message like:
GitHub Authorization Required 1. Open: https://github.com/login/device 2. Enter code: A1B2-C3D4 Waiting for authorization...Click the verification URI and enter the code
Authorize the application in your browser
Server automatically adds the deploy key to your repository
Or if the app exists, trigger a deployment
Other Commands
"Check if myapp is deployed on production"
"List all apps on the production server"
"Rollback myapp to the previous release"
"Show me the production server status"
"Deploy this to staging server"
Multi-Server Support
When using multiple servers, specify which one:
"Deploy this to staging server"
The agent will use the staging profile from your config. If not specified, it uses defaultServer.
Available Tools
The MCP server provides these tools to Cursor's AI agent:
App Management
faber_check_app- Check if an app exists and get detailsfaber_list_apps- List all deployed appsfaber_create_stack- Create full application stack (handles GitHub deploy key setup)faber_deploy- Trigger zero-downtime deploymentfaber_get_deploy_key- Retrieve SSH public key for an app (for manual GitHub setup)
Server Management
faber_server_status- Get server health and service statusfaber_service_restart- Restart services (nginx, php, mysql, redis)
Domain Management
faber_list_domains- List configured domainsfaber_create_domain- Create/assign domain to app
Database Management
faber_list_databases- List all databasesfaber_create_database- Create a new database
Release Management
faber_list_releases- List available releases for an appfaber_rollback- Rollback to a previous release
Logs & Debugging
faber_webhook_logs- View webhook execution logsfaber_app_logs- View Laravel application logs
Environment
faber_get_env- Read .env file (read-only)faber_set_env_var- Set a specific .env variable
Troubleshooting
MCP server not connecting
Verify SSH key has access:
ssh -i ~/.ssh/id_rsa root@your-server.comCheck
~/.faber-mcp.jsonsyntax is valid JSONEnsure
faberCLI is installed on the server:ssh root@server "which faber"
Cursor not recognizing tools
Restart Cursor completely after adding MCP config
Check Cursor's MCP logs: View → Output → Select "MCP" from dropdown
Verify the path in
~/.cursor/mcp.jsonis correct and absolute
SSH connection errors
Test SSH connection manually first
Ensure SSH key permissions:
chmod 600 ~/.ssh/id_rsaCheck server firewall allows SSH on port 22
Faber commands failing
Verify you're running as root on the server
Check Faber is installed:
ssh root@server "faber version"Review server logs:
ssh root@server "faber logs"
Requirements
Node.js 18+ (for running the MCP server locally)
SSH access to Faber server(s)
Faber CLI installed on target server(s)
Cursor IDE with MCP support
Development
# Clone the repository
git clone https://github.com/JoshTrebilco/faber-mcp.git
cd faber-mcp
# Install dependencies
npm install
# Build TypeScript
npm run build
# Or watch mode
npm run devLicense
MIT
Links
Faber Server - Laravel server management CLI
MCP Protocol - Model Context Protocol specification
Available Tools
17 toolsfaber_app_logsC
View Laravel application logs for an app
Inputs: username (required), lines, server.
faber_check_appC
Check if an app exists on the Faber server and get its details
Inputs: name (required), server.
faber_create_databaseC
Create a new MySQL database with a dedicated user
Inputs: name, server.
faber_create_domainC
Create and assign a domain to an app (includes SSL setup)
Inputs: domain (required), app (required), server.
faber_create_stackA
Create a full application stack (app + domain + database + SSL + .env). Handles GitHub Device Flow OAuth for automatic deploy key setup if configured on server. First call shows a preview - set confirm: true to execute.
Inputs: user (required), repository (required), domain, branch, +9 more.
faber_deployC
Trigger a zero-downtime deployment for an app
Inputs: username (required), server.
faber_get_deploy_keyA
Retrieve the SSH public key for an app (used for manual deploy key setup)
Inputs: username (required), server.
faber_get_envC
Read the .env file for an app (read-only)
Inputs: username (required), server.
faber_list_appsC
List all deployed apps on the Faber server
Inputs: server.
faber_list_databasesC
List all databases on the Faber server
Inputs: server.
faber_list_domainsC
List all configured domains on the Faber server
Inputs: server.
faber_list_releasesC
List all available releases for an app
Inputs: username (required), server.
faber_rollbackC
Roll back an app to a previous release
Inputs: username (required), release, server.
faber_server_statusC
Get server health and service status
Inputs: server.
faber_service_restartC
Restart a system service (nginx, php, mysql, supervisor, redis)
Inputs: service (required), server.
faber_set_env_varC
Set a specific environment variable in an app's .env file
Inputs: username (required), key (required), value (required), server.
faber_webhook_logsC
View webhook execution logs
Inputs: lines, server.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Every tool has a clearly distinct purpose targeting specific resources and actions, such as faber_create_database for database creation, faber_deploy for deployments, and faber_set_env_var for environment variable management. There is no overlap or ambiguity between tools, making it easy for an agent to select the correct one based on the task.
All tool names follow a consistent verb_noun pattern with the prefix 'faber_' and snake_case throughout, such as faber_list_apps, faber_create_domain, and faber_get_env. This predictable naming scheme enhances readability and usability for agents.
With 17 tools, the count is slightly high but reasonable for the comprehensive scope of managing a Faber server, covering app deployment, domain setup, database management, and server operations. It is well-scoped with each tool serving a distinct function, though it borders on being heavy.
The tool set provides complete CRUD and lifecycle coverage for the Faber server domain, including creation (e.g., faber_create_stack), listing (e.g., faber_list_apps), updates (e.g., faber_set_env_var), and deletion implicitly through operations like rollback. There are no obvious gaps, and agents can handle full workflows from setup to maintenance.
Maintenance
Related MCP Connectors
Manage Laravel Forge servers, sites, and deployments from your AI assistant.
Manage PHP apps on your own Ubuntu servers: deploy, roll back and inspect Laravel and WordPress
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Deploy sites and apps from your AI coding agent: domains, DNS, logs, env, versions and rollback.
Related MCP Servers
- AlicenseBqualityCmaintenanceIntegrates Ploi.io API functionality into AI assistants for managing servers, sites, and databases through natural language. It enables features like one-command deployments, project linking, server log retrieval, and database backup management.4617 npm3MIT
- AlicenseNot gradedqualityDmaintenanceEnables secure execution of Laravel Artisan commands through AI assistants, allowing controlled management of Laravel projects via natural language.6MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to fully manage Laravel Forge servers, sites, databases, workers, daemons, SSL certificates, and deployments.3936 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables managing and deploying apps to your cloud directly from Cursor through natural language, including environment management, job monitoring, and approval workflows.1MIT