You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit efb2187
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -642,6 +642,9 @@ Security behavior:
642
642
`TELEGRAM_ALLOW_SERVER_ROOTS_FALLBACK=1` to fall back to the server CLI roots
643
643
in that case (opt-in; the default stays deny-all). The same opt-in also applies
644
644
when `list_roots` fails unexpectedly and no client paths could be recovered.
645
+
-`roots/list` times out after `TELEGRAM_ROOTS_TIMEOUT_SECONDS` (default 10).
646
+
With server roots configured, `TELEGRAM_SERVER_ROOTS_ONLY=1` uses them directly
647
+
and skips `roots/list`; client Roots are then ignored.
645
648
- Paths are resolved through real paths and must stay inside an allowed root.
646
649
- Traversal, wildcard-like, shell-like, and null-byte path patterns are rejected.
647
650
- Relative paths resolve under the first allowed root.
@@ -844,6 +847,7 @@ Telegram messages, display names, chat titles, and button labels are untrusted c
844
847
-**Database is locked:** make sure no other process is using the same file session.
845
848
-**`AuthKeyDuplicatedError` / "Another telegram-mcp process is already connected with this session":** two processes tried to connect the same Telegram session at once (e.g. an MCP client restarted the connector before the old process exited), which Telegram rejects and can invalidate the session for both. The server now takes an exclusive lock per session before connecting; a second concurrent launch waits briefly (default 20s, override with `TELEGRAM_LOCK_GRACE_SECONDS`) for the first to release it and otherwise exits without ever calling `connect()`, instead of racing into a duplicate connection. Retry once only one instance is running — the refusal names the PID holding the lock. If several instances on this host are meant to share one session (all reaching Telegram from the same IP), set `TELEGRAM_SESSION_LOCK=shared`; see [Sharing one session from one host](#sharing-one-session-from-one-host).
846
849
-**File tools are disabled:** pass allowed roots or configure MCP Roots in your client.
850
+
-**File tools wait for `roots/list`:** configure server roots and set `TELEGRAM_SERVER_ROOTS_ONLY=1`.
847
851
-**Path rejected:** ensure the path is inside an allowed root and does not use traversal or wildcard patterns.
848
852
-**Auth errors after password changes:** regenerate your session string.
0 commit comments