pbx-mcp — MCP-сервер для Claude Code: Asterisk и FreeSWITCH
Подключает ИИ-ассистента к живой АТС на Asterisk или FreeSWITCH: посмотреть каналы, транки и состояние регистрации SIP.
claude mcp add --env ASTERISK_AMI_HOST=<ASTERISK_AMI_HOST> --env ASTERISK_AMI_PORT=<ASTERISK_AMI_PORT> --env ASTERISK_AMI_USERNAME=<ASTERISK_AMI_USERNAME> --env ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> --env ASTERISK_AMI_TLS=<ASTERISK_AMI_TLS> --transport stdio pbx-mcp -- npx -y pbx-mcpЧто делает pbx-mcp
pbx-mcp ставит перед ассистентом один набор инструментов вместо двух разных командных языков. Asterisk отвечает по AMI, FreeSWITCH — по ESL, и раньше приходилось держать в голове оба словаря. Теперь достаточно спросить, какие абоненты сейчас не в сети, и модель сама вызовет нужную команду на коммутаторе.
Инструментов двенадцать, по шесть на каждый движок, и все они только читают. Четыре инструмента управления вызовом — asterisk_originate, asterisk_hangup, freeswitch_originate и freeswitch_hangup — не появятся, пока не выставите PBX_MCP_ALLOW_WRITE=true. Отдельно включается провижининг для Asterisk: шесть инструментов для транков и экстеншенов регистрируются через PBX_MCP_ALLOW_PROVISION, и без заполненного PBX_MCP_TRUNK_ALLOW создание транка отклоняется.
Настройка идёт через переменные окружения. Задаёте блок Asterisk, блок FreeSWITCH или оба — сервер поднимет инструменты только для того, что реально настроено. Нужен Node 18 или новее, есть готовый Docker-образ. В manager.conf пользователю AMI хватит read = system,call,command и write = command; originate добавляйте, только если собираетесь включать режим записи.
Какие задачи решает
- посмотреть, какие каналы сейчас активны и кто звонит
- разобраться, почему SIP-транк не регистрируется
- выгрузить диалплан контекста или отдельного экстеншена
- проверить состояние PJSIP-эндпоинтов и число контактов
- выполнить произвольную команду CLI на Asterisk
Примеры запросов агенту
- Покажи все активные каналы на Asterisk с caller ID и длительностью
- Почему мой SIP-транк не регистрируется? Проверь статус шлюза
- Выгрузи диалплан контекста
from-internal
Как установить pbx-mcp
Командой платформы
claude mcp add --env ASTERISK_AMI_HOST=<ASTERISK_AMI_HOST> --env ASTERISK_AMI_PORT=<ASTERISK_AMI_PORT> --env ASTERISK_AMI_USERNAME=<ASTERISK_AMI_USERNAME> --env ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> --env ASTERISK_AMI_TLS=<ASTERISK_AMI_TLS> --transport stdio pbx-mcp -- npx -y pbx-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Командой платформы
codex mcp add pbx-mcp --env ASTERISK_AMI_HOST=<ASTERISK_AMI_HOST> --env ASTERISK_AMI_PORT=<ASTERISK_AMI_PORT> --env ASTERISK_AMI_USERNAME=<ASTERISK_AMI_USERNAME> --env ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> --env ASTERISK_AMI_TLS=<ASTERISK_AMI_TLS> -- npx -y pbx-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Файл настроек
{
"mcpServers": {
"pbx-mcp": {
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_HOST": "<ASTERISK_AMI_HOST>",
"ASTERISK_AMI_PORT": "<ASTERISK_AMI_PORT>",
"ASTERISK_AMI_USERNAME": "<ASTERISK_AMI_USERNAME>",
"ASTERISK_AMI_PASSWORD": "<ASTERISK_AMI_PASSWORD>",
"ASTERISK_AMI_TLS": "<ASTERISK_AMI_TLS>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Файл настроек
{
"servers": {
"pbx-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pbx-mcp"
],
"env": {
"ASTERISK_AMI_HOST": "<ASTERISK_AMI_HOST>",
"ASTERISK_AMI_PORT": "<ASTERISK_AMI_PORT>",
"ASTERISK_AMI_USERNAME": "<ASTERISK_AMI_USERNAME>",
"ASTERISK_AMI_PASSWORD": "<ASTERISK_AMI_PASSWORD>",
"ASTERISK_AMI_TLS": "<ASTERISK_AMI_TLS>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
Командой платформы
gemini mcp add -e ASTERISK_AMI_HOST=<ASTERISK_AMI_HOST> -e ASTERISK_AMI_PORT=<ASTERISK_AMI_PORT> -e ASTERISK_AMI_USERNAME=<ASTERISK_AMI_USERNAME> -e ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> -e ASTERISK_AMI_TLS=<ASTERISK_AMI_TLS> pbx-mcp npx -y pbx-mcpВместо <…> подставьте свои значения. Ещё 5 переменных окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о pbx-mcp
Как установить pbx-mcp в Claude Code?
Одной командой: claude mcp add pbx-mcp -e ASTERISK_AMI_PASSWORD=<ASTERISK_AMI_PASSWORD> -e FREESWITCH_ESL_PASSWORD=<FREESWITCH_ESL_PASSWORD> -- npx -y pbx-mcp. Пароли подставьте свои.
Что делает pbx-mcp?
Даёт ассистенту инструменты для чтения состояния Asterisk по AMI и FreeSWITCH по ESL: каналы, эндпоинты, диалплан, статус. Управление вызовами включается отдельным флагом.
Какие права нужны пользователю AMI?
Минимум read = system,call,command и write = command. Право originate понадобится, только если включите режим записи через PBX_MCP_ALLOW_WRITE.