Skip to main content
Glama
btyy6svgy6-netizen

resend-mcp-server

README.md
# Resend MCP Server — Shift Mobilidade

Servidor MCP remoto (HTTPS) que dá ao Claude a ferramenta **`send_email`**, enviando pela API do Resend. Use nas automações (ex.: Relatório Diário de Contas a Pagar) para que o envio funcione mesmo com a sua máquina desligada.

## O que tem aqui
- `server.js` — servidor MCP (Streamable HTTP) com a ferramenta `send_email`.
- `package.json`, `Dockerfile`, `.env.example`, `.gitignore`.

## Pré-requisitos no Resend
1. **Domínio verificado**: em Resend → Domains, adicione `shiftmobilidade.com.br` e crie os registros DNS (SPF, DKIM) até ficar **Verified**.
2. **API key nova** com permissão *Sending access* (rotacione a antiga que foi exposta).
3. **Remetente**: ex. `automacoes@shiftmobilidade.com.br`.

## Variáveis de ambiente
Veja `.env.example`. Em produção, configure no painel do host (não use arquivo .env):
- `RESEND_API_KEY` (segredo)
- `SENDER_EMAIL_ADDRESS`
- `MCP_AUTH_TOKEN` (segredo — protege o endpoint)
- `ALLOWED_RECIPIENT_DOMAINS` (opcional, recomendado)

## Rodar local (teste)
```bash
cd resend-mcp-server
npm install
cp .env.example .env   # preencha os valores
node --env-file=.env server.js
# Servidor em http://localhost:3000  (endpoint MCP: POST /mcp)
```

## Deploy

### Render (simples)
1. Suba esta pasta num repositório Git.
2. Render → New → **Web Service** → conecte o repo.
3. Runtime: Docker (usa o `Dockerfile`).
4. Em **Environment**, adicione as variáveis acima.
5. Deploy. A URL pública fica tipo `https://resend-mcp-shift.onrender.com`.

### Google Cloud Run
```bash
gcloud run deploy resend-mcp \
  --source . \
  --region southamerica-east1 \
  --allow-unauthenticated \
  --set-env-vars SENDER_EMAIL_ADDRESS=automacoes@shiftmobilidade.com.br,ALLOWED_RECIPIENT_DOMAINS=shiftmc.com.br,shiftmobilidade.com.br \
  --set-secrets RESEND_API_KEY=resend-api-key:latest,MCP_AUTH_TOKEN=mcp-auth-token:latest
```
(crie os secrets no Secret Manager antes).

### Railway
New Project → Deploy from repo → adicione as variáveis → Railway expõe uma URL HTTPS.

## Adicionar como conector no Claude (Cowork)
1. Configurações → Conectores → **Adicionar conector personalizado**.
2. URL: `https://SEU-HOST/mcp`
3. Cabeçalho de autenticação: `Authorization: Bearer <MCP_AUTH_TOKEN>`
4. Salvar. A ferramenta `send_email` fica disponível e a automação passa a enviar pelo Resend.

## Teste rápido do endpoint (lista de ferramentas)
```bash
curl -s https://SEU-HOST/mcp \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```
Deve retornar a ferramenta `send_email`.

## Segurança
- `MCP_AUTH_TOKEN` impede que terceiros usem seu endpoint de envio.
- `ALLOWED_RECIPIENT_DOMAINS` evita uso indevido para enviar a domínios externos.
- Guarde `RESEND_API_KEY` e `MCP_AUTH_TOKEN` no secret manager do host; nunca em Git.
- Logue os envios (id do Resend, destinatários, assunto) para auditoria.