Naar inhoud springen

Voor Cursor-gebruikers

Cursor bewerkt het bestand.
Maguyva ziet de repo.

Cursor is de editor. In een monorepo heeft de agent nog steeds een kaart nodig van welk bestand ertoe doet. Maguyva indexeert je codebase en levert die terug via MCP (semantic, AST, graph en text), zodat “waar gebeurt authenticatie” de daadwerkelijke auth-flow oplevert, en niet zeven test-stubs.

Free tier: 3 repositories, Tot 50K geïndexeerde repo-regels, geen kaart nodig.

Cursor bewerkt waar jij naar wijst. Maguyva vertelt de agent naar welk bestand het moet wijzen.

Wat elke laag doet

Vier onderdelen. Elk met zijn eigen taak.

// editor

Cursor

Waar je daadwerkelijk codeert.

// handmatige context

@ mentions + pins

Handmatige context wint, tot de repo groot wordt.

// codebase

Maguyva

Automatische codebasefeiten via MCP.

Cursor is de editor. Gebruik hem.

De IDE is niet het probleem. De tab-completion, edit-with-AI, multi-file edits en .cursor/rules van Cursor zijn uitstekend, en je gebruikt ze al voor:

  • Inline suggesties en edit-with-AI in het geopende bestand.
  • Multi-file edits wanneer de wijziging lokaal is.
  • .cursor/rules voor repoconventies en stijlregels.
  • @-mentions om een specifiek bestand in de context te halen.

Blijf dat vooral doen. Niets daarvan verdwijnt.

Maar in een echte monorepo (TypeScript met workspace-deps, Python-services, gemengde packages) breekt agentcontext op het moment dat het relevante bestand nog niet op je radar staat.

Handmatige oplossingen die je al hebt geprobeerd, en waar ze stuklopen

Vier handmatige oplossingen met hun faalmodus. Links = wat je vandaag doet. Rechts = waar het misgaat.

// the fix

// pin de bestanden

Je @-mentiont de drie bestanden waarvan je denkt dat ze ertoe doen. Cursor bewerkt daarbinnen netjes.

// where it breaks

// pinnen is gokken

Pinnen werkt als je al weet welke bestanden erbij betrokken zijn. Het hele punt van contexttools is juist om de bestanden naar boven te halen die je niet wist te pinnen.

// the fix

// plak de snippets

Je plakt 200 regels uit een ander package in de chat om de agent genoeg context te geven.

// where it breaks

// geplakte code veroudert

Het snippet dat je om 9 uur plakte, weerspiegelt niet de rebase die je teamgenoot om 11 uur landde. De agent bewerkt tegen een spookversie van het package.

// the fix

// schrijf een contextdoc

Je schrijft een .cursor/rules-bestand of een architectuur-markdown. Vandaag klopt het nog.

// where it breaks

// docs verouderen sneller dan code

Alles wat je met de hand schrijft, raakt uit sync. De code is de source of truth. Een doc die de queue-laag uitlegt, klopt een week, en is daarna voorgoed fout.

// the fix

// houd de rules-bestanden bij

Je voegt .cursor/rules toe voor naming, lint en buildcommando's. Prima voor gedrag.

// where it breaks

// regels ≠ index

.cursor/rules is de juiste plek voor “draai altijd pnpm tsc -b voor commits.” Het is geen doorzoekbare index van elk symbool, bestand en call-site in je monorepo.

Maguyva is de laag eronder

Geen vervanging voor Cursor. De repo-contextlaag die aanhaakt op de MCP-ondersteuning van Cursor.

  • Semantic + AST + graph + text zoek op betekenis, structuur, dependency of letterlijke tekst. Elke hit levert een bestandspad en regelnummer op.
  • Standaard over pakketten heen call-sites en importers door de hele monorepo, niet alleen het package dat nu open staat.
  • Branch-bewust Maguyva ziet de versie van de code die Cursor aan het bewerken is.
  • Aanvullend, niet concurrerend .cursor/rules blijft zijn werk doen. @-mentions blijven hun werk doen. Maguyva vult het gat dat zij niet vullen.

Cursor bewerkt het bestand waar jij naar wijst.

Maguyva vertelt de agent naar welk bestand het moet wijzen.

Drie monorepo-workflows

Cross-package, cross-language. Gefundeerd op de daadwerkelijke call graph, niet op de grep van Cursor.

// workflow 01

Vind de auth-flow door alle packages heen, zonder iets te pinnen

cursor> waar gebeurt authenticatie in deze 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 entry points in 4 packages, gerangschikt op call-site-dichtheid.
[exit 0]

Je hebt geen bestand gepind. Je hebt geen snippet geplakt. De agent heeft de vier bestanden die ertoe doen, in de juiste volgorde, en kan een gefundeerde wijziging maken.

// workflow 02

Vind de echte implementatie, niet de test-stub

cursor> hoe verwerkt normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← echte impl
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]

Namen liegen. Mocks overschaduwen echte code. Maguyva rangschikt de echte implementatie boven de test-mock, in elk package.

// workflow 03

Check de impactradius voordat je refactort

cursor> wat roept QueueDispatcher.publish aan, door de hele monorepo?

graph::callers(QueueDispatcher.publish)
  3 in packages/billing/*
  1 in packages/audit/*
  1 in packages/notifications/*
  1 in services/python-worker/*  ← cross-language via gRPC-stub
[exit 0]

Cross-package, en cross-language als je een polyglotte repo hebt, call-sites komen inline naar boven. De diff is gefundeerd op echte importers, niet op de grep van Cursor.

Setup met Cursor

Drie stappen. Free tier: 3 repositories, Tot 50K geïndexeerde repo-regels, geen kaart nodig.

  1. // step 01

    Indexeer een repo op maguyva.ai

    Kies de monorepo waar je de meeste contextpijn hebt gevoeld.

  2. // step 02

    Voeg Maguyva toe als MCP-server in de instellingen van Cursor

    // ~/.cursor/mcp.json
    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Stel één vraag waarvan je het antwoord al weet

    Begin niet met je hele bedrijf. Begin met één repo en één verifieerbare vraag, zoals “wat roept formatInvoice aan, door alle packages heen?”