mn1985/projector-mcp-server
If you are the rightful owner of projector-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Epson Projector MCP Server is designed to control Epson projectors using the Model Context Protocol (MCP) by wrapping the projector's Web API (ESC/VP21) and providing it as an MCP tool.
Epson Projector MCP Server
Epson製プロジェクターをMCP (Model Context Protocol) を通じて制御するためのサーバーです。 プロジェクターのWeb API (ESC/VP21) をラップし、MCPツールとして提供します。
機能
現在、以下の機能を提供します。
- 電源ON
- 電源OFF
- 電源状態の確認
前提条件
- Python 3.8以上
- プロジェクターがネットワークに接続されており、IPアドレスが固定されていること。
- プロジェクターのWebコントロール機能が有効になっており、Web APIが利用可能になっていること。
- 設定方法の詳細は、お使いのプロジェクターの取扱説明書をご確認ください。
- 一般的には、WebブラウザでプロジェクターのIPアドレスにアクセスし、設定メニューから「Web API」や「ESC/VP21」に関する項目を有効にします。
セットアップ方法
-
リポジトリをクローンまたはダウンロード
git clone <this-repository-url> cd projector-mcp-server -
Python仮想環境の作成と有効化
Windows (PowerShell/コマンドプロンプト) の場合:
# 仮想環境を作成 py -m venv venv # 仮想環境を有効化 .\venv\Scripts\activate -
必要なライブラリのインストール
pip install -r requirements.txt -
環境変数の設定
.env.exampleファイルをコピーして.envという名前のファイルを作成します。この.envファイルが、実際の動作で読み込まれる設定ファイルとなります。copy .env.example .env次に、作成した
.envファイルをテキストエディタで開き、ご自身のプロジェクターのIPアドレスと、Webコントロール機能で設定したパスワードに書き換えてください。# 例: PROJECTOR_IP=192.168.1.100 PROJECTOR_PASSWORD=your_password_hereパスワードはどこで設定するの?
EpsonプロジェクターのWeb APIには、デフォルトのパスワードはありません。 パスワードは、プロジェクターのWebコントロール機能に初めてアクセスした際に、ユーザー自身で設定する必要があります。
- プロジェクター本体のメニューでIPアドレスを確認します。
- PCのWebブラウザでそのIPアドレス(例:
http://192.168.1.100)にアクセスします。 - 初回アクセス時にパスワードの設定を求められます。ユーザー名は
EPSONWEBで固定です。ここで設定したパスワードを、上記のPROJECTOR_PASSWORDに設定してください。 - もしパスワードを忘れた場合は、プロジェクター本体のメニューから「ネットワーク設定のリセット」を行うと、再設定できます。
サーバーの起動方法
以下のコマンドでMCPサーバーを起動します。
# 仮想環境が有効でない場合は有効化する
.\venv\Scripts\activate
# サーバーを起動
python main.py
サーバーが http://127.0.0.1:8000 で起動します。
クライアントからの利用方法
別のターミナル(PowerShell)を開き、mcp コマンドラインツールを使ってサーバーと対話できます。
1. mcp コマンドラインツールのインストール
サーバーと同じ仮想環境を有効化した後、以下のコマンドでインストールします。
.\venv\Scripts\activate
pip install "mcp[cli]@git+https://github.com/modelcontextprotocol/python-sdk.git"
2. コマンドの実行例
# 電源状態の確認
mcp call projector /power
# 電源をONにする
mcp call projector /power/on
# 電源をOFFにする
mcp call projector /power/off
Visual Studio Codeでの利用
このプロジェクトはVS Codeでの利用に最適化されています。
-
VS Codeでフォルダを開く: VS Codeで
projector-mcp-serverフォルダを開きます。 -
サーバーの起動 (簡単!):
Ctrl + Shift + Bを押してください。 VS Codeのタスクが実行され、自動的にターミナルが開き、仮想環境が有効化され、MCPサーバーが起動します。 -
クライアント操作: サーバーが起動したら、VS Codeのターミナルで新しいタブ(
+アイコン)を開き、そこでmcpコマンドを実行できます。# ターミナルで仮想環境を有効化 .\venv\Scripts\activate # mcpコマンドを実行 mcp call projector /power
(オプション)REST Clientの利用
mcpコマンドの代わりに、GUIでAPIをテストすることもできます。
-
VS Codeで REST Client 拡張機能をインストールします。
-
プロジェクトルートにある
requests.httpファイルをVS Codeで開きます。### プロジェクターの電源状態を確認 GET http://127.0.0.1:8000/tools/projector/power ### プロジェクターをONにする POST http://127.0.0.1:8000/tools/projector/power/on ### プロジェクターをOFFにする POST http://127.0.0.1:8000/tools/projector/power/off -
各リクエストの上にある
Send Requestをクリックすると、リクエストが送信され、結果が表示されます。
機能の拡張
機能を追加するには、主に以下の2つのファイルを編集します。
projector_controller.py: EpsonプロジェクターのWeb API (ESC/VP21) へリクエストを送信するロジックを追記します。プロジェクターのAPIドキュメントを参考に、送信したいコマンドを追加してください。main.py: 新しい機能を呼び出すためのMCPツール (@tool.get,@tool.postなど) をProjectorToolクラス内に追加します。