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.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues