Развёртывание TellyMCP как одного gateway и одной или нескольких agent-консолей
English · Русский · Main README · README RU
Этот файл описывает текущую standalone-модель для @deadragdoll/tellymcp.
Рекомендуемая топология:
- один gateway node
- одна или несколько agent nodes
- один общий Telegram-бот на gateway
sudo apt install -y python3 make g++
npm config set ignore-scripts false
npm install -g @deadragdoll/tellymcp --foreground-scriptsНа Linux native addon node-pty собирается локально; для Linux ARM64 это
обязательно, потому что зависимость не поставляет подходящий готовый binary.
Если после предыдущей установки pty.node отсутствует, выполни:
npm uninstall -g @deadragdoll/tellymcp
npm install -g @deadragdoll/tellymcp@latest --foreground-scriptsОпционально:
tellymcp browser install
tellymcp extension firefox
tellymcp extension chrome
tellymcp codex-plugin installДля gateway обязательно:
- Redis
- PostgreSQL
Опционально:
- RabbitMQ
Стартовая точка:
Минимально нужные параметры gateway:
TELEGRAM_BOT_TOKEN=
REDIS_HOST=127.0.0.1
DB_HOST=127.0.0.1
DB_USER=
DB_PASSWORD=
DB_NAME=
GATEWAY_PUBLIC_URL=https://your-domain.example/api/gateway
GATEWAY_WS_URL=wss://your-domain.example/api/gateway/ws
GATEWAY_SCOPE_TOKEN=change_me_scope_token
GATEWAY_AUTH_TOKEN=put_strong_shared_transport_token_here
ROOT_PREFIX=/api
PORT=8080
DISTRIBUTED_MODE=gatewayСтартовая точка:
Минимально нужные параметры agent:
DISTRIBUTED_MODE=client
GATEWAY_PUBLIC_URL=https://your-domain.example/api/gateway
GATEWAY_WS_URL=wss://your-domain.example/api/gateway/ws
GATEWAY_SCOPE_TOKEN=change_me_scope_token
GATEWAY_AUTH_TOKEN=put_strong_shared_transport_token_here
GATEWAY_USER_UUID=put_owner_uuid_hereНа машине agent/client Redis не нужен. Временное runtime-состояние хранится
локально, а стабильный gateway client UUID — в .mcpsession.json.
Используйте один и тот же стойкий GATEWAY_AUTH_TOKEN на gateway и всех клиентах.
Не смешивайте его с GATEWAY_SCOPE_TOKEN: последний разделяет данные gateway по scope,
но не аутентифицирует HTTP- или WebSocket-транспорт. Сгенерируйте токен один раз,
например командой openssl rand -hex 32, и не используйте пример значения выше.
Для первого запуска также желательно задать:
TELLYMCP_SESSION_ID=NEW
TELLYMCP_SESSION_LABEL=NEWЕсли нужно attach'иться к уже открытому Firefox или Chrome на агентской машине, включи локальный attach bridge в env этого агента:
BROWSER_ATTACH_ENABLED=true
BROWSER_ATTACH_WS_HOST=127.0.0.1
BROWSER_ATTACH_WS_PORT=9999
BROWSER_ATTACH_WS_PATH=/browser-attach/wsВыгрузи unpacked extension bundle из установленного пакета:
tellymcp extension firefox
tellymcp extension chromeКоманда создаст один из каталогов:
./tellymcp-firefox-attach./tellymcp-chrome-attach
Дальше загрузи его в локальный браузер:
- Firefox:
about:debugging#/runtime/this-firefox->Load Temporary Add-on-> выбратьmanifest.json - Chrome:
chrome://extensions-> включить Developer mode ->Load unpacked-> выбрать выгруженный каталог
После этого browser control panel умеет:
- attach'ить текущую agent-сессию к живой вкладке
- запускать и останавливать structured recording bundles в
.mcp-xchange/web/... - инжектить helper scripts в attached tab
Gateway:
tellymcp run --env .envAgent:
tellymcp run --env .env -s NEWПосле того как в workspace появится .mcpsession.json, дальше обычно достаточно:
tellymcp runGateway поддерживает polling и webhook.
Нужные env:
TELEGRAM_WEBHOOK_ENABLED=true
TELEGRAM_WEBHOOK_PATH=/telegram/webhook
TELEGRAM_WEBHOOK_PUBLIC_URL=https://your-domain.example/api/telegram/webhook
TELEGRAM_WEBHOOK_SECRET=change_me_webhook_secretЕсли nginx уже проксирует location /api/ { ... } на standalone listener, этот же блок покроет:
/api/telegram/webhook/api/gateway/api/filesдля короткоживущих upload/download запросовget_file(type="url")/api/webapp/api/healthz
Отдельный location ^~ /api/files/ рекомендуется, хотя для самой маршрутизации
он не обязателен. В нём следует отключить access log, потому что путь содержит
токен, задать client_max_body_size 32m и отключить buffering запросов и
ответов. Канонический блок приведён в nginx/tellymcp.gw.conf.
Локальный client-mode MCP endpoint:
http://127.0.0.1:8787/mcp
Используй MCP HTTP endpoint, который поднимает tellymcp run.
Настройка dotenv через локальный web-конфигуратор:
tellymcp configuretellymcp doctor --env .envПеред запуском старый env можно нормализовать командой:
tellymcp migrate-env ./old.env > ./.migrated-envРазрушительная очистка:
tellymcp system-prune --env .env --yes- gateway-бот — это основной user-facing control plane
- консоли видны из gateway live registry
- межсессионные задачи идут через xchange records и
partner_note - ответы человеку в Telegram идут через
notify_telegram - browser screenshot для человека лучше отправлять через
browser_screenshot(send_to_telegram=true) - файлы между консолями лучше отправлять через
send_partner_file
Не строй новые setup вокруг:
- pairing codes
- inbox polling APIs
Locallinked-session меню- старых session-link workflow