Przejdź do głównej zawartości

Referencyjne serwery MCP i kiedy ich nie potrzebujesz

Referencyjne serwery MCP to siedem małych serwerów (Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking i Time), które grupa sterująca MCP utrzymuje po to, by demonstrować protokół, a nie by działały na produkcji. Claude Code, Codex i Cursor same czytają i edytują pliki oraz uruchamiają git własnymi narzędziami, więc serwery referencyjne przydają się głównie w klientach czatowych.

Otwierasz repozytorium i znajdujesz .mcp.json skopiowany z wpisu na blogu z 2025 roku: filesystem, git, github, puppeteer i sequential-thinking. Dwa z tych pakietów są przestarzałe, git startuje przez npx @modelcontextprotocol/server-git, czyli pakiet, którego nie ma w npm, a serwer Filesystem daje agentowi drugą drogę zapisu plików, której twoje reguły uprawnień dla Edit w ogóle nie widzą. Ta strona jest dla programistów, którzy chcą oszczędnej i poprawnej konfiguracji, oraz dla tech leadów odpowiedzialnych za wspólną konfigurację MCP zespołu. Jeśli MCP to dla ciebie nowość, przeczytaj najpierw wprowadzenie do Model Context Protocol.

  • Tabelę siedmiu utrzymywanych serwerów referencyjnych ze zweryfikowanym pakietem, poleceniem uruchomienia i liczbą narzędzi
  • Zarchiwizowane serwery (GitHub, PostgreSQL, Puppeteer, Slack i dziewięć innych) wraz z tym, co je zastąpiło
  • Audyt istniejącego .mcp.json, .codex/config.toml lub .cursor/mcp.json według zasady „najpierw narzędzia natywne”, z promptem do skopiowania i krokiem weryfikacji
  • Przykład, w którym serwer Filesystem jest właściwą odpowiedzią: katalog notatek dla klienta czatowego
  • Kiedy Desktop Commander jest wart swojej znacznie szerszej powierzchni uprawnień i jak go ograniczyć

Które referencyjne serwery MCP są nadal utrzymywane?

Dział zatytułowany „Które referencyjne serwery MCP są nadal utrzymywane?”

README repozytorium modelcontextprotocol/servers wymienia siedem serwerów referencyjnych i mówi wprost, po co istnieją: są „intended as reference implementations to demonstrate MCP features and SDK usage”, „not as production-ready solutions” (README odczytane 2026-09-26). To samo README odsyła osoby szukające katalogu serwerów do MCP Registry.

SerwerPakiet i polecenie uruchomieniaNarzędziaCo robiPotrzebny w Claude Code, Codex lub Cursorze?
Filesystemnpm @modelcontextprotocol/server-filesystem: npx -y @modelcontextprotocol/server-filesystem DIR [DIR…]13Czyta, zapisuje, edytuje, przenosi i wyszukuje pliki w dozwolonych katalogachRzadko. Wszystkie trzy mają natywne narzędzia plikowe. Użyj go dla katalogu poza projektem, z węższą powierzchnią niż powłoka
GitPyPI mcp-server-git: uvx mcp-server-git --repository PATH12Status, diffy, log, show, add, commit, reset, branch, checkoutNie. Agenci uruchamiają git w powłoce. Serwer nie ma push, pull ani fetch
FetchPyPI mcp-server-fetch: uvx mcp-server-fetch1Pobiera URL i zamienia HTML na MarkdownRzadko. Claude Code ma narzędzie do pobierania stron, Codex ma --search. Zobacz ostrzeżenie o SSRF niżej
Memorynpm @modelcontextprotocol/server-memory: npx -y @modelcontextprotocol/server-memory9Graf wiedzy z encji, relacji i obserwacji w pliku JSONLRzadko. Pamięć projektu należy do CLAUDE.md lub AGENTS.md, gdzie przechodzi review w gicie
Sequential Thinkingnpm @modelcontextprotocol/server-sequential-thinking: npx -y @modelcontextprotocol/server-sequential-thinking1Narzędzie sequential_thinking, które zapisuje ponumerowane myśli z możliwością rewizjiOpcjonalny. Podniesienie poziomu wysiłku (effort) modelu zwykle robi to samo
TimePyPI mcp-server-time: uvx mcp-server-time2Bieżący czas i konwersja między strefami IANARzadko. Agent może uruchomić date
Everythingnpm @modelcontextprotocol/server-everything: npx -y @modelcontextprotocol/server-everythingwieleSerwer testowy, który ćwiczy każdą funkcję MCPNigdy na co dzień. Jest dla osób budujących klientów MCP

Wersje i popularność na 2026-09-26: serwery w TypeScripcie są w wersji npm 2026.8.31, a serwery w Pythonie w wersji PyPI 2026.8.18 (sprawdzone przez npm view i API JSON PyPI). Repozytorium modelcontextprotocol/servers ma około 90,6 tys. gwiazdek na GitHubie (API GitHuba, odczyt 2026-09-26, zapisany w dossier MCP tego serwisu). Gwiazdki należą do całego repozytorium, a nie do jednego serwera, więc nic nie mówią o tym, ile osób używa serwera Filesystem.

Które serwery referencyjne zarchiwizowano i co je zastąpiło?

Dział zatytułowany „Które serwery referencyjne zarchiwizowano i co je zastąpiło?”

Trzynaście dawnych serwerów referencyjnych leży teraz w modelcontextprotocol/servers-archived, którego README zapowiada wprost, że nie będzie już ani poprawek bezpieczeństwa, ani poprawek błędów („No security updates or bug fixes will be provided”). Zarchiwizowany pakiet potrafi startować jeszcze miesiącami, dlatego nieaktualne konfiguracje przeżywają kolejne przeglądy. Zastąp każdy z nich utrzymywanym następcą:

Zarchiwizowany serwerUżyj zamiast niegoGdzie opisujemy to w serwisie
GitHubOficjalny serwer MCP GitHuba (zdalny lub w Dockerze) albo CLI ghSerwer GitHub MCP
GitLabOficjalny serwer MCP GitLaba (beta)Serwer GitHub MCP (sekcja o GitLabie)
PostgreSQL, SQLite, RedisUtrzymywany serwer bazodanowy, domyślnie tylko do odczytuSerwery MCP dla baz danych
PuppeteerPlaywright MCP lub Chrome DevTools MCPMCP do automatyzacji przeglądarki
Brave SearchWłasny serwer Brave, @brave/brave-search-mcp-serverMCP do researchu w sieci
SentryOficjalny serwer MCP SentryMCP do obserwowalności
SlackOficjalny zdalny serwer MCP Slacka, instalowany przez wtyczkę slack (slackapi/slack-skills-plugin, dawniej slack-mcp-plugin); README serwerów referencyjnych wskazuje też fork utrzymywany przez ZencoderKonfiguracja MCP w Claude Code (wtyczka Slack)
Google Drive, Google Maps, AWS KB Retrieval, EverArtNie polecamy tu następcy. Sprawdź własny serwer dostawcy w MCP Registry—

Jak przeprowadzić audyt .mcp.json według zasady „najpierw narzędzia natywne”?

Dział zatytułowany „Jak przeprowadzić audyt .mcp.json według zasady „najpierw narzędzia natywne”?”

Zrób audyt, zanim zacznie się etap budowy: konfiguracja MCP decyduje, do jakich narzędzi agent sięgnie, zanim napisze choć linijkę. Rób go, gdy przejmujesz repozytorium, i powtarzaj za każdym razem, gdy ktoś dodaje serwer.

Zasada: narzędzie natywne wygrywa z serwerem MCP, który robi to samo. Narzędzia natywne działają w modelu uprawnień agenta. Zdublowane narzędzie MCP dostaje własną nazwę i własne reguły: w Claude Code reguła deny dla Edit nie obejmuje mcp__filesystem__write_file.

  1. Wypisz, co jest skonfigurowane. Uruchom listowanie dla każdego narzędzia, którego używa zespół.

    Okno terminala
    claude mcp list # sprawdza zatwierdzone serwery; niezatwierdzone wpisy z .mcp.json są oznaczone jako oczekujące

    W sesji /context pokazuje, ile okna kontekstu zajmują narzędzia MCP. Zanotuj tę liczbę.

  2. Sklasyfikuj każdy serwer. Przypisz każdy wpis do jednej z czterech grup:

    GrupaTestDziałanie
    DuplikatNarzędzie natywne robi to samo (pliki, git, date, pobranie strony)Usuń
    Zarchiwizowany lub przestarzałyPakiet jest na liście pułapek wyżejZastąp następcą albo usuń
    Uzasadniona lukaSięga tam, gdzie agent nie sięga: katalog poza projektem, API, baza danychZostaw, zawężony do minimum katalogów lub narzędzi
    NieznanyNikt w zespole nie wie, do czego służyUsuń. Kto go potrzebuje, doda go ponownie z uzasadnieniem
  3. Przekaż klasyfikację agentowi. Wklej ten prompt w katalogu głównym repozytorium. Agent proponuje zmiany i niczego nie edytuje.

  4. Wprowadź werdykty. Przejrzyj tabelę od agenta, a potem sam usuń lub zawęź wpisy.

    Okno terminala
    claude mcp remove -s project filesystem
    claude mcp remove -s project sequential-thinking

    Aby wyłączyć serwer bez usuwania wpisu, użyj w sesji /mcp disable SERVER_NAME.

  5. Zweryfikuj odchudzoną konfigurację. Powtórz listowanie z kroku 1 i porównaj /context z zanotowaną liczbą. W Codex porównaj /mcp verbose przed zmianą i po niej; w Cursorze porównaj wpisy, które zostały w .cursor/mcp.json i ~/.cursor/mcp.json, z krokiem 1. Potem uruchom test dymny z następnej sekcji. Otwórz zmianę jako pull request, który mówi, dlaczego każdy serwer zniknął, żeby recenzent sprawdzał uzasadnienia, a nie JSON.

Claude Code i Codex domyślnie odraczają definicje narzędzi MCP przez wyszukiwanie narzędzi (tool search), więc bezczynny serwer kosztuje dziś mniej kontekstu niż w 2025 roku. Audyt i tak się opłaca: ryzykiem zdublowanego narzędzia jest obejście uprawnień, a nie tylko tokeny.

Jak udowodnić, że odchudzona konfiguracja nadal działa?

Dział zatytułowany „Jak udowodnić, że odchudzona konfiguracja nadal działa?”

Nie czytaj nowej konfiguracji z nadzieją, że jest dobra. Każ agentowi sprawdzić w praktyce każdą funkcję, którą właśnie przeniosłeś z MCP na narzędzia natywne, i podać, którego narzędzia użył.

W Codex uruchom sesję z --search albo uznaj curl w powłoce za natywną drogę dla zadania 4.

Test przechodzi, gdy wszystkie cztery zadania są wykonane, każde narzędziem natywnym, i nie ma żadnego wywołania usuniętego serwera. W zespole pull request zatwierdza tech lead, a wpis w CODEOWNERS dla .mcp.json, .cursor/mcp.json i .codex/config.toml sprawia, że kolejne dodane serwery przechodzą ten sam przegląd.

Przykład: katalog notatek dla klienta czatowego przez serwer Filesystem

Dział zatytułowany „Przykład: katalog notatek dla klienta czatowego przez serwer Filesystem”

Tu serwer Filesystem jest właściwym narzędziem. Klient czatowy, taki jak Claude Desktop, nie ma własnych narzędzi plikowych, a ty chcesz, żeby czytał i porządkował folder notatek w Markdownie, i nic więcej.

  1. Ogranicz serwer do jednej ścieżki bezwzględnej. Serwer dotyka tylko katalogów podanych jako argumenty albo katalogów, które klient wysyła jako MCP Roots. W Claude Desktop dodaj to do claude_desktop_config.json (z README serwera; w Windows uruchamiaj przez "command": "cmd" i wstaw "/c", "npx" na początek args):

    {
    "mcpServers": {
    "notes": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/notes"]
    }
    }
    }
  2. Albo dodaj go do agenta kodującego, gdy chcesz mieć folder notatek w każdym projekcie, nie dając tam agentowi powłoki.

    Okno terminala
    claude mcp add -s user notes -- npx -y @modelcontextprotocol/server-filesystem /Users/me/notes

    Na jedną sesję natywną alternatywą jest claude --add-dir /Users/me/notes (albo /add-dir w sesji). Folder zostaje wtedy pod regułami uprawnień samego Claude Code.

  3. Ustaw tryb tylko do odczytu, jeśli potrzebujesz wyłącznie odczytu. Wariant z Dockerem z README montuje folder z flagą ro, więc zapisy padają na poziomie systemu plików, a nie zależą od posłuszeństwa modelu:

    {
    "mcpServers": {
    "notes": {
    "command": "docker",
    "args": ["run", "-i", "--rm",
    "--mount", "type=bind,src=/Users/me/notes,dst=/projects/notes,ro",
    "mcp/filesystem", "/projects"]
    }
    }
    }
  4. Uruchom zadanie. Wklej ten prompt w kliencie czatowym lub agencie.

Czego się spodziewać: wywołania list_allowed_directories, które zwraca tylko /Users/me/notes (albo /projects w Dockerze), serii wywołań search_files i get_file_info oraz diffów w stylu gita z próbnego przebiegu. Serwer oznacza swoje narzędzia adnotacjami MCP: narzędzia odczytu mają readOnlyHint: true, a write_file, edit_file i move_file są oznaczone jako destrukcyjne. Klient, który respektuje te wskazówki, może automatycznie zatwierdzać odczyty i nadal pytać przed zapisem.

Kiedy Git, Fetch, Memory, Sequential Thinking i Time mają sens?

Dział zatytułowany „Kiedy Git, Fetch, Memory, Sequential Thinking i Time mają sens?”

Każdy z tych serwerów wypełnia lukę w kliencie, któremu brakuje natywnego narzędzia. W agencie kodującym najpierw sięgnij po drogę natywną.

mcp-server-git pasuje do klienta czatowego, który przegląda lokalne repozytorium. Jego narzędzia czytają status, diffy i historię, potrafią też stage’ować, commitować, tworzyć gałęzie i je przełączać; nic nie dociera do zdalnego repozytorium. README wciąż opisuje go jako „in early development”.

Okno terminala
claude mcp add git -- uvx mcp-server-git --repository /Users/me/code/api
codex mcp add git -- uvx mcp-server-git --repository /Users/me/code/api

W Claude Code, Codex i Cursorze agent uruchamia git w powłoce, pod własnymi regułami zatwierdzania. Do pull requestów i issues użyj gh albo serwera GitHub MCP.

mcp-server-fetch ma jedno narzędzie, fetch, które domyślnie zwraca do 5000 znaków. Dłuższe strony model czyta porcjami przez start_index. Serwer respektuje robots.txt dla żądań inicjowanych przez model; --ignore-robots-txt, --user-agent i --proxy-url zmieniają to zachowanie. README zawiera ostrzeżenie: serwer „can access local/internal IP addresses”. Agent, który podąży za linkiem ze strony z prompt injection, może więc dotrzeć do twojej sieci wewnętrznej. Uruchamiaj go tylko tam, gdzie to akceptujesz. Wyszukiwanie i scraping na większą skalę opisuje strona o serwerach MCP do researchu w sieci.

Serwer Memory zapisuje encje, relacje i obserwacje w pliku JSONL. Ścieżkę ustawia MEMORY_FILE_PATH, a domyślnie plik leży w katalogu samego serwera, czyli przy npx w pamięci podręcznej pakietów. Ustaw zmienną na ścieżkę objętą kopią zapasową:

Okno terminala
claude mcp add memory -e MEMORY_FILE_PATH=/Users/me/.agent-memory/memory.jsonl -- npx -y @modelcontextprotocol/server-memory

W zespole programistów wiedza o projekcie w CLAUDE.md lub AGENTS.md wygrywa, bo zmienia się przez commity po review. Narzędzia pamięci między sesjami opisuje strona o wtyczkach trwałej pamięci.

Sequential Thinking: opcjonalny w erze modeli rozumujących

Dział zatytułowany „Sequential Thinking: opcjonalny w erze modeli rozumujących”

Serwer daje modelowi narzędzie-brudnopis do ponumerowanych myśli z możliwością rewizji. Pomagał modelom bez wbudowanego rozumowania. Przy obecnych modelach podniesienie poziomu wysiłku (effort) zwykle robi to samo bez dodatkowego narzędzia; to ocena redakcyjna, a nie zmierzony wynik. Jeśli go zostawiasz, ustaw DISABLE_THOUGHT_LOGGING=true, żeby nie logował każdej myśli.

Time odpowiada na pytanie „która jest godzina w Asia/Tokyo” dwoma narzędziami; agent z powłoką może zamiast tego uruchomić date. Everything to serwer testowy dla osób budujących klientów MCP. Łącz go z MCP Inspectorem (npx @modelcontextprotocol/inspector, npm 2.8.0), gdy budujesz własny serwer MCP.

Desktop Commander (wonderwhy-er/DesktopCommanderMCP, około 9,8 tys. gwiazdek na GitHubie i npm 0.2.51 na 2026-09-26) to serwer społecznościowy, który daje klientowi czatowemu terminal. Uruchamia długo działające procesy i z nimi rozmawia (start_process, interact_with_process, read_process_output), wyszukuje przez ripgrep, edytuje pliki blokami i czyta pliki Excel oraz PDF. Jego README wymienia około 25 narzędzi.

Jest pomyślany dla Claude Desktop. W Claude Code, Codex i Cursorze dubluje wbudowane narzędzia powłoki i plików oraz poszerza powierzchnię uprawnień, więc dodawaj go tam tylko dla konkretnej luki. Polecenia instalacji z README:

Okno terminala
# Claude Desktop (zapisuje claude_desktop_config.json; aktualizuje się przy każdym restarcie)
npx @wonderwhy-er/desktop-commander@latest setup
# Claude Code i Codex, według README
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest

Naprawdę przydaje się wtedy, gdy klient czatowy ma pilnować działającego procesu:

  • npx zwraca 404 dla @modelcontextprotocol/server-git. Git, Fetch i Time to pakiety PyPI. Zainstaluj uv i uruchamiaj je przez uvx mcp-server-git, uvx mcp-server-fetch lub uvx mcp-server-time.
  • Serwer Filesystem kończy działanie przy starcie. Potrzebuje co najmniej jednego dozwolonego katalogu. Rzuca błąd, gdy startuje bez katalogów w argumentach, a klient nie wysyła Roots. Dodaj ścieżkę bezwzględną do args.
  • „Access denied” na ścieżce, którą dopuściłeś. Względna ścieżka w args albo Roots, które zastąpiły twoje argumenty. Używaj ścieżek bezwzględnych i poproś agenta o wywołanie list_allowed_directories.
  • „Permission denied” z systemu operacyjnego. Serwer działa jako twój użytkownik, więc nie przeczyta plików należących do roota ani innego konta. Popraw uprawnienia plików albo użyj wariantu z Dockerem i bind mountem.
  • Duże pliki zalewają kontekst. read_text_file zwraca cały plik, jeśli nie podasz head lub tail. Każ agentowi najpierw szukać przez search_files, potem czytać z head, a do directory_tree przekazywać excludePatterns, na przykład node_modules.
  • Fetch zwraca uciętą stronę. To domyślny limit 5000 znaków. Poproś agenta o kontynuację z start_index albo o większe max_length w wywołaniu.
  • Graf Memory jest pusty po czyszczeniu pamięci podręcznej. Nie ustawiono MEMORY_FILE_PATH, więc plik leżał w cache’u npx. Ustaw stałą ścieżkę i przywróć JSONL z kopii zapasowej.
  • mcp-server-git lub mcp-server-fetch pada po pip install. Oba README wymagają MCP Python SDK 1.x (mcp>=1.29.0,<2). Środowisko z SDK 2.0 je psuje. uvx rozwiązuje właściwą wersję w izolowanym środowisku.
  • Zarchiwizowany serwer wciąż „działa”. Przestarzały pakiet może startować, dopóki nie zmieni się API za nim. Nie czekaj na awarię: zastąp go następcą z tabeli zarchiwizowanych serwerów.
  • Agent zapisał plik, który twoje reguły uprawnień powinny zablokować. Użył narzędzia zapisu z MCP, a nie natywnego. Usuń zdublowany serwer albo dodaj regułę deny dla nazwy narzędzia MCP, na przykład mcp__filesystem__write_file w Claude Code.

Dopiero zaczynasz z MCP? Zacznij od wprowadzenia do Model Context Protocol.