Bezpieczeństwo MCP – materiały
Wstęp
Zacznijmy od tego, czym jest MCP (Model Context Protocol)? Jest to ogłoszony ostatnio przez Claude ustandaryzowany sposób komunikacji modeli AI ze światem zewnętrznym. Szczególnie w kontekście dostępu do danych ze świata zewnętrznego.

Powyższa architektura pokazuje, że to interfejs, który jest w stanie połączyć różnego rodzaju API z językiem, który jest znany modelom AI. Wydaje się, że to tylko drobna standaryzacja, jednak uruchomiła ona lawinę tworzenia nowych serwerów do mniej lub bardziej popularnych usług. Jest to na tyle proste, że nikt z dużych graczy nie chce być w tyle i każdy chce udostępnić interfejs do kontaktu pomiędzy AI a swoim systemem.
Widać, jak popularne jest, to gdy przyjrzymy się ilości nowych implementacji tego protokołu.
https://github.com/punkpeye/awesome-mcp-servers
Zacznijmy od przyjrzenia się dokładniej, czym jest MCP (Model Contex Protocol).
Koniecznie trzeba zacząć od oficjalnej specyfikacji protokołu MCP – https://modelcontextprotocol.io/specification
Krótkie i proste wytłumaczenie, czym jest MCP: https://read.highgrowthengineer.com/p/mcps-simply-explained
Również ciekawy i bardziej dogłębny opis samego protokołu (MCP), jak i możliwości jego użycia i potencjalnej rozbudowy w przyszłości: https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling
Dużą zaletą tego nowego protokołu, jak i jego szybkiej adopcji jest to, że dzięki temu AI może skorzystać z wyspecjalizowanych narzędzi, aby zwiększyć swoją efektywność. Dobrym przykładem tego jest reverse engineering. Jak dotąd LLMy musiały w tym celu polegać na swoich własnych zdolnościach i analizować kod czysto na warstwie językowej. Dzięki interfejsom takim jak GhidraMCP (https://github.com/LaurieWired/GhidraMCP) mogą skorzystać one z dojrzałych rozwiązań i przetwarzać już wstępnie przetworzone dane.
MCP i bezpieczeństwo
Temat bezpieczeństwa MCP można podsumować jednym zdaniem:

Ładnie podsumowuje to artykuł:
https://elenacross7.medium.com/️-the-s-in-mcp-stands-for-security-91407b33ed6b
Opis zagrożenia Tool Poisoning Attack https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
Celowo podatny serwer MCP (Built to test SQL Injection (SQLi) and Remote Code Execution (RCE) vulnerabilities via FastAPI, JSON-RPC, and LLM-based decision logic.)
https://github.com/evrenyal/mcpsecurity
https://github.com/harishsg993010/damn-vulnerable-MCP-server
Bardzo usystematyzowane zestawienie zagrożeń dla serwerów MCP wraz z przykładami problematycznych wywołań.

Kolejna lista zagrożeń związanych z serwerami MCP:
- Command Injection Vulnerabilities – uruchomienie złośliwego kodu z parametrów.
- Tool Poisoning Attacks – zaszycie złośliwych instrukcji w opisie akcji serwera.
- The Rug Pull: Silent Redefinition – możliwość podmiany zachowania serwera.
- Cross-Server Tool Shadowing – przysłonienie wyników jednego MCP przez inne.
- Context Leakage Risks – długo utrzymywana sesja może powodować wyciek wrażliwych informacji.
- Prompt Injection – nadpisanie domyślnego zachowania prompta poprzez odpowiedź z MCP.
- Memory Poisoning and Context Corruption – zafałszowanie kontekstu sesji poprzez złośliwą odpowiedź z MCP.
https://elenacross7.medium.com/️-the-s-in-mcp-stands-for-security-91407b33ed6b
https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
https://medium.com/@sebuzdugan/understanding-the-security-implications-of-using-mcp-9bd3323ad42d
Tu za to mamy bardzo wnikliwą analizę zagrożeń MCP (Model Context Protocol)
- Name Collision – podszywanie się pod zaufane serwery.
- Installer Spoofing – wstrzyknięcie zainfekowanego serwera.
- Code Injection/Backdoor – złośliwy kod w implementacji serwera.
- Sandbox Escape – wyjście komendy poza zaufane środowisko i uzyskanie nieautoryzowanego dostępu do systemu operacyjnego.
- Slash Command Overlap – konflikt w nazwach metod dostępnych dla AI.
https://arxiv.org/pdf/2503.23278
Jak więc się bronić przed tymi zagrożeniami?
Metod jest wiele, ale daje się je podsumować do prostego podejścia Zero Trust i dbania o klasyczne zasady bezpieczeństwa:
- zarządzanie sesją,
- uwierzytelnianie i autoryzacja,
- szyfrowanie on transit,
- dobry monitoring.
https://medium.com/@sebuzdugan/understanding-the-security-implications-of-using-mcp-9bd3323ad42d
Dodatkowo mamy dostępnych kilka narzędzi do weryfikacji bezpieczeństwa.
Koncepcja użycia AI do oceny serwerów MCP
https://github.com/JeredBlu/custom-instructions/blob/main/mcpevaluatorv3.md
Ciekawy sposób weryfikowania publicznie dostępnych serwerów MCP od różnych dostawców. Ciekawe jest to, że tej metody możemy również użyć do weryfikowania bezpieczeństwa innych bibliotek lub narzędzi
Narzędzie do weryfikacji bezpieczeństwa serwera MCP
https://github.com/invariantlabs-ai/mcp-scan
Z drugiej strony MCP mogą też nam pomóc w codziennym bezpieczeństwie aplikacji.
Końcowe przemyślenia
Dużym problemem w serwerach MCP jest sama ich implementacja. Szczególnie gdy tak łatwo jest stworzyć taki serwer. Tym bardziej w modelu vibe codingu.
Sam protokół nie definiuje żadnych zabezpieczeń, co może prowokować słabą implementację. Jednak przy zachowaniu odpowiedniego podejścia Zero Trust z obu stron. Jako Klient nie wiemy, co zwróci nam MCP i czy to bezpieczne, a jako Serwer MCP również musimy być nieufni względem inputu.
