「あ、あのGPUインスタンスまだ動いてるな。消し忘れた。」
開発中にこんなふうに思うことはよくある。Modalを使っていると、サーバーレスで手軽に高パフォーマンスな計算資源を確保できるが、その管理——アプリの状態確認やデプロイメントのチェック——のためにわざわざターミナルを開いたりダッシュボードを確認したりするのは、AIエージェント(ClaudeやCursor)との開発フローを分断してしまう。
私はこの「コンテキストスイッチ」こそが、AI時代の開発効率を落とす最大の要因だと考えている。だからこそ、Modalのインフラ操作を直接MCP経由でエージェントに実行させる仕組みを利用している。
自然言語でインフラを制御する
これを使えば、CursorやClaudeに対して自然な言葉で指示を出すだけで、実際のModalリソースを操作できる。具体的には以下のような使い方が可能だ。
-
稼働状況の把握:
list_appsを使って、現在動いているコンテキストや過去の履歴を確認する。「今動いてるModalのアプリ一覧を出して」と投げれば、エージェントが即座にリストアップしてくれる。 -
コスト管理と安全な停止: 意図せず起動し続けているプロセスを見つけたら、
stop_appで即座に停止させる。CLIでApp IDを探してコマンドを叩く必要はない。不必要な課金を防ぐための強力な手段になる。 -
リソースの監視:
list_volumesやlist_secretsを通じて、接続されているネットワークボリュームや設定済みのシークレットを確認できる。インフラの状態をエージェントに監査させることが可能だ。 -
デプロイメントの追跡:
list_deploymentsやget_deploymentを使い、公開されているエンドポイントや設定の詳細を、エージェントとの会話の中で取得できる。
実例:エージェントへの指示
例えば、以下のようなやり取りが実現する。
Prompt: "List all active Modal apps running in my account"
Response: エージェントが現在実行中のアプリ('gpu-trainer-alpha'など)とその状態を報告してくれる。
あるいは、コスト削減のために:
Prompt: "Force stop Modal app ID 'ap-123'"
Response: 即座に停止コマンドが発行され、サーバーレスコンテナのシャットダウンが完了する。
セットアップは極めてシンプル
このMCPサーバーを導入するのは難しいことではない。私はVinkiusを通じて提供しているため、手順は3ステップで終わる。サブスクライブして、接続トークンを取得し、ClaudeやCursorに貼り付けるだけだ。
[Modal MCP Server: https://vinkius.com/mcp/modal-serverless-ai-infrastructure]
AIエンジニアにとって、インフラ管理をエージェントの「手足」として組み込むことは、単なる便利機能ではない。開発フローの中にインフラ操作を溶け込ませるための標準的なアプローチだ。
MCPはAIエージェントの音楽。カタログを構築しました。Vinkius MCPカタログを発見してください。