TrelloAI
by imanagerpms
README.md
# TrelloAI
Integrazione Trello + Cursor AI tramite **Model Context Protocol (MCP)**, più bot Telegram **iManager** (Octorate, pulizie, turni). Le regole operative vivono in `rules/` e si editano anche dalla UI Admin.
## Setup rapido
### 1. Credenziali Trello
Trello ora richiede un **Power-Up** per generare le chiavi API (la vecchia pagina `trello.com/app-key` reindirizza al nuovo portale).
1. Vai su **[https://trello.com/power-ups/admin](https://trello.com/power-ups/admin)**
2. Clicca **Nuova app** e crea un Power-Up (es. "TrelloAI")
- Per l'**URL connettore Iframe** puoi usare un placeholder HTTPS qualsiasi (es. `https://example.com`) — **non serve** per l'integrazione MCP, serve solo a Trello per creare l'app
3. Apri il Power-Up → tab **Chiave API** → **Genera una nuova chiave API**
4. Copia la **API Key**
5. Clicca il link **Token** accanto alla chiave → **Consenti** → copia il **Token**
### 2. Configura l'ambiente
```bash
cp .env.example .env
```
Modifica `.env`:
```env
TRELLO_API_KEY=la_tua_api_key
TRELLO_TOKEN=il_tuo_token
TRELLO_DEFAULT_BOARD_ID=id_della_board # opzionale
```
Per trovare l'ID board: apri la board su Trello, l'URL contiene `/b/SHORTLINK/BOARD_ID` — usa `BOARD_ID`.
### 3. Installa dipendenze
```bash
npm install
```
### 4. Attiva MCP in Cursor
Il file `.cursor/mcp.json` è già configurato. Riavvia Cursor o ricarica la finestra (**Developer: Reload Window**).
Verifica in **Cursor Settings → MCP** che il server `trello` risulti connesso.
## Uso
### Prompt MCP integrati
Nella chat Cursor, puoi invocare i prompt del server:
- **`gestisci-trello`** — l'AI legge `rules/`, analizza la board e gestisce i task
- **`stato-trello`** — solo riepilogo, senza modifiche
### Esempi di richieste
```
Fammi un riepilogo dei task in corso
```
```
Sposta in "Fatto" i task completati in review
```
```
Crea un task "Preparare demo" nel Backlog con scadenza venerdì
```
```
Quali task scadono questa settimana?
```
### Personalizza le regole
Modifica i file in **`rules/`** (o usa la UI Admin) per Manutenzioni, Customer care, Pulizie, Interazione clienti. Config strutture/pesi/board in **`config/`**.
## Tool disponibili
| Tool | Descrizione |
|------|-------------|
| `trello_list_boards` | Elenca le board |
| `trello_get_board_overview` | Panoramica completa |
| `trello_list_cards` | Card per board/lista |
| `trello_get_card` | Dettaglio card |
| `trello_create_card` | Crea task |
| `trello_update_card` | Aggiorna card |
| `trello_move_card` | Sposta tra liste |
| `trello_add_comment` | Aggiunge commento |
| `trello_archive_card` | Archivia card |
| `trello_search` | Cerca per testo |
| `trello_get_board_activity` | Attività recente |
| `trello_get_labels` | Etichette board |
## Struttura progetto
```
trelloAI/
├── .cursor/
│ ├── mcp.json # Config MCP per Cursor
│ └── skills/trello/ # Skill agente
├── rules/ # Policy iManager per area
├── config/ # Strutture, pesi turni, board
├── src/
│ ├── server.js # Server MCP
│ ├── telegram-bot.js # Bot + HTTP admin
│ └── …
├── .env.example
└── README.md
```
## Uso da cellulare (Telegram su Scaleway)
Il bot `@manager_888_bot` (iManager) gira su Scaleway. In **gruppo** rispondi solo se taggato `@manager_888_bot` (il nome visualizzato non basta) oppure in reply a un suo messaggio. In privato risponde sempre.
Programmi in locale; sync immediato senza GitHub.
```powershell
npm run ship:watch
```
Poi testi su Telegram. Commit/push su GitHub solo quando la versione è ok.
**Server attuale:** `151.115.166.171` (Milano) → https://151-115-166-171.sslip.io
Dettagli: [deploy/README.md](deploy/README.md)
### UI Admin (config iManager)
1. Imposta `ADMIN_TOKEN=...` nel `.env` del server (`npm run ship:env`)
2. Apri https://151-115-166-171.sslip.io/admin/
3. Modifica regole markdown per area, strutture Octorate, pesi turni, board Trello
4. I secret (API key) restano solo in `.env` — la UI mostra solo lo stato
Aree: Manutenzioni · Customer care · Pulizie · Interazione clienti (stub AIBridge).
### OAuth Octorate (una tantum)
1. In Octorate → Settings → Advanced → API aggiungi il redirect:
`https://151-115-166-171.sslip.io/oauth/callback`
2. Apri https://151-115-166-171.sslip.io/oauth/login e autorizza
### Refresh token Octorate
Se il bot dice che Octorate non risponde / token scaduto:
1. **Admin UI** → Integrazioni → **Rinnova token** (usa il refresh senza browser)
2. Se fallisce → **Ricollega (login OAuth)** oppure apri `/oauth/login`
3. In locale: `npm run octorate-refresh` e, per aggiornare Scaleway: `npm run octorate-refresh -- --ship`
Il Super Manager, in caso di 401, prova già un refresh forzato e riconnette MCP.
## Troubleshooting
- **Server MCP non connesso**: verifica che `npm install` sia stato eseguito e che `.env` esista
- **401 Unauthorized**: controlla API key e token
- **Board non trovata**: verifica `TRELLO_DEFAULT_BOARD_ID` o passa l'ID esplicitamente
- **Octorate No identity**: apri `/oauth/login` sul server dopo aver autorizzato il redirect in Octorate
TDQS
A3.7/5.0
Scored across 13 tools
Disambiguation5/5
Each tool targets a distinct Trello resource (board, list, card, label, activity) with specific actions, making them clearly distinguishable without overlap.
Naming Consistency5/5
All tools use the 'trello_' prefix followed by a consistent verb_noun pattern (e.g., list_boards, create_card, get_card), ensuring predictability.
Tool Count5/5
With 13 tools, the server provides a well-scoped set for Trello operations, covering essential CRUD and query actions without being excessive or sparse.
Completeness5/5
The tool set covers the full lifecycle for cards (create, read, update, move, archive, search, comment) and provides board/list overviews, labels, and activity—missing only rare operations like creating lists or deleting, which are non-critical.
Maintenance
ActivitySlowing
ResponsivenessNo issues