Pular para o conteúdo

Para usuários do Cursor

O Cursor edita o arquivo.
O Maguyva enxerga o repositório.

O Cursor é o editor. Num monorepo, o agente ainda precisa de um mapa de qual arquivo importa. O Maguyva indexa o seu codebase e devolve isso via MCP (semântica, AST, grafo e texto), para que “onde acontece a autenticação” retorne o fluxo de auth de verdade, não sete stubs de teste.

Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

O Cursor edita o que você aponta. O Maguyva diz ao agente qual arquivo apontar.

O que cada camada faz

Quatro peças. Cada uma com uma função.

// editor

Cursor

Onde você realmente programa.

// contexto manual

menções com @ + fixações

Contexto manual funciona, até o repositório ficar grande.

// codebase

Maguyva

Fatos automáticos do codebase via MCP.

// quem paga

Workspaces, não assentos

Agentes não pagam assento. Ver preços

O Cursor é o editor. Use-o.

A IDE não é o problema. O tab completion do Cursor, o edit-with-AI, as edições multi-arquivo e o .cursor/rules são excelentes, e você já usa isso para:

  • Sugestões inline e edit-with-AI no arquivo aberto.
  • Edições multi-arquivo quando a mudança é local.
  • .cursor/rules para convenções do repositório e guardrails de estilo.
  • Menções com @ para trazer um arquivo específico para o contexto.

Continue fazendo isso. Nada disso vai embora.

Mas num monorepo de verdade (TypeScript com dependências de workspace, serviços Python, pacotes misturados) o contexto do agente quebra no momento em que o arquivo relevante ainda não está no seu radar.

Soluções manuais que você já tentou, e onde elas quebram

Quatro soluções manuais emparelhadas com seus modos de falha. Esquerda = o que você faz hoje. Direita = onde quebra.

// the fix

// fixe os arquivos

Você menciona com @ os três arquivos que acha que importam. O Cursor edita neles com precisão.

// where it breaks

// fixar é um chute

Fixar funciona quando você já sabe quais arquivos estão envolvidos. O objetivo das ferramentas de contexto é justamente revelar os arquivos que você não sabia que precisava fixar.

// the fix

// cole os trechos

Você cola 200 linhas de outro pacote no chat para dar contexto suficiente ao agente.

// where it breaks

// código colado fica desatualizado

O trecho que você colou às 9h não reflete o rebase que seu colega de time fez às 11h. O agente está editando contra uma versão fantasma do pacote.

// the fix

// escreva um doc de contexto

Você escreve um arquivo .cursor/rules ou um markdown de arquitetura. Está certo hoje.

// where it breaks

// docs desatualizam mais rápido que o código

Tudo que você escreve à mão desatualiza. O código é a fonte da verdade. Um doc explicando a camada de fila está correto por uma semana, e errado para sempre depois.

// the fix

// mantenha os arquivos de rules

Você adiciona .cursor/rules para nomenclatura, lint, comandos de build. Ótimo para comportamento.

// where it breaks

// rules ≠ índice

.cursor/rules é o lugar certo para “sempre rode pnpm tsc -b antes de cada commit.” Não é um índice consultável de cada símbolo, arquivo e call-site no seu monorepo.

O Maguyva é a camada por baixo

Não é um substituto do Cursor. É a camada de contexto de repositório que se conecta ao suporte MCP do Cursor.

  • Semântica + AST + grafo + texto busca por significado, estrutura, dependência ou literal. Cada resultado retorna um caminho de arquivo e número de linha.
  • Entre pacotes por padrão call-sites e importadores em todos os pacotes do monorepo, não só no que está aberto agora.
  • Consciente de branch O Maguyva enxerga a versão do código que o Cursor está editando.
  • Complementar, não concorrente .cursor/rules continua fazendo o trabalho dele. As menções com @ continuam fazendo o delas. O Maguyva preenche a lacuna que eles não preenchem.

O Cursor edita o arquivo que você aponta.

O Maguyva diz ao agente qual arquivo apontar.

Três fluxos de trabalho de monorepo

Entre pacotes, entre linguagens. Fundamentado no grafo de chamadas real, não no grep do Cursor.

// workflow 01

Encontre o fluxo de auth entre pacotes, sem fixar nada

cursor> onde acontece a autenticação nesse 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 pontos de entrada em 4 pacotes, ranqueados por densidade de call-sites.
[exit 0]

Você não fixou nenhum arquivo. Você não colou nenhum trecho. O agente tem os quatro arquivos que importam, na ordem certa, e pode fazer uma edição fundamentada.

// workflow 02

Encontre a implementação real, não o stub de teste

cursor> como o normalizePhoneNumber trata o E.164?

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

Nomes mentem. Mocks fazem sombra no código real. O Maguyva ranqueia a implementação real acima do mock de teste, em todos os pacotes.

// workflow 03

Confira o raio de impacto antes de refatorar

cursor> o que chama QueueDispatcher.publish em todo o monorepo?

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

Entre pacotes, e entre linguagens quando você tem um repositório poliglota, os call-sites aparecem inline. O diff é fundamentado em importadores reais, não no grep do Cursor.

Configuração com o Cursor

Três passos. Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

  1. // step 01

    Indexe um repositório em maguyva.ai

    Escolha o monorepo onde você mais sentiu dor de contexto.

  2. // step 02

    Adicione o Maguyva como servidor MCP nas configurações do Cursor

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

    Faça uma pergunta cuja resposta você já saiba

    Não comece com a empresa inteira. Comece com um repositório e uma pergunta verificável, tipo “o que chama formatInvoice entre pacotes?”