Optymalizacja i rozwiązywanie problemów z MCP
Masz podłączonych siedem serwerów MCP. AI potrzebuje 15 sekund na odpowiedź na proste pytania, bo przetwarza opisy narzędzi z serwerów, których nawet nie używasz. Gdy już wywoła narzędzie, odpowiedź zalewna okno kontekstu 50 000 znaków surowego JSON, wypychając Twoją wcześniejszą rozmowę z pamięci. Bazodanowy MCP zwraca nieaktualne informacje o schemacie, bo zcache’ował metadane godzinę temu. A gdy coś się psuje, nie masz pojęcia, który serwer zawiódł ani dlaczego.
MCP jest potężny, ale wymaga dostrojenia. Ten przewodnik obejmuje wzorce, które odróżniają frustrującą konfigurację MCP od produktywnej.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Strategie zarządzania użyciem okna kontekstu w wielu serwerach MCP
- Wytyczne dotyczące tego, które serwery podłączać i kiedy, oraz ile to za dużo
- Wzorce cache’owania i wydajności dla odpowiedzi serwerów MCP
- Systematyczne podejście do debugowania awarii MCP
- Wzorce konfiguracji zespołowej dla współdzielonych środowisk deweloperskich
Ile serwerów to za dużo?
Dział zatytułowany „Ile serwerów to za dużo?”Każdy podłączony serwer MCP dodaje opisy swoich narzędzi do system promptu AI. Typowy serwer dodaje 500-2000 tokenów opisów narzędzi. Przy siedmiu serwerach możesz spalić 10 000 tokenów na opisy narzędzi, zanim rozmowa się w ogóle zacznie.
Praktyczny limit to 3-5 aktywnych serwerów na sesję. Powyżej tego napotykasz dwa problemy:
- Presja na okno kontekstu. Opisy narzędzi rywalizują z historią Twojej rozmowy i zawartością plików o miejsce w oknie kontekstu.
- Zamieszanie w wyborze narzędzi. Przy 40+ dostępnych narzędziach AI może wywołać niewłaściwe narzędzie lub wahać się, którego użyć.
Wybór serwerów według zadania
Dział zatytułowany „Wybór serwerów według zadania”Zamiast podłączać każdy serwer przy starcie, podłączaj to, czego potrzebujesz do bieżącego zadania:
| Zadanie | Rekomendowane serwery |
|---|---|
| Implementacja funkcji | GitHub MCP + Context7 + Database MCP |
| Badanie buga | GitHub MCP + Playwright MCP + Database MCP |
| Design-to-code | Figma MCP + shadcn/ui MCP |
| Development oparty na ticketach | Atlassian MCP + GitHub MCP |
| Praca z infrastrukturą | Cloudflare MCP (Workers + KV + D1) |
| Pisanie dokumentacji | Context7 + Filesystem MCP |
Zarządzanie oknem kontekstu
Dział zatytułowany „Zarządzanie oknem kontekstu”Problem: przepełnienie odpowiedzi MCP
Dział zatytułowany „Problem: przepełnienie odpowiedzi MCP”Inspekcja schematu bazy danych może zwrócić ponad 20 000 znaków. Wyszukiwanie kodu na GitHubie może zwrócić dziesiątki fragmentów plików. Strona Confluence może mieć 10 000 słów. Każda odpowiedź narzędzia MCP zabiera miejsce w oknie kontekstu, a to miejsce nie wraca, dopóki rozmowa się nie zresetuje.
Rozwiązanie: precyzyjne prompty
Dział zatytułowany „Rozwiązanie: precyzyjne prompty”Zamiast szerokich promptów, bądź konkretny co do tego, czego potrzebujesz:
Za szeroko: “Show me the database schema.” (Zwraca cały schemat, może 30+ tabel)
Lepiej: “Show me the schema for the users and orders tables only, including their foreign key relationships.”
Za szeroko: “Search GitHub for authentication code.” (Zwraca dziesiątki plików)
Lepiej: “Search GitHub for files in the src/auth/ directory that handle JWT token validation.”
Cache’owanie i wydajność
Dział zatytułowany „Cache’owanie i wydajność”Czas startu serwera MCP
Dział zatytułowany „Czas startu serwera MCP”Serwery oparte na STDIO uruchamiają nowy proces dla każdego połączenia. Jeśli serwer ma ciężkie zależności (serwer Python importujący biblioteki ML, serwer Node bundlujący duży SDK), start może trwać 5-10 sekund.
Strategie łagodzenia:
- Utrzymuj minimalne zależności. Twój serwer MCP powinien być cienkim wrapperem, nie monolitem.
- Pre-builduj serwer. Dostarczaj skompilowany JavaScript zamiast transpilować TypeScript przy starcie.
- Używaj
npxz--yesi upewnij się, że pakiet jest zcache’owany lokalnie, uruchamiając go raz przed sesją pracy.
Cache’owanie schematu i metadanych
Dział zatytułowany „Cache’owanie schematu i metadanych”Bazodanowe serwery MCP często cache’ują metadane schematu przy starcie. Jeśli uruchomisz migrację, serwer MCP nadal będzie raportować stary schemat, dopóki nie zostanie zrestartowany.
Aby zrestartować serwer MCP w Cursor:
- Otwórz Settings > Tools & Integrations > MCP
- Znajdź serwer z nieaktualnymi danymi
- Kliknij ikonę odświeżania, aby go zrestartować
# Usuń i ponownie dodaj serwerclaude mcp remove database-serverclaude mcp add database-server -- npx -y @modelcontextprotocol/server-postgresLub zrestartuj wszystkie serwery MCP wychodząc i restartując Claude Code.
Zrestartuj Codex, aby ponownie zainicjalizować wszystkie połączenia z serwerami MCP. Nie ma mechanizmu restartu poszczególnych serwerów.
Rate limiting
Dział zatytułowany „Rate limiting”Serwery oparte na zewnętrznych API (GitHub, Atlassian, Cloudflare) mają limity zapytań. GitHub pozwala na 5000 zapytań API na godzinę dla uwierzytelnionych użytkowników. Jeden prompt jak “analyze all open PRs” może spalić setki zapytań.
Chroń się:
- Ogranicz zakres promptów. “Analyze the last 5 PRs” zamiast “analyze all open PRs.”
- Używaj lokalnych alternatyw gdy to możliwe. Serwer Git MCP działa na Twoim lokalnym repo bez wywołań API.
- Monitoruj status rate limit. “Check the GitHub API rate limit status” to prawidłowy prompt z serwerem GitHub MCP.
Debugowanie awarii MCP
Dział zatytułowany „Debugowanie awarii MCP”Systematyczna diagnoza
Dział zatytułowany „Systematyczna diagnoza”Gdy serwer MCP nie działa, postępuj według tej sekwencji:
- Sprawdź status serwera. Czy serwer działa? Czy w ogóle może się uruchomić?
- Sprawdź uwierzytelnianie. Czy dane uwierzytelniające są prawidłowe? Czy token OAuth wygasł?
- Sprawdź wywołanie narzędzia. Czy AI wywołuje właściwe narzędzie z prawidłowymi parametrami?
- Sprawdź odpowiedź. Czy serwer zwraca dane, błąd, czy nic?
- Sprawdź transport. Czy połączenie między klientem a serwerem jest zdrowe?
Częste awarie i poprawki
Dział zatytułowany „Częste awarie i poprawki”“Server disconnected” lub “Connection reset.”
Proces serwera MCP upadł. Sprawdź wyjście stderr serwera pod kątem komunikatów o błędach. Częste przyczyny: nieobsłużone promise rejections, brakujące zmienne środowiskowe lub błędy instalacji zależności.
# Przetestuj serwer bezpośrednio, żeby zobaczyć błędynode /path/to/mcp-server/index.mjs 2>&1“Tool not found” po połączeniu serwera.
Serwer się połączył, ale narzędzie, którego próbujesz użyć, nie jest zarejestrowane. Dzieje się tak, gdy wersja serwera nie pasuje do dokumentacji. Zaktualizuj serwer:
npm update @modelcontextprotocol/server-github“Timeout” przy wywołaniach narzędzi.
Narzędzie trwa dłużej niż timeout klienta. Zwykle oznacza to, że API jest wolne lub zapytanie jest zbyt szerokie. Zawęź zadanie lub zwiększ timeout w prompcie: “Query the database, allowing up to 60 seconds for the response.”
AI wywołuje narzędzie z niewłaściwego serwera.
Przy wielu serwerach dostarczających podobne narzędzia, AI może wybrać niewłaściwe. Bądź konkretny: “Using the GitHub MCP server (not the Git MCP server), search for files containing ‘validateToken’.”
“Permission denied” z serwera.
Dane uwierzytelniające mają niewystarczający zakres. Zobacz przewodnik MCP Security po rekomendacje dotyczące scopingu tokenów.
Wzorce konfiguracji zespołowej
Dział zatytułowany „Wzorce konfiguracji zespołowej”Współdzielona konfiguracja bazowa
Dział zatytułowany „Współdzielona konfiguracja bazowa”Utwórz bazową konfigurację MCP, którą używa każdy deweloper w zespole:
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" } }, "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp@latest"] } }}Commituj to do repozytorium. Każdy deweloper ustawia GITHUB_TOKEN w swoim lokalnym środowisku.
Nadpisywania specyficzne dla projektu
Dział zatytułowany „Nadpisywania specyficzne dla projektu”Dodaj serwery specyficzne dla projektu w pliku .mcp.json lub ustawieniach na poziomie projektu:
{ "mcpServers": { "project-db": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"], "env": { "DATABASE_URL": "${DATABASE_URL}" } } }}Lista kontrolna onboardingu
Dział zatytułowany „Lista kontrolna onboardingu”Udokumentuj konfigurację MCP w przewodniku kontrybuowania projektu:
- Zainstaluj wymagane serwery MCP (wymień je)
- Utwórz tokeny z udokumentowanymi zakresami (podlinkuj przewodnik)
- Ustaw zmienne środowiskowe (wymień je)
- Przetestuj każde połączenie z serwerem (podaj prompty testowe)
Gdy coś się zepsuje
Dział zatytułowany „Gdy coś się zepsuje”Wszystko zwalnia po dodaniu nowego serwera. Opisy narzędzi nowego serwera są duże lub serwer długo się uruchamia. Odłącz serwery, których aktywnie nie używasz.
AI przestaje używać narzędzi MCP i zaczyna zgadywać. Okno kontekstu jest pełne. Rozpocznij nową rozmowę lub odłącz nieużywane serwery, aby zwolnić miejsce.
Serwery MCP działają lokalnie, ale nie działają w CI. Środowiska CI zwykle nie mają tych samych zmiennych środowiskowych, tokenów ani dostępu do sieci. Użyj mockowych serwerów MCP w CI lub pomiń testy zależne od MCP.
Różni członkowie zespołu uzyskują różne wyniki. Wersje serwerów MCP mogą się różnić. Przypnij wersje we współdzielonej konfiguracji i udokumentuj oczekiwaną wersję.