Duże bazy kodu
Strategie kontekstu dla repozytoriów zbyt dużych, by zmieścić je w oknie — niezbędna umiejętność do każdego monorepozytorium. Zobacz Praca z dużymi bazami kodu.
Pojawia się ostrzeżenie bezpieczeństwa dla twojej biblioteki uwierzytelniania. Mieszka ona w @company/core, a importują ją 23 usługi w monorepozytorium liczącym 47 pakietów. Musisz wiedzieć dokładnie, które pakiety przestaną działać, w jakiej kolejności się przebudują i które zespoły zawiadomić. Otwórz najpierw niewłaściwy plik, a stracisz całe popołudnie na tropienie przechodnich importów, na które graf projektu odpowiedziałby w kilka sekund.
Domyślnie asystenci AI traktują twoje monorepozytorium jak stos plików. Nie mają pojęcia, że web-app zależy od @company/ui, które zależy od @company/core. Rozwiązaniem jest serwer MCP z grafem projektu (Nx Console jest najdojrzalszy), który podaje modelowi graf zależności, schematy generatorów i cache zadań jako ustrukturyzowany kontekst. Gdy już to skonfigurujesz, pytanie „co się zepsuje, jeśli to zmienię?” staje się zapytaniem, a nie ręcznym audytem.
nx.json/turbo.json w konkretne zyski z równoległościuvx, niewstający serwer MCPSerwer Nx MCP (nx-mcp) to dziś najbardziej zaawansowana integracja monorepozytoriów. Udostępnia twój graf projektu, schematy generatorów i dokumentację Nx jako narzędzia, które model może wywoływać. Konfiguracja jest niemal identyczna we wszystkich trzech narzędziach — jedyną realną różnicą jest uruchamiane polecenie.
Zainstaluj rozszerzenie Nx Console. W workspace Nx Cursor (0.46+) wykrywa je automatycznie i pokazuje powiadomienie z propozycją włączenia serwera Nx MCP. Zaakceptuj je, a Nx Console zapisze za ciebie wpis w .cursor/mcp.json.
Aby skonfigurować to ręcznie, uruchom nx.configureMcpServer z palety poleceń (Cmd/Ctrl+Shift+P) albo dodaj wpis samodzielnie:
{ "mcpServers": { "nx": { "command": "npx", "args": ["-y", "nx-mcp"] } }}Potwierdź to w Cursor Settings → MCP — powinieneś zobaczyć nx na liście z zieloną kropką.
Dodaj go jako serwer stdio z katalogu głównego repozytorium. Użyj --scope project, aby konfiguracja trafiła do współdzielonego .mcp.json, a nie do domyślnego zakresu local (który mieszka w ~/.claude.json pod ścieżką twojego projektu i jest prywatny). Flaga --scope musi pojawić się przed nazwą serwera i przed --:
claude mcp add nx --scope project -- npx -y nx-mcpSprawdź, że się zarejestrował i jest osiągalny:
claude mcp listZ --scope project konfiguracja ląduje w .mcp.json. Zatwierdź ten plik w repozytorium, żeby cały zespół miał tę samą konfigurację świadomą grafu.
Zarejestruj ten sam serwer stdio. Codex przechowuje go w ~/.codex/config.toml:
codex mcp add nx -- npx -y nx-mcpcodex mcp listW przypadku większych workspace daj serwerowi więcej zapasu na start w ~/.codex/config.toml:
[mcp_servers.nx]command = "npx"args = ["-y", "nx-mcp"]startup_timeout_sec = 30Dwa kolejne serwery dopełniają konfigurację monorepozytorium. Zwróć uwagę, że uruchamiane są inaczej: oficjalny serwer systemu plików to pakiet Node uruchamiany przez npx, natomiast serwer git działa wyłącznie w Pythonie i uruchamiany jest przez uvx (najpierw zainstaluj uv). W npm nie ma pakietu @modelcontextprotocol/server-git — taki pakiet nie istnieje.
{ "mcpServers": { "git": { "command": "uvx", "args": ["mcp-server-git", "--repository", "/path/to/monorepo"] }, "fs": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/monorepo"] } }}claude mcp add git -- uvx mcp-server-git --repository /path/to/monorepoclaude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem /path/to/monorepocodex mcp add git -- uvx mcp-server-git --repository /path/to/monorepocodex mcp add fs -- npx -y @modelcontextprotocol/server-filesystem /path/to/monorepoOgraniczenie serwera systemu plików do katalogu głównego monorepozytorium utrzymuje operacje masowe wewnątrz twojego workspace, a nie na reszcie dysku.
Najcenniejszym ruchem w monorepozytorium jest zapytanie modelu, co się zepsuje, zanim zaczniesz edytować. Z aktywnym Nx MCP model wywołuje nx_workspace i nx_project_details zamiast zgadywać z instrukcji import.
Mając realny kontekst grafu, dostajesz coś, na czym możesz działać, a nie zgadywankę:
Useris imported by 8 packages. Addingstatusas optional is non-breaking at the type level. The packages that render user data and should be updated to show status:UserCard(web-app),UserProfile(mobile-app),UserList(admin-dashboard). Rebuild order:@company/core→@company/ui→ web-app, mobile-app, admin-dashboard.
Ta lista kontrolna to różnica między kontrolowaną zmianą a popołudniem spędzonym na grep. Model przeczytał twój prawdziwy graf, więc kolejność przebudowy i ocena „opcjonalne znaczy bez łamania kodu” są oparte na faktach, a nie zmyślone.
Gdy zaufasz analizie wpływu, ta sama świadomość grafu napędza skoordynowane zmiany. Przepływ jest taki sam we wszystkich trzech narzędziach — model proponuje plan, ty go zatwierdzasz, a następnie wykonuje go pakiet po pakiecie — więc różnica tkwi tylko w tym, jak sterujesz każdym narzędziem. Tryb agenta w Cursorze nanosi zmiany w miejscu, z punktami kontrolnymi; Claude Code działa w terminalu i może wpinać się w hooki lub CI; Codex może rozdzielić pracę na tła w worktreech albo do chmury.
Najpierw zdobądź plan. Uruchom powyższy prompt do analizy wpływu, żeby mieć listę dotkniętych pakietów w kolejności zależności.
Refaktoryzuj w kolejności grafu. Poproś model, żeby pracował od dołu do góry, tak aby każdy pakiet kompilował się, zanim zmienią się jego pakiety zależne:
Weryfikuj grafem budowania. Uruchom tylko to, co się zmieniło — npx nx affected -t build test lint — i przekaż modelowi każdy błąd wraz z nazwą pakietu i treścią błędu.
Wolne CI to zwykle problem grafu zadań, a nie sprzętu. Nx MCP pozwala modelowi przeczytać twój rzeczywisty nx.json i konfiguracje projektów, zamiast udzielać ogólnikowych rad.
Model świadomy grafu daje ci konkrety, które możesz wkleić do PR-a:
Your
web-app:builddeclares a dependency onmobile-app:build, but nothing in web-app imports mobile-app. Removing that edge lets the two apps build in parallel — roughly 40% off the critical path. Separately, yourtesttarget’sinputsinclude**/*.md, so doc edits bust the test cache. Narrow it to["default", "^default"].
W przypadku Turborepo ten sam wzorzec dotyczy turbo.json — poproś model o audyt inputs, outputs i dependsOn — ale dopóki nie pojawi się oficjalny serwer, będziesz podawać mu zawartość pliku bezpośrednio, a nie przez narzędzie MCP.
Wielopakietowe release’y to miejsce, gdzie kolejność zależności gryzie najmocniej: wydaj @company/payments przed @company/core, od którego zależy, a opublikujesz zepsutą wersję. Połącz dla tego serwer git MCP (historia commitów) z Nx MCP (kolejność zależności).
Narzędzia świadome grafu zawodzą na kilka przewidywalnych sposobów. Rozpoznawaj je szybko:
claude mcp list (lub codex mcp list) — serwer utknięty w stanie „failed” zwykle oznacza brakujący plik wykonywalny launchera. Dla nx-mcp i serwera systemu plików potrzebujesz Node/npx w PATH; dla serwera git potrzebujesz uv/uvx. Zainstaluj uv, jeśli uvx zgłasza „command not found”.@modelcontextprotocol/server-git i dostałeś 404. Tego pakietu nie ma w npm — serwer git jest wyłącznie w Pythonie. Zamiast tego użyj uvx mcp-server-git --repository /path.nx.json. Jeśli model mówi „no Nx workspace detected”, uruchom go ponownie z katalogu głównego repozytorium.npx nx reset, aby wyczyścić cache Nx, a potem poproś model o ponowne odczytanie grafu, zanim zaufasz nowemu raportowi wpływu.nx affected --base=main) i podbij startup_timeout_sec serwera, jeśli przekracza limit czasu przy pierwszym wywołaniu.Migracje monorepozytoriów są wolne i podatne na zrównoleglenie, co czyni je dobrym dopasowaniem do wielopowierzchniowego modelu Codeksa. Codex uruchamia zadania w tle w dedykowanych worktreech gita, więc długa refaktoryzacja nie blokuje twojego drzewa roboczego. Odpal zadanie w chmurze dla każdej grupy pakietów, a potem ściągnij wyniki lokalnie:
# Browse or run cloud tasks from the terminalcodex cloud
# Apply a completed cloud task's diff to your local treecodex applyPozwala to rozesłać zadanie „migrate package group A to the new API” do chmury, podczas gdy ty dalej edytujesz lokalnie, a następnie przejrzeć każdy diff za pomocą codex apply, zanim trafi do drzewa.
Duże bazy kodu
Strategie kontekstu dla repozytoriów zbyt dużych, by zmieścić je w oknie — niezbędna umiejętność do każdego monorepozytorium. Zobacz Praca z dużymi bazami kodu.
Mikroserwisy
Koordynuj zmiany przez granice usług z tym samym nastawieniem opartym na grafie. Zobacz Przepływy pracy w mikroserwisach.
Jakość kodu na dużą skalę
Utrzymuj spójność lintingu, typów i testów w każdym pakiecie. Zobacz Przepływy pracy dla jakości kodu.
Ekosystem MCP
Wejdź głębiej w konfigurowanie i łączenie serwerów MCP we wszystkich trzech narzędziach. Zobacz przewodniki po ekosystemie MCP.