OneSignal MCP Server

Integrations

  • Used to load OneSignal API credentials from a .env configuration file for secure management of API keys and app IDs.

  • Referenced as the repository platform where the OneSignal MCP code is hosted and can be cloned from.

  • Required as the runtime environment for the MCP server, with version 3.7 or higher needed to run the OneSignal integration.

OneSignal MCP サーバー

OneSignal APIと連携するためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、OneSignalのREST APIを介してプッシュ通知、メール、SMS、ユーザーデバイス、セグメント、テンプレートなどを管理するための便利なインターフェースを提供します。

概要

このMCPサーバーは、OneSignal REST APIをラップし、OneSignalアプリケーションの管理とユーザーへのメッセージ送信のためのツールセットを提供します。以下の主要なOneSignal操作をすべてサポートしています。

  • プッシュ通知、メール、SMSの送信
  • ユーザーのデバイスとサブスクリプションの管理
  • セグメントの作成と管理
  • テンプレートの作成と管理
  • アプリ情報と分析の表示
  • 組織レベルの運用
  • 複数のOneSignalアプリケーションの管理

要件

  • Python 3.7以上
  • python-dotenvパッケージ
  • requestsパッケージ
  • API認証情報を持つOneSignalアカウント

インストール

オプション1: GitHubからクローンする

# Clone the repository git clone https://github.com/weirdbrains/onesignal-mcp.git cd onesignal-mcp # Install dependencies pip install -r requirements.txt

オプション 2: パッケージとしてインストール (近日公開)

pip install onesignal-mcp

構成

  1. OneSignal の資格情報を使用して、ルート ディレクトリに.envファイルを作成します。
    # Default app credentials (optional, you can also add apps via the API) ONESIGNAL_APP_ID=your_app_id_here ONESIGNAL_API_KEY=your_rest_api_key_here # Organization API key (for org-level operations) ONESIGNAL_ORG_API_KEY=your_organization_api_key_here
  2. OneSignal の認証情報は、OneSignal ダッシュボードで確認できます。
    • アプリID: 設定 > キーとID > OneSignal アプリID
    • REST APIキー: 設定 > キーとID > REST APIキー
    • 組織APIキー: 組織設定 > APIキー

使用法

サーバーの実行

python onesignal_server.py

サーバーが起動し、MCP システムに自身を登録して、ツールを使用できるようになります。

基本的な使用例

プッシュ通知の送信
# Send a notification to all subscribed users result = await send_notification( title="Hello World", message="This is a test notification", segment="Subscribed Users" ) print(result)
複数のアプリを操作する
# Add a new app configuration await add_app( key="my_second_app", app_id="second-app-id", api_key="second-app-api-key", name="My Second App" ) # List all configured apps apps = await list_apps() print(apps) # Switch to the new app await switch_app("my_second_app") # Send a notification using the current app await send_notification( title="Hello", message="This is from my second app" ) # Send a notification from a specific app (without switching) await send_notification( title="Hello", message="This is from my first app", app_key="mandible" )
セグメントの管理
# List all segments segments = await view_segments() print(segments) # Create a new segment result = await create_segment( name="High Value Users", filters='[{"field":"amount_spent", "relation":">", "value":"100"}]' ) print(result)
テンプレートの操作
# Create an email template result = await create_template( name="Welcome Email", title="Welcome to Our App", message="<html><body><h1>Welcome!</h1><p>Thank you for joining us.</p></body></html>", template_type="email" ) print(result)

マルチアプリサポート

このサーバーは複数のOneSignalアプリケーションの管理をサポートしています。以下のことが可能です。

  1. 異なる識別子を持つ複数のアプリ構成を追加する
  2. API呼び出し時にアプリを切り替える
  3. 個々の操作に使用するアプリを指定する

アプリ管理ツール

  • list_apps : サーバーに設定されているすべてのOneSignalアプリを一覧表示します
  • add_app : 新しいOneSignalアプリ設定を追加する
  • update_app : 既存のOneSignalアプリの設定を更新する
  • remove_app : OneSignal アプリの設定を削除します
  • switch_app : APIリクエストに使用する現在のアプリを切り替える

利用可能なツール

メッセージ管理

  • send_notification : 新しいプッシュ通知、メール、またはSMSを送信する
  • view_messages : OneSignal 経由で送信された最近のメッセージを一覧表示します
  • view_message_details : 特定のメッセージに関する詳細情報を取得する
  • cancel_message : スケジュールされたメッセージをキャンセルする

デバイス管理

  • view_devices : OneSignal アプリに登録されているデバイス(ユーザー)を一覧表示します
  • view_device_details : 特定のデバイスに関する詳細情報を取得する

セグメント管理

  • view_segments : OneSignal アプリで利用可能なすべてのセグメントを一覧表示します
  • create_segment : 指定されたフィルターで新しいセグメントを作成する
  • delete_segment : 既存のセグメントを削除する

テンプレート管理

  • view_templates : OneSignal アプリで利用可能なすべてのテンプレートを一覧表示します
  • view_template_details : 特定のテンプレートの詳細情報を取得する
  • create_template : 通知やメール用の新しいテンプレートを作成する

アプリ情報

  • view_app_details : 設定されたOneSignalアプリの詳細情報を取得します

ログ記録

サーバーには、デバッグと監視を支援する包括的なログ機能が搭載されています。ログはデフォルトで以下の形式でコンソールに出力されます。

YYYY-MM-DD HH:MM:SS - onesignal-mcp - LEVEL - Message

サーバー ファイルのlogging.basicConfig呼び出しを変更することで、ログ レベルを調整できます。

テスト

OneSignal MCPサーバーには、すべての機能が期待どおりに動作することを確認するための包括的なテストスイートが含まれています。これらのテストでは、Pythonの組み込みunittestフレームワークと外部API呼び出しのモックを使用して、サーバーの動作をテストします。

テストの実行

テストを実行するには、次のコマンドを使用します。

python -m unittest discover tests

これにより、 testsディレクトリ内のすべてのテストが検出され、実行されます。

テスト範囲

テスト スイートは以下をカバーします。

  • アプリ構成管理
  • 適切な認証によるAPIリクエスト処理
  • エラー処理と回復
  • 複数のアプリのサポート
  • 組織レベルの運用

新しいテストを書く

サーバーに新しい機能を追加する場合は、対応するテストも追加してください。テストはtestsディレクトリに配置し、 test_*.py命名規則に従ってください。

トラブルシューティング

よくある問題

利用可能なアプリ構成がありません

「アプリ構成が利用できません」というエラーが表示された場合は、次のことを確認してください。

  1. 正しい資格情報を使用して.envファイルを設定するか、
  2. add_appツールを使用してアプリ構成を追加しました
APIキーエラー

認証エラーが発生した場合は、次の点を確認してください。

  1. APIキーは正しいです
  2. 操作に適切なキーを使用しています (REST API キーと組織 API キー)
  3. キーにはOneSignalに必要な権限があります
レート制限

OneSignalではAPIリクエストにレート制限があります。レート制限が発生した場合は、以下の手順に従ってください。

  1. リクエストの頻度を減らす
  2. 指数バックオフによる再試行ロジックを実装する

ヘルプの取得

ここで説明されていない問題が発生した場合:

  1. OneSignal APIドキュメントを確認する
  2. GitHubリポジトリで問題を開く

貢献

OneSignal MCP サーバーの改善に向けた貢献を歓迎します。ガイドラインについてはCONTRIBUTING.md をご覧ください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

謝辞

  • 優れた通知サービスとAPIを提供するOneSignal
  • このプロジェクトを支援してくれたWeirdbrainsチーム
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

OneSignal REST API をラップし、複数の OneSignal アプリケーションにわたるプッシュ通知、電子メール、SMS、ユーザー デバイス、およびセグメントの管理を可能にするモデル コンテキスト プロトコル サーバー。

  1. Overview
    1. Requirements
      1. Installation
        1. Option 1: Clone from GitHub
        2. Option 2: Install as a Package (Coming Soon)
      2. Configuration
        1. Usage
          1. Running the Server
          2. Basic Usage Examples
        2. Multi-App Support
          1. App Management Tools
        3. Available Tools
          1. Message Management
          2. Device Management
          3. Segment Management
          4. Template Management
          5. App Information
        4. Logging
          1. Testing
            1. Running Tests
            2. Test Coverage
            3. Writing New Tests
          2. Troubleshooting
            1. Common Issues
            2. Getting Help
          3. Contributing
            1. License
              1. Acknowledgements
                ID: ito096qh7h