mcpField
T
telegram-automation

telegram-automation

github.com/davepoon生産性3.7k123 回インストール2 日前に更新
リポジトリ

telegram-automation について

Composio の Telegram ツールキットを通じて、Telegram のボットやチャット操作を自動化するスキルです。Rube MCP を介して、メッセージ送信やチャット管理、更新取得などを行います。

主な機能

  1. 01テキスト、写真、文書の送信
  2. 02メッセージの編集、削除、転送
  3. 03更新とチャット履歴の取得
  4. 04チャット情報の確認とボットコマンド管理

活用シーン

  1. 01チャットへのボットメッセージ送信
  2. 02Telegram でのファイルや写真の共有
  3. 03チャット情報とボットコマンドの管理
  4. 04最近のメッセージや更新の取得

MCP 対応

Rube MCP 経由で Composio の Telegram ツールキットを利用します。https://rube.app/mcp を MCP サーバーとして追加し、ツール定義の確認や Telegram 接続の管理に使います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davepoon/buildwithclaude --skill telegram-automation

インストール後、Claude Code で/telegram-automationを入力して読み込まれたか確認します。

詳細

Rube MCP 経由の Telegram 自動化

Rube MCP 経由で Composio の Telegram ツールキットを使用して、Telegram の操作を自動化します。

ツールキットのドキュメント:composio.dev/toolkits/telegram

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット telegram を指定した RUBE_MANAGE_CONNECTIONS 経由で、Telegram への接続が有効になっていること
  • 必ず最初に RUBE_SEARCH_TOOLS を呼び出し、最新のツールスキーマを取得してください
  • Telegram Bot Token が必要です(@BotFather 経由で作成)

セットアップ

Rube MCP を入手する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを検証します
  2. ツールキット telegram を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って Telegram ボットを設定します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. メッセージを送信する

使用する場面:ユーザーが Telegram チャットにテキストメッセージを送信したい場合

ツールの順序:

  1. TELEGRAM_GET_ME - ボットの ID と接続を確認します[前提条件]
  2. TELEGRAM_GET_CHAT - チャットの詳細を取得し、アクセスを確認します[任意]
  3. TELEGRAM_SEND_MESSAGE - テキストメッセージを送信します[必須]

主なパラメーター:

  • chat_id:数値のチャット ID またはチャンネルのユーザー名(例:'@channelname')
  • text:メッセージのテキスト内容
  • parse_mode:書式設定に使用する 'HTML' または 'MarkdownV2'
  • disable_notification:通知音なしでサイレント送信します
  • reply_to_message_id:返信先のメッセージ ID

注意点:

  • メッセージを送信するには、ボットがチャットまたはグループのメンバーである必要があります
  • MarkdownV2 では、特殊文字をエスケープする必要があります:_*[]()~>#+-=|{}.!
  • HTML モードでサポートされるタグは限られています:<b>、<i>、<code>、<pre>、<a>
  • メッセージの文字数制限は 4096 文字です。これを超える内容は分割してください
2. 写真とドキュメントを送信する

使用する場面:ユーザーが Telegram チャットで画像やファイルを共有したい場合

ツールの順序:

  1. TELEGRAM_SEND_PHOTO - 画像を送信します[任意]
  2. TELEGRAM_SEND_DOCUMENT - ファイルまたはドキュメントを送信します[任意]

主なパラメーター:

  • chat_id:送信先のチャット ID
  • photo:写真の URL または file_id(SEND_PHOTO 用)
  • document:ドキュメントの URL または file_id(SEND_DOCUMENT 用)
  • caption:メディアに付ける任意のキャプション

注意点:

  • 写真のキャプションは 1024 文字までです
  • ドキュメントのキャプションも 1024 文字までです
  • ボット API では最大 50MB のファイルを送信できます
  • Telegram では写真が圧縮されます。非圧縮の画像を送る場合は SEND_DOCUMENT を使用してください
3. チャットを管理する

使用する場面:ユーザーがチャット情報を取得したり、チャット設定を管理したりしたい場合

ツールの順序:

  1. TELEGRAM_GET_CHAT - チャットの詳細情報を取得します[必須]
  2. TELEGRAM_GET_CHAT_ADMINISTRATORS - チャットの管理者一覧を取得します[任意]
  3. TELEGRAM_GET_CHAT_MEMBERS_COUNT - メンバー数を取得します[任意]
  4. TELEGRAM_EXPORT_CHAT_INVITE_LINK - 招待リンクを生成します[任意]

主なパラメーター:

  • chat_id:送信先のチャット ID またはユーザー名

注意点:

  • 招待リンクをエクスポートするには、ボットが管理者である必要があります
  • GET_CHAT が返すフィールドは、プライベートチャット、グループ、チャンネルによって異なります
  • 大規模なグループでは、メンバー数が概算の場合があります
  • 管理者一覧には一般メンバーは含まれません
4. メッセージを編集・削除する

使用する場面:ユーザーが以前に送信したメッセージを変更または削除したい場合

ツールの順序:

  1. TELEGRAM_EDIT_MESSAGE - 送信済みメッセージを編集します[任意]
  2. TELEGRAM_DELETE_MESSAGE - メッセージを削除します[任意]

主なパラメーター:

  • chat_id:メッセージがあるチャット
  • message_id:編集または削除するメッセージの ID
  • text:新しいテキスト内容(編集用)

注意点:

  • ボットが編集できるのは、自身のメッセージのみです
  • メッセージを削除できるのは、送信から 48 時間以内です
  • グループでは、削除権限を持つボットは任意のメッセージを削除できます
  • メッセージを編集すると、「編集済み」のタイムスタンプ履歴が削除されます
5. メッセージを転送して更新を取得する

使用する場面:ユーザーがメッセージの転送、または最近の更新の取得を希望する場合

ツールの手順:

  1. TELEGRAM_FORWARD_MESSAGE - メッセージを別のチャットに転送します[任意]
  2. TELEGRAM_GET_UPDATES - 最近のボットの更新/メッセージを取得します[任意]
  3. TELEGRAM_GET_CHAT_HISTORY - チャットのメッセージ履歴を取得します[任意]

主なパラメーター:

  • from_chat_id:転送元のチャット
  • chat_id:転送先のチャット
  • message_id:転送するメッセージ
  • offset:GET_UPDATES の更新オフセット
  • limit:取得する更新の数

注意点:

  • 転送されたメッセージには、元の送信者の情報が表示されます
  • GET_UPDATES で取得できるのは、直近の更新の限られた範囲です
  • チャット履歴へのアクセスは、ボットの権限やチャットの種類によって制限される場合があります
  • 同じ更新を二重に処理しないよう、オフセットを使用してください
6. ボットのコマンドを管理する

使用する場面:ユーザーがボットのコマンドメニューの設定または更新を希望する場合

ツールの手順:

  1. TELEGRAM_SET_MY_COMMANDS - ボットのコマンド一覧を設定します[必須]
  2. TELEGRAM_ANSWER_CALLBACK_QUERY - インラインボタンの押下に応答します[任意]

主なパラメーター:

  • commands:command と description を含むコマンドオブジェクトの配列
  • callback_query_id:応答するコールバッククエリの ID

注意点:

  • コマンドは「/」で始まり、小文字で指定する必要があります
  • コマンドの説明は 256 文字までです
  • コールバッククエリには、期限切れになる前の 10 秒以内に応答する必要があります
  • コマンドを設定すると、コマンド一覧全体が置き換えられます

よくあるパターン

チャット ID の解決

ユーザー名から:

1. Use '@username' format as chat_id (for public channels/groups)
2. For private chats, numeric chat_id is required
3. Call GET_CHAT with username to retrieve numeric ID

GET_UPDATES から:

1. Call TELEGRAM_GET_UPDATES
2. Extract chat.id from message objects
3. Use numeric chat_id in subsequent calls
メッセージの書式設定
  • <b>bold</b>、<i>italic</i>、<code>code</code> には parse_mode: 'HTML' を使用します
  • *bold*、_italic_、`code` には parse_mode: 'MarkdownV2' を使用します
  • MarkdownV2 では特殊文字をエスケープします:_ * [ ] ( ) ~ > # + - = | { } . !
  • 書式設定のないプレーンテキストでは parse_mode を省略します

既知の注意点

ボットの権限:

  • ボットがグループ/チャンネルとやり取りするには、追加されている必要があります
  • メッセージの削除、招待リンクのエクスポート、メンバーの管理には管理者権限が必要です
  • ボットから会話を開始することはできません。先にユーザーから開始する必要があります

レート制限:

  • 同じグループには 1 秒あたり 30 件のメッセージ
  • グループ内の同じユーザーには 1 分あたり 20 件のメッセージ
  • 一括操作では、呼び出しの間に遅延を設けてください
  • 制限に達すると、API は 429 Too Many Requests を返します

チャットの種類:

  • プライベートチャット:ボットとの 1 対 1 のチャット
  • グループ:複数ユーザーのチャット(ボットを追加する必要があります)
  • スーパーグループ:管理者機能を備えた拡張グループ
  • チャンネル:一方向の配信(投稿するにはボットを管理者にする必要があります)

メッセージの制限:

  • テキストメッセージ:最大 4096 文字
  • キャプション:最大 1024 文字
  • ファイルのアップロード:ボット API 経由で最大 50MB
  • インラインキーボードボタン:1 行あたり 8 個

クイックリファレンス

タスクツールスラッグ主なパラメーター
ボットを確認TELEGRAM_GET_ME(なし)
メッセージを送信TELEGRAM_SEND_MESSAGEchat_id, text, parse_mode
写真を送信TELEGRAM_SEND_PHOTOchat_id, photo, caption
ドキュメントを送信TELEGRAM_SEND_DOCUMENTchat_id, document, caption
メッセージを編集TELEGRAM_EDIT_MESSAGEchat_id, message_id, text
メッセージを削除TELEGRAM_DELETE_MESSAGEchat_id, message_id
メッセージを転送TELEGRAM_FORWARD_MESSAGEchat_id, from_chat_id, message_id
チャット情報を取得TELEGRAM_GET_CHATchat_id
チャット管理者を取得TELEGRAM_GET_CHAT_ADMINISTRATORSchat_id
メンバー数を取得TELEGRAM_GET_CHAT_MEMBERS_COUNTchat_id
招待リンクをエクスポートTELEGRAM_EXPORT_CHAT_INVITE_LINKchat_id
更新を取得TELEGRAM_GET_UPDATESoffset, limit
チャット履歴を取得TELEGRAM_GET_CHAT_HISTORYchat_id
ボットコマンドを設定TELEGRAM_SET_MY_COMMANDScommands
コールバックに応答TELEGRAM_ANSWER_CALLBACK_QUERYcallback_query_id

Composio によって提供

コメント