// редактор
Cursor
Місце, де ви справді пишете код.
Для користувачів Cursor
Cursor — це редактор. У монорепозиторії агенту все одно потрібна карта того, який файл важливий. Maguyva індексує вашу кодову базу і повертає її через MCP (семантика, AST, граф і текст), тож на «де відбувається автентифікація» ви отримуєте реальний потік автентифікації, а не сім тестових заглушок.
Тариф Free: 3 репозиторії, До 50 тис. проіндексованих рядків репозиторію, без картки.
Cursor редагує те, на що ви вказали. Maguyva каже агенту, на який файл вказати.Чотири частини. У кожної своя робота.
// редактор
Місце, де ви справді пишете код.
// ручний контекст
Ручний контекст працює, поки репозиторій не стає завеликим.
// кодова база
Автоматичні факти про кодову базу через MCP.
// хто платить
Агенти не платять за місця. Переглянути ціни
Проблема не в IDE. Автодоповнення табом, edit-with-AI, багатофайлові правки та .cursor/rules у Cursor чудові, і ви вже користуєтеся ними для:
.cursor/rules для конвенцій репозиторію та стильових обмежень.@-згадок, щоб підтягнути конкретний файл у контекст.Продовжуйте так робити. Нічого з цього нікуди не зникає.
Але в реальному монорепозиторії (TypeScript із залежностями воркспейсів, Python-сервіси, змішані пакети) контекст агента ламається в ту мить, коли потрібний файл ще не потрапив у ваше поле зору.
Чотири ручні виправлення в парі зі своїм режимом відмови. Ліворуч — що ви робите сьогодні. Праворуч — де воно ламається.
// the fix
Ви @-згадуєте три файли, які, на вашу думку, важливі. Cursor акуратно редагує всередині них.
// where it breaks
Пінінг працює, коли ви вже знаєте, які файли задіяні. Весь сенс інструментів контексту — показати файли, про які ви навіть не здогадувалися.
// the fix
Ви вставляєте 200 рядків з іншого пакета в чат, щоб дати агенту достатньо контексту.
// where it breaks
Фрагмент, який ви вставили о 9 ранку, не враховує ребейз, який ваш колега влив об 11-й. Агент редагує проти примарної версії пакета.
// the fix
Ви пишете файл .cursor/rules або markdown про архітектуру. Сьогодні він правильний.
// where it breaks
Усе, що ви пишете вручну, з часом розходиться з реальністю. Джерело істини — код. Документ, що пояснює шар черг, правильний тиждень, а потім хибний назавжди.
// the fix
Ви додаєте .cursor/rules для найменувань, лінту, команд збірки. Чудово для поведінки.
// where it breaks
.cursor/rules — правильне місце для “завжди запускай pnpm tsc -b перед комітами”. Але це не індекс, який можна опитати, для кожного символу, файлу й місця виклику у вашому монорепозиторії.
Це не заміна Cursor. Це шар контексту репозиторію, що тримається на підтримці MCP у Cursor.
.cursor/rules продовжує робити свою справу. @-згадки продовжують робити свою. Maguyva заповнює прогалину, яку не заповнюють вони.Cursor редагує файл, на який ви вказали.
Maguyva каже агенту, на який файл вказати.
Крос-пакетно, крос-мовно. Обґрунтовано реальним графом викликів, а не grep'ом Cursor.
// workflow 01
cursor> де в цьому монорепозиторії відбувається автентифікація? 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 точки входу в 4 пакетах, відсортовано за щільністю місць виклику. [exit 0]
Ви не запінили жодного файлу. Ви не вставляли фрагмент. В агента є чотири важливі файли в правильному порядку — і він може зробити обґрунтовану правку.
// workflow 02
cursor> як normalizePhoneNumber обробляє E.164? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← реальна реалізація packages/api/test/phone.spec.ts:14 jest.mock(...) ← заглушка [exit 0]
Назви брешуть. Моки затіняють реальний код. Maguyva ранжує реальну реалізацію вище за тестовий мок у кожному пакеті.
// workflow 03
cursor> що викликає QueueDispatcher.publish у всьому монорепозиторії? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← крос-мовно через gRPC-стаб [exit 0]
Крос-пакетно, а для поліглотного репозиторію ще й крос-мовно, місця виклику з'являються прямо в результаті. Diff обґрунтований реальними імпортерами, а не grep'ом Cursor.
Три кроки. Тариф Free: 3 репозиторії, До 50 тис. проіндексованих рядків репозиторію, без картки.
// step 01
Оберіть монорепозиторій, де проблема контексту відчувалася найгостріше.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Не починайте одразу з усієї компанії. Почніть з одного репозиторію й одного перевірюваного запитання, як-от «що викликає formatInvoice у всіх пакетах?»