Daytona MCP Python Interpreter
A Model Context Protocol server that allows execution of Python code within Daytona workspaces, providing a secure and isolated environment for executing and managing Python scripts.
nkkko
Tools
python_interpreter
Execute Python code in a Daytona workspace
README
Daytona MCP Interpreter
A Model Context Protocol server that provides Python code execution capabilities in ephemeral Daytona sandboxes.
Overview
Daytona MCP Interpreter enables AI assistants like Claude to execute Python code and shell commands in secure, isolated environments. It implements the Model Context Protocol (MCP) standard to provide tools for:
- Python code execution in sandboxed environments
- Shell command execution
- File management (upload/download)
- Git repository cloning
- Web preview generation for running servers
All execution happens in ephemeral Daytona workspaces that are automatically cleaned up after use.
Installation
- Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Create and activate virtual environment.
If you have an existing env, deactivate and remove it first:
deactivate
rm -rf .venv
Create and activate a new virtual environment:
uv venv
source .venv/bin/activate
(On Windows: .venv\Scripts\activate
)
- Install dependencies:
uv add "mcp[cli]" pydantic python-dotenv "daytona-sdk>=0.10.5"
Note: This project requires daytona-sdk version 0.10.5 or higher. Earlier versions have incompatible FileSystem API.
Environment Variables
Configure these environment variables for proper operation:
MCP_DAYTONA_API_KEY
: Required API key for Daytona authenticationMCP_DAYTONA_SERVER_URL
: Server URL (default: https://app.daytona.io/api)MCP_DAYTONA_TIMEOUT
: Request timeout in seconds (default: 180.0)MCP_DAYTONA_TARGET
: Target region (default: eu)MCP_VERIFY_SSL
: Enable SSL verification (default: false)
Development
Run the server directly:
uv run src/daytona_mcp_interpreter/server.py
Or if uv is not in your path:
/Users/USER/.local/bin/uv run ~LOCATION/daytona-mcp-interpreter/src/daytona_mcp_interpreter/server.py
Use MCP Inspector to test the server:
npx @modelcontextprotocol/inspector \
uv \
--directory . \
run \
src/daytona_mcp_interpreter/server.py
View logs:
tail -f /tmp/daytona-interpreter.log
Integration with Claude Desktop
- Configure in Claude Desktop (or other MCP-compatible clients):
On MacOS, edit: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows, edit: %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"
}
}
}
}
- Restart Claude Desktop
- The Daytona Python interpreter tools will be available in Claude
Available Tools
Shell Exec
Executes shell commands in the Daytona workspace.
# Example: List files
ls -la
# Example: Install a package
pip install pandas
File Download
Downloads files from the Daytona workspace with smart handling for large files.
Basic Usage:
file_download(file_path="/path/to/file.txt")
Advanced Usage:
# 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")
File Upload
Uploads files to the Daytona workspace. Supports both text and binary files.
Basic Usage:
# Upload a text file
file_upload(file_path="/workspace/example.txt", content="Hello, World!")
Advanced Usage:
# 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 Clone
Clones a Git repository into the Daytona workspace for analysis and code execution.
Basic Usage:
git_clone(repo_url="https://github.com/username/repository.git")
Advanced Usage:
# 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
)
Web Preview
Generates a preview URL for web servers running inside the Daytona workspace.
Basic Usage:
# Generate a preview link for a web server running on port 3000
web_preview(port=3000)
Advanced Usage:
# 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
)
Example:
# 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")
<a href="https://glama.ai/mcp/servers/hj7jlxkxpk"><img width="380" height="200" src="https://glama.ai/mcp/servers/hj7jlxkxpk/badge" alt="Daytona Python Interpreter MCP server" /></a>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.