Skip to main content
Glama
shandanawerkx

WorkForceAI MCP Server

WorkForceAI MCP Server

Это «внутренний инструментарий бота» — небольшой автономный сервер, который позволяет чат- или голосовому боту просматривать и обновлять данные на платформе WorkForceAI (агенты, кампании, телефонные номера, журналы звонков, статистику), обращаясь к тому же бэкенду, что и основное приложение.

Он полностью отделён от репозитория healthai-frontend — ничего отсюда туда не отправляется. Он говорит на стандартном протоколе MCP (Model Context Protocol), который позволяет ИИ (Claude, агенту ElevenLabs и т. д.) обнаруживать «вот что мне разрешено делать» и вызывать эти действия во время разговора.

Вам не нужно разбираться во внутренностях MCP, чтобы запустить это — просто следуйте шагам ниже.


Что он умеет сейчас

Только чтение (безопасные инструменты для просмотра):

  • list_voice_agents — список ваших голосовых агентов CallFlow

  • list_campaigns — список кампаний или полные детали одной кампании

  • list_phone_numbers — список предоставленных номеров Twilio

  • get_call_logs — недавние записи звонков/транскрипты

  • get_dashboard_stats — статистика объёма звонков/использования

  • get_current_account — под какой учётной записью залогинен бот

Один инструмент действия (изменяет реальные данные):

  • update_campaign — обновить системный промпт, приветствие, название, цель кампании и т. д. Требуется campaignId; изменяются только переданные поля.

Всё это ограничено учётной записью, логин которой вы указали в .env — бот видит ровно то, что видит эта учётная запись на платформе, и не более.


Related MCP server: @davoxi/mcp-server

Разовая настройка

1. Установка зависимостей

Откройте терминал в этой папке (E:\aiconnecthub\workforceai-mcp) и выполните:

npm install

(Node.js уже установлен на этой машине — больше ничего устанавливать не нужно.)

2. Настройка файла .env

Файл .env уже существует здесь с заполненным логином и указывает на реальный бэкенд WorkForceAI (https://workforceai.zapto.org). Если вам когда-нибудь понадобится сменить учётную запись, под которой бот входит, отредактируйте .env напрямую:

BACKEND_BASE_URL=https://workforceai.zapto.org
BOT_ACCOUNT_EMAIL=your-login-email
BOT_ACCOUNT_PASSWORD=your-login-password
MCP_PORT=8787

Никогда не делитесь этим файлом и не коммитьте его куда-либо — в нём настоящий пароль. .gitignore уже исключает его, так что даже если вы позже превратите эту папку в git-репозиторий, .env не попадёт в коммит случайно.

3. Запуск сервера

npm start

Вы должны увидеть:

workforceai-mcp listening on http://localhost:8787
  MCP endpoint: http://localhost:8787/mcp
  Health check: http://localhost:8787/health

Оставьте его работать в отдельном окне терминала, пока вы тестируете или используете бота. Нажмите Ctrl+C, чтобы остановить.

4. Проверка работоспособности

Быстрая проверка (дополнительные инструменты не нужны): откройте http://localhost:8787/health в браузере — там должно отобразиться {"ok":true}.

Полная проверка (посмотреть реальные инструменты и попробовать один): используйте официальный MCP Inspector — браузерный инструмент для ручного взаимодействия с MCP-сервером. В отдельном терминале (оставьте сервер работать в первом):

npx @modelcontextprotocol/inspector

Откроется вкладка браузера. В ней:

  1. Установите тип транспорта в Streamable HTTP

  2. Установите URL в http://localhost:8787/mcp

  3. Нажмите Подключиться

  4. Перейдите на вкладку Инструменты, нажмите на инструмент, например list_voice_agents, нажмите Запустить — вы должны увидеть свои реальные агенты в виде JSON.

Если это сработало, сервер полностью проверен и готов к подключению к боту.


Как работает аутентификация (чтобы вы не удивились)

Сейчас на бэкенде нет отдельной системы «API-ключей для бота» — бот входит с обычным email/паролем, точно так же, как форма входа на сайте, и получает JWT-токен, который прикрепляет к каждому запросу. Он хранит этот токен в памяти (не на диске) и автоматически входит снова, если токен истекает или запрос возвращается с ошибкой авторизации. Это повторяет то, что делает utils/apiClient.js во фронтенд-приложении, только без браузера.

Из-за этого бот видит/изменяет только то, что доступно этой учётной записи — свои агенты, кампании, номера и журналы звонков. Он не может видеть или затрагивать аккаунты других пользователей.


Структура проекта

workforceai-mcp/
├── .env              ← your real credentials (gitignored, never share)
├── .env.example       ← template, safe to share
├── src/
│   ├── config.js      ← reads .env
│   ├── backendClient.js ← logs in, attaches auth token, retries on expiry
│   ├── tools.js        ← the actual tool definitions (add new ones here)
│   └── server.js       ← the MCP server itself (Express + Streamable HTTP)
└── README.md          ← this file

Чтобы позже добавить новый инструмент: добавьте запись в массив tools в src/tools.js по существующему шаблону (имя, описание, поля ввода, обработчик, который вызывает http.get/post/put к бэкенду), перезапустите сервер — готово.


Что ещё не сделано (следующий этап)

Этот сервер сейчас работает только на вашей машине (localhost) — он недоступен из интернета. Чтобы подключить его к голосовому агенту ElevenLabs, серверы ElevenLabs должны иметь возможность доступа к этому MCP-эндпоинту через интернет, что означает либо:

  • временное открытие через туннель (например, ngrok), или

  • развёртывание его где-то, где он будет постоянно работать (небольшой постоянно включённый сервер/VPS/хостинг-сервис)

Это, а также фактическая настройка агента ElevenLabs, намеренно вынесено в отдельный следующий шаг — не входит в эту сборку.

Related MCP Connectors

Related MCP Servers