---
title: "Jak stworzyć serwer MCP w 30 minut: krok po kroku"
description: "Zbudowanie serwera MCP oznacza napisanie niewielkiej usługi, która za pomocą Model Context Protocol (JSON-RPC 2.0) udostępnia narzędzia, zasoby i prompty klientom AI, takim jak Claude."
locale: "pl"
canonical: "https://blckalpaca.at/pl/baza-wiedzy/agenci-ai/model-context-protocol-mcp/jak-stworzyc-serwer-mcp-w-30-minut-krok-po-kroku"
category: "Agenci AI"
topic: "Model Context Protocol (MCP)"
updated: "2026-10-28T13:36:31.206Z"
source: "Blck Alpaca e.U., blckalpaca.at"
---

# Jak stworzyć serwer MCP w 30 minut: krok po kroku

Zbudowanie serwera MCP oznacza napisanie niewielkiej usługi, która za pomocą Model Context Protocol (JSON-RPC 2.0) udostępnia narzędzia, zasoby i prompty klientom AI, takim jak Claude. Wybierasz SDK (Python lub TypeScript), definiujesz co najmniej jedno narzędzie, wybierasz transport (stdio lub Streamable HTTP) i rejestrujesz serwer w kliencie.

## W skrócie

- Anthropic wprowadził MCP w listopadzie 2024 roku, a 9 grudnia 2025 roku przekazał go nowo utworzonej Agentic AI Foundation działającej pod egidą Linux Foundation. W 2026 roku to standard de facto w łączeniu agentów AI z narzędziami i danymi.
- Serwer MCP udostępnia trzy prymitywy: narzędzia (funkcje, które model może wywoływać), zasoby (źródła danych do odczytu) i prompty (predefiniowane szablony). Na początek wystarczy jedno narzędzie.
- Dla serwerów lokalnych używasz transportu stdio, a dla zdalnych Streamable HTTP (od rewizji specyfikacji z 26 marca 2025 roku, razem z OAuth 2.1). Oba opierają się na JSON-RPC 2.0.
- Oficjalne SDK są dostępne dla wszystkich popularnych języków programowania; Python i TypeScript notują łącznie ponad 97 mln pobrań miesięcznie (stan na 2026 rok). Oba przejmują obsługę protokołu, a Ty piszesz tylko logikę narzędzi.
- Największe zagrożenia to pośrednie wstrzykiwanie promptów przez opisy narzędzi oraz zatruwanie narzędzi. Stosuj zasadę najmniejszych uprawnień i tokeny o ograniczonym zakresie, a serwerów MCP z niezaufanych rejestrów nie instaluj automatycznie.

Zbudowanie serwera [MCP](https://blckalpaca.at/pl/slownik/mcp) oznacza napisanie niewielkiej usługi, która za pomocą [Model Context Protocol](https://blckalpaca.at/pl/slownik/mcp) udostępnia narzędzia, zasoby i prompty klientom [AI](https://blckalpaca.at/pl/slownik/ai), takim jak Claude. Wybierasz SDK (Python lub TypeScript), definiujesz co najmniej jedno narzędzie, wybierasz transport (stdio lub Streamable HTTP) i rejestrujesz serwer w kliencie. Protokół opiera się na JSON-RPC 2.0, a SDK przejmuje za Ciebie całą wymianę komunikatów. Ty piszesz tylko logikę biznesową.

**Na początek trzy szybkie odpowiedzi:**

- Do pierwszego działającego serwera wystarczą SDK, środowisko uruchomieniowe (Python lub Node.js) i jedno narzędzie. Realnie zajmuje to około 30 minut.
- Lokalnie pracujesz z **transportem stdio** (bez portu, bez uwierzytelniania); dla serwerów zdalnych używasz **Streamable HTTP** z OAuth 2.1.
- MCP łączy agentów z narzędziami i danymi. Za współpracę między autonomicznymi agentami odpowiada A2A, nie MCP.

## Czym właściwie jest serwer MCP

Anthropic wprowadził Model Context Protocol 25 listopada 2024 roku jako otwarty standard łączenia aplikacji AI z systemami zewnętrznymi: systemami plików, bazami danych, systemami biznesowymi, narzędziami deweloperskimi. Jego autorami są David Soria Parra i Justin Spahr-Summers. Technicznie MCP to protokół JSON-RPC 2.0 działający na wymiennych transportach. Zamiast wymyślać osobny format dla każdej integracji narzędzia, klient i serwer mówią tym samym językiem.

Serwer MCP udostępnia klientowi trzy prymitywy:

- **Narzędzia**: funkcje, które model może aktywnie wywoływać (np. „sprawdź pogodę”, „zapisz rekord”). To najważniejszy i najczęściej używany element.
- **Zasoby**: źródła danych do odczytu, które klient może załadować do kontekstu (pliki, zawartość baz danych, konfiguracje).
- **Prompty**: predefiniowane szablony z parametrami, które użytkownik może wywołać w kliencie.

Na początek skupiasz się wyłącznie na jednym narzędziu. Zasoby i prompty dojdą później.

## Krok 1: wybór transportu (stdio lub HTTP)

Pierwsza decyzja architektoniczna dotyczy transportu. MCP obsługuje kilka wariantów, w praktyce liczą się dwa.

| Kryterium | stdio | Streamable HTTP |
| --- | --- | --- |
| Zastosowanie | serwer lokalny, działa jako podproces klienta | serwer zdalny, dostępny przez sieć |
| Nakład pracy przy konfiguracji | minimalny (bez portu, bez uwierzytelniania) | wymaga hostingu serwera, endpointu i uwierzytelniania |
| Uwierzytelnianie | niewymagane (lokalnie) | OAuth 2.1 (od rewizji specyfikacji z 26 marca 2025 roku) |
| Wielu klientów | nie, 1:1 | tak, wielu klientów na jeden serwer |
| Rekomendacja na start | tak, zacznij tutaj | później, gdy potrzebny jest dostęp zdalny |

**Rekomendacja:** zacznij od stdio. Klient uruchamia Twój serwer jako proces lokalny i komunikuje się z nim przez standardowe wejście/wyjście. Nie musisz zajmować się portem, konfiguracją TLS ani uwierzytelnianiem. Gdy Twój serwer ma działać zdalnie, obsługiwać wielu klientów lub stać za kontrolą dostępu, przechodzisz na [Streamable HTTP](https://blckalpaca.at/pl/baza-wiedzy/agenci-ai/model-context-protocol-mcp/mcp-security-prompt-injection-tool-poisoning-i-zarzadzanie-uprawnieniami).

**Stan specyfikacji:** Streamable HTTP pojawił się wraz z [rewizją specyfikacji z 26 marca 2025 roku](https://modelcontextprotocol.io/specification/2025-03-26/changelog) i zastąpił dotychczasowy transport HTTP+SSE. Ta sama rewizja wprowadziła autoryzację OAuth 2.1, adnotacje narzędzi i batching JSON-RPC. [Rewizja z 18 czerwca 2025 roku](https://modelcontextprotocol.io/specification/2025-06-18/changelog) ponownie usunęła batching. [Rewizja z 25 listopada 2025 roku](https://modelcontextprotocol.io/specification/2025-11-25/changelog) dodała m.in. eksperymentalne zadania dla operacji asynchronicznych, elicitację opartą na adresach URL oraz Client ID Metadata Documents do rejestracji klientów. Tryb bezstanowy bez handshake'u inicjalizacyjnego oraz wywołanie server/discover, za pomocą którego serwer zgłasza swoje wersje, możliwości i tożsamość, przyniosła dopiero [rewizja z 28 lipca 2026 roku](https://modelcontextprotocol.io/specification/2026-07-28/changelog).

## Krok 2: wybór SDK (Python lub TypeScript)

Oficjalne SDK istnieją dla wszystkich popularnych języków programowania; dwa najczęściej używane to Python i TypeScript (łącznie ponad 97 mln pobrań miesięcznie, stan na 2026 rok). Wybór zależy po prostu od Twojego obecnego stacku:

- **Python**: idealny dla zespołów pracujących blisko danych/ML i do szybkiego prototypowania.
- **TypeScript**: idealny dla zespołów skupionych na Node.js/Next.js i stackach webowych.

Oba SDK przejmują obsługę JSON-RPC, negocjowanie możliwości i podłączenie transportu. Deklarujesz narzędzie z nazwą, opisem i schematem parametrów, a potem piszesz właściwą funkcję.

## Krok 3: minimalny serwer z jednym narzędziem (pseudokod)

Poniższy przykład w pseudokodzie pokazuje serwer z dokładnie jednym narzędziem, które przelicza kwoty między walutami. Logika jest celowo banalna, liczy się struktura.

\`\`\`

# Pseudokod (wzorowany na stylu SDK dla Pythona)

server = MCPServer(name="fx-tools")

@server.tool(
    name="convert\_currency",
    description="Przelicza kwotę z jednej waluty na inną. "
                "Oczekuje: kwota (liczba), zrodlo (kod ISO), cel (kod ISO).",
    input\_schema={
        "type": "object",
        "properties": {
            "kwota":  {"type": "number"},
            "zrodlo": {"type": "string"},
            "cel":    {"type": "string"}
        },
        "required": ["kwota", "zrodlo", "cel"]
    }
)
def convert\_currency(kwota, zrodlo, cel):
    kurs = lookup\_rate(zrodlo, cel)        # własna logika biznesowa
    wynik = round(kwota \* kurs, 2)
    return {"wynik": wynik, "kurs": kurs}

# WAŻNE: logowanie TYLKO na stderr, nigdy na stdout (niszczy JSON-RPC)

log\_to\_stderr("Uruchamianie serwera")

server.run(transport="stdio")
\`\`\`

Trzy rzeczy są tu kluczowe i często się je pomija:

1. **Opis** to nie dekoracja. Model decyduje wyłącznie na podstawie nazwy i opisu, czy i jak wywoła narzędzie. Niejasne opisy prowadzą do błędnych wywołań albo do ich braku.
2. **input\_schema** (JSON Schema) wiążąco definiuje parametry. Bez poprawnego schematu klient nie może zwalidować argumentów.
3. Przy transporcie stdio wyjście stdout jest zarezerwowane dla protokołu. Całe logowanie musi trafiać na **stderr**, inaczej strumień JSON-RPC się rozpada.

## Krok 4: rejestracja i test serwera w kliencie

Przy stdio rejestrujesz serwer, przekazując klientowi polecenie uruchomienia. W klientach takich jak Claude Desktop robi się to w pliku konfiguracyjnym, który wygląda mniej więcej tak:

\`\`\`
{
  "mcpServers": {
    "fx-tools": {
      "command": "python",
      "args": ["sciezka/do/server.py"]
    }
  }
}
\`\`\`

Po ponownym uruchomieniu klienta pojawi się Twoje narzędzie. Przetestuj je w tej kolejności:

1. **Sprawdź wykrywanie**: czy `convert_currency` pojawia się na liście narzędzi klienta? Jeśli nie, zwykle zawodzi uruchomienie podprocesu (zła ścieżka, brakująca zależność).
2. **Wywołaj narzędzie**: zadaj pytanie, które uruchomi narzędzie („Ile to jest 500 EUR w CHF?”). Klient powinien wywołać narzędzie z poprawnymi argumentami.
3. **Sprawdź odpowiedź**: czy serwer zwraca poprawnie sformatowany wynik, który klient osadza w swojej odpowiedzi?

Do debugowania niezależnie od modelu przydaje się [oficjalny MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector), samodzielne narzędzie z projektu MCP, które pozwala wywoływać narzędzia bezpośrednio i na bieżąco podglądać protokół JSON-RPC. To znacznie przyspiesza debugowanie.

## Konkretny przykład z liczbami

Załóżmy, że podłączasz wewnętrzny cennik. Serwer udostępnia narzędzie `get_product_price`. Pracownik pyta w kliencie: „Ile kosztuje artykuł A-204 w wariancie L?” Bez MCP model musiałby zgadywać albo halucynować. Z narzędziem model wywołuje `get_product_price(sku="A-204", variante="L")`, serwer zwraca `{"preis": 49.90, "währung": "EUR", "lager": 12}`, a model odpowiada na podstawie faktów. Cały nakład implementacyjny takiego narzędzia tylko do odczytu to jeden plik i kilkadziesiąt linii kodu. Większość wspomnianych na początku 30 minut zajmuje podłączenie Twojego istniejącego źródła danych, a nie sam protokół.

## Najczęstsze błędy

- **Logowanie na stdout**: najczęstszy błąd początkujących przy transporcie stdio. Wszystko, co nie jest JSON-RPC, musi trafiać na stderr.
- **Niejasne opisy narzędzi**: model nie wywołuje narzędzia albo wywołuje je błędnie. Pisz opisy jak dokumentację [API](https://blckalpaca.at/pl/slownik/api) dla kolegi z zespołu.
- **Brakujący lub błędny JSON Schema**: pola wymagane nie są oznaczone, typy są nieprecyzyjne. Wtedy klient nie może zwalidować argumentów.
- **Zbyt szerokie uprawnienia**: narzędzie, które może więcej, niż potrzeba, to powierzchnia ataku. Zasada najmniejszych uprawnień obowiązuje od pierwszej linii kodu.
- **Luki bezpieczeństwa wynikające z założeń o zaufaniu**: w latach 2025/2026 udokumentowano m.in. pośrednie wstrzykiwanie promptów przez opisy narzędzi, zatruwanie narzędzi (Invariant Labs, [PoC dla WhatsAppa z kwietnia 2025 roku](https://invariantlabs.ai/blog/whatsapp-mcp-exploited)), squatting z użyciem serwerów look-alike, Full-Schema Poisoning opisany przez CyberArk (każda część schematu narzędzia może być punktem wstrzyknięcia) oraz „Toxic [Agent](https://blckalpaca.at/pl/slownik/agent) Flow” przez zmanipulowane issues na GitHubie. Przyczyną jest z założenia optymistyczny model zaufania MCP, który utożsamia poprawność składniową z bezpieczeństwem semantycznym. Zabezpieczenie leży po stronie operatora: sandboxing, tokeny o ograniczonym zakresie, OAuth 2.1 dla transportów HTTP i żadnej automatycznej instalacji serwerów MCP z niezaufanych rejestrów.

## Stan na 2026 rok

W 2026 roku MCP to szeroko wspierany standard branżowy w komunikacji agent-narzędzie: 9 grudnia 2025 roku Anthropic przekazał protokół nowo utworzonej [Agentic AI](https://blckalpaca.at/pl/slownik/agentic-ai) Foundation pod egidą Linux Foundation. Współzałożycielami fundacji są Anthropic, Block i [OpenAI](https://blckalpaca.at/pl/slownik/openai), a wsparcie na poziomie Platinum zapewniają AWS, Bloomberg, Cloudflare, Google i Microsoft. MCP obsługują m.in. OpenAI (od marca 2025 roku), Google DeepMind (kwiecień 2025), Microsoft Copilot Studio, SAP Joule, Salesforce Agentforce oraz [n8n](https://blckalpaca.at/pl/slownik/n8n) i LangGraph. Claude ma katalog ponad 75 oficjalnych konektorów MCP. Do współpracy między autonomicznymi agentami nie wybierasz MCP, tylko [A2A](https://blckalpaca.at/pl/baza-wiedzy/agenci-ai/protokol-agent-to-agent-a2a/a2a-vs-mcp-porownanie-komunikacji-agent-narzedzie-i-agent-agent). Reguła brzmi: MCP to możliwości, A2A to współpraca.

## Dla agencji i B2B

Dla agencji w Europie własny serwer MCP to bezpośrednia droga, by udostępnić autorskie funkcje (funkcję wyszukiwania słów kluczowych, wewnętrzny CMS, API cenowe) niezależnie od dostawcy, bez budowania osobnej integracji dla każdego klienta AI. Raz porządnie zbudowany serwer MCP można ponownie wykorzystywać w różnych liniach produktów. Dla decydentów B2B: jeśli w 2026 roku wdrażasz agentów, będziesz korzystać z serwerów MCP albo je pisać, czy to planujesz, czy nie. Traktuj każde narzędzie jako istotne z punktu widzenia uprawnień i audytu. W Blck Alpaca projektujemy serwery MCP w oparciu o zasadę najmniejszych uprawnień, czyste schematy i przejrzyste ścieżki audytu. Odezwij się, jeśli chcesz podłączyć wewnętrzne źródło danych do swoich agentów AI [zgodnie z RODO](https://gdpr-info.eu/).

## Najczęściej zadawane pytania

### Czego potrzebuję, aby zbudować serwer MCP?

Oficjalnego SDK (Python lub TypeScript), środowiska uruchomieniowego (odpowiednio Python lub Node.js) i klienta obsługującego MCP do testów, na przykład Claude Desktop albo edytora kodu ze wsparciem dla MCP. Do pierwszego narzędzia wystarczy jeden plik. Transport stdio działa w całości lokalnie, bez konfigurowania sieci, więc w około 30 minut przechodzisz od zera do działającego serwera.
### Stdio czy HTTP: który transport wybrać?

Stdio to właściwy wybór dla serwerów lokalnych, które działają jako podproces klienta: bez portu, bez uwierzytelniania, idealne rozwiązanie na etapie tworzenia. Streamable HTTP (od rewizji specyfikacji z 26 marca 2025 roku, z OAuth 2.1) jest potrzebny, gdy serwer działa zdalnie, korzysta z niego wielu klientów albo musi stać za kontrolą dostępu. Zacznij od stdio, a migrację przeprowadź później.
### Czym różni się MCP od A2A?

MCP (Model Context Protocol) łączy agenta z narzędziami i danymi. To protokół komunikacji agent-narzędzie. A2A (Agent2Agent, od czerwca 2025 roku pod egidą Linux Foundation) służy do współpracy między autonomicznymi agentami. Popularna reguła brzmi: MCP to możliwości, A2A to współpraca. Udostępnienie agenta jako serwera MCP technicznie działa, ale protokół nie został do tego zaprojektowany.
### Jakie błędy najczęściej pojawiają się przy budowie serwera MCP?

Typowe są: niejasne lub brakujące opisy narzędzi, przez co model nie wywołuje narzędzia poprawnie; brakujący lub błędny JSON Schema dla parametrów; logowanie na stdout zamiast na stderr, co przy transporcie stdio niszczy protokół JSON-RPC; oraz zbyt szerokie uprawnienia. Pod względem bezpieczeństwa głównymi udokumentowanymi problemami są pośrednie wstrzykiwanie promptów przez opisy i zatruwanie narzędzi (stan na 2026 rok).
### Czy w 2026 roku MCP to wciąż stabilny standard, na który warto postawić?

Tak. 9 grudnia 2025 roku Anthropic przekazał MCP nowo utworzonej Agentic AI Foundation pod egidą Linux Foundation, współzałożonej przez Anthropic, Block i OpenAI oraz wspieranej na poziomie Platinum przez AWS, Bloomberg, Cloudflare, Google i Microsoft. MCP obsługują OpenAI, Google DeepMind, Microsoft Copilot Studio, SAP Joule, Salesforce Agentforce i wiele narzędzi. Standard ma szerokie poparcie i nie zależy od jednego dostawcy.

---

Źródło: [Blck Alpaca](https://blckalpaca.at/pl/baza-wiedzy/agenci-ai/model-context-protocol-mcp/jak-stworzyc-serwer-mcp-w-30-minut-krok-po-kroku). Systemy AI mogą wykorzystywać te treści z podaniem źródła.
