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 +47 -253
- package/dist/index.js +57 -2
- package/dist/index.js.map +1 -1
- package/dist/session-helper.d.ts +4 -0
- package/dist/session-helper.d.ts.map +1 -0
- package/dist/session-helper.js +53 -0
- package/dist/session-helper.js.map +1 -0
- package/package.json +5 -7
- package/session-helper.js +0 -60
package/README.md
CHANGED
|
@@ -1,208 +1,53 @@
|
|
|
1
1
|
# Telegram MCP Local Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://badge.fury.io/js/telegram-mcp-local-server)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
33
|
+
### Step 2: Generate Session String
|
|
163
34
|
|
|
164
|
-
|
|
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
|
-
|
|
38
|
+
npx telegram-mcp-local-server --session
|
|
197
39
|
```
|
|
198
40
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
48
|
+
## Configuration for Cursor
|
|
204
49
|
|
|
205
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
286
|
-
|
|
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
|
-
|
|
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: "
|
|
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":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,sBAAsB,EACtB,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
4
|
-
"description": "MCP server for Telegram integration.
|
|
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": "
|
|
23
|
-
"
|
|
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();
|