Serveur MCP Forge
Il s'agit d'un serveur MCP (Model Context Protocol) pour l'intégration de Laravel Forge. Il fournit un accès complet à l'API officielle de Laravel Forge par le biais d'outils compatibles MCP, permettant une gestion transparente du serveur et du site.
Pour plus d'informations sur l'API de Laravel Forge, voir la documentation officielle de l'API.
Caractéristiques
- Serveur compatible MCP
- Intégration complète de l'API Laravel Forge
- Outil de contrôle de santé :
test_connection
- Couverture étendue d'outils pour la gestion du serveur et du site
- Construit sur l'API officielle de Laravel Forge
Conditions préalables
- Node.js (v18+ recommandé)
- npm (v9+ recommandé)
Configuration et utilisation
Une clé API Forge est nécessaire pour toutes les invocations de l'outil Forge. Vous devez la fournir sous la forme
- la variable d'environnement
FORGE_API_KEY
, ou - l'argument de ligne de commande
--api-key
Utilisation avec Claude Desktop
Ajoutez ce qui suit à votre fichier claude_desktop_config.json
. Voir ici pour plus de détails.
Option 1 : Utiliser npx (Recommandé)
Utiliser la variable d'environnement :
{ "mcpServers" : { "forge-mcp" : { "command" : "npx", "args" : [ "-y", "@ranium/forge-mcp" ], "env" : { "FORGE_API_KEY" : "your_forge_api_key_here" } } } }
Utilisation de l'argument de ligne de commande :
{ "mcpServers" : { "forge-mcp" : { "command" : "npx", "args" : [ "-y", "@ranium/forge-mcp", "--api-key=votre_clé_api_forge_ici" ] } } }
Option 2 : Utiliser node directement
Tout d'abord, clonez le dépôt et construisez le projet :
git clone https://github.com/ranium/forge-mcp-server cd forge_mcp npm install npm run build
Ajoutez ensuite ce qui suit à votre fichier claude_desktop_config.json
:
Utilisation de la variable d'environnement :
{ "mcpServers" : { "forge-mcp" : { "command" : "node", "args" : [ "/path/to/forge_mcp/dist/server.js" ], "env" : { "FORGE_API_KEY" : "your_forge_api_key_here" } } } }
Utilisation de l'argument de ligne de commande :
{ "mcpServers" : { "forge-mcp" : { "command" : "node", "args" : ["/path/to/forge_mcp/dist/server.js", "--api-key=your_forge_api_key_here" ] } } }
Remarque : vous pouvez utiliser la variable d'environnement FORGE_API_KEY
ou l'argument --api-key
. Si les deux sont fournis, l'argument de la ligne de commande est prioritaire. Ne livrez jamais vos clés d'API réelles au contrôle de version. Utilisez des variables d'environnement ou la gestion des secrets en production.
Catégories d'outils et contrôle d'accès
Tous les outils sont regroupés en deux catégories :
- Lecture seule: Opérations sûres et non modificatrices (par exemple, énumération, visualisation, vérification de l'état).
- Écriture: Opérations qui créent ou modifient des ressources (par exemple, création, mise à jour, redémarrage, activation/désactivation de fonctions).
Par défaut, seuls les outils en lecture seule sont activés. Pour activer les outils d'écriture, utilisez l'option --tools
:
- -
-tools=readonly
(par défaut) - -
-tools=readonly,write
(active les outils en lecture seule et en écriture)
Exemple :
npx -y @ranium/forge-mcp --api-key=votre_clé_api_forge_ici -tools=readonly,write
Ou dans claude_desktop_config.json
:
{ "mcpServers" : { "forge-mcp" : { "command" : "npx", "args" : [ "-y", "@ranium/forge-mcp", "--api-key=your_forge_api_key_here", "--tools=readonly,write" ] } } }
Outils disponibles (par catégorie)
Outils en lecture seule
list_servers
- Liste tous les serveurslist_static_php_versions
- Liste les versions statiques de PHPlist_php_versions
- Liste les versions de PHPget_user
- Obtenir des informations sur l'utilisateurshow_server
- Obtenir des informations détaillées sur un serveur spécifiquelist_sites
- Affiche la liste de tous les sites d'un serveurshow_site
- Obtenir des informations détaillées sur un site spécifiquelist_daemons
- Affiche la liste des démonsshow_daemon
- Obtenir des informations détaillées sur les démonslist_deployments
- Liste des déploiementsget_deployment_log
- Obtenir les journaux de déploiementget_deployment
- Obtenir les détails du déploiementget_deployment_output
- Obtenir la sortie du déploiementget_server_logs
- Obtenir les journaux du serveurlist_providers
- Liste des fournisseurs de nuageslist_database_types
- Liste des types de bases de donnéeslist_credentials
- Liste des informations d'identificationlist_regions
- Liste des régions disponibleslist_ubuntu_versions
- Liste des versions Ubuntuget_composer_packages_auth
- Obtenir l'authentification Composercheck_laravel_maintenance_status
- Vérifie le mode de maintenance de Laravelcheck_pulse_daemon_status
- Vérifie l'état du démon Pulsecheck_inertia_daemon_status
- Vérifie l'état du démon Inertiacheck_laravel_scheduler_status
- Vérifie l'état du planificateur Laravellist_sizes
- Liste les tailles des serveurslist_project_types
- Liste les types de projetslist_databases
- Liste toutes les bases de donnéesget_database
- Obtenir les détails de la base de donnéeslist_database_users
- Liste des utilisateurs de la base de donnéesget_database_user
- Obtenir les détails de l'utilisateur de la base de donnéeslist_certificates
- Liste des certificats SSLget_certificate
- Obtenir les détails du certificatget_site_env
- Lit le fichier d'environnement du site (.env)get_site_log
- Obtenir les journaux du site
Outils d'écriture
create_server
- Créer un nouveau serveurcreate_database
- Créer une nouvelle base de donnéessync_database
- Synchroniser la base de donnéescreate_database_user
- Créer un nouvel utilisateur de base de donnéesreboot_server
- Redémarrer un serveurreboot_nginx
- Redémarrer le service Nginxreboot_php
- Redémarre le service PHPreboot_mysql
- Redémarre le service MySQLreboot_postgres
- Redémarre le service PostgreSQLcreate_site
- Créer un nouveau siteinstall_or_update_site_git
- Installer ou mettre à jour le dépôt Gitenable_quick_deployment
- Activer le déploiement rapidedisable_quick_deployment
- Désactiver le déploiement rapidedeploy_now
- Déploiement immédiatchange_site_php_version
- Modifier la version PHP du siteadd_site_aliases
- Ajouter des alias de siteclear_site_log
- Efface les journaux du sitecreate_lets_encrypt_certificate
- Créer un certificat Let's Encryptactivate_certificate
- Activer un certificat
Captures d'écran
Création d'un serveur
Démonstration du processus de création d'un serveur via l'interface MCP
Création d'un site
Montre comment créer un nouveau site sur un serveur existant
Redémarrage d'un serveur
Illustre la fonctionnalité de redémarrage du serveur
Structure du projet
src/server.ts
- Point d'entrée principal du serveur MCPsrc/tools/forge/
- Toutes les définitions et le registre des outils Forgesrc/core/types/
- Définitions de types et protocolespackage.json
- Scripts et dépendances.gitignore
- Ignore les fichiers de construction, d'environnement et de dépendance
Extension (ajout de nouveaux outils)
- Exporter une
ForgeToolDefinition
à partir du nouveau fichier. - Importez et ajoutez l'outil au tableau
forgeTools
danssrc/tools/forge/index.ts.
- Les outils seront enregistrés au démarrage du serveur.
Pour plus d'informations sur le MCP, voir la documentation Model Context Protocol.
Avis de non-responsabilité
Le serveur Forge MCP est un produit indépendant et n'est pas officiellement affilié à, endossé par, ou sponsorisé par Laravel ou Taylor Otwell. laravel est une marque déposée appartenant à Taylor Otwell. Forge MCP server est développé et maintenu indépendamment du projet officiel Laravel.
Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.