# PHP Universal MCP Server - Interface de Linha de Comando

O PHP Universal MCP Server inclui uma interface de linha de comando (CLI) completa que permite executar o servidor diretamente do terminal, tornando-o compatível com o [mcp-installer](https://github.com/anaisbetts/mcp-installer) para fácil instalação em ambientes Claude Desktop.

## Uso Básico

```bash
npx php-universal-mcp-server [options]
```

Ou se instalado globalmente:

```bash
php-universal-mcp-server [options]
```

## Opções Disponíveis

| Opção | Descrição |
|-------|-----------|
| `--mode <mode>` | Define o modo de operação: 'auto', 'online', ou 'offline' (padrão: auto) |
| `--provider <provider>` | Define o tipo de provider: 'cpanel', 'plesk', 'aws', 'azure', 'gcp', 'mock', 'auto' (padrão: auto) |
| `--config <path>` | Especifica o caminho para um arquivo de configuração JSON |
| `--api-key <key>` | Define a chave de API para o provider (sobrescreve a variável de ambiente) |
| `--no-fallback` | Desabilita o fallback para modo offline em caso de falha |
| `--help` | Mostra a ajuda e sai |

## Exemplos de Uso

### Iniciar no Modo Padrão

```bash
npx php-universal-mcp-server
```

### Iniciar em Modo Offline

```bash
npx php-universal-mcp-server --mode offline
```

### Usar um Provider Específico

```bash
npx php-universal-mcp-server --provider azure
```

### Usar uma Chave de API

```bash
npx php-universal-mcp-server --api-key sua-chave-api-aqui
```

### Usar Configurações Específicas para Azure

```bash
npx php-universal-mcp-server --provider azure --config ./azure-config.json
```

### Usar Configurações Específicas para GCP

```bash
npx php-universal-mcp-server --provider gcp --config ./gcp-config.json
```

## Variáveis de Ambiente

O CLI também suporta a configuração através de variáveis de ambiente:

| Variável | Descrição |
|----------|-----------|
| `API_KEY` | Chave de API genérica |
| `AWS_ACCESS_KEY_ID` | ID da chave de acesso AWS |
| `AWS_SECRET_ACCESS_KEY` | Chave secreta AWS |
| `AWS_REGION` | Região AWS |
| `AZURE_SUBSCRIPTION_ID` | ID de assinatura Azure |
| `AZURE_TENANT_ID` | ID do tenant Azure |
| `AZURE_CLIENT_ID` | ID do cliente Azure |
| `AZURE_CLIENT_SECRET` | Segredo do cliente Azure |
| `GOOGLE_CLOUD_PROJECT` | ID do projeto GCP |
| `GCP_KEY_FILE` | Caminho para o arquivo de credenciais GCP |
| `CPANEL_USERNAME` | Nome de usuário cPanel |
| `CPANEL_PASSWORD` | Senha cPanel |
| `CPANEL_DOMAIN` | Domínio cPanel |
| `PLESK_HOST` | Host do servidor Plesk |
| `PLESK_USERNAME` | Nome de usuário Plesk |
| `PLESK_PASSWORD` | Senha Plesk |

## Arquivo de Configuração

Você pode criar um arquivo JSON de configuração com todas as opções:

```json
{
  "mode": "auto",
  "apiKey": "sua-chave-api-aqui",
  "fallbackEnabled": true,
  "simulateResponses": true,
  "providerType": "azure",
  "mockDataDir": "./custom-mock-data",
  
  "// Configurações específicas para Azure": "",
  "azureSubscriptionId": "seu-subscription-id",
  "azureTenantId": "seu-tenant-id",
  "azureClientId": "seu-client-id",
  "azureClientSecret": "seu-client-secret",
  "azureResourceGroup": "seu-resource-group",
  "azureRegion": "eastus",
  
  "// Configurações específicas para GCP": "",
  "gcpProjectId": "seu-project-id",
  "gcpKeyFilePath": "./gcp-credentials.json",
  "gcpRegion": "us-central1",
  "gcpZone": "us-central1-a"
}
```

E usá-lo através da opção `--config`:

```bash
npx php-universal-mcp-server --config ./config.json
```

## Instalação via mcp-installer

O PHP Universal MCP Server é totalmente compatível com o [mcp-installer](https://github.com/anaisbetts/mcp-installer), o que permite que você o instale facilmente através do Claude Desktop.

Para instalar, basta pedir ao Claude:

```
Hey Claude, install the MCP server named php-universal-mcp-server
```

Para configurar com opções específicas:

```
Hey Claude, install the MCP server named php-universal-mcp-server. Use --mode offline --provider azure as arguments
```

Para usar com credenciais do Azure:

```
Hey Claude, install the MCP server named php-universal-mcp-server. Set the environment variables AZURE_SUBSCRIPTION_ID to 'sua-subscription-id', AZURE_TENANT_ID to 'seu-tenant-id', AZURE_CLIENT_ID to 'seu-client-id', and AZURE_CLIENT_SECRET to 'seu-client-secret'
```

Para usar com credenciais do GCP:

```
Hey Claude, install the MCP server named php-universal-mcp-server. Set the environment variable GOOGLE_CLOUD_PROJECT to 'seu-project-id'
```

## Configuração no claude_desktop_config.json

Para configuração manual no Claude Desktop, adicione ao seu arquivo `claude_desktop_config.json`:

```json
"mcpServers": {
  "php-universal-mcp": {
    "command": "npx",
    "args": [
      "php-universal-mcp-server",
      "--mode", "auto",
      "--provider", "azure"
    ],
    "env": {
      "AZURE_SUBSCRIPTION_ID": "sua-subscription-id",
      "AZURE_TENANT_ID": "seu-tenant-id",
      "AZURE_CLIENT_ID": "seu-client-id",
      "AZURE_CLIENT_SECRET": "seu-client-secret"
    }
  }
}
```

## Suporte a Model Context Protocol

O CLI inicia automaticamente um servidor MCP compatível com o protocolo Model Context Protocol 1.0, permitindo que ele seja usado diretamente com o Claude e outros LLMs que suportam o protocolo MCP.