sktime-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SKTIME_MCP_LOG_PATH | No | Optional file path to output logs to in addition to stderr. | |
| SKTIME_MCP_LOG_LEVEL | No | Server logging verbosity level (DEBUG, INFO, WARNING, ERROR). Default: WARNING. | |
| SKTIME_MCP_AUTO_FORMAT | No | Enables or disables automatic time-series formatting during data loading. Default: true. | |
| SKTIME_MCP_JOB_MAX_AGE_HOURS | No | Maximum hours before completed background jobs are automatically pruned. Default: 24. | |
| SKTIME_MCP_MAX_RESPONSE_TOKENS | No | Maximum tokens allowed per tool response. Default: 0 (unlimited). | |
| SKTIME_MCP_JOB_CLEANUP_INTERVAL | No | Interval in seconds for periodic job cleanup checks. Default: 3600. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_registryA | Discover sktime estimators, metrics, or capability tags. Common tags you can filter estimators by: 'capability:pred_int' (bool) - prediction intervals, 'capability:multivariate' (bool) - multivariate support, 'handles-missing-data' (bool) - NaN handling, 'scitype:y' (str) - target type ('univariate'/'multivariate'/'both'), 'requires-fh-in-fit' (bool) - needs forecast horizon at fit time. Set task='tag' (or 'tags') to query the full list of capability tags. |
| describe_componentA | Get detailed information about ANY class or component in the sktime ecosystem (estimators, splitters, metrics, transformers) |
| instantiate_estimatorA | Create an estimator or pipeline instance using a sktime craft specification. The spec is a string that evaluates to an estimator, e.g., 'ARIMA(order=(1, 1, 1))' or 'Detrender() * ARIMA()'. |
| list_handlesA | List all active estimator handles in memory |
| release_handleA | Release an estimator handle and free it from memory |
| fitA | Fit an estimator on data. Provide explicit X_handle and/y_handle (or datasets) depending on the estimator's scitype. |
| predictB | Generate predictions from a fitted estimator. Supports different modes like predict, predict_interval, predict_quantiles. |
| updateC | Update a fitted estimator with new data. |
| get_fitted_paramsA | Get fitted parameters from an estimator |
| call_methodA | Dynamically call any native method on an instantiated sktime component (e.g. 'split', 'get_alignment', 'call'). Use this tool to interact with non-standard scitypes like Splitters, Metrics, or Aligners that do not support the generic 'fit' or 'predict' endpoints. Pass 'kwargs' as a dictionary of arguments. |
| evaluate_estimatorC | Evaluate an estimator using cross-validation on a dataset |
| list_available_dataA | List all data available for use — system demo datasets and active user-loaded data handles — in a single unified response. Use is_demo=true for demos only, is_demo=false for handles only, or omit is_demo to get both. |
| load_data_sourceA | Load data from various sources into a data handle for forecasting. Can run synchronously (blocking) or asynchronously in the background. Supported source types: 'pandas' - from a dict or inline data (keys: data, time_column, target_column). 'file' - from CSV, Excel (.xlsx), or Parquet (keys: path, time_column, target_column). 'sql' - from a SQL database (keys: connection_string, query, time_column, target_column). 'url' - from a web URL pointing to CSV/Excel/Parquet (keys: url, time_column, target_column). GUIDELINES: 1. NEVER assume a column is a time index unless the user says so. 2. ALWAYS specify 'target_column' if the user mentions a specific variable. 3. The first column is used as target by default — if that's a date column, specify target_column explicitly. 4. For non-standard date formats, omit 'time_column' to use an integer index. |
| release_data_handleB | Release a data handle and free memory |
| inspect_dataA | Inspect a loaded data handle and return rich metadata for understanding the series before modelling. Returns mtype, scitype, shape, column names, dtypes, index level names, inferred frequency, cutoff (last training timestamp), total missing-value count, a 5-row head preview, and per-column summary statistics. Works on handles from load_data_source, split_data, or transform_data. Does not modify the data. |
| split_dataA | Split a time series data handle into temporal train and test sets, registering both halves as new data handles. Provide exactly one of test_size (fraction in (0, 1)) or fh (forecast horizon). fh may be an integer (hold out that many final steps) or a list of relative horizon indices (hold out max(fh) final steps). Returns train_handle, test_handle, cutoff timestamp, train_size, and n_test. |
| transform_dataA | Transform a loaded data handle and return a new handle. action='format' (default): auto-fix common time series issues — infer/set frequency, remove duplicate timestamps, fill index gaps, and forward/backward-fill missing values; returns changes_applied. action='convert': convert y to a different sktime mtype via convert_to() (requires to_mtype, e.g. 'pd.DataFrame', 'pd.Series', 'np.ndarray'). Replaces the legacy format_time_series tool. |
| save_dataA | Persist the target series (y) and any exogenous features (X) behind a data handle to a local file. Combines y and X into one table. Creates parent directories as needed. Supported formats: csv (default, writes index as first column), parquet, json (records orient, ISO dates). |
| plot_seriesB | Plot one or more time series natively. Can save the plot to a specified path as a PNG file or return it as a base64 string. |
| export_codeC | Export an estimator or pipeline as executable Python code |
| save_modelA | Save an estimator/pipeline handle using sktime MLflow integration |
| load_modelB | Load a saved sktime model from a local path and register it for use |
| check_job_statusB | Check the status and progress of a background job |
| list_jobsA | List all background jobs with optional status filter |
| cancel_jobA | Cancel a running or pending background job. Set delete=true to also remove the job record entirely (useful for cleaning up completed/failed jobs). |
| run_commandA | Run an arbitrary CLI/bash command inside the sktime container. Use this to install missing python packages (e.g., 'pip install mlflow') or inspect the file system. |
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/sktime/sktime-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server