Czym jest serwer MCP i jak łączy się z telefonowaniem
September 2, 2026 · 7 minut czytania
Serwer MCP to interfejs, dzięki któremu edytor AI lub asystent (Claude Code, Cursor, Windsurf i inne) może w trakcie pracy sięgnąć po narzędzie zewnętrznej usługi i od razu z niego skorzystać - a nie tylko o nim rozmawiać. Model Context Protocol (MCP) to otwarty standard, za pomocą którego edytor prosi o listę dostępnych narzędzi, wybiera właściwe dla danego polecenia i wywołuje je z prawdziwymi parametrami; serwer po drugiej stronie wykonuje narzędzie i odsyła wynik do rozmowy. W volai jednym z takich narzędzi jest make_call - dlatego edytor AI może dosłownie podnieść słuchawkę i do kogoś zadzwonić, a Państwo nie napiszą ani jednej linijki kodu.
Czym jest serwer MCP?
Model Context Protocol zaprezentowała w listopadzie 2024 roku firma Anthropic jako otwarty standard łączenia modeli AI z zewnętrznymi narzędziami i danymi - zamiast tego, by każdy edytor i każda usługa wymyślały własną, osobną integrację, posługują się jednym wspólnym protokołem. MCP rozróżnia dwie strony: klient MCP to uruchomiona u Państwa aplikacja (Claude Code, Cursor, Claude Desktop), a serwer MCP to interfejs, który usługa (tutaj volai) udostępnia na zewnątrz - z listą narzędzi, które można wywołać.
Serwer MCP volai działa pod adresem https://volai.cz/mcp (to serwer zdalny, połączony przez tzw. transport streamable HTTP, a nie proces na Państwa dysku) i udostępnia 110 narzędzi (stan na 3 listopada 2026; aktualną listę zawsze znajdą Państwo na /docs/mcp) - od sprawdzenia salda przez zakup numeru po wysłanie SMS-a i, tak, wykonanie połączenia.
Jak klient MCP wywołuje narzędzie?
Między instalacją a prawdziwym połączeniem dzieje się kilka kroków, które wykonuje sam edytor - Państwo piszą tylko polecenie:
- Edytor łączy się z serwerem i uwierzytelnia kluczem API (
Authorization: Bearer vk_...) - tym samym kluczem co REST API, z tym samym limitem zapytań: 60 na minutę. - Serwer odsyła listę narzędzi - przy każdym z nich nazwę, opis czytelny dla człowieka i dokładny kształt parametrów (schemat JSON).
- Model na podstawie opisu wybiera to, które pasuje do polecenia - na przykład
make_call, gdy w poleceniu padło „zadzwoń”. - Edytor wywołuje narzędzie z prawdziwymi parametrami - numerem telefonu i instrukcjami dla agenta, a nie ogólnym tekstem.
- Serwer po naszej stronie wykonuje narzędzie - zakłada połączenie, pobiera saldo - i zwraca wynik dwukrotnie: jako czytelne zdanie oraz jednocześnie jako dane strukturalne (
structuredContent), by klient, który to potrafi, mógł je wziąć wprost. - Model dostaje wynik z powrotem do rozmowy i mówi, co się stało - albo przechodzi do kolejnego narzędzia, na przykład
get_call, by poczekać na koniec rozmowy i przynieść Państwu transkrypcję.
Przykład: make_call w praktyce
Edytorowi mówią Państwo zwykłym zdaniem, czego chcą - na przykład: „Zadzwoń pod +420777123456, przedstaw się jako recepcjonista kawiarni Kavka i dowiedz się, czy gość chce zarezerwować stolik.” Edytor składa z tego wywołanie narzędzia make_call - dokładnie tego Państwo nie zobaczą, ale pod maską wygląda to tak:
{
"to": "+420777123456",
"systemPrompt": "Jesteś recepcjonistą kawiarni Kavka. Odbierz połączenie, przedstaw się i zapytaj, czy dzwoniący chce zarezerwować stolik - jeśli tak, zapytaj o imię i godzinę."
}Narzędzie wymaga celu (to - czeskiego lub słowackiego numeru, bo tylko na takie volai dziś dzwoni) i dokładnie JEDNEGO z trzech sposobów prowadzenia rozmowy - agentId (poprowadzi ją Państwa agent), from (zwykłe połączenie dwóch numerów bez agenta) albo systemPrompt (połączenie próbne bez własnego numeru - jedno zapytanie, nic nie trzeba wcześniej kupować ani zakładać). Serwer odpowiada od razu także w formie strukturalnej (to wycinek - pełny kształt obiektu połączenia jest w dokumentacji REST API):
{
"call": {
"id": "c_7a2f91de",
"direction": "out",
"to": "+420777123456",
"status": "initiated",
"startedAt": 1756111400000
},
"trial": true,
"from": "+420..."
}Połączenie wychodzi ze wspólnego numeru demo volai, przebiega według instrukcji w systemPrompt i jest rozliczane normalnie, łącznie z dopłatą za agenta - tylko z ostrzejszym dziennym limitem niż przy własnym agencie: najwyżej trzy połączenia próbne bez własnego numeru na konto dziennie (limit opisano w dokumentacji REST API, stan na 6 września 2026). Dlatego odpowiedź zawiera też trial: true oraz from ze wspólnym numerem demo volai, by było jasne, że połączenie nie wyszło z Państwa własnego numeru.
Jak MCP łączy się z telefonowaniem?
Sam serwer MCP żadnego telefonu nie odbiera - to tylko brama wejściowa, którą polecenie trafia do prawdziwej logiki usługi. Za nią make_call wywołuje tę samą warstwę co REST API i portal, ta zakłada połączenie w sieci telefonicznej i dalej wszystko idzie tak jak przy każdym innym połączeniu wychodzącym volai - przez SIP trunk, który łączy internetową sygnalizację z prawdziwą siecią telefoniczną (jak dokładnie, opisuje artykuł Czym jest SIP trunk). MCP jest więc językiem, którym mówi edytor AI, SIP trunk jest językiem, którym mówi sieć telefoniczna - a pomiędzy nimi leży logika usługi, która łączy jedno z drugim.
Bezpieczeństwo
MCP autoryzuje się tym samym kluczem API co REST API - kto go ma, może w Państwa imieniu wydawać saldo: kupować numery, dzwonić, wysyłać SMS-y, zakładać agentów. Klucz należy więc wyłącznie do konfiguracji edytora, nigdy do kodu frontendu ani do repozytorium na GitHubie. Podejrzenie wycieku załatwia jeden przycisk w portalu (API i MCP) - usunięcie klucza działa natychmiast i nie można go cofnąć.
Druga warstwa ochrony działa na serwerze, nie w poleceniu. Numer dodany do listy numerów, na które nie wolno dzwonić (narzędzie add_to_dnc), blokuje połączenia przez make_calli przez relay niezależnie od tego, co napisano w poleceniu - model AI nie musi sam pamiętać, do kogo dzwonić nie wolno, granicy pilnuje serwer. Podobnie narzędzia, które kosztują pieniądze albo zmieniają coś nieodwracalnie (make_call, send_sms, delete_agent...), niosą w protokole własne znaczniki - serwer z góry mówi, czy akcja jest nieodwracalna, czy można ją bezpiecznie powtórzyć. Akcje płatne celowo NIE SĄ idempotentne: drugie wywołanie tego samego make_call po zerwaniu łączności wykona drugie połączenie i pobierze drugą płatność, więc dobry klient po przekroczeniu czasu nie powtarza go sam z siebie.
Jednej rzeczy zupełnie celowo brakuje: zwolnienie kupionego numeru telefonu ani numeru SMS nie należy do 110 narzędzi. Numer przez MCP kupić można, anulować go nie - do nieodwracalnej akcji, która może pozbawić klienta numeru wydrukowanego na ulotce, potrzebny jest portal lub REST API, a nie jedno źle zrozumiane zdanie w poleceniu.
Jak to wypróbować
Instalacja w Claude Code to jedno polecenie w terminalu (Cursor, Windsurf i Claude Desktop mają własne kilka linijek JSON, zob. /docs/mcp):
claude mcp add --transport http volai https://volai.cz/mcp \
--header "Authorization: Bearer vk_TWOJ_KLUCZ"| Czego Państwo szukają | Dokąd dalej |
|---|---|
| Pełna lista narzędzi i instalacja w innych edytorach | Serwer MCP |
| Te same dane przez zwykłe zapytania HTTP z własnego backendu | REST API |
A dokąd to połączenie naprawdę trafia?
make_call ostatecznie wpuszcza dźwięk do prawdziwej sieci telefonicznej przez SIP trunk - czym on jest i dlaczego potrzebuje go agent głosowy AI, wyjaśnia artykuł Czym jest SIP trunk.
Wypróbuj volai - pierwsze 50 kr na nasz koszt
Konto zakładają Państwo w minutę i od razu mają na nim saldo startowe na połączenia i numer - SMS-y wyślą Państwo po pierwszym doładowaniu.
Powiązane artykuły
Czym jest SIP trunk
SIP trunk to połączenie danych, które przenosi rozmowy przez internet zamiast kablem - dokładnie to, czego agent głosowy AI potrzebuje, by odebrać telefon.
Pięć pytań przed zakupem recepcjonisty AI
Cena, uruchomienie w 5 minut, przekierowanie numeru w O2/T-Mobile/Vodafone, numery słowackie i VAT - pięć odpowiedzi prosto z cennika i ustawień volai.
Ile kosztuje recepcjonista AI dla małej firmy
Zestawienie ceny recepcjonisty AI przy telefonie: numer, minuty i agent z cennika volai, trzy scenariusze w zależności od ruchu oraz porównanie z czeskimi dostawcami.