execute_python
Run Python code with automatic dependency resolution. Scripts can declare dependencies via inline metadata or parameters, executed in an isolated sandbox to avoid system pollution.
Instructions
Execute a Python script with automatic dependency management.
The script can include PEP 723 inline metadata (# /// script blocks) for declaring dependencies. Additional dependencies can also be passed via the dependencies parameter and will be merged.
Args: script: Python source code to execute. May include PEP 723 metadata. dependencies: Extra PEP 508 dependency specifiers to make available. timeout_seconds: Maximum execution time (1-300, default 30).
Returns: Formatted output with stdout, stderr, exit code, and duration.
Example - simple script:
execute_python(script="print('hello')")Example - with dependencies parameter:
execute_python(
script="import requests; print(requests.get('https://example.com').status_code)",
dependencies=["requests>=2.32"]
)Example - with inline dependency metadata (preferred for multiple deps):
execute_python(script='''
# /// script
# dependencies = ["pandas>=2.2", "numpy>=1.26"]
# ///
import pandas as pd
import numpy as np
print(pd.DataFrame({"a": np.arange(5)}).describe())
''')Always pin dependency versions (e.g. "pandas>=2.2" instead of "pandas") for reproducible results.
The inline metadata block (# /// script ... # ///) is the recommended way to declare dependencies directly in the script (see PEP 723: https://peps.python.org/pep-0723/). The dependencies parameter is a simpler alternative when you just need to add a few packages. Both accept standard pip-style version specifiers like "requests>=2.28" or "pandas" (see PEP 508: https://peps.python.org/pep-0508/).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | ||
| dependencies | No | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |