diff --git a/.env.example b/.env.example index 77a7b4a..ab84c2f 100644 --- a/.env.example +++ b/.env.example @@ -65,6 +65,8 @@ FIREFLY_PAT= CALENDAR_MCPS= # MCP beavergram (telegram-history) BEAVERGRAM_MCP= +# MCP msos (таскер рабочих проектов): полный URL с токеном, https://…/mcp?token=… +MSOS_MCP= ### t3code (руки диспетчера, с S10) ########################################### diff --git a/config.py b/config.py index 2f35699..047e383 100644 --- a/config.py +++ b/config.py @@ -245,6 +245,15 @@ vibegram_mcps = ( ) vibegram_exposed = (ExposedMcp(name="vibegram"),) if VIBEGRAM else () +# §4.4: msos - таскер рабочих проектов (скилл `задачи`), URL с токеном в env, +# только у диспетчера. +msos_mcps = ( + [McpServer.http(name="msos", url=os.environ["MSOS_MCP"])] + if os.environ.get("MSOS_MCP") + else [] +) +msos_exposed = (ExposedMcp(name="msos"),) if msos_mcps else () + # §5: t3code-mcp - сосед по compose (профиль t3), машины и allowlist проектов # в его t3code.toml; токены t3 живут в его env, gateway их не видит. T3CODE_MCP = os.environ.get("T3CODE_MCP", "http://t3code-mcp:8000/mcp") @@ -278,6 +287,7 @@ mcps: list[McpServerT] = [ *ha_mcps, *vibegram_mcps, *t3code_mcps, + *msos_mcps, ] # Руки глубокого (§4.4): firefly без delete_*, obsidian-fs не даётся - свои @@ -311,7 +321,7 @@ def dispatcher(name: str, model: str, effort: str | None = None) -> ClaudeAgent: ), # §4.4: t3code и вайбграм - руки диспетчера (мастер, ветки), глубоким # не даются: наружу и в код ходит только он. - expose_mcps=(*CLAUDE_MCPS, *t3code_exposed, *vibegram_exposed), + expose_mcps=(*CLAUDE_MCPS, *t3code_exposed, *vibegram_exposed, *msos_exposed), )