diff --git a/docs/push.md b/docs/push.md index 84378ea..af60d4c 100644 --- a/docs/push.md +++ b/docs/push.md @@ -113,7 +113,7 @@ `NAVI_PUSH_VAPID_PUBLIC_KEY` / `NAVI_PUSH_VAPID_PRIVATE_KEY` / `NAVI_PUSH_VAPID_SUBJECT` / `NAVI_PUSH_COOLDOWN_SEC` — see [`config.md`](config.md). Generate the VAPID -pair once with `pip install py_vapid && python -m py_vapid gen`. Empty keys = +pair once with `pip install py_vapid && python -m py_vapid --gen --json`. Empty keys = push disabled everywhere (client panel shows the toggle as unavailable). Client side: settings → "Notifications" toggle diff --git a/mcp_servers.d/gnexus-book.json b/mcp_servers.d/gnexus-book.json index e153810..e4adc96 100644 --- a/mcp_servers.d/gnexus-book.json +++ b/mcp_servers.d/gnexus-book.json @@ -1,6 +1,7 @@ { "transport": "sse", "url": "http://192.168.1.170:8001/sse", + "user_key": { "header": "Authorization", "prefix": "Bearer " }, "groups": { "read": [ "search_docs", @@ -22,7 +23,8 @@ "validate_api", "git_status", "git_diff", - "list_pending_changes" + "list_pending_changes", + "delete_pending_change" ] }, "instructions": "MANDATORY for profiles that expose gnexus-book tools: Before answering any question about infrastructure, servers, services, networks, documentation, or system inventory, call gnexus-book tools first.\n\nUse only gnexus-book tool names that are present in the current tool schema. In Navi they are exposed with the mcp__gnexus_book__ prefix (example: mcp__gnexus_book__search_docs), but each profile may expose only some groups. Do not invent or call gnexus-book tools that are not in the current tool list.\n\nQuery mapping by capability:\n- Status or facts about a server/service → search docs first, then read a specific doc or inventory item if those tools are available.\n- Service placement or topology → list inventory and relationships if available.\n- Documentation changes → read the target doc first, then propose a doc or inventory change if write tools are available.\n- Freshness questions → use freshness checks if available.\n- Repository validation/status → use repository tools only if they are available in the current tool schema; otherwise skip this step and continue with available read/write tools.\n\nDo not rely on memory for infrastructure facts. Memory is only for personal user facts and preferences. Always pull infrastructure state from gnexus-book when these tools are available to the active profile.\n\nDo not store raw secrets in documentation.\n\nABSOLUTE RULE — NEVER bypass MCP tools:\nYou MUST NOT use filesystem, terminal, code_exec, or any direct file access to read or write gnexus-book files. The MCP tools are the ONLY valid interface to this knowledge base. Violating this rule bypasses validation, corrupts repository state, and breaks consistency guarantees.\n- To read: use mcp__gnexus_book__search_docs, mcp__gnexus_book__read_doc, mcp__gnexus_book__list_inventory, mcp__gnexus_book__get_inventory_item.\n- To write: use mcp__gnexus_book__propose_doc_change, mcp__gnexus_book__propose_inventory_item_change, mcp__gnexus_book__apply_pending_change, mcp__gnexus_book__commit_changes.\n- NEVER call filesystem write, filesystem smart_edit, terminal, or code_exec on gnexus-book paths.\n\nBefore the final response, decide whether tool execution revealed stable reusable infrastructure facts, service configurations, or relationships. If yes and gnexus-book write tools are available, persist them before answering. If gnexus-book write tools are not available, report the facts that should be persisted. If the fact is user-specific rather than infrastructure documentation, use the memory tool instead. Choose the target based on scope, not habit." diff --git a/mcp_servers.d/hard-panel.json b/mcp_servers.d/hard-panel.json new file mode 100644 index 0000000..e31e793 --- /dev/null +++ b/mcp_servers.d/hard-panel.json @@ -0,0 +1,20 @@ +{ + "transport": "streamable_http", + "url": "http://192.168.1.176:8000/mcp", + "user_key": { "header": "Authorization", "prefix": "Bearer " }, + "headers": { + "Authorization": "Bearer mcp_NFgXQg4IF9V7rQhSxLBrupt3lAsFXJQy", + "Host": "localhost:8000" + }, + "groups": { + "read": [ + "panel_overview", + "server_details", + "server_history", + "services_overview", + "service_incidents", + "events_recent" + ] + }, + "instructions": "MCP tools for hard-panel (GHard Monitor) — server monitoring panel. Read-only observer: servers CPU/RAM/disks, services health, NAS shares, events log. Query mapping: 'how are my servers?' → panel_overview (one call: servers+services+shares); 'what with ?' → server_details (id from panel_overview); disk trend → server_history (hours: 1/6/24/168); service down? → services_overview then service_incidents; what happened recently → events_recent. Start with panel_overview when unsure. Statuses: server online/offline; service up/degraded/down/pending (mode=maintenance/readonly/draining is a work mode, not an outage). Event severities: info/warning/critical. IDs must come from overview tools — never guess. Translate technical slugs into human language. Read-only: changes are made by the human via the web UI (https://hpanel.gnexus.space)." +} diff --git a/mcp_servers.d/synapse.json b/mcp_servers.d/synapse.json new file mode 100644 index 0000000..ac2cf43 --- /dev/null +++ b/mcp_servers.d/synapse.json @@ -0,0 +1,10 @@ +{ + "transport": "streamable_http", + "url": "http://192.168.1.172:8013/mcp", + "user_key": { "header": "Authorization", "prefix": "Bearer " }, + "headers": { + "Authorization": "Bearer mcp_a09d3138c392dfb18ed07d0e9d13b85992a66b1f38b4947f8b42e952608e6da3", + "Host": "localhost:8013" + }, + "instructions": "MCP tools for Gnexus Synapse — notification hub (v1.30.0). Управление хабом уведомлений: источники и выдача API-ключей, типы уведомлений, цели каналов, правила маршрутизации, поток событий и доставок, настройки. Персональный ключ действует ролью владельца: роль user — личный набор (me, my_events_list, my_push_*). Удаление = архив (restore возвращает); секреты настроек write-only. Use when the user asks to send notifications, check delivery status, or configure alert routing." +} diff --git a/mcp_servers.d/tgclient.json b/mcp_servers.d/tgclient.json new file mode 100644 index 0000000..b2be522 --- /dev/null +++ b/mcp_servers.d/tgclient.json @@ -0,0 +1,6 @@ +{ + "transport": "streamable_http", + "url": "http://localhost:8710/mcp", + "user_key": { "header": "Authorization", "prefix": "Bearer " }, + "instructions": "MCP tools for tgclient-mcp — Telegram client inspection and management." +} \ No newline at end of file diff --git a/navi/profiles/developer/config.json b/navi/profiles/developer/config.json index 3fa597b..f5d2f93 100644 --- a/navi/profiles/developer/config.json +++ b/navi/profiles/developer/config.json @@ -13,7 +13,10 @@ "glm-5.3-flash:cloud", "gemma4:31b-cloud", "gemma4:12b-it-qat-128k", - "qwen3.5:397b-cloud" + "qwen3.5:397b-cloud", + "gemma4:26b-a4b-it-q4_K_M", + "kimi-k2.6:cloud", + "qwen3.6:27b" ], "temperature": 0.35, "max_iterations": 100, @@ -63,6 +66,18 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" ] } }, @@ -84,6 +99,18 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" ] } } diff --git a/navi/profiles/discuss/config.json b/navi/profiles/discuss/config.json index ec1978d..111b88c 100644 --- a/navi/profiles/discuss/config.json +++ b/navi/profiles/discuss/config.json @@ -4,7 +4,7 @@ "description": "Creative partner for Q&A, brainstorming, and idea exploration. High creativity, free-form thinking.", "short_description": "Creative Q&A and idea discussion — best for open questions, brainstorming, and exploring concepts.", "model": [ - "glm-5.3-flash:cloud", + "glm-5.3-flash:cloud", "gemma4:12b-it-qat-128k", "gemma4:31b-cloud", "gemma4:12b-it-qat-128k", @@ -49,21 +49,40 @@ ], "mcp": { "gnexus-book": [ - "read" + "read", + "write" ], "gnexus-creds": [ - "read" + "read", + "write" ], "navi-web": [ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" ] } }, "subagent": { "native": [], - "mcp": {} + "mcp": { + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ] + } } } } diff --git a/navi/profiles/modeler_3d/config.json b/navi/profiles/modeler_3d/config.json index 89d8733..52052d0 100644 --- a/navi/profiles/modeler_3d/config.json +++ b/navi/profiles/modeler_3d/config.json @@ -12,7 +12,11 @@ "model": [ "glm-5.3-flash:cloud", "gemma4:12b-it-qat-128k", - "gemma4:31b-cloud" + "gemma4:31b-cloud", + "qwen3.5:397b-cloud", + "kimi-k2.6:cloud", + "gemma4:26b-a4b-it-q4_K_M", + "qwen3.6:35b" ], "temperature": 0.35, "max_iterations": 70, @@ -64,6 +68,22 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } }, @@ -81,6 +101,22 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } } diff --git a/navi/profiles/navi_code/config.json b/navi/profiles/navi_code/config.json index d556dd2..b8bdd5d 100644 --- a/navi/profiles/navi_code/config.json +++ b/navi/profiles/navi_code/config.json @@ -67,6 +67,22 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } }, @@ -86,6 +102,22 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } } diff --git a/navi/profiles/secretary/config.json b/navi/profiles/secretary/config.json index bee3d16..69f3d95 100644 --- a/navi/profiles/secretary/config.json +++ b/navi/profiles/secretary/config.json @@ -11,7 +11,11 @@ "llm_backend": "ollama", "model": [ "gemma4:31b-cloud", - "gemma4:12b-it-qat-128k" + "gemma4:12b-it-qat-128k", + "qwen3.5:397b-cloud", + "kimi-k2.6:cloud", + "gemma4:26b-a4b-it-q4_K_M", + "qwen3.6:27b" ], "temperature": 0.45, "max_iterations": 70, @@ -62,6 +66,22 @@ ], "navi_ui": [ "ui" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } }, @@ -84,6 +104,22 @@ ], "navi_ui": [ "ui" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" + ], + "tgclient": [ + "read", + "write" ] } } diff --git a/navi/profiles/server_admin/config.json b/navi/profiles/server_admin/config.json index cf56a8e..aba8c57 100644 --- a/navi/profiles/server_admin/config.json +++ b/navi/profiles/server_admin/config.json @@ -10,9 +10,12 @@ }, "llm_backend": "ollama", "model": [ - "glm-5.3-flash:cloud", + "gemma4:31b-cloud", "gemma4:12b-it-qat-128k", - "gemma4:31b-cloud" + "qwen3.5:397b-cloud", + "gemma4:26b-a4b-it-q4_K_M", + "kimi-k2.6:cloud", + "qwen3.6:27b" ], "temperature": 0.25, "max_iterations": 100, @@ -70,6 +73,17 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "hard-panel": [ + "read" + ], + "tgclient": [ + "read", + "write" ] } }, @@ -98,6 +112,17 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "hard-panel": [ + "read" + ], + "tgclient": [ + "read", + "write" ] } } diff --git a/navi/profiles/tool_developer/config.json b/navi/profiles/tool_developer/config.json index 9d2c883..01ce1e8 100644 --- a/navi/profiles/tool_developer/config.json +++ b/navi/profiles/tool_developer/config.json @@ -10,9 +10,12 @@ }, "llm_backend": "ollama", "model": [ - "glm-5.3-flash:cloud", + "gemma4:31b-cloud", "gemma4:12b-it-qat-128k", - "gemma4:31b-cloud" + "qwen3.5:397b-cloud", + "gemma4:26b-a4b-it-q4_K_M", + "kimi-k2.6:cloud", + "qwen3.6:27b" ], "temperature": 0.25, "max_iterations": 100, @@ -64,6 +67,18 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" ] } }, @@ -86,6 +101,18 @@ "search", "browse", "request" + ], + "gntodo": [ + "read", + "write" + ], + "gnexus-book": [ + "read", + "write" + ], + "gnexus-creds": [ + "read", + "write" ] } }