Telegram MCP Server

by kfastov
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Handles configuration management through environment variables, specifically for storing Telegram API credentials including API ID, API hash, and phone number.

  • Enables interaction with Telegram messaging platform, providing tools to search channels by keywords, list available channels, retrieve messages from channels, and filter messages by regex patterns.

Telegram クライアントライブラリと MCP サーバー

このプロジェクトは、AI アシスタントが Telegram と対話するための Telegram クライアント ライブラリと MCP (Model Context Protocol) サーバーの両方を提供します。

特徴

Telegram クライアントライブラリ

  • Telegramによる認証(2FAサポートを含む)
  • セッション管理(既存セッションの自動再利用)
  • チャット/ダイアログの取得
  • 特定のチャットからメッセージを取得する
  • パターン(例:正規表現)によるメッセージのフィルタリング

MCPサーバー

  • キーワードでチャンネルを検索- 名前にキーワードを入力してTelegramチャンネルを検索
  • 利用可能なチャンネルの一覧- アクセス可能なすべてのチャンネルを表示
  • チャネルからメッセージを取得する- アクセス可能な任意のチャネルからメッセージを取得します
  • パターンでメッセージをフィルタリング- 正規表現パターンを適用してメッセージをフィルタリングします

設定

  1. Telegram API 資格情報を使用して.envファイルを作成します。
TELEGRAM_API_ID=your_api_id TELEGRAM_API_HASH=your_api_hash TELEGRAM_PHONE_NUMBER=your_phone_number PORT=3000 # Optional, defaults to 3000 for MCP server
  1. 依存関係をインストールします:
npm install

使用法

Telegramクライアントライブラリの使用

const TelegramClient = require("./telegram-client"); const dotenv = require("dotenv"); dotenv.config(); async function main() { // Create a new client instance const client = new TelegramClient( process.env.TELEGRAM_API_ID, process.env.TELEGRAM_API_HASH, process.env.TELEGRAM_PHONE_NUMBER ); // Login to Telegram await client.login(); // Get all chats/dialogs const { chats } = await client.getDialogs(); // Print all chats chats.forEach((chat) => { if (chat.title) { console.log(`Chat: ${chat.title}`); } }); } main().catch(console.error);

サンプルクライアントを実行します。

npm run client

MCPサーバーの使用

  1. MCP サーバーを起動します。
npm start
  1. MCP サーバーは次の場所で利用できます:
http://localhost:3000/mcp
  1. 付属のクライアントを使用して MCP サーバーをテストできます。
npm run mcp-client

MCP サーバーの詳細については、 MCP-README.md を参照してください。
コード アーキテクチャの詳細については、 CODE_STRUCTURE.md を参照してください。

APIリファレンス

Telegramクライアント

コンストラクタ

const client = new TelegramClient(apiId, apiHash, phoneNumber, sessionPath);
  • apiId : Telegram API ID
  • apiHash : Telegram APIハッシュ
  • phoneNumber : 国際電話番号
  • sessionPath : (オプション) セッションファイルを保存するパス (デフォルト: './data/session.json')

方法

  • login() : Telegram で認証します (新しいログインとセッションの再利用の両方を処理します)
  • getDialogs(limit, offset) : ダイアログ(チャット)のリストを取得します。
  • getChatMessages(chat, limit) : 特定のチャットからメッセージを取得します
  • filterMessagesByPattern(messages, pattern) : メッセージの配列を正規表現パターンでフィルタリングします。
  • hasSession() : 有効なセッションが存在するかどうかを確認します

このリポジトリ内のファイル

  • telegram-client.js : メインクライアントライブラリ
  • client.js : 追加のヘルパー関数を備えたサンプルクライアント
  • index.js : クライアントライブラリを使用したオリジナルの例
  • mcp-server.js : MCP サーバーのメインエントリポイント
  • telegram-mcp.js : Telegramツールを使用したMCPサーバーの実装
  • http-server.js : HTTP/SSE サーバートランスポート層
  • mcp-client-example.js : MCPサーバーをテストするためのシンプルなクライアント

Claude や他の MCP 互換アシスタントと併用する

MCPサーバーは、Claudeやその他のMCP対応アシスタントと連携して使用できます。接続すると、アシスタントはサーバーが提供するツールを通じてTelegramのチャンネルやメッセージにアクセスできるようになります。

ワークフローの例:

  1. MCPサーバーを起動する
  2. MCP URLを使用してClaudeをMCPサーバーに接続します
  3. クロードにチャンネルの検索、メッセージの取得、パターンによるメッセージのフィルタリングを依頼する

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

AI アシスタントが Telegram と対話して、チャンネルの検索、利用可能なチャンネルの一覧表示、メッセージの取得、正規表現パターンによるメッセージのフィルタリングを行えるようにするモデル コンテキスト プロトコル サーバー。

  1. Features
    1. Telegram Client Library
    2. MCP Server
  2. Setup
    1. Usage
      1. Using the Telegram Client Library
      2. Using the MCP Server
    2. API Reference
      1. TelegramClient
    3. Files in this Repository
      1. Using with Claude or other MCP-compatible Assistants
        1. License
          ID: b91b7wxzlu