# pack-mcp-google-chat-notification

MCP server para envio de notificações ao Google Chat via Webhooks.

Expõe três tools MCP para enviar mensagens de texto, cards ricos (Card V2) e mensagens em threads para espaços do Google Chat.

## Instalação

```bash
pip install pack-mcp-google-chat-notification
```

Ou via `uvx` (sem instalação prévia):

```bash
uvx pack-mcp-google-chat-notification
```

## Configuração

### Variáveis de Ambiente

| Variável | Descrição | Obrigatória |
|----------|-----------|-------------|
| `GOOGLE_CHAT_WEBHOOK_URL` | URL padrão do webhook do Google Chat | Não (pode ser passada por parâmetro) |
| `LOG_LEVEL` | Nível de log (`DEBUG`, `INFO`, `WARNING`, `ERROR`) | Não (padrão: `WARNING`) |

### Configuração no Kiro (`mcp.json`)

```json
{
  "mcpServers": {
    "google-chat-notification": {
      "command": "uvx",
      "args": ["pack-mcp-google-chat-notification"],
      "env": {
        "GOOGLE_CHAT_WEBHOOK_URL": "https://chat.googleapis.com/v1/spaces/SEU_SPACE/messages?key=SUA_KEY&token=SEU_TOKEN"
      }
    }
  }
}
```

## Tools

### `send_message`

Envia mensagem de texto simples para o Google Chat.

| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| `text` | `str` | Sim | Texto da mensagem |
| `webhook_url` | `str \| None` | Não | URL do webhook (fallback: env var) |

**Retorno:** `{ "success": true }`

### `send_card`

Envia mensagem com Card V2 (formato rico) para o Google Chat.

| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| `title` | `str` | Sim | Título do card |
| `sections` | `list[dict]` | Sim | Lista de seções com widgets |
| `subtitle` | `str \| None` | Não | Subtítulo do card |
| `webhook_url` | `str \| None` | Não | URL do webhook (fallback: env var) |

**Retorno:** `{ "success": true }`

**Exemplo de seção:**

```json
[
  {
    "header": "Detalhes do Deploy",
    "widgets": [
      { "textParagraph": { "text": "Versão 1.2.3 publicada com sucesso" } },
      { "decoratedText": { "topLabel": "Ambiente", "text": "Produção" } }
    ]
  }
]
```

### `send_thread_message`

Envia mensagem em thread no Google Chat. Cria uma nova thread se não existir.

| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| `text` | `str` | Sim | Texto da mensagem |
| `thread_key` | `str` | Sim | Chave da thread (ex: `mr-123`, `deploy-prod`) |
| `webhook_url` | `str \| None` | Não | URL do webhook (fallback: env var) |

**Retorno:** `{ "success": true, "thread_key": "<thread_key>" }`

## Como obter a Webhook URL

1. Abra o Google Chat e acesse o espaço desejado
2. Clique no nome do espaço > **Gerenciar webhooks**
3. Crie um novo webhook e copie a URL gerada
4. A URL terá o formato: `https://chat.googleapis.com/v1/spaces/.../messages?key=...&token=...`

## Segurança

- Tokens sensíveis (`key` e `token`) nas URLs de webhook são automaticamente sanitizados nos logs, substituídos por `***`
- Todas as URLs de webhook são validadas para garantir que começam com `https://chat.googleapis.com/`

## Desenvolvimento

```bash
# Instalar dependências de desenvolvimento
pip install -e ".[dev]"

# Rodar testes
python -m pytest tests/ -v
```

## Requisitos

- Python >= 3.10
- `httpx` >= 0.27.0
- `mcp` >= 1.0.0
