# Telegram connection status

Reviewed November 5, 2026. `daedro-telegram` is the configured standalone `aip-telegram` stdio MCP, separate from Telegram Desktop archive processing.

## Verified existing connector

A real MCP initialize and tools/list returned 24 tools. The read-only `telegram_auth_status` call returned `connected`. No chats, messages, participants, session contents or credentials were retrieved; no messages were sent. This establishes the local account connection, not a hosted integration or verification of every tool.

The current implementation uses one personal Telegram session and local durable SQLite jobs/exports. It includes messaging and administrative tools as well as reading/export tools. Mounting that same session into a communal worker would give other callers the owner's authority.

## Hosted integration requirements

- Bind each connection to a server-derived Google identity and profile. A connector name, arbitrary Telegram ID or caller-supplied owner field is not authorization.
- Add a typed Telegram session bundle to Daedro Secret; the current hosted secret bundle supports S3. Import, replacement, inspection of secret metadata, revocation and deletion require fresh action-bound authenticator verification. Never paste a session, login code or Telegram password into chat.
- Isolate the session, SQLite state and export artifacts per connection. No shared personal session volume. Keep the existing local connector operational while the hosted adapter is built and accepted.
- Start with an explicit read-only allowlist: connection status, bounded dialog discovery and bounded message reads. Do not expose send, execute, membership/admin changes or generic MCP forwarding with that grant.
- Keep each workload grant finite and bound to the exact account/profile/connection and allowed operation. Revocation must invalidate future calls; worker failure must fail closed.
- Prove denied cross-account/profile calls, owner-bound cursors/artifacts, bounded history/page size, provider rate-limit handling, cancellation and cleanup before marking the card available.

Telegram's own account two-step password and the Hub's Google Authenticator code are different credentials. An interactive Telegram login step, if required, belongs in the private enrollment UI, not in this documentation or an assistant chat.

## Current use

The local connector and the Hub adapter are separate deployments. The Hub now has a private read-only Telegram adapter; it does not expose the local connector's 24-tool surface. Availability is advertised only when the dedicated worker passes its dependency probe. See [client connection status](clients.md) and [catalog readiness](mcp-readiness.md).

## Private Hub connection

Open **Daedro Telegram → Add connection**. Enter your Telegram API ID and API hash, then select an existing Telethon `.session` file (SQLite, at most 128 KiB). Manual Telethon StringSession entry is also supported. This is a personal Telegram user connection, not a bot token or Telegram Desktop `tdata` import. Phone/QR creation of a new Telegram session is not implemented.

Use a session dedicated to the Hub and confirm that no other client is running it. Telegram can revoke a session used concurrently (`AUTH_KEY_DUPLICATED`); independent phone/desktop sessions need not be closed. See [Telegram errors](https://core.telegram.org/api/errors).

The worker converts uploaded SQLite only in memory. Session material goes into Daedro Secret's pending action; the browser receives only the action summary. Confirm the operation with a fresh Google Authenticator code. Your connection then supports account authorization status and at most 20 chat titles per call. The adapter returns no message bodies and sends no messages. Telegram may include recent-message objects internally in its dialogs response; the adapter discards them. Secret changes, grant renewal, revocation and deletion use the existing MFA confirmation interface.

The dedicated unprivileged worker has a separate credential-delivery socket, single-call concurrency, a 30-second deadline, 128 MiB service memory cap and Telegram-only egress. OAuth tools use the same account/profile-bound grants. Installation and tests with synthetic credentials do not prove a user's real Telegram session is valid; a live status check after import establishes that separately.
