// editor
Cursor
Dove scrivi davvero il codice.
Per gli utenti di Cursor
Cursor è l'editor. In un monorepo, l'agente ha comunque bisogno di una mappa di quale file conta. Maguyva indicizza il tuo codebase e lo restituisce via MCP (semantico, AST, grafo e testo), così “dove avviene l'autenticazione” restituisce il flusso di auth reale, non sette stub di test.
Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta.
Cursor modifica quello che indichi. Maguyva dice all'agente quale file indicare.Quattro pezzi. Ognuno ha un compito.
// editor
Dove scrivi davvero il codice.
// contesto manuale
Il contesto manuale funziona, finché il repo non diventa grande.
// codebase
Fatti automatici sul codebase via MCP.
// chi paga
Gli agenti non pagano postazioni. Vedi i prezzi
L'IDE non è il problema. Il completamento a tab di Cursor, l'edit-with-AI, le modifiche multi-file e .cursor/rules sono eccellenti, e li usi già per:
.cursor/rules per le convenzioni del repo e le regole di stile.@ per portare un file specifico nel contesto.Continua a farlo. Niente di tutto ciò scompare.
Ma in un vero monorepo (TypeScript con dipendenze di workspace, servizi Python, pacchetti misti) il contesto dell'agente si rompe nel momento in cui il file rilevante non è già sul tuo radar.
Quattro soluzioni manuali abbinate alla loro modalità di fallimento. Sinistra = cosa fai oggi. Destra = dove si rompe.
// the fix
Menzioni con @ i tre file che pensi contino. Cursor modifica in modo pulito al loro interno.
// where it breaks
Fissare i file funziona quando sai già quali sono coinvolti. Lo scopo degli strumenti di contesto è proprio far emergere i file che non sapevi di dover fissare.
// the fix
Incolli 200 righe da un altro pacchetto nella chat per dare all'agente contesto sufficiente.
// where it breaks
Lo snippet che hai incollato alle 9 del mattino non riflette il rebase che il tuo collega ha fatto alle 11. L'agente sta modificando contro una versione fantasma del pacchetto.
// the fix
Scrivi un file .cursor/rules o un markdown di architettura. Oggi è corretto.
// where it breaks
Tutto ciò che scrivi a mano invecchia. Il codice è la fonte di verità. Un documento che spiega il livello delle code è corretto per una settimana, poi è sbagliato per sempre.
// the fix
Aggiungi .cursor/rules per nomenclatura, lint, comandi di build. Ottimo per il comportamento.
// where it breaks
.cursor/rules è il posto giusto per “esegui sempre pnpm tsc -b prima dei commit.” Non è un indice consultabile di ogni simbolo, file e punto di chiamata nel tuo monorepo.
Non è un sostituto di Cursor. È il livello di contesto del repo che si aggancia al supporto MCP di Cursor.
.cursor/rules continua a fare il suo lavoro. Le menzioni con @ continuano a fare il loro. Maguyva colma il vuoto che loro non coprono.Cursor modifica il file che indichi.
Maguyva dice all'agente quale file indicare.
Tra pacchetti, tra linguaggi. Fondato sul grafo di chiamate reale, non sul grep di Cursor.
// workflow 01
cursor> dove avviene l'autenticazione in questo monorepo? graph::query("authentication flow") packages/web/src/auth/session.ts:42 middleware packages/api/src/auth/jwt.ts:88 token verify packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 rbac gate → 4 punti di ingresso in 4 pacchetti, ordinati per densità di punti di chiamata. [exit 0]
Non hai fissato nessun file. Non hai incollato nessuno snippet. L'agente ha i quattro file che contano, nell'ordine corretto, e può fare una modifica fondata.
// workflow 02
cursor> come gestisce normalizePhoneNumber il formato E.164? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← impl reale packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
I nomi mentono. I mock oscurano il codice reale. Maguyva classifica l'implementazione reale sopra il mock di test, in ogni pacchetto.
// workflow 03
cursor> cosa chiama QueueDispatcher.publish in tutto il monorepo? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← tra linguaggi via stub gRPC [exit 0]
Tra pacchetti, e tra linguaggi quando hai un repo poliglotta, i punti di chiamata emergono inline. Il diff è fondato su importatori reali, non sul grep di Cursor.
Tre passaggi. Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta.
// step 01
Scegli il monorepo dove hai sentito di più il problema del contesto.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Non iniziare con tutta la tua azienda. Inizia con un repo e una domanda verificabile, come “cosa chiama formatInvoice tra i pacchetti?”