YaVendió ツール 🧰
MCPベースのメッセージングおよび通知システム。AIシステムがモデルコンテキストプロトコル(MCP)を介して様々なメッセージングプラットフォームと連携できるようにします。このプロジェクトは、テキスト、画像、ドキュメント、ボタン、アラートを送信するためのメッセージングツールを公開するMCPサーバーを実装します。
目次
特徴
- メッセージング機能:
- WhatsAppやその他のプラットフォーム経由でテキストメッセージを送信する
- 画像やメディアを適切な形式で送信する
- 適切なメタデータを含む動画を送信する
- ファイル名とメタデータを含むドキュメントを送信する
- ユーザーエンゲージメントのためのインタラクティブなボタンを作成する
- WhatsAppクライアント管理:
- 異なる資格情報を持つ複数の WhatsApp クライアントを登録および管理します
- Infisicalを使用してトークンを安全に保管する
- クライアント管理のためのステートレスアーキテクチャ
- WhatsAppの各操作専用のツール
- 通知機能:
- 複数のチャネル(WhatsApp、メール、SMS)にわたるアラートを設定する
- 支払いボタンと取引通知のサポート
- 会話管理:
- メッセージの配信ステータスとメタデータを追跡する
- 追加ユーティリティ:
- 時間指定のインタラクションのためのスリープ/遅延機能
- 企業とユーザー向けの構成管理
- ステータス追跡によるリアルタイムメッセージ配信
MCPとは何ですか?
モデルコンテキストプロトコル(MCP)は、Anthropicが開発したオープンスタンダードであり、AIシステムと外部データソースまたはツールとのシームレスな統合を可能にします。MCPは、AIシステムとデータソースを接続するための普遍的なオープンスタンダードを提供し、断片化された統合を単一のプロトコルに置き換えます。
このプロジェクトは、様々なメッセージングツールを公開し、AIシステムが標準化された方法でアクセスできるようにするMCPサーバーを実装します。MCPを使用することで、AIアシスタントは以下のことが可能になります。
- WhatsAppメッセージをユーザーに直接送信する
- メディアファイルをアップロードして送信する
- ボタンを使ってインタラクティブな体験を創り出す
- 会話のコンテキストを効率的に管理する
- マルチチャネル通知をトリガーする
インストール
このプロジェクトではパッケージ管理にuv を使用します。
要件
- Python 3.13以上
- Docker と Docker Compose (コンテナ化されたデプロイメント用)
構成
ルート ディレクトリに構成を含む.env
ファイルを作成します。
Dockerで実行する
ローカルで実行
発達
このプロジェクトには、開発を効率化するための Makefile コマンドがいくつか含まれています。
プロジェクト構造
app/
: メインアプリケーションコードserver.py
: MCPサーバーの実装logging.py
: structlog を使用したログ設定lifespan.py
: アプリケーションのライフサイクル管理
tools/
: ツールの実装base_tool.py
: すべてのツールの抽象基本クラスtext_tool.py
: テキストメッセージを送信するためのツールimage_tool.py
: 画像を送信するためのツールvideo_tool.py
: ビデオを送信するためのツールdocument_tool.py
: ドキュメントを送信するためのツールbutton_tool.py
: インタラクティブボタンを送信するためのツールalert_tool.py
: マルチチャネルアラートを送信するためのツールsleep_tool.py
: ツール実行に遅延を追加するためのツール
services/
: サービス実装interfaces.py
: 契約を定義するサービスインターフェースmessage_service.py
: メッセージの保存と取得のためのサービスmessage_service_mock.py
: テスト用のモック実装whatsapp_service.py
: WhatsAppクライアント管理用のサービスwhatsapp_service_mock.py
: テスト用の模擬 WhatsApp サービス
tests/
: テスト実装app/
: アプリケーション構造のテストtools/
: 個々のツールのテストservices/
: サービスのテストserver/
: MCP サーバー統合のテスト
MCP統合
このサービスは、モデル コンテキスト プロトコルを通じて LLM アプリケーションと統合できます。
利用可能なMCPツール
send_text
WhatsApp 番号にテキスト メッセージを送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号message
: 送信するテキスト
例:
send_image
1 つ以上の画像を WhatsApp 番号に送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号image_urls
: 送信する画像URLのリスト
例:
send_video
1 つ以上のビデオを WhatsApp 番号に送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号video_urls
: 送信するビデオURLのリスト
例:
send_document
ドキュメントファイルを WhatsApp 番号に送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号files
: ドキュメントファイルのリスト ({"url": "...", "filename": "..."}
例:
send_alert
複数のチャネル (WhatsApp、電子メール、SMS) を通じてアラートを送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号message
: 警告メッセージwhatsapp
: WhatsAppメッセージを送信するかどうかemail
: メール設定{"subject": "..."}
sms
: SMS 構成{"type": "...", "recipients": ["..."]}
pause_number
: 会話を一時停止するかどうかtrack_sale
: これを販売として追跡するかどうか
例:
sleep
指定された秒数だけ実行を一時停止します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号seconds
: スリープする秒数
例:
send_button
インタラクティブボタンを送信します。
パラメータ:
company_id
: 会社識別子phone_number
: 受信者の電話番号body_text
: ボタンのメッセージ本文buttons
: ボタン設定のリスト[{"id": "...", "title": "..."}]
button_type
: 「返信」または「支払い」header
: オプションのヘッダー設定footer_text
: オプションのフッターテキストpayment_data
: 支払いボタンの支払いデータ
例(返信ボタン):
例(支払いボタン):
get_config
会社の構成を取得します。
パラメータ:
company_id
: 会社識別子
例:
update_config
会社の構成を更新します。
パラメータ:
company_id
: 会社識別子config
: 新しい設定
例:
テスト
テストの実行と記述の詳細については、 TEST.md を参照してください。
基本的なテストコマンド:
貢献
貢献を歓迎します!以下の手順に従ってください。
- リポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b feature/amazing-feature
) - 変更を加える
- テストを実行して合格することを確認する (
make test
) - 変更をコミットします(
git commit -m 'Add amazing feature'
) - ブランチにプッシュする (
git push origin feature/amazing-feature
) - プルリクエストを開く
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
This server cannot be installed
MCP ベースのメッセージング システムにより、AI システムは、テキスト、画像、ドキュメント、ボタン、アラートを送信するための標準化されたツールを通じて、さまざまなメッセージング プラットフォームと対話できるようになります。