telegram-mcp-local-server 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,208 +1,53 @@
1
1
  # Telegram MCP Local Server
2
2
 
3
- Простой MCP (Model Context Protocol) сервер для работы с Telegram. Позволяет получать список чатов, историю сообщений и отправлять сообщения через Telegram API.
3
+ [![npm version](https://badge.fury.io/js/telegram-mcp-local-server.svg)](https://badge.fury.io/js/telegram-mcp-local-server)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Downloads](https://img.shields.io/npm/dm/telegram-mcp-local-server.svg)](https://www.npmjs.com/package/telegram-mcp-local-server)
4
6
 
5
- ## Возможности
7
+ A secure Model Context Protocol (MCP) server for Telegram integration. Allows AI agents to interact with Telegram API locally on your machine.
6
8
 
7
- - 🔌 Подключение к Telegram через API
8
- - 💬 Получение списка чатов
9
- - 📜 Получение истории сообщений из чатов
10
- - 📤 Отправка сообщений
11
- - 🔄 Работа через stdio (для интеграции с MCP-совместимыми клиентами)
12
- - 🔒 Режим "только чтение" (readonly) для безопасной работы
9
+ ## How It Works & Security
13
10
 
14
- ## Установка
11
+ This server runs **entirely on your local machine** and acts as a bridge between AI agents (like Cursor, Claude, etc.) and Telegram's API.
15
12
 
16
- ### Через npx (рекомендуется)
13
+ 🔒 **Your data stays private:**
14
+ - All communication happens locally between your AI agent and your machine
15
+ - No data is sent to third-party servers
16
+ - Your Telegram credentials remain on your device
17
+ - Session data is stored locally and never transmitted
17
18
 
18
- Вы можете запустить сервер напрямую без установки:
19
+ 🛡️ **Built-in safety features:**
20
+ - Readonly mode by default (prevents accidental message sending)
21
+ - Local session management
22
+ - Direct API communication with Telegram only
19
23
 
20
- ```bash
21
- npx telegram-mcp-local-server
22
- ```
23
-
24
- Или установить глобально:
25
-
26
- ```bash
27
- npm install -g telegram-mcp-local-server
28
- telegram-mcp-local-server
29
- ```
30
-
31
- ### Для разработки
32
-
33
- ```bash
34
- git clone <repository-url>
35
- cd telegram-mcp-server
36
- npm install
37
- npm run build
38
- ```
39
-
40
- ## Получение Telegram API ключей
41
-
42
- 1. Перейдите на https://my.telegram.org/
43
- 2. Войдите в свою учетную запись Telegram
44
- 3. Перейдите в раздел "API development tools"
45
- 4. Создайте новое приложение и получите `api_id` и `api_hash`
46
-
47
- ## Использование
48
-
49
- ### Запуск сервера
50
-
51
- ```bash
52
- # Через npx
53
- npx telegram-mcp-local-server
54
-
55
- # Или если установлен глобально
56
- telegram-mcp-local-server
57
-
58
- # Для разработки
59
- npm start
60
- # или
61
- npm run dev
62
- ```
63
-
64
- ### Режим "только чтение" (Readonly Mode)
65
-
66
- Для безопасной работы сервер можно запустить в режиме "только чтение", в котором доступны только функции чтения (получение чатов и истории сообщений), а отправка сообщений заблокирована.
67
-
68
- ```bash
69
- # Через npx
70
- TELEGRAM_READONLY_MODE=true npx telegram-mcp-local-server
71
-
72
- # Или если установлен глобально
73
- TELEGRAM_READONLY_MODE=true telegram-mcp-local-server
74
-
75
- # Для разработки
76
- TELEGRAM_READONLY_MODE=true npm start
77
- # или
78
- TELEGRAM_READONLY_MODE=true npm run dev
79
- ```
80
-
81
- В readonly режиме доступны только следующие инструменты:
82
- - `telegram_connect` - подключение к Telegram
83
- - `telegram_get_chats` - получение списка чатов
84
- - `telegram_get_chat_history` - получение истории сообщений
85
-
86
- Инструмент `telegram_send_message` недоступен в readonly режиме.
87
-
88
- ### Доступные инструменты
89
-
90
- #### `telegram_connect`
91
- Подключение к Telegram с использованием API ключей.
92
-
93
- Параметры:
94
- - `apiId` (обязательно): Telegram API ID
95
- - `apiHash` (обязательно): Telegram API Hash
96
- - `sessionString` (опционально): Строка сессии для авторизации
97
-
98
- #### `telegram_get_chats`
99
- Получение списка чатов.
100
-
101
- Параметры:
102
- - `limit` (опционально): Максимальное количество чатов (по умолчанию: 50)
103
-
104
- #### `telegram_get_chat_history`
105
- Получение истории сообщений из конкретного чата.
106
-
107
- Параметры:
108
- - `chatId` (обязательно): ID чата или username
109
- - `limit` (опционально): Максимальное количество сообщений (по умолчанию: 50)
110
- - `offsetId` (опционально): ID сообщения для начала (для пагинации)
111
-
112
- #### `telegram_send_message`
113
- Отправка сообщения в конкретный чат.
114
-
115
- Параметры:
116
- - `chatId` (обязательно): ID чата или username
117
- - `message` (обязательно): Текст сообщения
118
-
119
- ## Пример использования
120
-
121
- ```javascript
122
- // Подключение к Telegram
123
- {
124
- "name": "telegram_connect",
125
- "arguments": {
126
- "apiId": "your_api_id",
127
- "apiHash": "your_api_hash"
128
- }
129
- }
130
-
131
- // Получение списка чатов
132
- {
133
- "name": "telegram_get_chats",
134
- "arguments": {
135
- "limit": 20
136
- }
137
- }
138
-
139
- // Получение истории сообщений
140
- {
141
- "name": "telegram_get_chat_history",
142
- "arguments": {
143
- "chatId": "@username",
144
- "limit": 100
145
- }
146
- }
147
-
148
- // Отправка сообщения
149
- {
150
- "name": "telegram_send_message",
151
- "arguments": {
152
- "chatId": "@username",
153
- "message": "Привет!"
154
- }
155
- }
156
- ```
24
+ ## Getting Credentials
157
25
 
158
- ## Настройка аутентификации
26
+ ### Step 1: Get Telegram API Keys
159
27
 
160
- Для работы с Telegram API необходимо получить строку сессии:
28
+ 1. Go to https://my.telegram.org/
29
+ 2. Log in with your Telegram account
30
+ 3. Navigate to "API development tools"
31
+ 4. Create a new application to get your `api_id` and `api_hash`
161
32
 
162
- ### Способ 1: Использование утилиты session-helper
33
+ ### Step 2: Generate Session String
163
34
 
164
- ```bash
165
- npm run session
166
- ```
167
-
168
- Следуйте инструкциям в интерактивном режиме:
169
- 1. Введите API ID и Hash
170
- 2. Введите номер телефона
171
- 3. Введите код из SMS
172
- 4. При необходимости введите пароль двухфакторной аутентификации
173
- 5. Скопируйте полученную строку сессии
174
-
175
- ### Способ 2: Вручную
176
-
177
- ```bash
178
- npm run test-client
179
- ```
180
-
181
- Эта команда запустит интерактивный тест клиента для получения сессии.
182
-
183
- ## Тестирование
184
-
185
- ### Тест основного функционала
186
-
187
- ```bash
188
- npm run example
189
- ```
190
-
191
- Эта команда покажет доступные инструменты и примеры использования.
192
-
193
- ### Интерактивный тест
35
+ Use the built-in session helper without downloading the repository:
194
36
 
195
37
  ```bash
196
- npm run test-client
38
+ npx telegram-mcp-local-server --session
197
39
  ```
198
40
 
199
- Интерактивный тест, который поможет проверить подключение и основные функции.
200
-
201
- ## Настройка MCP клиента
41
+ Follow the prompts:
42
+ 1. Enter your API ID and Hash
43
+ 2. Enter your phone number
44
+ 3. Enter the verification code from SMS
45
+ 4. Enter your 2FA password if enabled
46
+ 5. Copy the generated session string
202
47
 
203
- Для использования с MCP-совместимыми клиентами (например, Claude Desktop), добавьте в конфигурацию:
48
+ ## Configuration for Cursor
204
49
 
205
- ### Через npx (рекомендуется)
50
+ Add this to your Cursor MCP configuration:
206
51
 
207
52
  ```json
208
53
  {
@@ -221,78 +66,27 @@ npm run test-client
221
66
  }
222
67
  ```
223
68
 
224
- ### Через глобальную установку
69
+ **Note:** Keep `TELEGRAM_READONLY_MODE=true` for safe operation. This allows reading chats and message history but prevents sending messages.
225
70
 
226
- ```json
227
- {
228
- "mcpServers": {
229
- "telegram": {
230
- "command": "telegram-mcp-local-server",
231
- "env": {
232
- "TELEGRAM_API_ID": "your_api_id",
233
- "TELEGRAM_API_HASH": "your_api_hash",
234
- "TELEGRAM_SESSION_STRING": "your_session_string",
235
- "TELEGRAM_READONLY_MODE": "true"
236
- }
237
- }
238
- }
239
- }
240
- ```
71
+ ## Available Tools
241
72
 
242
- ### Локальная установка
73
+ - `telegram_connect` - Connect to Telegram
74
+ - `telegram_get_chats` - Get list of your chats
75
+ - `telegram_get_chat_history` - Read message history from specific chats
76
+ - `telegram_send_message` - Send messages (disabled in readonly mode)
243
77
 
244
- ```json
245
- {
246
- "mcpServers": {
247
- "telegram": {
248
- "command": "node",
249
- "args": ["dist/index.js"],
250
- "cwd": "/path/to/telegram-mcp-server",
251
- "env": {
252
- "TELEGRAM_API_ID": "your_api_id",
253
- "TELEGRAM_API_HASH": "your_api_hash",
254
- "TELEGRAM_SESSION_STRING": "your_session_string",
255
- "TELEGRAM_READONLY_MODE": "true"
256
- }
257
- }
258
- }
259
- }
260
- ```
261
-
262
- **Примечание**: Установите `TELEGRAM_READONLY_MODE=true` для безопасного режима только чтения.
263
-
264
- ## Структура проекта
265
-
266
- ```
267
- src/
268
- ├── index.ts # Основной MCP сервер
269
- └── telegram-client.ts # Клиент для работы с Telegram API
270
- ```
271
-
272
- ## Зависимости
78
+ ## Quick Test
273
79
 
274
- - `@modelcontextprotocol/sdk` - SDK для MCP
275
- - `telegram` - Библиотека для работы с Telegram API
276
- - `zod` - Валидация параметров
277
-
278
- ## Разработка
279
-
280
- Для разработки и внесения изменений см. [CONTRIBUTING.md](CONTRIBUTING.md).
281
-
282
- ### Быстрый старт для разработчиков
80
+ Test your setup:
283
81
 
284
82
  ```bash
285
- git clone <repository-url>
286
- cd telegram-mcp-server
287
- npm install
288
- npm run build
289
- npm test
290
- ```
291
-
292
- ### Автоматическая публикация
83
+ # Test connection and basic functionality
84
+ npx telegram-mcp-local-server --help
293
85
 
294
- Проект использует GitHub Actions для автоматической публикации в npm при изменениях в main ветке.
86
+ # Generate new session if needed
87
+ npx telegram-mcp-local-server --session
88
+ ```
295
89
 
296
- ## Лицензия
90
+ ## License
297
91
 
298
- MIT
92
+ MIT - Your data, your control.
package/dist/index.js CHANGED
@@ -4,9 +4,64 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { z } from "zod";
6
6
  import { TelegramClient } from "./telegram-client.js";
7
+ import sessionHelper from "./session-helper.js";
8
+ import { fileURLToPath } from "url";
9
+ import { readFileSync } from "fs";
10
+ import { dirname, join } from "path";
11
+ // Check for --session flag
12
+ if (process.argv.includes('--session')) {
13
+ console.log('Starting Telegram session helper...\n');
14
+ sessionHelper().then(() => {
15
+ process.exit(0);
16
+ }).catch((error) => {
17
+ console.error('Error running session helper:', error);
18
+ process.exit(1);
19
+ });
20
+ }
21
+ // Check for --help flag
22
+ if (process.argv.includes('--help') || process.argv.includes('-h')) {
23
+ console.log(`
24
+ Telegram MCP Local Server
25
+
26
+ Usage: telegram-mcp-local-server [options]
27
+
28
+ Options:
29
+ --session Generate a new Telegram session string
30
+ --version Show version information
31
+ --help, -h Show this help message
32
+
33
+ Environment Variables:
34
+ TELEGRAM_API_ID Your Telegram API ID
35
+ TELEGRAM_API_HASH Your Telegram API Hash
36
+ TELEGRAM_SESSION_STRING Your Telegram session string
37
+ TELEGRAM_READONLY_MODE Set to 'true' for readonly mode
38
+
39
+ Examples:
40
+ telegram-mcp-local-server
41
+ telegram-mcp-local-server --session
42
+ TELEGRAM_READONLY_MODE=true telegram-mcp-local-server
43
+
44
+ For more information, visit: https://github.com/yourusername/telegram-mcp-local-server
45
+ `);
46
+ process.exit(0);
47
+ }
48
+ // Check for --version flag
49
+ if (process.argv.includes('--version')) {
50
+ try {
51
+ const __filename = fileURLToPath(import.meta.url);
52
+ const __dirname = dirname(__filename);
53
+ const packagePath = join(__dirname, '..', 'package.json');
54
+ const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));
55
+ console.log(packageJson.version);
56
+ }
57
+ catch (error) {
58
+ console.log('Version information not available');
59
+ }
60
+ process.exit(0);
61
+ }
7
62
  const server = new Server({
8
- name: "telegram-mcp-server",
9
- version: "0.1.0",
63
+ name: "telegram-mcp-local-server",
64
+ version: "1.0.2",
10
65
  }, {
11
66
  capabilities: {
12
67
  tools: {},
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ declare function main(): Promise<void>;
3
+ export default main;
4
+ //# sourceMappingURL=session-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-helper.d.ts","sourceRoot":"","sources":["../src/session-helper.ts"],"names":[],"mappings":";AAiBA,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAyCnC;AAMD,eAAe,IAAI,CAAC"}
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ import { TelegramClient } from 'telegram';
3
+ import { StringSession } from 'telegram/sessions/index.js';
4
+ import readline from 'readline';
5
+ const rl = readline.createInterface({
6
+ input: process.stdin,
7
+ output: process.stdout,
8
+ });
9
+ function question(query) {
10
+ return new Promise((resolve) => {
11
+ rl.question(query, resolve);
12
+ });
13
+ }
14
+ async function main() {
15
+ console.log('=== Telegram Session Helper ===\n');
16
+ console.log('This utility will help you generate a session string for the MCP server.');
17
+ console.log('You will need API keys from https://my.telegram.org/\n');
18
+ try {
19
+ const apiId = await question('Enter your API ID: ');
20
+ const apiHash = await question('Enter your API Hash: ');
21
+ console.log('\nConnecting to Telegram...');
22
+ const stringSession = new StringSession('');
23
+ const client = new TelegramClient(stringSession, parseInt(apiId), apiHash, {
24
+ connectionRetries: 5,
25
+ });
26
+ await client.start({
27
+ phoneNumber: async () => await question('Enter your phone number (with country code): '),
28
+ password: async () => await question('Enter your 2FA password: '),
29
+ phoneCode: async () => await question('Enter the verification code from SMS: '),
30
+ onError: (err) => console.error('Error:', err),
31
+ });
32
+ console.log('\n✅ Successfully connected to Telegram!');
33
+ const sessionString = client.session.save();
34
+ console.log('\n🔑 Your session string:');
35
+ console.log(`"${sessionString}"`);
36
+ console.log('\n📝 Use this session string in the TELEGRAM_SESSION_STRING environment variable');
37
+ console.log('⚠️ Keep this string secure and do not share it with others!');
38
+ console.log('\n📋 Example usage:');
39
+ console.log('TELEGRAM_SESSION_STRING="' + sessionString + '" npx telegram-mcp-local-server');
40
+ await client.disconnect();
41
+ }
42
+ catch (error) {
43
+ console.error('Error:', error instanceof Error ? error.message : String(error));
44
+ }
45
+ finally {
46
+ rl.close();
47
+ }
48
+ }
49
+ if (import.meta.url === `file://${process.argv[1]}`) {
50
+ main();
51
+ }
52
+ export default main;
53
+ //# sourceMappingURL=session-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-helper.js","sourceRoot":"","sources":["../src/session-helper.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;CACvB,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAEtE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;YACzE,iBAAiB,EAAE,CAAC;SACrB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,KAAK,CAAC;YACjB,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,+CAA+C,CAAC;YACxF,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,2BAA2B,CAAC;YACjE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,wCAAwC,CAAC;YAC/E,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAEvD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,aAAa,GAAG,iCAAiC,CAAC,CAAC;QAE7F,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,eAAe,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "telegram-mcp-local-server",
3
- "version": "1.0.0",
4
- "description": "MCP server for Telegram integration. Allows reading chat lists, message history, and sending messages through Telegram API.",
3
+ "version": "1.0.2",
4
+ "description": "Secure Model Context Protocol (MCP) server for Telegram integration. Runs locally, allows AI agents to read chats and message history, with built-in readonly mode for safety.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
@@ -10,8 +10,7 @@
10
10
  "files": [
11
11
  "dist/**/*",
12
12
  "README.md",
13
- "LICENSE",
14
- "session-helper.js"
13
+ "LICENSE"
15
14
  ],
16
15
  "scripts": {
17
16
  "build": "tsc",
@@ -19,9 +18,8 @@
19
18
  "dev": "tsx src/index.ts",
20
19
  "test": "jest",
21
20
  "test-client": "tsx src/test.ts",
22
- "session": "node session-helper.js",
23
- "example": "node example.js",
24
- "test-readonly": "node test-readonly.js",
21
+ "session": "tsx src/session-helper.ts",
22
+ "test-readonly": "TELEGRAM_READONLY_MODE=true npm test",
25
23
  "prepublishOnly": "npm run build",
26
24
  "version:patch": "node scripts/bump-version.js patch",
27
25
  "version:minor": "node scripts/bump-version.js minor",
package/session-helper.js DELETED
@@ -1,60 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // Утилита для получения строки сессии Telegram
4
- const { TelegramClient } = require('telegram');
5
- const { StringSession } = require('telegram/sessions');
6
- const readline = require('readline');
7
-
8
- const rl = readline.createInterface({
9
- input: process.stdin,
10
- output: process.stdout,
11
- });
12
-
13
- function question(query) {
14
- return new Promise((resolve) => {
15
- rl.question(query, resolve);
16
- });
17
- }
18
-
19
- async function main() {
20
- console.log('=== Telegram Session Helper ===\n');
21
- console.log('Эта утилита поможет вам получить строку сессии для MCP сервера.');
22
- console.log('Для этого вам понадобятся API ключи с https://my.telegram.org/\n');
23
-
24
- try {
25
- const apiId = await question('Введите ваш API ID: ');
26
- const apiHash = await question('Введите ваш API Hash: ');
27
-
28
- console.log('\nПодключение к Telegram...');
29
-
30
- const stringSession = new StringSession('');
31
- const client = new TelegramClient(stringSession, parseInt(apiId), apiHash, {
32
- connectionRetries: 5,
33
- });
34
-
35
- await client.start({
36
- phoneNumber: async () => await question('Введите ваш номер телефона (с кодом страны): '),
37
- password: async () => await question('Введите ваш пароль двухфакторной аутентификации: '),
38
- phoneCode: async () => await question('Введите код из SMS: '),
39
- onError: (err) => console.error('Ошибка:', err),
40
- });
41
-
42
- console.log('\n✅ Успешно подключены к Telegram!');
43
-
44
- const sessionString = client.session.save();
45
- console.log('\n🔑 Ваша строка сессии:');
46
- console.log(`"${sessionString}"`);
47
-
48
- console.log('\n📝 Используйте эту строку сессии в параметре sessionString при вызове telegram_connect');
49
- console.log('⚠️ Храните эту строку в безопасном месте и не делитесь ей с другими!');
50
-
51
- await client.disconnect();
52
-
53
- } catch (error) {
54
- console.error('Ошибка:', error.message);
55
- } finally {
56
- rl.close();
57
- }
58
- }
59
-
60
- main();