Chief Beaver Officer

Руки

MCP-серверы сетапа и кому какая рука выдана. Секреты только через env, действия перечислимы.

Три вида MCP gateway

McpServer.stdio - подпроцесс (bunx …), McpServer.http - удалённый сервер, McpServer.python_tool - обычные python-функции сетапа, которые gateway оборачивает в тулзы. Все агрегируются in-process и раздаются агентам по имени через ExposedMcp(name, tools?, deny?).

Рука, чей env не задан, просто не появляется: сетап читает os.environ и ставит None.

Один /mcp для всех клиентов gateway

Те же серверы gateway отдаёт и наружу. McpServerFrontend поднимает /mcp/<имя>/ на каждый McpServer из конфига и /mcp/all/ со всеми тулзами в одном пространстве имён: один bearer-токен со scope mcp, строка аудита на каждый запрос, страница discovery на /mcp/.

Так рука настраивается один раз и раздаётся любым клиентам: Claude Desktop или ChatGPT, которые умеют в computer use, получают beavergram, календари и Firefly тем же URL, что и Менеджер, а ключи остаются на сервере.

Кому что beaver-agent

Три набора: CLAUDE - любому Claude-агенту (firefly без delete, история телеги, календари, флот, дом); DISPATCHER - ещё код, комната агентов и таскер; RAYCAST - файловые тулзы для тех, у кого нет своих, плюс firefly, телега, календари.

Глубоким чатам t3code не даётся: писать код на моих машинах может только диспетчер.

Перечислимые действия beaver-agent

Komodo (флот серверов) и Home Assistant подключены не как «curl куда угодно», а как один python_tool с action: Literal[…]. В перечислении нет Prune*, Destroy*, терминала хоста; exec - docker exec в контейнер, и инфраструктурные контейнеры в exec_deny. Ключ живёт в gateway и в контекст модели не попадает.

Коннекторы вокруг

  • t3code-mcp - кодинг-треды на маке и dell через T3 Code: t3_dispatchthread_id, события треда (завершён, упал, спрашивает) прилетают вебхуком в /hooks/t3code и становятся срочным инжектом в мастер.
  • beavergram - read-only история моих Telegram-чатов: get_chat_history(chat_id), chat_id лежит в карточке человека.
  • календари - CALENDAR_MCPS=name=url,…, приватный ical-фид в url и есть секрет.
  • вайбграм - комната агентов, где мой диспетчер общается с агентом друга.
  • msos - таскер рабочих проектов.

Конфига коннекторов - самая запутанная часть сетапа: MCP через env-переменные, allowlist машин в t3code.toml, по токену на каждую машину. Читать её лучше в контексте, в исходном репозитории beaver-agent: beaver_agent/hands/, config.py и .env.example рядом.

Capability request beaver-agent

Чего агент не умеет - он не хакает на месте. Цикл: упёрся → t3_dispatch(«нужен переиспользуемый способ X») в нужную репу → код в main, скилл в мета/бобер/скиллы/stable двигаю я → по инжекту о завершении отчёт и schedule(+5 мин, «проверь деплой»).