Windows 10 および macOS 通知機能付き MCP サーバー
プロジェクト概要
このプロジェクトは、デスクトップ通知を表示できる Model Context Protocol (MCP) サーバーを作成することを目的としています。Windows 10 では win10toast ライブラリを使用し、macOS では osascript を使用して通知を表示します。このサーバーは MCP クライアント(VSCode Cline など)からのリクエストを受け取り、それに基づいてデスクトップ通知を表示します。
要件
機能要件
- MCP プロトコルサポート
- MCP クライアントとの通信を確立するための Model Context Protocol の実装
- 最新の MCP 仕様のサポート(VSCode Cline との完全な互換性を提供)
- 同期および非同期リクエストの処理
- 通知システム
- Windows 10 では win10toast ライブラリを使用してデスクトップ通知を表示
- macOS では osascript を使用して通知センターに通知を表示
- カスタマイズ可能な通知パラメータのサポート:
- タイトル
- メッセージ内容
- 表示時間
- アイコン(Windows のみ、オプション)
- サブタイトル(macOS のみ、オプション)
- 通知音(macOS のみ、オプション)
- 通知タイプ(情報、警告、エラー、成功)
- クライアント接続
- 設定可能なネットワークインターフェースでのリスニング(localhost の 127.0.0.1 だけでなく、すべてのインターフェースに対応する 0.0.0.0 でも)
- 設定可能なポート(デフォルト: 8000)
- 複数の同時クライアント接続の処理
- 接続問題に対する適切なエラー処理
- コマンド処理
- MCP クライアントからの通知コマンドの処理
- 通知をトリガーするためのシンプルな API のサポート
- コマンド検証と適切なエラーレスポンスの提供
技術要件
- サーバー実装
- 実装には Python 3.8 以上を使用
- asyncio または同様のライブラリを使用した非同期サーバーとして実装
- MCP サーバー実装のベストプラクティスに従う
- 依存関係
- Windows 10 デスクトップ通知用の win10toast
- macOS 通知用の osascript(システムに標準搭載)
- MCP プロトコル実装に必要なライブラリ
- 外部依存関係を最小限に抑える
- 設定
- コマンドライン引数による設定のサポート
- 環境変数による設定のサポート
- すべての設定に対する合理的なデフォルト値の提供
- ログ記録とエラー処理
- 包括的なログシステムの実装
- すべてのクライアント接続、コマンド、エラーのログ記録
- 意味のあるエラーメッセージを含む適切な例外処理
テスト要件
- テストスクリプト
- サーバーの機能を実証するテストスクリプトの含有
- 様々な通知タイプの例示
- クライアント互換性
- VSCode Cline との互換性の確保
- クライアント固有の設定要件のドキュメント化
成果物
- MCP サーバーの Python 実装
- 機能を実証するテストスクリプト
- すべての依存関係をリストした requirements.txt
- 使用方法と設定に関するドキュメント
- 一般的な問題のトラブルシューティングガイド
実装上の注意
- サーバーが localhost だけでなく、すべてのインターフェース(0.0.0.0)にバインドするようにする
- 同時リクエストを処理するための適切なスレッディングまたは非同期パターンを使用する
- 適切なセキュリティ対策(入力検証など)を含める
- 接続問題のデバッグのための詳細なログオプションを提供する
- サーバーの適切なシャットダウンを実装する
使用例
完成したサーバーは次のように実行できるようにする:
Copy
そして、VSCode Cline または他の MCP クライアントから MCP プロトコルを介して通知をトリガーできるようにする。