Root cause: start-bot.ps1 запускает claude с --strict-mcp-config --mcp-config
.claude/mcp/<role>.json → грузятся ТОЛЬКО серверы из role-файла (~/.claude.json
игнорируется). tradein был только в ~/.claude.json → в bot-окнах не появлялся,
несмотря на whitelist во frontmatter (whitelist разрешает тулзу, но не поднимает сервер).
- start-bot.ps1: экспорт TRADEIN_DB_URI из ~/.claude.json (секрет не коммитится)
- analyst.json + backend.json: блок postgres-tradein с ${TRADEIN_DB_URI}
Каждое bot-окно грузит ТОЛЬКО нужные роли серверы (не все 7+ в каждом окне).
Выигрыш: не спавнить heavy-серверы зря (docker postgres в frontend/qa), right-size
eager-набор, чистый tool-surface на роль. (Контекст tool-search и так бережёт —
deferred ≈ бесплатно; это про процессы + eager + ясность.)
- .claude/mcp/{analyst,backend,frontend,reviewer,qa}.json — self-contained per-role
конфиги. Секреты НЕ инлайнятся: ${OBSIDIAN_API_KEY}/${GENDESIGN_DB_URI}/
${GLITCHTIP_TOKEN} через env-подстановку (.mcp.json env expansion, подтв. в доках).
Матрица: forgejo+obsidian+context7 eager везде; pg-gendesign eager у backend/reviewer,
deferred у analyst; UI (playwright/a11y/lighthouse/shadcn) только frontend/qa; fetch+
glitchtip у backend; glitchtip у qa.
- start-bot.ps1: извлекает MCP-секреты из ~/.claude.json (единый источник) → export →
запускает `claude --strict-mcp-config --mcp-config .claude/mcp/<role>.json`.
Main/интерактивное окно (без start-bot.ps1) по-прежнему видит полный .mcp.json+user.