Към съдържанието

Какво е MCP сървър и как телефонира

September 2, 2026 · 7 мин четене

MCP сървърът е интерфейс, който позволява на AI редактор или асистент (Claude Code, Cursor, Windsurf и други) по време на работа да достигне до инструмент на външна услуга и да го използва директно - а не само да говори за него. Model Context Protocol (MCP) е отворен стандарт, чрез който редакторът изисква списък с наличните инструменти, избира подходящия според заявката и го извиква с реални параметри; сървърът от другата страна изпълнява инструмента и връща резултата в разговора. При volai един от тези инструменти е make_call - затова AI редакторът може буквално да вдигне телефона и да се обади на някого, без да напишете нито един ред код.

Какво е MCP сървър?

Model Context Protocol е представен от Anthropic през ноември 2024 г. като отворен стандарт за свързване на AI модели с външни инструменти и данни - вместо всеки редактор и всяка услуга да измисля собствена интеграция, те говорят на един общ протокол. MCP разграничава две страни: MCP клиентът е приложението, което сте стартирали (Claude Code, Cursor, Claude Desktop), а MCP сървърът е интерфейсът, който дадена услуга (в случая volai) излага навън - със списък от инструменти, които може да бъде помолена да изпълни.

MCP сървърът на volai работи на адрес https://volai.cz/mcp (отдалечен сървър, достъпен чрез т.нар. streamable HTTP транспорт, а не процес на Вашия диск) и предлага 110 инструмента (към 3 ноември 2026 г.; актуалният списък винаги е на /docs/mcp) - от проверка на баланса и покупка на номер до изпращане на SMS и, да, провеждане на обаждане.

Как MCP клиентът извиква инструмент?

Между инсталирането на сървъра и реалното телефонно обаждане има няколко стъпки - редакторът ги изпълнява всичките, а Вие пишете само заявката:

  1. Редакторът се свързва със сървъра и се удостоверява с API ключ (Authorization: Bearer vk_...) - същия като за REST API, със същото ограничение от 60 заявки в минута.
  2. Сървърът връща списък с инструменти - за всеки име, описание на разбираем език и точната форма на параметрите му (JSON схема).
  3. Моделът чете описанията и избира инструмента, който отговаря на заявката - например make_call, когато заявката казва „обади се“.
  4. Редакторът извиква инструмента с реални параметри - действителен телефонен номер и действителни инструкции за агента, а не общ текст.
  5. Сървърът от наша страна изпълнява инструмента - установява обаждането, удържа от баланса - и връща резултата два пъти: като четимо изречение и същевременно като структурирани данни (structuredContent) за клиент, който може да ги чете директно.
  6. Моделът получава резултата обратно в разговора и Ви казва какво се е случило - или продължава с друг инструмент, например get_call, за да изчака края на обаждането и да донесе преписа.

Пример: make_call на практика

Казвате на редактора какво искате с обикновени думи - например: „Обади се на +420777123456, представи се като рецепционист на кафене Nordic Coffee и разбери дали обаждащият се иска да резервира маса.“ Редакторът превръща това в извикване на инструмента make_call - тази част не я виждате директно, но отвътре изглежда така:

json
{
  "to": "+420777123456",
  "systemPrompt": "Вие сте рецепционистът на кафене Nordic Coffee. Вдигнете обаждането, представете се и разберете дали обаждащият се иска да резервира маса - ако да, попитайте за име и час."
}

Инструментът изисква получател (to - чешки или словашки номер, единствените, на които volai може да се обажда днес) и точно ЕДИН от три начина за провеждане на обаждането - agentId (обаждането води Вашият собствен агент), from (обикновено свързване на два номера, без агент) или systemPrompt (пробно обаждане без собствен номер - една заявка, нищо не се купува и не се настройва предварително). Сървърът отговаря и по двата начина едновременно (откъс - пълната форма на обекта за обаждане е в справочника за REST API):

json
{
  "call": {
    "id": "c_7a2f91de",
    "direction": "out",
    "to": "+420777123456",
    "status": "initiated",
    "startedAt": 1756111400000
  },
  "trial": true,
  "from": "+420..."
}

Обаждането тръгва от споделен демо номер на volai, следва инструкциите в systemPrompt и се таксува нормално, включително надбавката за агент - само с по-строго дневно ограничение, отколкото при истински агент: най-много три пробни обаждания без собствен номер на акаунт на ден (описано в справочника за REST API, към 6 септември 2026 г.). Затова отговорът съдържа и trial: true, и from със споделения демо номер на volai - за да е ясно, че обаждането не е тръгнало от Вашия собствен номер.

Как MCP сървърът е свързан с телефонните обаждания?

Самият MCP сървър не вдига телефон - той е входната врата, през която Вашата заявка стига до същинската логика на услугата. Зад нея make_call извиква същия слой като REST API и порталът, който установява обаждането в телефонната мрежа точно както всяко друго изходящо обаждане на volai - през SIP trunk, който свързва интернет сигнализацията с действителната телефонна мрежа (как точно е описано в статията Какво е SIP trunk). MCP е езикът, на който говори AI редакторът; SIP trunk е езикът, на който говори телефонната мрежа - а логиката на услугата между тях ги свързва.

Сигурност

MCP се удостоверява със същия API ключ като REST API - който го притежава, може да харчи Вашия баланс от Ваше име: да купува номера, да провежда обаждания, да изпраща SMS, да създава агенти. Ключът принадлежи единствено в конфигурацията на редактора, никога във фронтенд код или в хранилище в GitHub. При съмнение за изтичане решението е на един бутон в портала (API и MCP) - изтриването на ключа влиза в сила веднага и не може да бъде отменено.

Втори слой защита работи на сървъра, а не в заявката. Номер, добавен в списъка за необаждане (инструментът add_to_dnc), блокира обажданията през make_call и през релето независимо от това, какво пише в заявката - моделът не трябва сам да помни кого не бива да търси, границата се налага от сървъра. В същата посока инструментите, които струват пари или променят нещо необратимо (make_call, send_sms, delete_agent...), носят собствени флагове в протокола - сървърът казва предварително дали действието е необратимо или безопасно за повторение. Платените действия умишлено НЕ са идемпотентни: второто извикване на make_call след прекъсната връзка провежда второ обаждане и удържа второ плащане, затова добре изграденият клиент не го повтаря сам след изтичане на времето.

Едно нещо липсва умишлено: освобождаването на закупен телефонен номер или мобилен номер не е сред 110-те инструмента. Номер може да се купи през MCP, но не и да се освободи - необратимо действие, което може да струва на клиента номера, отпечатан на неговата листовка, изисква портала или REST API, а не едно погрешно разбрано изречение в заявка.

Как да го изпробвате

Инсталирането в Claude Code е една команда в терминала (Cursor, Windsurf и Claude Desktop имат по няколко реда JSON, вижте /docs/mcp):

bash
claude mcp add --transport http volai https://volai.cz/mcp \
  --header "Authorization: Bearer vk_YOUR_KEY"
ИскатеНакъде по-нататък
Пълния списък с инструменти и настройка за други редакториMCP сървър
Същите данни чрез обикновени HTTP заявки от Вашия собствен бекендREST API

Къде всъщност отива обаждането?

make_call в крайна сметка праща звука в действителната телефонна мрежа през SIP trunk - какво е това и защо е нужен на един AI гласов агент, обяснява статията Какво е SIP trunk.

Изпробвайте volai - първите 50 kr са от нас

Създавате акаунт за минута и в него вече има начален баланс за обаждания и номер - SMS изпращате след първото зареждане.

Изпробвайте безплатно