Vibe modeling with Domino
Author
Vaibhav Dhawan
Principal Solution Architect
Article topics
AI, vibe modeling, MCP servers, code assistants
Intended audience
Data scientists, data science leaders
Overview and goals
Data scientists are already using code assistants to accelerate model development. With Domino, you can expand that approach beyond simply code and empower your assistants to help with experimentation and analysis.
This allows you to employ your assistants in every part of your workflow, while still preserving the security, governance, and reproducibility offered by the Domino platform.
How to set up vibe modeling
To get started with vibe modeling, you have a few options:
- Working outside of Domino using your existing code assistants (like Cursor)
- Working within Domino using VScode + Github Copilot
Within Domino
This method requires access to Github Copilot, either the free plan or a paid license. Your corporate firewall may not allow traffic to and from Github, this is needed for using copilot. URLs required for whitelisting copilot are available here.
1) Create a new compute environment in Domino, based on the “quay.io/domino/field:vibe-modeling” image. This image is based on the Domino Standard Environment (DSE), so you can also use the same pluggable workspace tools:
jupyter:
title: "Jupyter (Python, R, Julia)"
iconUrl: "/assets/images/workspace-logos/Jupyter.svg"
start: [ "/opt/domino/workspaces/jupyter/start" ]
supportedFileExtensions: [ ".ipynb" ]
httpProxy:
port: 8888
rewrite: false
internalPath: "/{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}"
requireSubdomain: false
jupyterlab:
title: "JupyterLab"
iconUrl: "/assets/images/workspace-logos/jupyterlab.svg"
start: [ "/opt/domino/workspaces/jupyterlab/start" ]
httpProxy:
internalPath: "/{{ownerUsername}}/{{projectName}}/{{sessionPathComponent}}/{{runId}}/{{#if pathToOpen}}tree/{{pathToOpen}}{{/if}}"
port: 8888
rewrite: false
requireSubdomain: false
vscode:
title: "vscode"
iconUrl: "/assets/images/workspace-logos/vscode.svg"
start: [ "/opt/domino/workspaces/vscode/start" ]
httpProxy:
port: 8888
requireSubdomain: false
rstudio:
title: "RStudio"
iconUrl: "/assets/images/workspace-logos/Rstudio.svg"
start: [ "/opt/domino/workspaces/rstudio/start" ]
httpProxy:
port: 8888
requireSubdomain: false2) In your target project, create a workspace using your new environment with your desired resources/data/code.
3) When the workspace starts, click the button on the bottom left of the IDE to login to copilot.

4) Start the MCP server from VScode, under Extensions -> MCP servers.

5) Open up copilot chat from the command palette, or keyboard shortcut (^+Command Key+I) and start modeling!

Outside of Domino
Note you must use a Domino project linked to a git repo, and have the same repo available locally on your desktop.
1) Clone the MCP server git repository:
git clone https://github.com/dominodatalab/domino_mcp_server.git
cd domino_mcp_server2) Set up the dependencies. We recommend using a package manager like uv.
uv venv
uv pip install -e .3) Set your target environment. In the repo edit the file “.env” and include your target Domino hostname + Domino API key. Do not include a trailing “/” in the hostname.
DOMINO_API_KEY='your_api_key_here'
DOMINO_HOST='https://your-domino-instance.com'4) Add the MCP server to your IDE. Steps 4 and 5 may change depending on which IDE you are using, consult your tool documentation for specifics. We will show the setup for Cursor and VScode as examples here.
- Within your target git project, create a file called “.cursor/mcp.json” for Cursor or “.vcscode/mcp.json” for VScode, with the content below. Change “/full/directory/path/to” to point to the absolute path of the MCP server git repo you cloned in step 1. Alternatively you can configure this globally under “~/.cursor/mcp.json”. If you use an environment manager other than uv, adjust the command key below (use just “python” if you have no manager).
{
"mcpServers": {
"domino_server": {
"command": "uv",
"args": [
"--directory",
"/full/directory/path/to/domino_mcp_server",
"run",
"domino_mcp_server.py"
]
}
}
}5) Add a rules file which provides the LLM with context on how and when to use the Domino MCP server. This can be created in your target project under “.cursor/rules/domino-project-rule.mdc” for Cursor, or “.github/instructions/domino.instructions.md” for VScode and can be included alongside any other rules file you may already have setup.
- The file header is slightly different for Cursor vs VScode, but actual rules are the same. Pick the header based on your IDE and then include the “Content” section below, the end result should be a single file.
- Cursor header
---
description: Instructions for the Domino Data Lab powered agentic coding tool in Cursor
globs:
alwaysApply: true
---- VScode header
---
description: Instructions for the Domino Data Lab powered agentic coding tool in VScode
applyTo: *
---- Content
You are a Domino Data Lab powered agentic coding tool that helps write code in addition to running tasks on the Domino Data Lab platform on behalf of the user using available tool functions provided by the domino_server MCP server. Including functions like domino_server. Whenever possible run commands as Domino jobs rather than on the local terminal.
The Domino project name and user name are required and available in a file called domino_project_settings.md which needs to be used in most tool calls by the agentic assistant.
When running a job, always check its status and results if completed and briefly explain any conclusions from the result of the job run. If a job result ever includes an mflow or experiment run URL, always share that with the user using the open_web_browser tool.
Any requests related to understanding or manipulating project data should assume a dataset file is already part of the Domino project and accessible via job runs. Always create scripts to understand and transform data via job runs. The script can assume all project data is accessible under the '/mnt/data/' directory or the '/mnt/imported/data/' directory, be sure to understand the full path to a dataset file before using it by running a job to list all folder contents recursively. Analytical outputs should be in plain text tabular format sent to stdout, this makes it easier to check results from the job run.
Always check if our local project has uncommitted changes, you must commit and push changes before attempting to run any Domino jobs otherwise Domino cannot see the new file changes.6) To configure the target project in Domino, create a file named domino_project_settings.md in your project root with your Domino project details. Enter your target project name, and project owner in the file. This should point to a git backed project in Domino, linked to the same git repo you are working on locally.
- This file is referenced in the rules file from step 5, so your coding assistant will read the project details from here before sending any requests to the MCP server.
# Domino project settings to use with the mcp server domino_server and its job runner functions
project_name="your-project-name"
user_name="project_owner_username"7) Restart your IDE to pick up the MCP server configuration, and start modeling using your chat assistant in agent mode — Cursor and VScode both provide the option for switching chat to agent mode.
Cursor example

VScode example

Continue exploring
Check out the library of example prompts and go further with the blog post and walkthrough video on Domino's blog

Vaibhav Dhawan
Principal Solution Architect

I work to support large and complex customer deployments to meet their requirements for security, cost, tool integration, data and processes both in the cloud and on-prem. A number of these solutions and best practices are packaged into reusable Blueprints for our larger customer base, and some are later integrated into the Domino platform.