Forge MCP Server

Integre com a API do Laravel Forge para gerenciar servidores e implantações usando ferramentas compatíveis com MCP.

Documentação

Forge MCP Server

Este é um servidor Model Context Protocol (MCP) para integração com o Laravel Forge. Ele fornece acesso abrangente à API oficial do Laravel Forge por meio de ferramentas compatíveis com MCP, permitindo gerenciamento contínuo de servidores e sites.

Para mais informações sobre a API do Laravel Forge, consulte a documentação oficial da API.

Recursos

  • Servidor compatível com MCP
  • Integração abrangente com a API do Laravel Forge
  • Ferramenta de verificação de saúde: test_connection
  • Ampla cobertura de ferramentas para gerenciamento de servidores e sites
  • Construído sobre a API oficial do Laravel Forge

Pré-requisitos

  • Node.js (v18+ recomendado)
  • npm (v9+ recomendado)

Configuração e Uso

Uma chave de API do Forge é obrigatória para todas as invocações de ferramentas do Forge. Você deve fornecê-la como:

  • a variável de ambiente FORGE_API_KEY, ou
  • o argumento de linha de comando --api-key

Uso com Claude Desktop

Adicione o seguinte ao seu claude_desktop_config.json. Consulte aqui para mais detalhes.

Opção 1: Usando npx (Recomendado)

Usando variável de ambiente:

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

Usando argumento de linha de comando:

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

Opção 2: Usando node diretamente

Primeiro, clone o repositório e compile o projeto:

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

Em seguida, adicione o seguinte ao seu claude_desktop_config.json:

Usando variável de ambiente:

{
  "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 linha de comando:

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

Nota: Você pode usar a variável de ambiente FORGE_API_KEY ou o argumento --api-key. Se ambos forem fornecidos, o argumento de linha de comando tem precedência. Nunca envie suas chaves de API reais para o controle de versão. Use variáveis de ambiente ou gerenciamento de segredos em produção.

Categorias de Ferramentas e Controle de Acesso

Todas as ferramentas são agrupadas em duas categorias:

  • Readonly: Operações seguras e sem modificação (ex.: listagem, visualização, verificações de status).
  • Write: Operações que criam ou modificam recursos (ex.: criar, atualizar, reiniciar, ativar/desativar recursos).

Por padrão, apenas ferramentas readonly estão habilitadas. Para habilitar ferramentas de escrita, use a flag --tools:

  • --tools=readonly (padrão)
  • --tools=readonly,write (habilita ferramentas readonly e de escrita)

Exemplo:

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

Ou em claude_desktop_config.json:

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

Ferramentas Disponíveis (por Categoria)

Ferramentas Readonly

  • list_servers - Listar todos os servidores
  • list_static_php_versions - Listar versões estáticas do PHP
  • list_php_versions - Listar versões do PHP
  • get_user - Obter informações do usuário
  • show_server - Obter informações detalhadas sobre um servidor específico
  • list_sites - Listar todos os sites em um servidor
  • show_site - Obter informações detalhadas sobre um site específico
  • list_daemons - Listar daemons
  • show_daemon - Obter detalhes do daemon
  • list_deployments - Listar implantações
  • get_deployment_log - Obter logs de implantação
  • get_deployment - Obter detalhes da implantação
  • get_deployment_output - Obter saída da implantação
  • get_server_logs - Obter logs do servidor
  • list_providers - Listar provedores de nuvem
  • list_database_types - Listar tipos de banco de dados
  • list_credentials - Listar credenciais
  • list_regions - Listar regiões disponíveis
  • list_ubuntu_versions - Listar versões do Ubuntu
  • get_composer_packages_auth - Obter autenticação do Composer
  • check_laravel_maintenance_status - Verificar modo de manutenção do Laravel
  • check_pulse_daemon_status - Verificar status do daemon Pulse
  • check_inertia_daemon_status - Verificar status do daemon Inertia
  • check_laravel_scheduler_status - Verificar status do agendador do Laravel
  • list_sizes - Listar tamanhos de servidor
  • list_project_types - Listar tipos de projeto
  • list_databases - Listar todos os bancos de dados
  • get_database - Obter detalhes do banco de dados
  • list_database_users - Listar usuários do banco de dados
  • get_database_user - Obter detalhes do usuário do banco de dados
  • list_certificates - Listar certificados SSL
  • get_certificate - Obter detalhes do certificado
  • get_site_env - Obter arquivo de ambiente do site (.env)
  • get_site_log - Obter logs do site

Ferramentas de Escrita

  • create_server - Criar um novo servidor
  • create_database - Criar um novo banco de dados
  • sync_database - Sincronizar banco de dados
  • create_database_user - Criar um novo usuário de banco de dados
  • reboot_server - Reiniciar um servidor
  • reboot_nginx - Reiniciar o serviço Nginx
  • reboot_php - Reiniciar o serviço PHP
  • reboot_mysql - Reiniciar o serviço MySQL
  • reboot_postgres - Reiniciar o serviço PostgreSQL
  • create_site - Criar um novo site
  • install_or_update_site_git - Instalar ou atualizar repositório Git
  • enable_quick_deployment - Habilitar implantação rápida
  • disable_quick_deployment - Desabilitar implantação rápida
  • deploy_now - Implantar imediatamente
  • change_site_php_version - Alterar versão do PHP do site
  • add_site_aliases - Adicionar aliases do site
  • clear_site_log - Limpar logs do site
  • create_lets_encrypt_certificate - Criar certificado Let's Encrypt
  • activate_certificate - Ativar um certificado

Capturas de Tela

Criando um Servidor

Creating a Server Demonstra o processo de criação de servidor por meio da interface MCP

Criando um Site

Creating a Site Mostra como criar um novo site em um servidor existente

Reiniciando um Servidor

Rebooting a Server Ilustra a funcionalidade de reinicialização do servidor

Estrutura do Projeto

  • src/server.ts — Ponto de entrada principal do servidor MCP
  • src/tools/forge/ — Todas as definições e registro de ferramentas do Forge
  • src/core/types/ — Definições de tipos e protocolos
  • package.json — Scripts e dependências
  • .gitignore — Ignora arquivos de build, env e dependências

Extensão (Adicionando Novas Ferramentas)

  1. Exporte um ForgeToolDefinition do novo arquivo.
  2. Importe e adicione a ferramenta ao array forgeTools em src/tools/forge/index.ts.
  3. As ferramentas serão registradas quando o servidor iniciar.

Para mais informações sobre MCP, consulte a documentação do Model Context Protocol.

Aviso Legal

O servidor Forge MCP é um produto independente e não é oficialmente afiliado, endossado ou patrocinado pela Laravel ou por Taylor Otwell. 'Laravel' é uma marca registrada de propriedade de Taylor Otwell. O servidor Forge MCP é desenvolvido e mantido de forma independente do projeto oficial Laravel.

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.