Serwery MCP, które rozumieją twój kod: Serena, codebase-memory-mcp, Claude Context i Repomix
Serwery MCP do analizy kodu (code intelligence) dają agentowi wiedzę o strukturze repozytorium zamiast pętli grep i czytania plików. Serena wyszukuje i edytuje symbole przez serwery językowe, codebase-memory-mcp śledzi ścieżki wywołań w lokalnym grafie wiedzy, Claude Context wyszukuje semantycznie w bazie wektorowej, a Repomix pakuje repozytorium do jednego pliku. Poprawności zmiany żaden z nich nie dowodzi; robią to twoje testy.
Prosisz agenta o zmianę nazwy OrderService.applyDiscount w monorepo TypeScript liczącym 400 000 linii. Agent greppuje applyDiscount, czyta 30 plików, żeby odróżnić prawdziwe wywołania od fikstury testowej, napisu w logu i niezwiązanego applyDiscount w CartService, i kończy mu się kontekst, zanim cokolwiek zmieni. Serwer językowy zna odpowiedź od początku. Agentowi brakuje tylko narzędzia, które go zapyta.
Ta strona jest dla programistów, którzy refaktoryzują duże bazy kodu z agentem, i dla tech leadów, którzy decydują, na którym z tych serwerów zespół się ustandaryzuje. Dostajesz tabelę decyzyjną dla czterech serwerów, Serenę zainstalowaną zgodnie z upstreamem we wszystkich trzech narzędziach, przykład zmiany nazwy we wszystkich wywołaniach, czteroetapowy proces refaktoryzacji (mapa, plan, edycja symboli, testy), audyt instalatora codebase-memory-mcp oraz typowe awarie z krokami naprawy. Strona zakłada, że dodawałeś już serwer MCP; jeśli nie, zacznij od przeglądu MCP.
Który serwer code intelligence pasuje do twojej bazy kodu?
Dział zatytułowany „Który serwer code intelligence pasuje do twojej bazy kodu?”Cztery serwery odpowiadają na różne pytania. Wybieraj według pytania, które najczęściej zadajesz agentowi, a nie według liczby gwiazdek.
| Serena | codebase-memory-mcp | Claude Context | Repomix | |
|---|---|---|---|---|
| Odpowiada na | „Gdzie jest ten symbol, kto się do niego odwołuje, zmień mu nazwę” | „Co to wywołuje, co wywołuje to, czego dotyka ten diff” | „Gdzie jest kod, który obsługuje X” (po znaczeniu) | „Daj mi całe repozytorium albo jego wycinek w jednym pliku” |
| Silnik | Serwery językowe (LSP) albo płatna wtyczka JetBrains | Graf wiedzy z Tree-sittera zapisany lokalnie oraz embeddingi wbudowane w binarkę do lokalnego wyszukiwania semantycznego | Embeddingi w bazie wektorowej Milvus lub Zilliz | Kompresja i pakowanie przez Tree-sitter |
| Edytuje kod | Tak: rename_symbol, replace_symbol_body, insert_after_symbol, safe_delete_symbol | Nie, graf tylko do odczytu | Nie | Nie |
| Kod opuszcza maszynę | Nie | Nie (README: „100% locally”) | Tak przy hostowanym dostawcy embeddingów lub Zilliz Cloud; nie przy lokalnym Milvusie i Ollamie | Nie, chyba że pakujesz zdalne repozytorium |
| Wymaga | uv oraz serwera językowego dla każdego języka | Jednej natywnej binarki | Node.js 20+, bazy wektorowej, dostawcy embeddingów | Node.js (npx) |
| Aktualna wersja (2026-09-26) | PyPI serena-agent 1.7.0 (2026-08-09) | 0.11.0 na npm i PyPI | npm @zilliz/claude-context-mcp 0.1.15 (2026-06-22) | npm repomix 1.18.1 (2026-09-21) |
Reguły decyzyjne, które wynikają z tabeli:
- Zmiany nazw, przenoszenie i zmiany sygnatur w języku typowanym: Serena. Tylko ona z tej czwórki edytuje kod, a zmiana nazwy przez serwer językowy jest dokładna tam, gdzie zamiana tekstu nie jest.
- „Co się zepsuje, jeśli to zmienię?” w kodzie, którego nie znasz: codebase-memory-mcp.
trace_pathidetect_changesodpowiadają na pytania o wpływ zmiany jednym wywołaniem. - Szukanie kodu po intencji w bardzo dużym repozytorium („gdzie ponawiamy płatności?”), gdy organizacja już utrzymuje bazę wektorową: Claude Context. Najpierw wypróbuj lokalne wyszukiwanie semantyczne codebase-memory-mcp; Claude Context jest najcięższy w utrzymaniu.
- Przekazanie modelowi całego repozytorium, także cudzego, za jednym razem albo zamiana biblioteki w skill referencyjny: Repomix.
Serena i codebase-memory-mcp dobrze się uzupełniają: graf wyznacza zasięg zmiany, serwer językowy wykonuje edycję. Instalacja wszystkich czterech kosztuje kontekst i niewiele daje.
Zainstaluj Serenę z upstreamu, nie z marketplace
Dział zatytułowany „Zainstaluj Serenę z upstreamu, nie z marketplace”README Sereny mówi wprost: „Do not install Serena via an MCP or plugin marketplace! They contain outdated and suboptimal installation commands.” Wtyczka serena w claude-plugins-official nadal uruchamia Serenę przez uvx --from git+https://github.com/oraios/serena, czyli drogą, przed którą ostrzega upstream. Zainstaluj narzędzie raz, a potem wskaż je każdemu agentowi.
-
Zainstaluj
uv(jedyne wymaganie Sereny), potem zainstaluj Serenę jako narzędzie uv i ją zainicjalizuj:Okno terminala uv tool install -p 3.13 serena-agentserena initserena initkonfiguruje domyślny backend oparty na serwerach językowych. Niektóre języki wymagają dodatkowej zależności; wymienia je strona o obsłudze języków w dokumentacji Sereny.serena-agent1.7.0 wymaga Pythona od 3.11 do 3.14 (PyPI, sprawdzone 2026-09-26). -
Podłącz agenta. Konteksty różnią się między narzędziami, bo każdy kontekst wyłącza te narzędzia Sereny, które dublują własne narzędzia agenta do plików i powłoki.
Okno terminala # wszystkie projekty; Serena aktywuje katalog, w którym startuje Claude Codeclaude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwdserena setup claude-codezapisuje ten sam wpis za ciebie. Jeśli Serena startuje zbyt wolno i/mcppokazuje ją jako niedziałającą, ustawMCP_TIMEOUT=60000w profilu powłoki, jak radzi dokumentacja klientów Sereny.Okno terminala serena setup codexAlbo dodaj blok samodzielnie do
~/.codex/config.toml:[mcp_servers.serena]startup_timeout_sec = 15command = "serena"args = ["start-mcp-server", "--project-from-cwd", "--context=codex"]Aplikacja Codex nie uruchamia sesji w katalogu projektu. Tam zacznij od „Activate the current dir as project using serena”.
Dodaj Serenę do
~/.cursor/mcp.json. Upstream zaleca kontekstidedla integracji z IDE; poniższy JSON wyprowadzono z tej wskazówki i nie był testowany w binarce Cursora:{"mcpServers": {"serena": {"command": "serena","args": ["start-mcp-server", "--context", "ide"]}}}Przy globalnym wpisie Serena nie wie, który projekt jest otwarty. Zaczynaj każdy czat od „Activate the current dir as project using serena”. Jeśli Cursor nie znajduje polecenia
serena, podaj pełną ścieżkę, którą wypisujewhich serena. -
Sprawdź połączenie. Uruchom
/mcpw Claude Code lub Codeksie (w Cursorze otwórz listę MCP w ustawieniach) i potwierdź, żeserenajest połączona. Potem poproś: „Use serena to give me the symbols overview of src/orders/order-service.ts”. Agent powinien wywołaćget_symbols_overview, a nie czytać plik.
Jak sprawić, żeby agent używał Sereny, a nie grepa
Dział zatytułowany „Jak sprawić, żeby agent używał Sereny, a nie grepa”Dokumentacja klientów Sereny podaje, że nowsze wydania Claude Code i nowsze modele mocno ciążą ku wbudowanym narzędziom, więc w długich sesjach agent często pomija Serenę. Upstream dostarcza na to hooki (oznaczone jako alfa). remind przypomina agentowi o Serenie po serii wywołań grep lub read_file, activate aktywuje projekt na starcie sesji, a cleanup sprząta stan hooków na końcu. Dodaj je do .claude/settings.json:
{ "hooks": { "SessionStart": [ { "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks activate --client=claude-code" }] } ], "PreToolUse": [ { "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks remind --client=claude-code" }] } ], "SessionEnd": [ { "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks cleanup --client=claude-code" }] } ] }}Upstream oferuje też hook auto-approve i zastępczy prompt systemowy (claude --system-prompt="$(serena prompts print-cc-system-prompt-override)"). Na początek pomiń oba. Hook zatwierdza narzędzia edycyjne Sereny bez pytania, gdy pracujesz w trybie acceptEdits lub auto, a --system-prompt zastępuje domyślny prompt systemowy Claude Code, zamiast go uzupełniać.
Dokumentacja Sereny podaje wersję dla Codeksa w ~/.codex/hooks.json (--client=codex, PreToolUse dopasowane do Bash oraz hook reset po narzędziach Sereny). Skopiuj ten blok z upstreamu zamiast przerabiać powyższy JSON; jego sprzątanie w SessionEnd wymaga Codeksa 0.145.0 lub nowszego. Ta sama dokumentacja każe też ustawić codex_hooks = true w sekcji [features]. W codex-cli 0.157.1 takiej flagi nie ma na liście: codex features list pokazuje hooks jako stabilną i domyślnie włączoną, więc ten krok pomiń. Codex uruchamia nowy lub zmieniony hook dopiero wtedy, gdy zaufasz mu w /hooks (codex-cli 0.157.1).
Zmień nazwę OrderService.applyDiscount we wszystkich wywołaniach przez Serenę
Dział zatytułowany „Zmień nazwę OrderService.applyDiscount we wszystkich wywołaniach przez Serenę”To zadanie z początku strony. Prompt podaje symbol przez ścieżkę nazwy Sereny (OrderService/applyDiscount) i plik, więc serwer językowy rozpoznaje dokładnie jeden symbol.
Co powinieneś zobaczyć: wywołania find_symbol, potem find_referencing_symbols (każdy wynik zawiera odwołujący się symbol i fragment kodu wokół referencji), pauzę na twoje potwierdzenie, a potem jedno wywołanie rename_symbol. Zmiana nazwy obejmuje w jednej operacji każdą referencję znaną serwerowi językowemu. CartService.applyDiscount zostaje nietknięty, bo to inny symbol.
Ostatnie wyszukiwanie tekstowe ma znaczenie. Serwer językowy nie widzi nazwy metody w napisie, fiksturze JSON, mocku w rodzaju vi.spyOn(service, 'applyDiscount') ani w service[methodName](). W tych miejscach zmiana nazwy psuje się po cichu, a sprawdzenie typów nie wyłapie przypadków z napisami. W Javie i innych językach z przeciążaniem wybierz przeciążenie w find_symbol indeksem liczonym od zera, np. OrderService/applyDiscount[0]; dokumentacja rename_symbol w Serenie podaje, że jego ścieżka nazwy może zamiast tego wymagać sygnatury metody.
Refaktoryzuj dużą bazę kodu: mapa wywołań, plan, edycja symboli, testy
Dział zatytułowany „Refaktoryzuj dużą bazę kodu: mapa wywołań, plan, edycja symboli, testy”Zmiana nazwy to jeden krok. Prawdziwy refaktor, na przykład wydzielenie logiki rabatów z OrderService do klasy PromotionEngine, wymaga najpierw zasięgu zmiany. Ten proces używa codebase-memory-mcp do mapy i Sereny do edycji. Przebiega tak samo we wszystkich trzech narzędziach; różni się tylko instalacja.
-
Zapisz punkt odniesienia. Na nowej gałęzi uruchom sprawdzenie typów, lint i pełny zestaw testów, i zachowaj wynik. Jeśli kod, który przenosisz, ma słabe pokrycie, najpierw dopisz testy charakteryzujące; jak silna jest twoja wyrocznia testowa pokazuje, jak to sprawdzić.
-
Zmapuj wywołania. Zaindeksuj repozytorium raz, potem prześledź ścieżki przychodzące.
Bez MCP to samo zapytanie uruchomisz w terminalu:
codebase-memory-mcp cli trace_path --project my-project --function-name applyDiscount --direction inbound. -
Zaplanuj zmianę w przeglądalnych kawałkach. Poproś o plan w pliku, który przeczytasz w całości.
Przejrzyj ten plan. To kontrakt dla reszty pracy, a wywołania bez testów to miejsca, w których dopisujesz testy przed przeniesieniem.
-
Edytuj na poziomie symboli, kawałek po kawałku.
-
Udowodnij zmianę testami, potem sprawdź, co według grafu się zmieniło. Uruchom pełną bramkę i porównaj z punktem odniesienia. Potem poproś agenta o
detect_changes, które mapuje niezatwierdzony diff na dotknięte symbole z klasyfikacją ryzyka. Każdy dotknięty symbol powinien być w planie. Wszystko spoza planu to rozrost zakresu albo pominięte wywołanie.
Zainstaluj codebase-memory-mcp tak, żeby nie przepisał ci konfiguracji
Dział zatytułowany „Zainstaluj codebase-memory-mcp tak, żeby nie przepisał ci konfiguracji”codebase-memory-mcp (DeusData) indeksuje repozytorium do trwałego lokalnego grafu i udostępnia 17 narzędzi MCP, w tym index_repository, search_graph, trace_path (alias trace_call_path), detect_changes, query_graph i get_architecture. Nie potrzebuje klucza API, a README stwierdza, że działa „100% locally and collects no telemetry”. search_graph wyszukuje też semantycznie modelem embeddingów wkompilowanym w binarkę, więc szukanie kodu po znaczeniu nie wymaga bazy wektorowej.
Instalacja jednym poleceniem to curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash. Skrypt pobiera natywną binarkę i uruchamia jej polecenie install, które wykrywa każdego agenta na maszynie i zapisuje jego konfigurację: dla Claude Code wpis MCP w ~/.claude.json plus skill, trzech subagentów i hooki na SessionStart, SubagentStart oraz PreToolUse dla Grep, Glob i Bash. Dla Codeksa zapisuje config.toml, dodaje odnośnik w $CODEX_HOME/AGENTS.md, skill i agentów. Na komputerze zespołowym to więcej zmian, niż zamawiałeś.
-
Przeczytaj skrypt, zanim go uruchomisz. Pobierz
install.sh(alboinstall.ps1na Windowsie) do pliku, przeczytaj go i dopiero wtedy uruchom. -
Zainstaluj samą binarkę. Przekaż
--skip-config, żeby instalator nie ruszał konfiguracji agentów:Okno terminala bash install.sh --skip-configAlbo użyj menedżera pakietów:
npm install -g codebase-memory-mcplubpip install codebase-memory-mcp(oba 0.11.0, sprawdzone 2026-09-26). -
Dodaj serwer sam, tam gdzie chcesz.
Okno terminala claude mcp add codebase-memory -- /usr/local/bin/codebase-memory-mcpOkno terminala codex mcp add codebase-memory -- /usr/local/bin/codebase-memory-mcp{"mcpServers": {"codebase-memory-mcp": { "command": "/usr/local/bin/codebase-memory-mcp", "args": [] }}}Zastąp
/usr/local/bin/codebase-memory-mcpścieżką, którą wypisujewhich codebase-memory-mcp. Polecenia dla Claude Code i Codeksa wyprowadzono z JSON-a w README./mcppowinno potem pokazać serwer z 17 narzędziami. -
Powiedz „Index this project” i potwierdź wynik przez
index_status. Aby nowe projekty indeksowały się automatycznie przy pierwszym połączeniu, uruchomcodebase-memory-mcp config set auto_index true. Zaindeksowane projekty odświeża watcher działający w tle.
Jeśli pełny instalator już przeszedł, codebase-memory-mcp uninstall usuwa należące do niego wpisy konfiguracji, skille, hooki i instrukcje oraz sam plik binarny, pyta przed usunięciem indeksów i wypisuje (ale nie usuwa) ścieżkę skryptu instalacyjnego.
Claude Context: wyszukiwanie semantyczne, gdy możesz utrzymać bazę wektorową
Dział zatytułowany „Claude Context: wyszukiwanie semantyczne, gdy możesz utrzymać bazę wektorową”Claude Context (Zilliz) dzieli kod na fragmenty według AST, liczy dla nich embeddingi, zapisuje je w Milvusie lub Zilliz Cloud i odpowiada na zapytania w języku naturalnym hybrydowym wyszukiwaniem BM25 i wektorowym. Udostępnia cztery narzędzia: index_codebase, search_code, clear_index i get_indexing_status. Najbardziej pomaga tam, gdzie powiązany kod nie ma wspólnego słownictwa, więc wyszukiwanie tekstowe go nie znajdzie.
To też jedyny serwer w tym zestawieniu z zależnościami zewnętrznymi. Przy domyślnym EMBEDDING_PROVIDER=OpenAI fragmenty kodu trafiają do API embeddingów, a wektory do Zilliz Cloud. W pełni lokalnie zadziała z własnym Milvusem i EMBEDDING_PROVIDER=Ollama.
Trzymaj klucze poza linią poleceń i poza commitowanymi plikami:
claude mcp add --scope project claude-context \ -e 'OPENAI_API_KEY=${OPENAI_API_KEY}' -e 'MILVUS_TOKEN=${MILVUS_TOKEN}' \ -- npx -y @zilliz/claude-context-mcp@0.1.15Pojedyncze cudzysłowy zostawiają ${OPENAI_API_KEY} dosłownie w .mcp.json (sprawdzone w Claude Code 2.1.283); Claude Code podstawia wartość ze środowiska przy starcie.
codex mcp add claude-context -- npx -y @zilliz/claude-context-mcp@0.1.15Potem przekaż zmienne z powłoki zamiast je zapisywać: dodaj jedną linię do nowego bloku w ~/.codex/config.toml:
env_vars = ["OPENAI_API_KEY", "MILVUS_TOKEN"]codex mcp get claude-context pokazuje wtedy obie zmienne jako zamaskowane (codex-cli 0.157.1).
README wpisuje klucze w blok env; trzymaj to w globalnym ~/.cursor/mcp.json, nigdy w repozytorium:
{ "mcpServers": { "claude-context": { "command": "npx", "args": ["-y", "@zilliz/claude-context-mcp@0.1.15"], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_KEY", "MILVUS_TOKEN": "YOUR_ZILLIZ_TOKEN" } } }}MILVUS_ADDRESS jest opcjonalne przy osobistym kluczu API Zilliz; dodaj je dla własnego Milvusa. Potem przejdź ścieżkę dostawcy: „Index this codebase”, „Check the indexing status”, „Find functions that handle user authentication”.
Zanim się na nim ustandaryzujesz, oceń kondycję projektu. Na 2026-09-26 ostatnie wydanie npm pochodziło z 2026-06-22, ostatni push z 2026-07-14. Strojenie indeksu przy wyszukiwaniu semantycznym opisuje strona o wyszukiwaniu semantycznym w dużych bazach kodu.
Repomix: całe repozytorium w jednym pliku
Dział zatytułowany „Repomix: całe repozytorium w jednym pliku”Repomix pakuje repozytorium albo jego wycinek wybrany globem do jednego pliku przyjaznego modelom (domyślnie XML), z liczbą tokenów i skanem sekretów przez Secretlint. To bardziej format dostarczenia niż indeks. Używaj go, żeby przestudiować cudzą bibliotekę bez klonowania jej do projektu, przekazać modelowi cały moduł naraz albo wygenerować skill referencyjny.
Jako serwer MCP w wersji 1.18.1 rejestruje sześć narzędzi (przetestowany handshake, 2026-09-26): pack_codebase, pack_remote_repository, read_repomix_output, grep_repomix_output, generate_skill i attach_packed_output.
claude mcp add repomix -- npx -y repomix --mcpRepomix ma też własny marketplace wtyczek: /plugin marketplace add yamadashy/repomix, a potem /plugin install repomix-mcp@repomix.
codex mcp add repomix -- npx -y repomix --mcp{ "mcpServers": { "repomix": { "command": "npx", "args": ["-y", "repomix", "--mcp"] } } }Dodaj --sandbox po --mcp, żeby ograniczyć narzędzia plikowe do katalogu roboczego. Bez tej flagi README mówi, że serwer „can read any path the host user can”; z nią pakowanie zdalne i generowanie skilli są wyłączone.
CLI robi to samo bez MCP:
npx repomix --compress # pakuje bieżący katalog do repomix-output.xmlnpx repomix --remote yamadashy/repomix --compress # pakuje repozytorium z GitHuba bez klonowanianpx repomix --include "src/**/*.ts" --ignore "**/*.test.ts" # pakuje wycineknpx repomix --skill-generate # zapisuje Claude Agent Skill w .claude/skills/<name>/--compress używa Tree-sittera, żeby zachować sygnatury i pominąć ciała funkcji. Dostawca deklaruje około 70% mniej tokenów; ta strona tego nie mierzyła. --skill-output <path> zapisuje skill gdzie indziej, jeśli twój agent czyta skille z innego katalogu.
Jak udowodnić poprawność refaktoru bez czytania każdej linii?
Dział zatytułowany „Jak udowodnić poprawność refaktoru bez czytania każdej linii?”Serwer code intelligence sprawia, że edycje agenta są precyzyjniejsze. Nie sprawia, że są poprawne. Dowodem jest ta sama bramka co przy każdej zmianie agenta, plus dwa sprawdzenia, które te serwery czynią tanimi.
| Sprawdzenie | Co wyłapuje | Kto odpowiada |
|---|---|---|
| Sprawdzenie typów i lint na każdym kawałku | Pominięte referencje w kodzie typowanym, zepsute importy | CI, blokujące |
| Pełny zestaw testów porównany z punktem odniesienia | Zmiany zachowania, których typy nie widzą | CI, blokujące |
Pliki testów bez zmian, chyba że plan je wymienia (git diff --stat -- '*.test.ts') | Agenta, który „naprawił” testy, żeby refaktor przeszedł | Recenzent |
| Pozostałe wystąpienia starej nazwy w tekście, wypisane w PR | Nazwy pominięte w napisach, mockach, fiksturach i dostępie dynamicznym | Autor (agent), sprawdza recenzent |
Wynik detect_changes zgodny z listą symboli z planu | Rozrost zakresu i pominięte wywołania | Recenzent |
| Pliki z mapą wpływu i planem dołączone do PR | Refaktor, którego nikt nie zaudytuje po fakcie | Tech lead |
Tech lead zatwierdza na podstawie tych dowodów. Strona o pakiecie dowodów ma szablon PR, który czyni te wiersze obowiązkowymi, a przegląd pull requesta od agenta opisuje sam przegląd.
Ile kontekstu kosztują serwery code intelligence
Dział zatytułowany „Ile kontekstu kosztują serwery code intelligence”Każdy serwer dodaje do sesji definicje narzędzi, a niektóre zwracają duże wyniki. Claude Code 2.1.283 i codex-cli 0.157.1 domyślnie ładują schematy narzędzi MCP przez tool search, więc bezczynne serwery kosztują mało; okno zapełniają wyniki.
- Serena: użyj kontekstu pasującego do agenta (
claude-code,codex,ide), żeby nie płacić za zdublowane narzędzia do plików i powłoki. - codebase-memory-mcp: domyślnie stronicuje odpowiedzi i przyjmuje
max_output_tokens. Proś o jeden poziom głębokości naraz zamiast całego drzewa wywołań. - Repomix: spakowane repozytorium to największy pojedynczy wynik, jaki możesz dodać. Pakuj wycinek globem z
--compressi przeszukuj wynik grepem zamiast czytać go w całości. - Claude Context:
search_codezwraca fragmenty, więc węższe zapytania zwracają mniej.
Mierz zamiast zgadywać: uruchom /context w Claude Code przed jednym zapytaniem i po nim. Ogólny wzorzec opisuje strona o obniżaniu kosztu tokenów MCP.
Jak popularne są te serwery?
Dział zatytułowany „Jak popularne są te serwery?”Na 2026-09-26 (gwiazdki GitHub odczytane ze stron repozytoriów; instalacje wtyczek z claude.com/plugins): codebase-memory-mcp ★44,9 tys., Serena ★29,8 tys. i 89 147 instalacji wtyczki z marketplace, Repomix ★28 494, Claude Context ★12 572. Serena, codebase-memory-mcp i Repomix są w oficjalnym rejestrze MCP; Claude Context nie.
Kiedy serwery code intelligence zawodzą
Dział zatytułowany „Kiedy serwery code intelligence zawodzą”Agent ignoruje Serenę i i tak greppuje. W długich sesjach wygrywają wbudowane narzędzia. Naprawa: dodaj hooki remind i activate opisane wyżej i nazwij narzędzie Sereny w prompcie („use find_referencing_symbols”).
Serena nie widzi symboli albo trafia w zły projekt. Globalna konfiguracja uruchomiła Serenę poza repozytorium albo brakuje serwera językowego dla danego języka. Naprawa: aktywuj projekt tak, jak pokazują wyżej zakładki Codex i Cursor, w Claude Code i Codeksie używaj --project-from-cwd i zainstaluj zależność ze strony o obsłudze języków w dokumentacji Sereny.
/mcp pokazuje Serenę jako niedziałającą po starcie. Serwer językowy startuje dłużej, niż klient czeka. Naprawa: ustaw MCP_TIMEOUT=60000 dla Claude Code albo zwiększ startup_timeout_sec w Codeksie.
Zmiana nazwy przeszła sprawdzenie typów, ale wysypała się w czasie działania. Napis, mock, fikstura albo wywołanie obj[name]() nadal używa starej nazwy. Naprawa: po każdej zmianie nazwy szukaj starej nazwy w tekście, jak wymaga prompt powyżej, i popraw te miejsca ręcznie albo przejrzaną zamianą tekstu.
trace_path pomija wywołanie. Dynamiczne wywołanie, wstrzykiwanie zależności po tokenie tekstowym albo refleksja nie zostawiają krawędzi statycznej. Naprawa: uruchom check_index_coverage dla tych ścieżek, porównaj z find_referencing_symbols z Sereny, a to, czego nie widzi żadne z nich, zostaw testom.
codebase-memory-mcp zmienił konfigurację twojego agenta. Nowe hooki odpalają się przy każdym wywołaniu Grep i Bash, a pojawił się skill, którego nie instalowałeś. Naprawa: codebase-memory-mcp uninstall, potem ponowna instalacja z --skip-config i ręczne dodanie serwera.
Claude Context zwraca nieaktualne wyniki. Indeks powstał przed dużym merge’em albo przepisaniem historii. Naprawa: clear_index, potem ponownie index_codebase, i sprawdź get_indexing_status, zanim zaczniesz pytać.
Spakowane repozytorium zalało kontekst. Naprawa: pakuj wycinek przez --include, używaj --compress i pozwól agentowi wywoływać grep_repomix_output zamiast read_repomix_output na całym pliku.