Skip to main content
Glama
nibzard

Daytona MCP Python Interpreter

デイトナ MCP インタープリター

一時的な Daytona サンドボックスで Python コード実行機能を提供するモデル コンテキスト プロトコル サーバー。

Claude Desktop の Daytona MCP サーバー

概要

Daytona MCPインタープリターは、ClaudeのようなAIアシスタントが安全で隔離された環境でPythonコードとシェルコマンドを実行できるようにします。モデルコンテキストプロトコル(MCP)標準を実装し、以下のツールを提供します。

  • サンドボックス環境での Python コード実行

  • シェルコマンドの実行

  • ファイル管理(アップロード/ダウンロード)

  • Gitリポジトリのクローン作成

  • 実行中のサーバーのWebプレビュー生成

すべての実行は、使用後に自動的にクリーンアップされる一時的な Daytona ワークスペースで行われます。

Related MCP server: MCP Python Toolbox

インストール

  1. まだインストールしていない場合は、uv をインストールします。

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 仮想環境を作成してアクティブ化します。

既存の env がある場合は、まずそれを非アクティブ化して削除します。

deactivate
rm -rf .venv

新しい仮想環境を作成してアクティブ化します。

uv venv
source .venv/bin/activate

(Windows の場合: .venv\Scripts\activate )

  1. 依存関係をインストールします:

uv add "mcp[cli]" pydantic python-dotenv "daytona-sdk>=0.10.5"

注意:このプロジェクトにはdaytona-sdkバージョン0.10.5以降が必要です。それ以前のバージョンではFileSystem APIとの互換性がありません。

環境変数

適切に動作させるには、次の環境変数を設定します。

  • MCP_DAYTONA_API_KEY : Daytona認証に必要なAPIキー

  • MCP_DAYTONA_SERVER_URL : サーバー URL (デフォルト: https://app.daytona.io/api )

  • MCP_DAYTONA_TIMEOUT : リクエストタイムアウト(秒)(デフォルト: 180.0)

  • MCP_DAYTONA_TARGET : ターゲット地域(デフォルト: eu)

  • MCP_VERIFY_SSL : SSL検証を有効にする(デフォルト: false)

発達

サーバーを直接実行します。

uv run src/daytona_mcp_interpreter/server.py

または、UV がパスにない場合は、次のようにします。

/Users/USER/.local/bin/uv run ~LOCATION/daytona-mcp-interpreter/src/daytona_mcp_interpreter/server.py

MCP Inspector を使用してサーバーをテストします。

npx @modelcontextprotocol/inspector \
  uv \
  --directory . \
  run \
  src/daytona_mcp_interpreter/server.py

ログを表示:

tail -f /tmp/daytona-interpreter.log

Claude Desktopとの統合

デモビデオを見る

  1. Claude Desktop (またはその他の MCP 互換クライアント) で構成します。

MacOS の場合は、次のファイルを編集します: ~/Library/Application Support/Claude/claude_desktop_config.json Windows の場合は、次のファイルを編集します: %APPDATA%\Claude\claude_desktop_config.json

{
    "mcpServers": {
        "daytona-interpreter": {
            "command": "/Users/USER/.local/bin/uv",
            "args": [
                "--directory",
                "/Users/USER/dev/daytona-mcp-interpreter",
                "run",
                "src/daytona_mcp_interpreter/server.py"
            ],
            "env": {
                "PYTHONUNBUFFERED": "1",
                "MCP_DAYTONA_API_KEY": "api_key",
                "MCP_DAYTONA_SERVER_URL": "api_server_url",
                "MCP_DAYTONA_TIMEOUT": "30.0",
                "MCP_VERIFY_SSL": "false",
                "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
            }
        }
    }
}
  1. Claudeデスクトップを再起動します

  2. Daytona PythonインタープリタツールはClaudeで利用可能になります

利用可能なツール

シェルエグゼクティブ

Daytona ワークスペースでシェル コマンドを実行します。

# Example: List files
ls -la

# Example: Install a package
pip install pandas

ファイルのダウンロード

大きなファイルをスマートに処理して、Daytona ワークスペースからファイルをダウンロードします。

基本的な使用方法:

file_download(file_path="/path/to/file.txt")

高度な使用法:

# Set custom file size limit
file_download(file_path="/path/to/large_file.csv", max_size_mb=10.0)

# Download partial content for large files
file_download(file_path="/path/to/large_file.csv", download_option="download_partial", chunk_size_kb=200)

# Convert large file to text
file_download(file_path="/path/to/large_file.pdf", download_option="convert_to_text")

# Compress file before downloading
file_download(file_path="/path/to/large_file.bin", download_option="compress_file")

# Force download despite size
file_download(file_path="/path/to/large_file.zip", download_option="force_download")

ファイルのアップロード

Daytonaワークスペースにファイルをアップロードします。テキストファイルとバイナリファイルの両方をサポートします。

基本的な使用方法:

# Upload a text file
file_upload(file_path="/workspace/example.txt", content="Hello, World!")

高度な使用法:

# Upload a text file with specific path
file_upload(
    file_path="/workspace/data/config.json",
    content='{"setting": "value", "enabled": true}'
)

# Upload a binary file using base64 encoding
import base64
with open("local_image.png", "rb") as f:
    base64_content = base64.b64encode(f.read()).decode('utf-8')

file_upload(
    file_path="/workspace/images/uploaded.png",
    content=base64_content,
    encoding="base64"
)

# Upload without overwriting existing files
file_upload(
    file_path="/workspace/important.txt",
    content="New content",
    overwrite=False
)

Gitクローン

分析とコード実行のために、Git リポジトリを Daytona ワークスペースに複製します。

基本的な使用方法:

git_clone(repo_url="https://github.com/username/repository.git")

高度な使用法:

# Clone a specific branch
git_clone(
    repo_url="https://github.com/username/repository.git",
    branch="develop"
)

# Clone to a specific directory with full history
git_clone(
    repo_url="https://github.com/username/repository.git",
    target_path="my_project",
    depth=0  # 0 means full history
)

# Clone with Git LFS support for repositories with large files
git_clone(
    repo_url="https://github.com/username/large-files-repo.git",
    lfs=True
)

ウェブプレビュー

Daytona ワークスペース内で実行されている Web サーバーのプレビュー URL を生成します。

基本的な使用方法:

# Generate a preview link for a web server running on port 3000
web_preview(port=3000)

高度な使用法:

# Generate a preview link with a descriptive name
web_preview(
    port=8080,
    description="React Development Server"
)

# Generate a link without checking if server is running
web_preview(
    port=5000,
    check_server=False
)

例:

# First run a simple web server using Python via the shell
shell_exec(command="python -m http.server 8000 &")

# Then generate a preview link for the server
web_preview(port=8000, description="Python HTTP Server")

鍛冶屋のバッジ

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nibzard/daytona-mcp-interpreter'

If you have feedback or need assistance with the MCP directory API, please join our Discord server