Forge MCP Server

Integra con la API de Laravel Forge para gestionar servidores y despliegues utilizando herramientas compatibles con MCP.

Documentación

Forge MCP Server

Este es un servidor de Protocolo de Contexto de Modelo (MCP) para la integración con Laravel Forge. Proporciona acceso integral a la API oficial de Laravel Forge a través de herramientas compatibles con MCP, permitiendo una gestión fluida de servidores y sitios.

Para obtener más información sobre la API de Laravel Forge, consulta la documentación oficial de la API.

Características

  • Servidor compatible con MCP
  • Integración integral con la API de Laravel Forge
  • Herramienta de verificación de estado: test_connection
  • Amplia cobertura de herramientas para la gestión de servidores y sitios
  • Construido sobre la API oficial de Laravel Forge

Requisitos previos

  • Node.js (se recomienda v18+)
  • npm (se recomienda v9+)

Configuración y uso

Se requiere una clave de API de Forge para todas las invocaciones de herramientas de Forge. Debes proporcionarla como:

  • la variable de entorno FORGE_API_KEY, o
  • el argumento de línea de comandos --api-key

Uso con Claude Desktop

Agrega lo siguiente a tu claude_desktop_config.json. Consulta aquí para más detalles.

Opción 1: Usando npx (Recomendado)

Usando variable de entorno:

{
  "mcpServers": {
    "forge-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ranium/forge-mcp"
      ],
      "env": {
        "FORGE_API_KEY": "your_forge_api_key_here"
      }
    }
  }
}

Usando argumento de línea de comandos:

{
  "mcpServers": {
    "forge-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ranium/forge-mcp",
        "--api-key=your_forge_api_key_here"
      ]
    }
  }
}

Opción 2: Usando node directamente

Primero, clona el repositorio y compila el proyecto:

git clone https://github.com/ranium/forge-mcp-server
cd forge_mcp
npm install
npm run build

Luego agrega lo siguiente a tu claude_desktop_config.json:

Usando variable de entorno:

{
  "mcpServers": {
    "forge-mcp": {
      "command": "node",
      "args": [
        "/path/to/forge_mcp/dist/server.js"
      ],
      "env": {
        "FORGE_API_KEY": "your_forge_api_key_here"
      }
    }
  }
}

Usando argumento de línea de comandos:

{
  "mcpServers": {
    "forge-mcp": {
      "command": "node",
      "args": [
        "/path/to/forge_mcp/dist/server.js",
        "--api-key=your_forge_api_key_here"
      ]
    }
  }
}

Nota: Puedes usar la variable de entorno FORGE_API_KEY o el argumento --api-key. Si se proporcionan ambos, el argumento de línea de comandos tiene prioridad. Nunca comprometas tus claves de API reales en el control de versiones. Usa variables de entorno o gestión de secretos en producción.

Categorías de herramientas y control de acceso

Todas las herramientas se agrupan en dos categorías:

  • Solo lectura: Operaciones seguras que no modifican (por ejemplo, listar, ver, verificar estado).
  • Escritura: Operaciones que crean o modifican recursos (por ejemplo, crear, actualizar, reiniciar, habilitar/deshabilitar funciones).

De forma predeterminada, solo las herramientas de solo lectura están habilitadas. Para habilitar las herramientas de escritura, usa la bandera --tools:

  • --tools=readonly (predeterminado)
  • --tools=readonly,write (habilita herramientas de solo lectura y escritura)

Ejemplo:

npx -y @ranium/forge-mcp --api-key=your_forge_api_key_here --tools=readonly,write

O en claude_desktop_config.json:

{
  "mcpServers": {
    "forge-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ranium/forge-mcp",
        "--api-key=your_forge_api_key_here",
        "--tools=readonly,write"
      ]
    }
  }
}

Herramientas disponibles (por categoría)

Herramientas de solo lectura

  • list_servers - Listar todos los servidores
  • list_static_php_versions - Listar versiones estáticas de PHP
  • list_php_versions - Listar versiones de PHP
  • get_user - Obtener información del usuario
  • show_server - Obtener información detallada sobre un servidor específico
  • list_sites - Listar todos los sitios en un servidor
  • show_site - Obtener información detallada sobre un sitio específico
  • list_daemons - Listar daemons
  • show_daemon - Obtener detalles del daemon
  • list_deployments - Listar despliegues
  • get_deployment_log - Obtener registros de despliegue
  • get_deployment - Obtener detalles del despliegue
  • get_deployment_output - Obtener salida del despliegue
  • get_server_logs - Obtener registros del servidor
  • list_providers - Listar proveedores de nube
  • list_database_types - Listar tipos de bases de datos
  • list_credentials - Listar credenciales
  • list_regions - Listar regiones disponibles
  • list_ubuntu_versions - Listar versiones de Ubuntu
  • get_composer_packages_auth - Obtener autenticación de Composer
  • check_laravel_maintenance_status - Verificar el modo de mantenimiento de Laravel
  • check_pulse_daemon_status - Verificar el estado del daemon de Pulse
  • check_inertia_daemon_status - Verificar el estado del daemon de Inertia
  • check_laravel_scheduler_status - Verificar el estado del programador de Laravel
  • list_sizes - Listar tamaños de servidor
  • list_project_types - Listar tipos de proyecto
  • list_databases - Listar todas las bases de datos
  • get_database - Obtener detalles de la base de datos
  • list_database_users - Listar usuarios de bases de datos
  • get_database_user - Obtener detalles del usuario de base de datos
  • list_certificates - Listar certificados SSL
  • get_certificate - Obtener detalles del certificado
  • get_site_env - Obtener archivo de entorno del sitio (.env)
  • get_site_log - Obtener registros del sitio

Herramientas de escritura

  • create_server - Crear un nuevo servidor
  • create_database - Crear una nueva base de datos
  • sync_database - Sincronizar base de datos
  • create_database_user - Crear un nuevo usuario de base de datos
  • reboot_server - Reiniciar un servidor
  • reboot_nginx - Reiniciar el servicio de Nginx
  • reboot_php - Reiniciar el servicio de PHP
  • reboot_mysql - Reiniciar el servicio de MySQL
  • reboot_postgres - Reiniciar el servicio de PostgreSQL
  • create_site - Crear un nuevo sitio
  • install_or_update_site_git - Instalar o actualizar repositorio Git
  • enable_quick_deployment - Habilitar despliegue rápido
  • disable_quick_deployment - Deshabilitar despliegue rápido
  • deploy_now - Desplegar inmediatamente
  • change_site_php_version - Cambiar la versión de PHP del sitio
  • add_site_aliases - Agregar alias del sitio
  • clear_site_log - Limpiar registros del sitio
  • create_lets_encrypt_certificate - Crear certificado Let's Encrypt
  • activate_certificate - Activar un certificado

Capturas de pantalla

Creando un servidor

Creating a Server Demuestra el proceso de creación de servidores a través de la interfaz MCP

Creando un sitio

Creating a Site Muestra cómo crear un nuevo sitio en un servidor existente

Reiniciando un servidor

Rebooting a Server Ilustra la funcionalidad de reinicio del servidor

Estructura del proyecto

  • src/server.ts — Punto de entrada principal del servidor MCP
  • src/tools/forge/ — Todas las definiciones y registro de herramientas de Forge
  • src/core/types/ — Definiciones de tipos y protocolos
  • package.json — Scripts y dependencias
  • .gitignore — Ignora archivos de compilación, entorno y dependencias

Extensión (Agregar nuevas herramientas)

  1. Exporta un ForgeToolDefinition desde el nuevo archivo.
  2. Importa y agrega la herramienta al array forgeTools en src/tools/forge/index.ts.
  3. Las herramientas se registrarán cuando el servidor se inicie.

Para obtener más información sobre MCP, consulta la documentación del Protocolo de Contexto de Modelo.

Aviso legal

Forge MCP server es un producto independiente y no está afiliado oficialmente, respaldado ni patrocinado por Laravel o Taylor Otwell. 'Laravel' es una marca registrada propiedad de Taylor Otwell. Forge MCP server se desarrolla y mantiene de forma independiente del proyecto oficial de Laravel.

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENCIA para más detalles.