mcp-server-cocalc-exec
<!-- mcp-name: io.github.pdwi2020/mcp-server-cocalc-exec -->
MCP server for executing Python code on CoCalc cloud projects. It enables any MCP-compatible assistant to run Python and machine-learning workloads remotely on CoCalc infrastructure without local GPU requirements.
Features
cocalc_execute: Execute inline Python code on a CoCalc project.cocalc_execute_file: Execute a local.pyfile on CoCalc.cocalc_execute_notebook: Execute code and download generated artifacts (images, models, CSVs, etc.).cocalc_stop_project: Stop the active project to conserve cloud resources.
Prerequisites
- Python 3.10+
- A CoCalc account
- A CoCalc API key
CoCalc API setup
- Sign in to CoCalc.
- Open account settings and create/copy an API key.
- Export your API key before starting the MCP server:
export COCALC_API_KEY="your_api_key"
Optional:
export COCALC_PROJECT_ID="existing_project_id"
Installation
pip install mcp-server-cocalc-exec
Or run directly with uvx:
uvx mcp-server-cocalc-exec
Configuration
| Environment Variable | Required | Default | Description | |------------------------|----------|----------------|-------------| | COCALC_API_KEY | Yes | - | CoCalc API key used for REST authentication | | COCALC_PROJECT_ID | No | auto-create | Existing CoCalc project id to reuse across requests |
Tools and Usage
cocalc_execute
Execute inline Python code on CoCalc.
Parameters
code(string, required): Python code to execute.timeout(int, default300): Max execution time in seconds.
Example
cocalc_execute(
code="import platform; print(platform.python_version())",
timeout=300,
)
cocalc_execute_file
Execute a local Python file on CoCalc.
Parameters
file_path(string, required): Local path to.pyfile.timeout(int, default300)
Example
cocalc_execute_file(
file_path="./train.py",
timeout=600,
)
cocalc_execute_notebook
Execute code and download generated artifacts as a zip + extracted files.
Parameters
code(string, required)output_dir(string, required): Local folder to save artifacts.timeout(int, default300)
Example
cocalc_execute_notebook(
code="open('/tmp/hello.txt', 'w').write('hello from cocalc')",
output_dir="./outputs",
timeout=300,
)
cocalc_stop_project
Stop the current CoCalc project runtime to avoid idle usage.
Example
cocalc_stop_project()
MCP Client Configuration
Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"cocalc-exec": {
"command": "mcp-server-cocalc-exec",
"env": {
"COCALC_API_KEY": "your_api_key",
"COCALC_PROJECT_ID": "optional_existing_project_id"
}
}
}
}
Architecture
Execution flow:
- MCP tool receives code/file request.
- Server wraps input into cell markers for per-cell parsing.
- Runtime loads CoCalc config from env and gets/creates a cached project id.
- Runtime starts project (if needed) via CoCalc REST API.
- Runtime executes
python3 -c "<wrapped_code>"throughprojects/exec. - Server parses markers into structured JSON and returns to the MCP client.
- Artifact tool additionally scans runtime outputs, zips them, and returns base64 payload for local extraction.
License
MIT






