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 servidoreslist_static_php_versions- Listar versiones estáticas de PHPlist_php_versions- Listar versiones de PHPget_user- Obtener información del usuarioshow_server- Obtener información detallada sobre un servidor específicolist_sites- Listar todos los sitios en un servidorshow_site- Obtener información detallada sobre un sitio específicolist_daemons- Listar daemonsshow_daemon- Obtener detalles del daemonlist_deployments- Listar desplieguesget_deployment_log- Obtener registros de despliegueget_deployment- Obtener detalles del despliegueget_deployment_output- Obtener salida del despliegueget_server_logs- Obtener registros del servidorlist_providers- Listar proveedores de nubelist_database_types- Listar tipos de bases de datoslist_credentials- Listar credencialeslist_regions- Listar regiones disponibleslist_ubuntu_versions- Listar versiones de Ubuntuget_composer_packages_auth- Obtener autenticación de Composercheck_laravel_maintenance_status- Verificar el modo de mantenimiento de Laravelcheck_pulse_daemon_status- Verificar el estado del daemon de Pulsecheck_inertia_daemon_status- Verificar el estado del daemon de Inertiacheck_laravel_scheduler_status- Verificar el estado del programador de Laravellist_sizes- Listar tamaños de servidorlist_project_types- Listar tipos de proyectolist_databases- Listar todas las bases de datosget_database- Obtener detalles de la base de datoslist_database_users- Listar usuarios de bases de datosget_database_user- Obtener detalles del usuario de base de datoslist_certificates- Listar certificados SSLget_certificate- Obtener detalles del certificadoget_site_env- Obtener archivo de entorno del sitio (.env)get_site_log- Obtener 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- Reiniciar el servicio de Nginxreboot_php- Reiniciar el servicio de PHPreboot_mysql- Reiniciar el servicio de MySQLreboot_postgres- Reiniciar el servicio de PostgreSQLcreate_site- Crear un nuevo sitioinstall_or_update_site_git- Instalar o actualizar repositorio Gitenable_quick_deployment- Habilitar despliegue rápidodisable_quick_deployment- Deshabilitar despliegue rápidodeploy_now- Desplegar inmediatamentechange_site_php_version- Cambiar la versión de PHP del sitioadd_site_aliases- Agregar alias del sitioclear_site_log- Limpiar registros del sitiocreate_lets_encrypt_certificate- Crear certificado Let's Encryptactivate_certificate- Activar un certificado
Capturas de pantalla
Creando un servidor
Demuestra el proceso de creación de servidores a través de la interfaz MCP
Creando un sitio
Muestra cómo crear un nuevo sitio en un servidor existente
Reiniciando 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 y registro de herramientas de Forgesrc/core/types/— Definiciones de tipos y protocolospackage.json— Scripts y dependencias.gitignore— Ignora archivos de compilación, entorno y dependencias
Extensión (Agregar nuevas herramientas)
- Exporta un
ForgeToolDefinitiondesde el nuevo archivo. - Importa y agrega la herramienta al array
forgeToolsensrc/tools/forge/index.ts. - 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.