mcpField
M
Modal MCP Server

Modal MCP Server

ローカル
github.com/smehmoodクラウド・インフラ383 週間前に更新

Modal MCP Server について

Modal MCP Server は、Cursor から Modal のボリューム管理やアプリのデプロイを行うためのサーバーです。ボリュームのファイル操作とアプリのデプロイを MCP ツールとして提供します。

主な機能

  1. 01ボリュームと内容の一覧表示
  2. 02ファイルのコピー、削除、アップロード、ダウンロード
  3. 03Modal アプリのデプロイ

活用シーン

  1. 01Modal ボリューム内のファイル確認
  2. 02ボリュームファイルの転送や整理
  3. 03uv を使うプロジェクトからのアプリのデプロイ

MCP 対応

Cursor などの MCP クライアントに、Modal ボリューム操作とアプリのデプロイ用ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Modal MCP サーバー

Cursor 内から Modal ボリュームを操作し、Modal アプリケーションをデプロイするための MCP サーバー実装です。

インストール

  1. このリポジトリをクローンします:
git clone https://github.com/smehmood/modal-mcp-server.git
cd modal-mcp-server
  1. uv を使用して依存関係をインストールします:
uv sync

設定

Cursor でこの MCP サーバーを使用するには、~/.cursor/mcp.json に以下の設定を追加します:

{
  "mcpServers": {
    "modal-mcp-server": {
      "command": "uv",
      "args": [
        "--project", "/path/to/modal-mcp-server",
        "run", "/path/to/modal-mcp-server/src/modal_mcp/server.py"
      ]
    }
  }
}

/path/to/modal-mcp-server を、クローンしたリポジトリの絶対パスに置き換えてください。

要件

  • Python 3.11 以降
  • uv パッケージマネージャー
  • 有効な認証情報で設定された Modal CLI
  • Modal のデプロイをサポートする場合:
    • デプロイするプロジェクトで、依存関係の管理に uv を使用する必要があります
    • プロジェクトの仮想環境に Modal がインストールされている必要があります

サポートされているツール

Modal ボリューム操作
  1. Modal ボリュームの一覧表示(list_modal_volumes)

    • 環境内のすべての Modal ボリュームを一覧表示します
    • ボリューム情報を JSON 形式で返します
    • パラメーター:なし
  2. ボリュームの内容を一覧表示(list_modal_volume_contents)

    • Modal ボリューム内のファイルとディレクトリを一覧表示します
    • パラメーター:
      • volume_name:Modal ボリュームの名前
      • path:ボリューム内のパス(デフォルト:「/」)
  3. ファイルのコピー(copy_modal_volume_files)

    • Modal ボリューム内のファイルをコピーします
    • パラメーター:
      • volume_name:Modal ボリュームの名前
      • paths:最後のパスをコピー先とするパスのリスト
    • 例:["source.txt", "dest.txt"] または ["file1.txt", "file2.txt", "dest_dir/"]
  4. ファイルの削除(remove_modal_volume_file)

    • Modal ボリュームからファイルまたはディレクトリを削除します
    • パラメーター:
      • volume_name:Modal ボリュームの名前
      • remote_path:削除するファイルまたはディレクトリのパス
      • recursive:再帰的に削除するかどうかを示すブール値(デフォルト:false)
  5. ファイルのアップロード(put_modal_volume_file)

    • Modal ボリュームにファイルまたはディレクトリをアップロードします
    • パラメーター:
      • volume_name:Modal ボリュームの名前
      • local_path:アップロードするローカルファイルまたはディレクトリのパス
      • remote_path:アップロード先のボリューム内パス(デフォルト:「/」)
      • force:既存のファイルを上書きするかどうかを示すブール値(デフォルト:false)
  6. ファイルのダウンロード(get_modal_volume_file)

    • Modal ボリュームからファイルをダウンロードします
    • パラメーター:
      • volume_name:Modal ボリュームの名前
      • remote_path:ダウンロードするボリューム内のファイルまたはディレクトリのパス
      • local_destination:ダウンロードしたファイルを保存するローカルパス(デフォルト:現在のディレクトリ)
      • force:既存のファイルを上書きするかどうかを示すブール値(デフォルト:false)
    • 注:local_destination に「-」を指定すると、ファイルの内容を標準出力に書き込みます
Modal のデプロイ
  1. Modal アプリのデプロイ(deploy_modal_app)
    • Modal アプリケーションをデプロイします
    • パラメーター:
      • absolute_path_to_app:Modal アプリケーションファイルの絶対パス
    • 注:Modal アプリを含むプロジェクトには、以下が必要です:
      • 依存関係の管理に uv を使用すること
      • 仮想環境に modal CLI がインストールされていること

レスポンス形式

すべてのツールは、操作の種類に応じて多少異なる、標準化された形式でレスポンスを返します:

# JSON operations (list volumes, list contents):
{
    "success": True,
    "data": {...}  # JSON data from Modal CLI
}

# File operations (put, get, copy, remove):
{
    "success": True,
    "message": "Operation successful message",
    "command": "executed command string",
    "stdout": "command output",  # if any
    "stderr": "error output"     # if any
}

# Error case (all operations):
{
    "success": False,
    "error": "Error message describing what went wrong",
    "command": "executed command string",  # for file operations
    "stdout": "command output",  # if available
    "stderr": "error output"     # if available
}

コントリビューション

コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。