MCP Tool Reference
Complete reference for every tool the sktime-mcp server exposes to an MCP client.
The server currently registers 26 tools.
You normally do not call these by hand — the assistant selects them from your natural-language request. This page exists so you can see exactly what the assistant has available, what each argument means, and what comes back.
For the Python API of the package itself (classes, modules), see the API Reference page instead.
Conventions
Handles
Most tools return or accept a handle — a string ID naming an object the server holds in memory.
Prefix |
Created by |
Refers to |
|---|---|---|
|
|
An estimator or pipeline |
|
|
A time series (target |
Handles live in the server process and are lost when it restarts. Use
save_data, save_model, or export_code to persist anything you need to keep,
and release_handle / release_data_handle to free memory.
Asynchronous execution: the run_async flag
Long-running work is made asynchronous by passing run_async: true to the
tool itself. There are no separate *_async tools.
Exactly four tools accept the flag:
fitpredictevaluateload_data_source
Behaviour:
|
Returns |
Use when |
|---|---|---|
|
The real result — a handle, predictions, scores |
The call is quick |
|
|
Training or loading is slow |
When you pass run_async: true, the work is scheduled on the server’s event loop
and you get a job_id back straight away. Track it with the job tools:
fit(run_async=true) -> job_id
|
+-- check_job_status(job_id) poll status and progress
+-- list_jobs() see everything in flight
+-- cancel_job(job_id) stop it
Note
There is no push notification when a job finishes. The client must poll
check_job_status to find out. An assistant will typically do this for you when
you ask “is it done yet?”, but nothing arrives unprompted.
Results are retrieved through check_job_status once status is completed.
Discovery
query_registry
Discover sktime estimators, metrics, or capability tags.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
— |
— |
Filter by scitype: |
|
object |
— |
— |
Filter by capability tags, e.g. |
|
string |
— |
— |
Case-insensitive substring search over name and description. Combines with |
|
integer |
— |
|
Maximum results. |
|
integer |
— |
|
Skip this many results (pagination). |
Commonly useful tags: capability:pred_int (prediction intervals),
capability:multivariate, handles-missing-data, scitype:y.
describe_component
Detailed information about any class in the sktime ecosystem — estimators, splitters, metrics, transformers.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Class name, e.g. |
list_available_data
Lists demo datasets and active user-loaded data handles in one response.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
boolean |
— |
|
Instantiation and handles
instantiate
Create an estimator or pipeline from an sktime craft specification string. Composition is expressed directly in the spec — sktime validates it.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Craft spec, e.g. |
Returns an est_… handle.
list_handles
Lists all active estimator handles. Takes no arguments.
release_handle
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Estimator handle to release. |
Execution
fit
Fit an estimator. Supply X/y as either live handles or demo dataset names,
depending on the estimator’s scitype.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Handle from |
|
string |
— |
— |
Data handle for |
|
string |
— |
— |
Data handle for |
|
string |
— |
— |
Demo dataset name for |
|
string |
— |
— |
Demo dataset name for |
|
int or list |
— |
— |
Forecast horizon passed through to |
|
boolean |
— |
|
Run in the background, return a |
predict
Generate predictions from a fitted estimator.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Handle of a fitted estimator. |
|
integer |
— |
|
Forecast horizon. |
|
string |
— |
|
One of |
|
float or list |
— |
|
Coverage level(s) — used by |
|
float or list |
— |
— |
Quantile level(s) — used by |
|
string |
— |
— |
Data handle for |
|
string |
— |
— |
Data handle for |
|
string |
— |
— |
Demo dataset name for |
|
string |
— |
— |
Demo dataset name for |
|
boolean |
— |
|
Run in the background, return a |
Interval and quantile forecasts are modes of this tool, not separate tools.
update
Update a fitted estimator with new data.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Handle of a fitted estimator. |
|
string |
— |
Data handles for the new data. |
|
string |
— |
Demo dataset names for the new data. |
get_fitted_params
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Handle of a fitted estimator. |
call_method
Escape hatch: call any native method on an instantiated component. Use this for
scitypes that do not fit the fit/predict shape — splitters, metrics, aligners.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Handle of the instantiated component. |
|
string |
✅ |
Method to call, e.g. |
|
object |
— |
Keyword arguments. Keys suffixed |
evaluate
Cross-validate an estimator.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Handle from |
|
string |
✅ |
— |
Target series: a data handle ID or a demo dataset name. |
|
string |
— |
— |
Exogenous series: data handle ID or demo dataset name. |
|
integer |
— |
|
Number of folds. Ignored when |
|
string |
— |
— |
Metric name, e.g. |
|
integer |
— |
— |
Initial training window for expanding-window CV. |
|
boolean |
— |
|
Run in the background, return a |
Data
load_data_source
Load data into a data_… handle. The config object must carry a type key.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
object |
✅ |
— |
Source configuration; must include |
|
boolean |
— |
|
Load in the background, return a |
Supported config.type values:
|
Additional keys |
|---|---|
|
|
|
|
|
connection and query keys, |
|
|
{
"type": "file",
"path": "/data/sales.csv",
"time_column": "date",
"target_column": "revenue"
}
inspect_data
Rich metadata for a loaded handle: mtype, scitype, shape, column names, dtypes, index level names, inferred frequency, cutoff, missing-value count, a 5-row head preview, and per-column summary statistics.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Handle to inspect. |
split_data
Split a series into temporal train/test handles. Provide exactly one of
test_size or fh.
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Handle to split. |
|
number |
— |
Hold-out fraction, exclusive range |
|
int or list |
— |
Integer: hold out that many final steps. List: holds out |
Returns train_handle and test_handle.
transform_data
Returns a new handle; the input handle is unchanged.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Handle to transform. |
|
string |
— |
|
|
|
boolean |
— |
|
(format) Infer and set |
|
boolean |
— |
|
(format) Forward/backward-fill missing values. |
|
boolean |
— |
|
(format) Drop duplicate timestamps, keeping the first. |
|
string |
— |
— |
(convert, required) Target mtype, e.g. |
action="format" also fills index gaps and reports what it did in changes_applied.
save_data
Writes the target y and any exogenous X behind a handle to one file,
creating parent directories as needed.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Handle to export. |
|
string |
✅ |
— |
Destination path. |
|
string |
— |
|
|
Warning
The format comes from the format argument, not the file extension.
Writing to out.parquet with the default format produces a CSV.
release_data_handle
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Data handle to release. |
plot_series
Plot one or more series. Saves a file when path is given, otherwise returns
the image as a base64 string.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
array of string |
✅ |
— |
Handles to plot, e.g. train, test, forecast. |
|
array of string |
— |
— |
Legend label per handle. |
|
string |
— |
— |
Plot title. |
|
string |
— |
— |
Save location, e.g. |
|
array |
— |
|
|
|
integer |
— |
|
Resolution. |
|
string or array |
— |
— |
Marker style(s), e.g. |
|
string |
— |
— |
Axis labels. |
|
string |
— |
|
|
Persistence and code generation
export_code
Emit standalone, runnable Python that reconstructs the estimator.
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Estimator/pipeline handle. |
|
string |
— |
|
Variable name in the generated code. |
|
boolean |
— |
|
Append a fit/predict example. |
|
string |
— |
|
Dataset used in the example. |
save_model
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Estimator to save. |
|
string |
✅ |
Local directory or URI. |
|
object |
— |
Extra parameters for |
load_model
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Path to the saved model directory. |
Registers the loaded model and returns a new est_… handle.
Background jobs
See the run_async flag for how jobs are created.
check_job_status
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
Job to check. |
Returns status, progress, and — once completed — the result.
list_jobs
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
— |
— |
Filter: |
|
integer |
— |
|
Page size. |
|
integer |
— |
|
Records to skip. |
Returns the page plus total and has_more for pagination.
cancel_job
Argument |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
✅ |
— |
Job to cancel. |
|
boolean |
— |
|
Also remove the job record — useful for tidying completed or failed jobs. |
Cancellation is cooperative: the server holds a reference to the running task and cancels it, but work already inside a blocking sktime call finishes its current step before stopping.
System
run_command
Danger
This tool executes arbitrary shell commands with the full privileges of the user account running the server. It is not sandboxed, and it is not restricted to the sktime registry.
A client that is allowed to call run_command can read, modify, or delete any
file the server process can reach, and can make network requests.
It exists so that an assistant can repair its own environment mid-session — typically installing an optional dependency that an estimator turned out to need:
pip install mlflow
Argument |
Type |
Required |
Description |
|---|---|---|---|
|
string |
✅ |
The shell command to run. |
Treat this as opt-in. Most MCP clients prompt before each tool call and let
you allow or deny individual tools — leave run_command on ask-every-time, or
disable it outright, unless you specifically want the assistant installing
packages and inspecting the filesystem on your behalf. If you need a hard
guarantee, run the server inside a container (see the Docker option in the
User Guide: Conversational Time-Series Workflows) so the blast radius is the container rather than your machine.
See Architecture for the full trust boundary.