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 henry@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
クラス内に追加します。