30 najważniejszych serwerów MCP dla zespołów programistycznych — ranking (wrzesień 2026)
Listę 30 najbardziej przydatnych serwerów MCP dla zespołów programistycznych we wrześniu 2026 roku otwierają GitHub, Context7, Playwright, Chrome DevTools i Figma. Dwadzieścia trzy z tych 30 to oficjalne serwery dostawców, 16 ma hostowany endpoint zdalny, a przełącznik trybu tylko do odczytu każdy zapisuje inaczej. Większości zespołów wystarcza pięć serwerów, dobranych do systemów, których już używają.
Programista kopiuje konfigurację GitHub MCP z wpisu na blogu z 2025 roku. Podany tam pakiet, @modelcontextprotocol/server-github, jest wycofany, więc podpina zdalny serwer z osobistym tokenem o pełnym zakresie repo. Tydzień później agent, który „porządkował backlog”, zamyka 14 zgłoszeń uznanych za duplikaty. Nikt się nie włamał: serwer zrobił to, na co pozwalał token, a nikt nie włączył trybu tylko do odczytu GitHuba.
Ta strona jest dla programisty, który dobiera serwery dla własnego agenta, i dla tech leada, który odpowiada za wspólny plik .mcp.json zespołu. Nie znasz MCP? Zacznij od wprowadzenia do Model Context Protocol.
Co daje ci ten ranking serwerów MCP
Dział zatytułowany „Co daje ci ten ranking serwerów MCP”- Jedną tabelę 30 zweryfikowanych serwerów: kto utrzymuje, gdzie działa, przełącznik tylko do odczytu i datowany wskaźnik popularności, z poleceniem instalacji dla każdego.
- Konfigurację GitHub, Supabase i Grafany w trybie tylko do odczytu w Claude Code, Codex i Cursor oraz test w CI, który pilnuje, by tak zostało.
- Zestaw startowy dla każdego typu zespołu i tabelę nazw pakietów, które wyglądają poprawnie, a są błędne.
Jak powstał ranking 30 serwerów?
Dział zatytułowany „Jak powstał ranking 30 serwerów?”Przy ustalaniu kolejności liczy się najpierw codzienna przydatność dla zespołu programistycznego, a dopiero potem popularność. Sama obecność w rejestrze niczego nie przesądza: oficjalny rejestr MCP (Official MCP Registry) jest w wersji preview, zawiera 36 176 serwerów i weryfikuje przestrzenie nazw, a nie jakość (API rejestru, odczyt 2026-09-26). Każdy serwer sprawdzono 2026-09-26 w jego repozytorium, rejestrze pakietów lub manifeście wtyczki.
Popularność na dzień 2026-09-26 opiera się na trzech wskaźnikach odczytanych bezpośrednio od dostawców i z GitHuba; liczb pobrań nie uwzględniono:
| Oznaczenie | Znaczenie |
|---|---|
★33.2k | Gwiazdki repozytorium serwera na GitHubie (GitHub API). Mierzą uwagę, a nie użycie. |
Reg | Wpis w oficjalnym rejestrze MCP w przestrzeni nazw samego dostawcy. |
319k inst. | Instalacje wtyczki dostawcy w katalogu Claude Marketplace (claude.com/plugins). |
30 najważniejszych serwerów MCP w jednej tabeli
Dział zatytułowany „30 najważniejszych serwerów MCP w jednej tabeli”„Przełącznik tylko do odczytu” to ustawienie po stronie serwera, które usuwa narzędzia zapisujące. Zakres tokena oznacza, że 2026-09-26 nie znaleziono takiego przełącznika, więc jedynym ograniczeniem są uprawnienia samego poświadczenia.
| # | Serwer | Co dostaje agent | Utrzymuje | Działa | Przełącznik tylko do odczytu | Popularność (2026-09-26) |
|---|---|---|---|---|---|---|
| 1 | GitHub MCP Server | PR-y, zgłoszenia, logi Actions, bezpieczeństwo kodu | Oficjalny (GitHub) | Zdalnie + lokalnie | Sufiks URL /readonly, nagłówek X-MCP-Readonly, lokalnie --read-only | ★33.2k · Reg · 319k inst. |
| 2 | Context7 | Dokumentacja bibliotek dla konkretnej wersji | Oficjalny (Upstash) | Zdalnie + lokalnie | Niepotrzebny: tylko odczyt dokumentacji | ★62.4k · Reg · 418k inst. |
| 3 | Playwright MCP | Automatyzacja przeglądarki przez drzewo dostępności | Oficjalny (Microsoft) | Lokalnie | Brak; kieruj go na adresy lokalne lub stagingowe | ★37.6k · Reg · 320k inst. |
| 4 | Chrome DevTools MCP | Ślady wydajności, Lighthouse, sieć, konsola | Oficjalny (zespół Chrome DevTools) | Lokalnie | Brak; --slim zostawia tylko podstawowe narzędzia | ★52.6k · Reg · 103k inst. |
| 5 | Figma MCP | Kontekst projektu, generowanie kodu, Code Connect | Oficjalny (Figma) | Zdalnie | Zakres tokena; zapis na canvasie to zdalna beta | Reg · 168k inst. |
| 6 | Sentry MCP | Zgłoszenia, zdarzenia, ślady (traces), Seer | Oficjalny (Sentry) | Zdalnie + lokalnie | Zakres tokena | ★862 · Reg |
| 7 | Linear MCP | Praca z ticketu i raport z powrotem do niego | Oficjalny (Linear) | Zdalnie | Zakres tokena | Reg · 48k inst. |
| 8 | Atlassian Rovo MCP | Jira, Confluence, JSM, Bitbucket, Compass | Oficjalny (Atlassian) | Zdalnie | Zakres tokena | ★1.1k · Reg · 92k inst. |
| 9 | Supabase MCP | Tabele, konfiguracja, SQL dla jednego projektu | Oficjalny (Supabase) | Zdalnie + lokalnie | Parametr URL read_only=true | ★2.9k · Reg · 119k inst. |
| 10 | Serena | Wyszukiwanie i edycja na poziomie symboli przez serwery językowe | Społecznościowy (Oraios) | Lokalnie | Nie dotyczy: zmiany trafiają do twojego drzewa roboczego | ★29.8k · Reg · 89k inst. |
| 11 | Notion MCP | Specyfikacje, runbooki, rejestry decyzji | Oficjalny (Notion) | Zdalnie | Zakres tokena (zgoda OAuth) | Reg |
| 12 | Cloudflare MCP | Całe API Cloudflare przez 3 narzędzia (Code Mode) | Oficjalny (Cloudflare) | Zdalnie | Zakres tokena (uprawnienia tokena API) | ★883 + ★4.3k · Reg |
| 13 | Vercel MCP | Dokumentacja, projekty, wdrożenia, logi | Oficjalny (Vercel) | Zdalnie | Tylko do odczytu według manifestu wtyczki Vercel (2026-09-26) | Reg · 228k inst. |
| 14 | Stripe MCP | Operacje API Stripe: może przesuwać pieniądze | Oficjalny (Stripe) | Zdalnie + lokalnie | Tryb testowy plus ograniczony klucz API | ★1.8k · Reg · 61k inst. |
| 15 | Browser Use | Daje istniejącemu agentowi kontrolę nad Chrome | Oficjalny (Browser Use) | Lokalnie | Brak; browser_exec uruchamia Pythona, więc traktuj go jak dostęp do powłoki | ★116.3k · Reg |
| 16 | codebase-memory-mcp | Trwały graf wiedzy o kodzie, śledzenie ścieżek wywołań | Społecznościowy (DeusData) | Lokalnie | Nie dotyczy: lokalny indeks | ★44.9k · Reg |
| 17 | context-mode | Uruchamia polecenia poza oknem kontekstu i zwraca podsumowania | Społecznościowy (mksglu) | Lokalnie | Brak; wykonuje polecenia | ★24.1k |
| 18 | Repomix | Pakuje lokalne lub zdalne repozytorium do jednego pliku | Społecznościowy (yamadashy) | Lokalnie | --sandbox ogranicza narzędzia plikowe do jednego katalogu | ★28.5k · Reg |
| 19 | Postgres MCP Pro | Strojenie indeksów, plany zapytań, kontrola kondycji | Społecznościowy (Crystal DBA) | Lokalnie | --access-mode=restricted | ★3.3k; brak wydań od 2025-05-16 |
| 20 | DBHub | Postgres, MySQL, SQL Server, Oracle, MariaDB, SQLite | Społecznościowy (Bytebase) | Lokalnie | Wbudowany tryb tylko do odczytu (zob. README) | ★3.6k · Reg |
| 21 | MCP Toolbox for Databases | Gotowe lub zdefiniowane w tools.yaml narzędzia bazodanowe | Oficjalny (Google) | Lokalnie | Deklaruj w tools.yaml tylko narzędzia odczytu | ★16.5k · Reg |
| 22 | AWS MCP Server + Agent Toolkit for AWS | API i dokumentacja AWS za proxy SigV4 | Oficjalny (AWS) | Zdalnie przez lokalne proxy | Zakres IAM; w serwerze AWS API READ_OPERATIONS_ONLY=true | ★2.7k + ★9.7k |
| 23 | Azure MCP Server | Zasoby Azure przez tożsamość z az login | Oficjalny (Microsoft) | Lokalnie | Zakres tokena (role Azure RBAC tej tożsamości) | ★3.7k · Reg |
| 24 | Microsoft Learn MCP | Wyszukiwanie w dokumentacji Microsoft, próbki kodu | Oficjalny (Microsoft) | Zdalnie, bez uwierzytelniania | Niepotrzebny: tylko dokumentacja | ★1.9k · Reg |
| 25 | Docker MCP Toolkit / Gateway | Uruchamia serwery z katalogu w izolowanych kontenerach | Oficjalny (Docker) | Lokalna bramka | Osobno dla każdego serwera za bramką | ★1.6k |
| 26 | Kubernetes MCP Server | Natywny dostęp (Go) do Kubernetes i OpenShift | Społecznościowy (organizacja containers) | Lokalnie | read_only = true w konfiguracji TOML | ★2.1k · Reg |
| 27 | Terraform MCP Server | Wyszukiwanie w rejestrze, workspace’y HCP Terraform | Oficjalny (HashiCorp) | Lokalnie (Docker) | Operacje są wyłączone, dopóki nie ustawisz ENABLE_TF_OPERATIONS=true | ★1.5k · Reg |
| 28 | Grafana MCP | Dashboardy, Prometheus, Loki, incydenty | Oficjalny (Grafana Labs) | Lokalnie + zdalnie w Grafana Cloud | --disable-write | ★3.5k · Reg |
| 29 | PostHog MCP | Analityka produktowa, flagi, dashboardy | Oficjalny (PostHog) | Zdalnie | Zawężanie przez ?features= lub ?tools= | ★39.9k (monorepo) · Reg |
| 30 | Firecrawl MCP | Scrapowanie, wyszukiwanie, crawling stron | Oficjalny (Firecrawl) | Zdalnie + lokalnie | Nie dotyczy: czyta sieć, zużywa kredyty | ★7.5k · Reg |
Oficjalny czy społecznościowy, zdalny czy lokalny: co to zmienia?
Dział zatytułowany „Oficjalny czy społecznościowy, zdalny czy lokalny: co to zmienia?”Oficjalne serwery zdalne z OAuth to dziś standard dla SaaS: narzędzia utrzymywane przez dostawcę, żadnego lokalnego procesu i logowanie, które odwołasz centralnie. Wersji nie przypniesz, więc lista narzędzi zmienia się, gdy dostawca wypuszcza nową wersję.
Lokalne serwery stdio działają z poświadczeniami programisty. Wybierz je, gdy cel też jest lokalny (przeglądarka, deweloperska baza danych, klaster z kubeconfig) albo dane nie mogą opuścić sieci, i przypinaj wersję: 2026-09-26 @azure/mcp@latest wskazywał 3.0.0-beta.47, a najnowszą stabilną wersją było 2.0.5.
Serwery społecznościowe wypełniają luki w analizie kodu i bazach danych. Sprawdź datę ostatniego wydania (Postgres MCP Pro: 2025-05-16 w PyPI) i to, co zapisuje instalator: codebase-memory-mcp edytuje konfigurację każdego wykrytego agenta, chyba że dodasz --skip-config.
Protokół przeszedł na bezstanową rewizję 2026-07-28. Claude Code negocjuje ją domyślnie z bezpośrednimi serwerami HTTP (wszystkie instalacje od v2.1.274); w Codex 0.157.1 flaga mcp_2026_07_28 jest wciąż wyłączona. Szczegóły: przewodnik migracji do MCP 2026-07-28.
Polecenia instalacji dla wszystkich 30 serwerów
Dział zatytułowany „Polecenia instalacji dla wszystkich 30 serwerów”Te polecenia Claude Code sprawdzono 2026-09-26 z --help Claude Code 2.1.283. Poświadczenia występują wyłącznie jako odwołania ${VAR} w pojedynczych cudzysłowach, które Claude Code rozwija ze środowiska przy odczycie .mcp.json. Dlatego każda linia z takim odwołaniem ma też -s project, które zapisuje ją w .mcp.json. Zmienną wyeksportuj z menedżera sekretów i nigdy nie wklejaj samej wartości. Pozostałe wartości w UPPER_SNAKE_CASE zastąp własnymi.
# 1 GitHub (zdalnie, tylko odczyt)claude mcp add -s project --transport http github https://api.githubcopilot.com/mcp/readonly -H 'Authorization: Bearer ${GITHUB_PAT}'# 2 Context7 (zdalnie, w .mcp.json bez klucza: klucz jest opcjonalny, a członek zespołu bez CONTEXT7_API_KEY# wysłałby dosłowne „Bearer ${CONTEXT7_API_KEY}” i dostał ostrzeżenie w `claude mcp list`.# Programista z kluczem nadpisuje wpis we własnym zakresie lokalnym:# claude mcp add -s local --transport http context7 https://mcp.context7.com/mcp -H 'Authorization: Bearer ${CONTEXT7_API_KEY}'claude mcp add -s project --transport http context7 https://mcp.context7.com/mcp# 3 Playwright (--isolated, żeby równolegli agenci nie dzielili profilu)claude mcp add playwright -- npx @playwright/mcp@latest --isolated# 4 Chrome DevTools (statystyki użycia trafiają do Google, chyba że je wyłączysz)claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest --no-usage-statistics# 5 Figma (wtyczka = serwer MCP + skille), potem zaloguj się przez /mcpclaude plugin install figma@claude-plugins-official# 6 Sentry (OAuth przez /mcp; nagłówek z tokenem używa "Sentry-Bearer", nie "Bearer")claude mcp add --transport http sentry https://mcp.sentry.dev/mcp# 7 Linear (wtyczka opakowuje zdalny serwer https://mcp.linear.app/mcp), potem zaloguj się przez /mcpclaude plugin install linear@claude-plugins-official# 8 Atlassian (endpoint v2; /v1/sse przestał działać po 2026-06-30)claude mcp add --transport http atlassian https://mcp.atlassian.com/v2/mcp# 9 Supabase (jeden projekt, tylko odczyt)claude mcp add --transport http supabase "https://mcp.supabase.com/mcp?project_ref=YOUR_PROJECT_REF&read_only=true"# 10 Serena (najpierw zainstaluj narzędzie i utwórz jego konfigurację; autorzy odradzają instalację z marketplace)uv tool install -p 3.13 serena-agentserena initclaude mcp add --scope user serena -- serena start-mcp-server --context claude-code --project-from-cwd# 11 Notion (wtyczka opakowuje zdalny serwer https://mcp.notion.com/mcp; lokalny serwer z npm nie jest utrzymywany)claude plugin install notion@claude-plugins-official# 12 Cloudflare (Code Mode)claude mcp add --transport http cloudflare https://mcp.cloudflare.com/mcp# 13 Vercel (wtyczka instaluje zdalny serwer i jego skille)claude plugin install vercel@claude-plugins-official# 14 Stripe (używaj trybu testowego)claude plugin install stripe@claude-plugins-official# 15 Browser Useclaude mcp add browser-use -- uvx --python 3.12 browser-use@latest --cli-mcp# 16 codebase-memory-mcp (plik binarny w PATH po `npm install -g codebase-memory-mcp`)claude mcp add codebase-memory -- CODEBASE_MEMORY_BINARY_PATH# 17 context-mode (tylko MCP; wtyczka dodaje też hooki)claude mcp add context-mode -- npx -y context-mode# 18 Repomix (ograniczony do bieżącego katalogu)claude mcp add repomix -- npx -y repomix --mcp --sandbox# 19 Postgres MCP Pro (PyPI, więc uvx; pakiet npm o tej samej nazwie jest niepowiązany)claude mcp add -s project postgres -e 'DATABASE_URI=${DATABASE_URI}' -- uvx postgres-mcp --access-mode=restricted# 20 DBHubclaude mcp add -s project dbhub -- npx @bytebase/dbhub@latest --transport stdio --dsn '${DBHUB_DSN}'# 21 MCP Toolbox for Databasesclaude mcp add toolbox-postgres -- npx -y @toolbox-sdk/server --prebuilt=postgres --stdio# 22 AWS (wtyczka) albo serwer dokumentacji bez uwierzytelnianiaclaude plugin install aws-core@claude-plugins-officialclaude mcp add --transport http aws-knowledge https://knowledge-mcp.global.api.aws# 23 Azure (przypnij wydanie stabilne)claude mcp add azure -- npx -y @azure/mcp@2.0.5 server start# 24 Microsoft Learnclaude mcp add --transport http microsoft-learn https://learn.microsoft.com/api/mcp# 25 Docker MCP Gateway (najpierw utwórz profil dev-tools przez `docker mcp profile create ...`)claude mcp add docker-gateway -- docker mcp gateway run --profile dev-tools# 26 Kubernetes (wpisz read_only = true w pliku TOML)claude mcp add kubernetes -- npx -y kubernetes-mcp-server@latest --config ~/.config/k8s-mcp.toml# 27 Terraformclaude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-server# 28 Grafana (tylko odczyt)claude mcp add -s project grafana -e 'GRAFANA_URL=${GRAFANA_URL}' -e 'GRAFANA_SERVICE_ACCOUNT_TOKEN=${GRAFANA_SERVICE_ACCOUNT_TOKEN}' -- uvx mcp-grafana --disable-write# 29 PostHogclaude mcp add --transport http posthog https://mcp.posthog.com/mcp# 30 Firecrawl (klucz w zmiennej środowiskowej, nigdy w URL)claude mcp add -s project firecrawl -e 'FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY}' -- npx -y firecrawl-mcpCODEBASE_MEMORY_BINARY_PATH to ścieżka do pliku binarnego codebase-memory-mcp, a YOUR_PROJECT_REF to identyfikator projektu Supabase. Każde ${VAR} to nazwa zmiennej środowiskowej z poświadczeniem albo connection stringiem z konsoli dostawcy.
Ten sam serwer działa w Codex i Cursor; zmienia się tylko opakowanie:
| Claude Code | Codex 0.157.1 | Cursor (.cursor/mcp.json) |
|---|---|---|
claude mcp add --transport http NAME URL | codex mcp add NAME --url URL | { "url": "URL" } |
-H "Authorization: Bearer ..." | --bearer-token-env-var ENV_NAME albo http_headers w config.toml | "headers": { "Authorization": "Bearer ..." } |
claude mcp add NAME -e 'K=${K}' -- CMD ARGS | codex mcp add NAME -- CMD ARGS, potem env_vars = ["K"] w config.toml (--env K=V zapisuje wartość otwartym tekstem) | { "command": "CMD", "args": [...], "env": {...} } |
OAuth: /mcp w sesji albo claude mcp login NAME | codex mcp login NAME | Zaloguj się, gdy Cursor poprosi o to przy pierwszym połączeniu |
Plik projektu: .mcp.json w katalogu głównym repozytorium | codex mcp add zapisuje ~/.codex/config.toml | .cursor/mcp.json (projekt) albo ~/.cursor/mcp.json (globalnie) |
Kolumna Cursor odpowiada temu, co README każdego dostawcy podaje dla Cursora.
Skonfiguruj GitHub, Supabase i Grafanę w trybie tylko do odczytu
Dział zatytułowany „Skonfiguruj GitHub, Supabase i Grafanę w trybie tylko do odczytu”Ta konfiguracja daje agentowi historię kodu i CI, bazę danych oraz metryki i logi do zbadania problemu na produkcji, bez możliwości zmiany czegokolwiek. Traktuj ją jako domyślny kształt: najpierw tylko odczyt, zapis później i świadomie.
Uruchom w katalogu głównym repozytorium. Zakres projektu zapisuje .mcp.json, który commitujesz; Claude Code rozwija ${VAR} ze środowiska każdego programisty, więc żaden sekret nie trafia do gita.
claude mcp add -s project --transport http github \ https://api.githubcopilot.com/mcp/readonly \ -H 'Authorization: Bearer ${GITHUB_PAT}'
claude mcp add -s project --transport http supabase \ "https://mcp.supabase.com/mcp?project_ref=YOUR_PROJECT_REF&read_only=true"
claude mcp add -s project grafana \ -e 'GRAFANA_URL=${GRAFANA_URL}' \ -e 'GRAFANA_SERVICE_ACCOUNT_TOKEN=${GRAFANA_SERVICE_ACCOUNT_TOKEN}' \ -- uvx mcp-grafana --disable-writePojedyncze cudzysłowy powstrzymują powłokę przed rozwinięciem ${...}, zanim Claude Code zapisze plik. Uruchom sesję i wpisz /mcp, aby zalogować się do Supabase przez OAuth.
Codex zapisuje do ~/.codex/config.toml. Przetestowane na codex-cli 0.157.1:
codex mcp add github --url https://api.githubcopilot.com/mcp/readonly \ --bearer-token-env-var GITHUB_PAT
codex mcp add supabase \ --url "https://mcp.supabase.com/mcp?project_ref=YOUR_PROJECT_REF&read_only=true"codex mcp login supabase
codex mcp add grafana -- uvx mcp-grafana --disable-writeNie przekazuj tokena Grafany przez --env: jego wartość trafiłaby otwartym tekstem do config.toml. Zamiast tego przekaż zmienne z powłoki, dodając env_vars pod nowym wpisem w ~/.codex/config.toml:
[mcp_servers.grafana]command = "uvx"args = ["mcp-grafana", "--disable-write"]env_vars = ["GRAFANA_URL", "GRAFANA_SERVICE_ACCOUNT_TOKEN"]codex mcp get grafana --json w wersji 0.157.1 pokazuje obie nazwy w env_vars, a config.toml nie zawiera żadnego sekretu.
Dodaj do ~/.cursor/mcp.json. Ten plik przechowuje token GitHub i token konta serwisowego Grafany otwartym tekstem, więc trzymaj go globalnie dla użytkownika (nigdy jako .cursor/mcp.json w repozytorium), ogranicz uprawnienia poleceniem chmod 600 ~/.cursor/mcp.json i nie dodawaj go do repozytorium dotfiles:
{ "mcpServers": { "github": { "url": "https://api.githubcopilot.com/mcp/readonly", "headers": { "Authorization": "Bearer YOUR_GITHUB_PAT" } }, "supabase": { "url": "https://mcp.supabase.com/mcp?project_ref=YOUR_PROJECT_REF&read_only=true" }, "grafana": { "command": "uvx", "args": ["mcp-grafana", "--disable-write"], "env": { "GRAFANA_URL": "https://YOUR_STACK.grafana.net", "GRAFANA_SERVICE_ACCOUNT_TOKEN": "YOUR_TOKEN" } } }}Według README Supabase klient przy pierwszym połączeniu prosi o zalogowanie i wybór organizacji.
YOUR_PROJECT_REF to identyfikator projektu Supabase z adresu panelu, a YOUR_STACK to nazwa twojego stacka Grafana Cloud. Token GitHub i konto serwisowe Grafany też ogranicz do odczytu, jako drugą linię obrony, gdyby przełącznik kiedyś zniknął z konfiguracji.
Dobierz zestaw serwerów MCP do typu zespołu
Dział zatytułowany „Dobierz zestaw serwerów MCP do typu zespołu”Serwer zasługuje na miejsce, jeśli bez niego agent co tydzień prosiłby cię o wklejenie czegoś z danego systemu.
| Zespół | Zestaw podstawowy (najpierw tylko odczyt) | Dodaj, gdy będzie potrzebny | Pomiń |
|---|---|---|---|
| Zespół produktu webowego | GitHub (/readonly), Context7, Playwright (--isolated), Sentry, Linear albo Atlassian | Figma; Chrome DevTools do wydajności; Vercel, Supabase albo Stripe (tryb testowy), jeśli tam wdrażasz | Drugi serwer przeglądarki obok Playwright |
| Zespół platformowy / infrastruktury | GitHub (/readonly), Terraform, Kubernetes (read_only = true), Grafana (--disable-write), twoja chmura: AWS, Azure albo Cloudflare | Docker MCP Gateway dla jednego wspólnego profilu; Sentry | Każdy serwer bazodanowy z prawem zapisu na produkcji |
| Zespół danych | GitHub (/readonly), jeden serwer bazodanowy (Postgres MCP Pro z --access-mode=restricted, DBHub albo MCP Toolbox), Context7 | Supabase (read_only=true); PostHog; Grafana do metryk potoków | Firecrawl i serwery przeglądarek, chyba że pobierasz dane z sieci |
-
Spisz systemy, których zespół dotykał w ostatnim tygodniu. Każdy, którego agent nie widział, to kandydat.
-
Ogranicz zestaw podstawowy do pięciu serwerów. Wyszukiwanie narzędzi (tool search) w Claude Code i Codex odracza ładowanie większości schematów, ale wyniki nadal kosztują tokeny, a każdy serwer poszerza to, do czego może sięgnąć prompt injection.
-
Skonfiguruj każdy serwer w wersji tylko do odczytu według kolumny z przełącznikami. Tam, gdzie odpowiedzią jest „zakres tokena”, utwórz poświadczenie wyłącznie z uprawnieniami odczytu.
-
Commituj wspólne serwery w zakresie projektu. Claude Code czyta
.mcp.json, a Cursor.cursor/mcp.json. Codex zapisuje~/.codex/config.tomlkażdego programisty, więc opublikuj poleceniacodex mcp addwAGENTS.md. -
Zmierz koszt kontekstu. Uruchom
/contextw świeżej sesji Claude Code przed i po;claude plugin details PLUGIN_NAMEwypisuje składniki wtyczki i prognozowany koszt w tokenach. -
Przyznawaj zapis na zadanie, nie na zespół. Dodaj serwer z prawem zapisu w zakresie lokalnym na czas zadania, a potem usuń go poleceniem
claude mcp remove NAME(albocodex mcp remove NAME).
Jak udowodnić, że serwery naprawdę są tylko do odczytu?
Dział zatytułowany „Jak udowodnić, że serwery naprawdę są tylko do odczytu?”Konfiguracja, która deklaruje tryb tylko do odczytu, to wciąż tylko deklaracja. Trzy kontrole zamieniają ją w dowód bez czytania kodu serwera.
Sprawdź listę narzędzi. Zapytaj agenta, jakie narzędzia wystawia każdy serwer, i szukaj czasowników zapisu. Endpoint GitHub /readonly nie powinien pokazywać niczego, co tworzy, aktualizuje, scala lub zamyka; Grafana z --disable-write nie powinna mieć update_dashboard ani create_incident.
Sprawdź zapisaną konfigurację. claude mcp get NAME i codex mcp get NAME --json pokazują, co agent załaduje, co wyłapuje URL zapisany jako polecenie stdio i zgubiony nagłówek w Codex (zob. niżej).
Pilnuj wspólnego pliku w CI. Ten skrypt przerywa build, gdy .mcp.json zawiera serwer spoza listy dozwolonych albo traci przełącznik tylko do odczytu. Na .mcp.json z zakładki Claude Code przechodzi; po usunięciu /readonly kończy się błędem.
#!/usr/bin/env bash# scripts/check-mcp-policy.sh: uruchamiaj w CI przy każdej zmianie .mcp.jsonset -euo pipefailjq -e ' .mcpServers as $s | ($s | keys - ["github", "supabase", "grafana"] | length == 0) and (($s.github.url // "") | test("/readonly$")) and (($s.supabase.url // "") | test("read_only=true")) and ((($s.grafana.args // []) | index("--disable-write")) != null)' .mcp.json > /dev/null || { echo "MCP policy check failed: see .mcp.json"; exit 1; }echo "MCP policy check passed"Kto zatwierdza. Tech lead jest właścicielem .mcp.json przez CODEOWNERS; dodanie serwera z prawem zapisu albo usunięcie przełącznika wymaga drugiej osoby zatwierdzającej. Listy dozwolonych serwerów dla całej organizacji opisuje strona o rejestrach i bramkach MCP.
Które nazwy pakietów MCP są fałszywe lub błędne?
Dział zatytułowany „Które nazwy pakietów MCP są fałszywe lub błędne?”Wiarygodnie brzmiące nazwy produkują zarówno agenci, jak i stare wpisy na blogach. Każdy wiersz sprawdzono w npm lub PyPI 2026-09-26.
| Wygląda poprawnie | Jak jest naprawdę | Użyj zamiast tego |
|---|---|---|
@modelcontextprotocol/server-github | Wycofany; GitHub pisze, że już nie działa | https://api.githubcopilot.com/mcp/ albo ghcr.io/github/github-mcp-server |
@modelcontextprotocol/server-postgres, -puppeteer, -slack, -gitlab, -brave-search | Wycofane i zarchiwizowane | Postgres MCP Pro albo DBHub; Playwright MCP; serwery dostawców |
@modelcontextprotocol/server-git, -fetch, -time | Nie ma ich w npm (404); to pakiety Pythona | uvx mcp-server-git, uvx mcp-server-fetch |
@anthropic-ai/mcp, @anthropic/mcp-server-github | 404 w npm (sprawdzono 2026-09-26) | Serwer samego dostawcy |
@context7/mcp, @upstash/context7, context7-mcp | 404 | @upstash/context7-mcp |
@figma/mcp, @linear/mcp, @vercel/mcp, @supabase/mcp | 404 | Adresy zdalne; lokalnie dla Supabase @supabase/mcp-server-supabase |
@microsoft/playwright-mcp, playwright-mcp bez zakresu | 404 oraz niepowiązany pakiet społecznościowy | @playwright/mcp |
@chrome-devtools/mcp, @google/chrome-devtools-mcp | 404 | chrome-devtools-mcp (bez zakresu) |
npx postgres-mcp | Pakiet npm jest niepowiązany | uvx postgres-mcp (PyPI) |
@leval/mcp-grafana | Port społecznościowy, nie Grafany | uvx mcp-grafana albo obraz Docker grafana/mcp-grafana |
serena w npm lub PyPI | Oba niepowiązane | PyPI serena-agent |
docker-mcp w npm | Pakiet społecznościowy, nie Dockera | Wtyczka CLI docker mcp |
browser-use w npm | Niepowiązana biblioteka TypeScript | PyPI browser-use przez uvx |
@neondatabase/mcp-server-neon | Wycofany | https://mcp.neon.tech/mcp |
@azure/mcp@latest | Wskazuje wersję beta (3.0.0-beta.47) | @azure/mcp@2.0.5 |
Jakie inne serwery MCP zweryfikowano?
Dział zatytułowany „Jakie inne serwery MCP zweryfikowano?”Te serwery przeszły te same kontrole, ale służą węższemu zadaniu niż pierwsza trzydziestka.
| Serwery | Strona |
|---|---|
Slack MCP (przez wtyczkę slack), GitLab MCP (beta) | zgłoszenia i dokumentacja przez MCP, przewodnik po GitHub MCP |
| Datadog MCP | Serwery MCP do obserwowalności |
| Exa, Tavily, Brave Search, MarkItDown MCP (alfa) | Serwery MCP do researchu w sieci |
Neon (readonly=true), MongoDB (--readOnly) | Serwery MCP dla baz danych |
| Zarządzane serwery Google Cloud, gcloud MCP | Serwery MCP platform chmurowych |
Stagehand z Browserbase, dev-browser (wydanie next) | Serwery MCP do przeglądarki |
| Claude Context (Zilliz) | Serwery MCP do analizy kodu |
| n8n-mcp, Composio Connect | Huby integracyjne MCP |
| Next.js DevTools MCP, MobileBuildMCP, Hugging Face MCP; shadcn MCP | Serwery MCP narzędzi frameworków, shadcn/ui MCP |
| Filesystem, Git, Fetch, Memory, Sequential Thinking, Desktop Commander | Referencyjne serwery MCP |
Co psuje się, gdy zespół wdraża te serwery MCP?
Dział zatytułowany „Co psuje się, gdy zespół wdraża te serwery MCP?”claude mcp add NAME URL nie łączy się z niczym. Bez --transport http Claude Code 2.1.283 zapisuje serwer stdio, którego poleceniem jest URL, a błąd wychodzi dopiero przy połączeniu. Usuń wpis, dodaj go ponownie z --transport http i sprawdź przez claude mcp get NAME. --url to flaga Codex; Claude Code ją odrzuca.
Codex gubi nagłówek uwierzytelniania bez żadnego błędu. Tabela headers = { ... } w config.toml parsuje się i jest ignorowana (codex-cli 0.157.1). Użyj --bearer-token-env-var albo kluczy http_headers / env_http_headers i sprawdź codex mcp get NAME --json.
Wtyczka dostawcy po cichu przywraca prawo zapisu. github@claude-plugins-official wskazuje pełny adres https://api.githubcopilot.com/mcp/, a nie /readonly, więc po instalacji obok twojego wpisu tylko do odczytu agent ma oba. Po każdej instalacji wtyczki uruchom prompt audytowy.
Równolegli agenci walczą o jedną przeglądarkę. Trwały profil Playwright może otworzyć tylko jeden klient naraz. Uruchamiaj Playwright z --isolated albo z osobnym --user-data-dir dla każdego worktree.
Skopiowany endpoint już nie działa. Endpoint Atlassian /v1/sse przestał działać po 2026-06-30; używaj /v2/mcp. Firecrawl zaleca, by nigdy nie umieszczać klucza API w adresie serwera. Uwierzytelnianie tokenem w Sentry wymaga Sentry-Bearer, a nie Bearer.
Tryb lockdown bywa mylony z uprawnieniem. --lockdown-mode w GitHub filtruje treści z publicznych repozytoriów od autorów bez prawa push, aby ograniczyć prompt injection, ale GitHub zaznacza, że „is not an authorization boundary”. Łącz go z /readonly i wąskim tokenem.
Okno kontekstu zapełnia się, zanim zadanie się zacznie. Jeśli /context pokazuje, że narzędzia MCP zajmują dużą część świeżej sesji, usuń serwery, których zadanie nie potrzebuje, i wybieraj zwarte konstrukcje: Cloudflare podaje ok. 1k tokenów dla swojego serwera Code Mode z 3 narzędziami wobec ok. 244k dla natywnych schematów API (Cloudflare, odczyt 2026-09-26). Sam Playwright pisze, że agenci programistyczni „might benefit from using the CLI+SKILLS instead”. Zobacz przewodnik po koszcie tokenów MCP.