dashai-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DASHAI_TIMEOUT | No | Seconds to wait per request | 30 |
| DASHAI_BASE_URL | No | Where the backend is | http://localhost:8000 |
| DASHAI_ALLOW_REMOTE | No | Allow a non-local host (see above). Set to '1' to allow. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dashai_server_infoA | Checks that dashAI is running and summarizes what is loaded. Call this FIRST when something fails or when you do not know whether the backend is up: it tells "dashAI is down" apart from "that id does not exist", which are two problems with different fixes. Args: params (NoArgs): no parameters. Returns: str: JSON with the following schema: { "base_url": str, # which instance is being targeted "reachable": bool, # whether it responded "datasets": int, # number of loaded datasets "runs": int, # number of recorded runs "queue_empty": bool, # whether the job queue is empty "compatibility": { # live API vs the release verified end to end "verified_against": str, # e.g. "dashAI 0.9.7.post1" "status": str, # "ok" | "mismatch" | "unknown" "warnings": [str], # only on mismatch: what differs "note": str # only on mismatch/unknown } } On failure: "Error: ". |
| dashai_list_datasetsA | Lists the datasets loaded in dashAI. Returns only id, name, date and status — just enough to pick one. To see columns and types use dashai_describe_dataset with the id. Args: params (ListDatasets): contains: - limit (int): maximum to return, 1-200 (default 50) Returns: str: JSON {"count": int, "datasets": [{"id", "name", "created", "status"}]} If there are none: a message explaining how to load data from the GUI. |
| dashai_describe_datasetA | Returns everything needed to configure a training run over a dataset. Gathers into a single call what the raw API splits into four ( Args: params (DescribeDataset): contains: - dataset_id (int): dataset id - include_sample (bool): include sample rows (default True) Returns: str: JSON {"dataset": {...}, "info": {...}, "column_types": {...}, "sample": [...]} If one part is unavailable it comes back as null instead of failing whole. |
| dashai_list_componentsA | Lists the registered components: models, metrics, tasks and optimizers. ALWAYS use this before dashai_train_model. The names dashAI expects are exact and case-sensitive, and the catalogue changes with the plugins that instance has installed — they cannot be guessed. Args: params (ListComponents): contains: - types (Optional[List[str]]): filter by 'Model', 'Metric', 'Task', 'Optimizer' Returns:
str: JSON {"count": int, "components": [{"name": str, "type": str, "schema": {...}}]}
The |
| dashai_train_modelA | Trains a model on a dataset and returns the id of the enqueued job. It does NOT wait for it to finish. Training can take minutes or hours, so dashAI enqueues it and this tool returns immediately; progress is polled with dashai_job_status. Collapses the three calls the raw API demands:
Args: params (TrainModel): contains: - dataset_id (int), task_name (str), model_name (str) - input_columns / output_columns (List[str]) - metrics (List[str]), goal_metric (str) - parameters (Dict): model hyperparameters - splits (Dict[str, float]): proportions adding up to 1.0 - optimizer_name (str), optimizer_parameters (Dict) - run_name (Optional[str]) Returns: str: JSON {"job_id": str, "run_id": int, "model_session_id": int, "status": "enqueued", "next_step": str} On failure: "Error: ..." stating which parameter dashAI rejected. Examples: - "Train a random forest on dataset 3 predicting 'species'" - Do not use it to read results: that is dashai_get_run, with the run_id. |
| dashai_job_statusA | Polls the status of an enqueued job (training, prediction, explanation). dashAI's statuses: Args: params (JobStatus): contains: - job_id (str): id returned when enqueuing Returns: str: JSON {"job_id": str, "status": str, "finished": bool, "failed": bool, "raw": {...}} |
| dashai_list_runsA | Lists the recorded training runs, with their status. Useful for comparing models trained within the same experiment. Args: params (ListRuns): contains: - model_session_id (Optional[int]): filter by experiment - limit (int): maximum to return, 1-200 (default 50) Returns: str: JSON {"count": int, "runs": [{"id", "name", "model_name", "status", "goal_metric"}]} |
| dashai_get_runA | Returns the configuration and metrics of a training run. This is where results are read once dashai_job_status says Args: params (GetRun): contains: - run_id (int): run id Returns: str: JSON with the full run: model parameters, status and metrics per split (train / validation / test). |
| dashai_predictA | Enqueues a prediction using the model of an already finished run. Like training, it is asynchronous: it returns a job_id and the result is followed with dashai_job_status. Collapses the two calls the GUI makes (read from DatasetPredictionPanel + createPrediction + enqueuePredictionJob, not from the docs):
Passing only run_id to the job raises KeyError 'prediction_id' inside PredictJob.run. The Prediction row must exist first. Args: params (Predict): contains: - run_id (int): id of a finished run - dataset_id (Optional[int]): dataset to score; defaults to the run's training dataset (from its model session) Returns: str: JSON {"job_id", "run_id", "prediction_id", "dataset_id", "status": "enqueued", "next_step"} |
| dashai_get_predictionA | Returns class counts for a finished prediction — never the rows. dashAI stores predictions as an Arrow dataset on disk and GET /predict/ only returns the SQL row (id, status, paths). This tool reads that row and, when the job is finished, aggregates the output column. The label list never leaves the function. Args: params (GetPrediction): contains prediction_id from dashai_predict. Returns: str: JSON {prediction_id, run_id, dataset_id, status, finished, n, n_classes, class_counts}. Paths and row lists are stripped. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Maarmapa/dashai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server