Servidor MCP de Forge
Se trata de un servidor MCP (Model Context Protocol) para la integración de Laravel Forge. Proporciona un acceso completo a la API oficial de Laravel Forge a través de herramientas compatibles con MCP, permitiendo una gestión del servidor y del sitio sin fisuras.
Para obtener más información acerca de la API de Laravel Forge, consulte la documentación oficial de la API.
Características
- Servidor compatible con MCP
- Integración completa de la API Laravel Forge
- Herramienta de comprobación de estado:
test_connection
- Amplia cobertura de herramientas para la gestión del servidor y del sitio
- Construido sobre la API oficial de Laravel Forge
Requisitos previos
- Node.js (v18+ recomendado)
- npm (v9+ recomendado)
Configuración y uso
Se requiere una clave API de Forge para todas las invocaciones a la herramienta Forge. Debe proporcionarla como
- la variable de entorno
FORGE_API_KEY
, o bien - el argumento de línea de comandos
--api-key
Uso con Claude Desktop
Añada lo siguiente a su claude_desktop_config.json
. Vea aquí para más detalles.
Opción 1: Usando npx (Recomendado)
Usando la 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=su_clave_forge_api_here" ] } }
Opción 2: Usar node directamente
Primero, clona el repositorio y construye el proyecto:
git clone https://github.com/ranium/forge-mcp-server cd forge_mcp npm install npm run build
Luego añade 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": [ "/ruta/a/forge_mcp/dist/servidor.js", "--api-key=tu_clave_de_forge_api_aquí" ] } }
Nota: Puede utilizar la variable de entorno FORGE_API_KEY
o el argumento --api-key
. Si se proporcionan ambos, el argumento de la línea de comandos tiene prioridad. Nunca envíe sus claves de API reales al control de versiones. Utilice 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:
- Sólo lectura: Operaciones seguras y no modificables (por ejemplo, listado, visualización, comprobaciones de estado).
- Escritura: Operaciones que crean o modifican recursos (por ejemplo, crear, actualizar, reiniciar, activar/desactivar funciones).
Por defecto, sólo están habilitadas las herramientas de sólo lectura. Para habilitar las herramientas de escritura, utilice el indicador --tools
:
- --tools=sólo
lectura
(por defecto) - -
-tools=readonly,write
(activa las herramientas de sólo lectura y escritura)
Ejemplo:
npx -y @ranium/forge-mcp --api-key=tu_clave_forge_api_aquí --tools=sólo_lectura,escritura
O en claude_desktop_config.json
:
{ "mcpServers": { "forge-mcp": { "command": "npx", "args": [ "-y", "@ranium/forge-mcp", "--api-key=su_clave_forge_api_here", "--tools=readonly,write" ] } }
Herramientas disponibles (por categoría)
Herramientas de sólo lectura
list_servers
- Lista todos los servidoreslist_static_php_versions
- Lista las versiones estáticas de PHPlist_php_versions
- Lista las versiones de PHPget_user
- Obtener información del usuarioshow_server
- Obtener información detallada sobre un servidor específicolist_sites
- Lista todos los sitios de un servidorshow_site
- Obtener información detallada sobre un sitio específicolist_daemons
- Listar demoniosshow_daemon
- Obtener información detallada sobre demonioslist_deployments
- Listar desplieguesget_deployment_log
- Obtener registros de despliegueget_deployment
- Obtener detalles de la implantaciónget_deployment_output
- Obtener la salida de la implantaciónget_server_logs
- Obtener los registros del servidorlist_providers
- Listar proveedores de nubelist_database_types
- Listar tipos de bases de datoslist_credentials
- Lista de credencialeslist_regions
- Lista las regiones disponibleslist_ubuntu_versions
- Lista las versiones de Ubuntuget_composer_packages_auth
- Obtener autenticación de Composercheck_laravel_maintenance_status
- Comprueba el modo de mantenimiento de Laravelcheck_pulse_daemon_status
- Comprueba el estado del demonio Pulsecheck_inertia_daemon_status
- Comprueba el estado del demonio Inertiacheck_laravel_scheduler_status
- Comprueba el estado del programador de Laravellist_sizes
- Lista de tamaños de servidorlist_project_types
- Lista de tipos de proyectoslist_databases
- Lista todas las bases de datosget_database
- Obtener detalles de la base de datoslist_database_users
- Lista los usuarios de la base de datosget_database_user
- Obtener detalles del usuario de la base de datoslist_certificates
- Listar certificados SSLget_certificate
- Obtener detalles del certificadoget_site_env
- Obtener el archivo de entorno del sitio (.env)get_site_log
- Obtener los registros del sitio
Herramientas de escritura
create_server
- Crear un nuevo servidorcreate_database
- Crear una nueva base de datossync_database
- Sincronizar base de datoscreate_database_user
- Crear un nuevo usuario de base de datosreboot_server
- Reiniciar un servidorreboot_nginx
- Reinicia el servicio Nginxreboot_php
- Reinicia el servicio PHPreboot_mysql
- Reinicia el servicio MySQLreboot_postgres
- Reinicia el servicio PostgreSQLcreate_site
- Crear un nuevo sitioinstall_or_update_site_git
- Instalar o actualizar el repositorio Gitenable_quick_deployment
- Habilitar despliegue rápidodisable_quick_deployment
- Desactivar el despliegue rápidodeploy_now
- Desplegar inmediatamentechange_site_php_version
- Cambiar la versión PHP del sitioadd_site_aliases
- Añadir alias de sitioclear_site_log
- Borrar los registros del sitiocreate_lets_encrypt_certificate
- Crear certificado Let's Encryptactivate_certificate
- Activar un certificado
Capturas de pantalla
Creación de un servidor
Demuestra el proceso de creación de un servidor a través de la interfaz MCP
Crear un Sitio
Muestra cómo crear un nuevo sitio en un servidor existente
Reiniciar un Servidor
Ilustra la funcionalidad de reinicio del servidor
Estructura del Proyecto
src/server.ts
- Punto de entrada principal del servidor MCPsrc/tools/forge/
- Todas las definiciones de herramientas Forge y registrosrc/core/types/
- Definiciones de tipos y protocolospackage.json
- Scripts y dependencias.gitignore
- Ignora archivos de compilación, entorno y dependencias
Ampliación (adición de nuevas herramientas)
- Exporte una
ForgeToolDefinition
del nuevo archivo. - Importe y añada la herramienta a la matriz
forgeTools
ensrc/tools/forge/index.ts
. - Las herramientas se registrarán cuando se inicie el servidor.
Para más información sobre MCP, consulte la documentación del Protocolo de Contexto de Modelo.
Descargo de responsabilidad
El servidor MCP de Forge es un producto independiente y no está oficialmente afiliado, respaldado o patrocinado por Laravel o Taylor Otwell. laravel' es una marca registrada propiedad de Taylor Otwell. Forge MCP server es desarrollado y mantenido independientemente del proyecto oficial Laravel.
Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.