
Probabilistic time-series forecasts from zero-shot foundation models: routed, single or ensembled.
Call this server's tools from your browser. Nothing to install.
Bearer token: "Bearer pc_live_...". Create an API key at https://ephemeris.cascade.industries/dashboard after signing up.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Deterministic calculations from a complete ephemeris.forecast v1 artifact object, including CLI artifacts. No inference or forecast charge; this hosted tool still receives data over the network. Returns scope, result, basis, limitations and source pointers: last-observed baseline, median endpoint/change, marginal-median aggregates, and exact saved billing units. Missing medians/context remain unknown. Sum of medians only for period_total; it is not a cumulative-distribution interval or median. No calibrated coverage, causal explanation, path/peak probability, or business action is inferred. Example: pass {artifact: <forecast result artifact>}; choose series_index/variate_index for multiple results. Maximum 1 MiB; malformed/version/shape errors are recoverable by fixing the artifact or using CLI, never rerunning inference. Missing labels may be corrected in a COPY of context without changing request/response. No filesystem access, URL fetches, persistent storage, Gnomon import, or scoring.
Complete ephemeris.forecast schema_version 1 JSON object returned by forecast or saved by Ephemeris CLI. Pass the object, not a filename, URL, resource URI, request ID, or bearer token. Maximum 1 MiB UTF-8 JSON. Contains submitted history; send only data you are authorized to process on this hosted server.
Zero-based series index; required when the artifact has multiple series, otherwise 0.
Zero-based variate index; required for multivariate results, otherwise 0.
Deterministic calculations from a complete ephemeris.forecast v1 artifact object, including CLI artifacts. No inference or forecast charge; this hosted tool still receives data over the network. Returns scope, result, basis, limitations and source pointers: last-observed baseline, median endpoint/change, marginal-median aggregates, and exact saved billing units. Missing medians/context remain unknown. Sum of medians only for period_total; it is not a cumulative-distribution interval or median. No calibrated coverage, causal explanation, path/peak probability, or business action is inferred. Example: pass {artifact: <forecast result artifact>}; choose series_index/variate_index for multiple results. Maximum 1 MiB; malformed/version/shape errors are recoverable by fixing the artifact or using CLI, never rerunning inference. Missing labels may be corrected in a COPY of context without changing request/response. No filesystem access, URL fetches, persistent storage, Gnomon import, or scoring.
| Argument | Type | Description |
|---|---|---|
| artifact* | object | Complete ephemeris.forecast schema_version 1 JSON object returned by forecast or saved by Ephemeris CLI. Pass the object, not a filename, URL, resource URI, request ID, or bearer token. Maximum 1 MiB UTF-8 JSON. Contains submitted history; send only data you are authorized to process on this hosted server. |
| series_index | integer | Zero-based series index; required when the artifact has multiple series, otherwise 0. |
| variate_index | integer | Zero-based variate index; required for multivariate results, otherwise 0. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"artifact"
],
"properties": {
"artifact": {
"type": "object",
"description": "Complete ephemeris.forecast schema_version 1 JSON object returned by forecast or saved by Ephemeris CLI. Pass the object, not a filename, URL, resource URI, request ID, or bearer token. Maximum 1 MiB UTF-8 JSON. Contains submitted history; send only data you are authorized to process on this hosted server.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"series_index": {
"type": "integer",
"maximum": 63,
"minimum": 0,
"description": "Zero-based series index; required when the artifact has multiple series, otherwise 0."
},
"variate_index": {
"type": "integer",
"maximum": 255,
"minimum": 0,
"description": "Zero-based variate index; required for multivariate results, otherwise 0."
}
},
"additionalProperties": false
}Submit numeric observations to forecast future sampling steps. Spends credits on successful calls. Choose and retain idempotency_key before submitting; no automatic retries, replay depends on server retention. Minimal example: {mode: route, series: [{values: [10,12,11], freq: D}], horizon: 2, quantiles: [0.1,0.5,0.9]}. Returns forecasts and meta as before, plus artifact by default for describe_forecast/plot_forecast. Save the embedded JSON attachment: it includes full input history and local context; no hosted storage is created. Context never becomes a model input. Billing is at meta.billing in millicredit strings (100 mc = 0.1 credits). Missing future inputs mean not supplied, not no events. Quantile bands do not establish coverage, cumulative intervals or peak probabilities. After uncertain completion, reuse the same key and API request; an expired key may cause a new charge.
| Argument | Type | Description |
|---|---|---|
| mode* | string | "route": automatically select a model. "ensemble": blend compatible models and may cost more. Neither guarantees accuracy or calibration. "explicit": run the single model named in `model`. |
| model | string | Required when mode is "explicit". Must be a name returned by list_models. |
| top_k | integer | Ensemble only: cap on how many models participate. |
| series* | array | One to 64 series forecast in one request. All share horizon and quantiles. |
| combine | string | Ensemble only. "mixture" averages the predictive distributions (default); "vincentize" averages the quantiles. |
Return the account's spendable credit balance in millicredits, excluding credits reserved by in-progress forecasts. 1000 millicredits equal one credit.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Return the account's forecast request log, newest first, with the mode, models used, series count, horizon, credits estimated and settled, HTTP status and latency of each request.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows per page, 1 to 200. Defaults to 50. |
| offset | integer | Rows to skip. Use `pagination.next_offset` from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Rows per page, 1 to 200. Defaults to 50."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Rows to skip. Use `pagination.next_offset` from the previous page."
}
}
}Read this deployed MCP server's version, nullable build commit and supported saved forecast schema versions. Call with {}. No API key, account access, inference, charges or writes; network access to this server only. Returns component, version, build_commit (full source SHA or null when unavailable), artifact_schema_versions, and runtime_tls (Node release and certificate-trust status; metadata only, no probe connections). Unknown commit stays null. Server, CLI, npm bridge and artifact schema versions are independent; this tool cannot inspect local installations, check the latest registry release or establish model quality. Use list_models for live model capabilities. After a connection failure reconnect and retry; no forecast could have been submitted by this tool.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Discover the model panel: each model's availability right now (healthy), capabilities (multivariate, covariates, max_horizon, auto_max_horizon), its weight in an ensemble at each horizon, pinned and actually served weight revision, price in millicredits per series-slot per 64 forecast steps. History length has no billing multiplier. Call this before using forecast in explicit mode; the deployed panel can differ from any documentation.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Render a complete ephemeris.forecast v1 artifact object as PNG (default inline preview) or SVG (embedded resource to save). No inference or forecast charge; hosted processing receives the artifact over the network. Example: {artifact: <saved artifact>, format: png}. Requires returned q0.5; never invents a median. Observed history, forecast boundary, median and nominal quantile bands are labeled. Default history view is most recent max(24, 2*horizon) points, capped by available history; history: all shows all. Dates only when supported by recorded metadata, otherwise sampling steps. Bands do not establish calibrated coverage; missing/crossed points are omitted and counted. Maximum 1 MiB input. Select series_index/variate_index for multiple results. Fix argument/shape errors without rerunning inference. User-supplied labels can be corrected in a COPY of artifact context offline; no new forecast needed. Client decides preview/download UI. URNs identify attached bytes, not hosted URLs; no filesystem access, URL fetching or persistent storage.
| Argument | Type | Description |
|---|---|---|
| lower | number | Existing lower quantile. Supply together with upper. Default pairs complementary available levels. |
| upper | number | Existing upper quantile, greater than lower. Supply together with lower. |
| format | string | png returns an inline image preview; svg returns an embedded text resource to save as .svg. Neither creates a hosted download URL. |
| history | any | Observed points to show: default min(available, max(24, 2*horizon)). all shows full history. View changes never change the artifact or inference. |
| context |
| object |
| Local artifact metadata, never sent as model inputs. series aligns with input series; timestamps align with history and future_timestamps with horizon. Units/target/measurement/timezone must come from the user; unknowns stay null. Future-input labels are caller assertions; narrative assumptions do not change inference. |
| horizon | integer | Number of future steps to forecast, 1 to 4096. Defaults to 64. Some models stop short of this (max_horizon in list_models): route and ensemble skip them, explicit mode rejects the request. |
| quantiles | array | Up to 21 quantile levels strictly between 0 and 1, for example [0.1, 0.5, 0.9]. The response keys forecasts by these as decimal strings. |
| context_len | integer | Most recent points per variate to feed the model (history length does not affect pricing), 1 to 16384. Defaults to 256. Values beyond the model's context cap are truncated at the cap. |
| idempotency_key | string | Client-chosen key, 8 to 128 characters of letters, numbers, dot, underscore, colon or hyphen. A retry with the same key and identical API body replays while retained by the server. Retain the key before submission; expired keys may cause a new charge. |
| include_artifact | boolean | Default true: include a portable ephemeris.forecast v1 artifact and embedded JSON attachment (up to 1 MiB), with full input history. Save it client-side for describe_forecast/plot_forecast or the CLI. false returns the existing API response only. No persistent hosted storage is created. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mode",
"series"
],
"properties": {
"mode": {
"enum": [
"route",
"ensemble",
"explicit"
],
"type": "string",
"description": "\"route\": automatically select a model. \"ensemble\": blend compatible models and may cost more. Neither guarantees accuracy or calibration. \"explicit\": run the single model named in `model`."
},
"model": {
"type": "string",
"minLength": 1,
"description": "Required when mode is \"explicit\". Must be a name returned by list_models."
},
"top_k": {
"type": "integer",
"maximum": 16,
"minimum": 1,
"description": "Ensemble only: cap on how many models participate."
},
"series": {
"type": "array",
"items": {
"type": "object",
"required": [
"values"
],
"properties": {
"freq": {
"type": "string",
"minLength": 1,
"description": "Pandas-style sampling frequency such as \"H\", \"D\", \"W\", \"15min\" or \"M\". Improves routing and seasonal handling; omit if unknown."
},
"values": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
},
"minItems": 1
},
{
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 1
},
"minItems": 1
}
],
"description": "Observed history, oldest first. A flat number array is one univariate series. A nested array is one multivariate series with one inner array per variate, all the same length."
},
"covariates": {
"type": "object",
"required": [
"past"
],
"properties": {
"past": {
"type": "object",
"description": "Named historical channels, each the same length as the series context.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "number"
}
}
},
"future": {
"type": "object",
"description": "Future numeric channels (known future or explicit scenario assumptions), each exactly `horizon` long. Every future channel must also appear in `past`.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "number"
}
}
}
},
"description": "Optional exogenous covariates. Only models with `covariates: true` in list_models can use them. In route and ensemble mode the panel narrows to those models; in explicit mode, naming a model without covariate support is an error."
}
}
},
"maxItems": 64,
"minItems": 1,
"description": "One to 64 series forecast in one request. All share horizon and quantiles."
},
"combine": {
"enum": [
"mixture",
"vincentize"
],
"type": "string",
"description": "Ensemble only. \"mixture\" averages the predictive distributions (default); \"vincentize\" averages the quantiles."
},
"context": {
"type": "object",
"required": [
"series"
],
"properties": {
"series": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"timezone": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"series_id": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"timestamps": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 100
}
},
{
"type": "null"
}
]
},
"measurement": {
"anyOf": [
{
"enum": [
"period_total",
"period_average",
"point_in_time"
],
"type": "string"
},
{
"type": "null"
}
]
},
"recorded_as_of": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"future_timestamps": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 100
}
},
{
"type": "null"
}
]
},
"target_description": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"source_available_at": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"future_covariate_roles": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"enum": [
"known_future",
"scenario_assumption",
"unspecified"
],
"type": "string"
}
}
},
"additionalProperties": false
},
"maxItems": 64
},
"scenario_assumptions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
},
"maxItems": 100
}
},
"description": "Local artifact metadata, never sent as model inputs. series aligns with input series; timestamps align with history and future_timestamps with horizon. Units/target/measurement/timezone must come from the user; unknowns stay null. Future-input labels are caller assertions; narrative assumptions do not change inference.",
"additionalProperties": false
},
"horizon": {
"type": "integer",
"maximum": 4096,
"minimum": 1,
"description": "Number of future steps to forecast, 1 to 4096. Defaults to 64. Some models stop short of this (max_horizon in list_models): route and ensemble skip them, explicit mode rejects the request."
},
"quantiles": {
"type": "array",
"items": {
"type": "number",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
},
"maxItems": 21,
"description": "Up to 21 quantile levels strictly between 0 and 1, for example [0.1, 0.5, 0.9]. The response keys forecasts by these as decimal strings."
},
"context_len": {
"type": "integer",
"maximum": 16384,
"minimum": 1,
"description": "Most recent points per variate to feed the model (history length does not affect pricing), 1 to 16384. Defaults to 256. Values beyond the model's context cap are truncated at the cap."
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9._:-]{8,128}$",
"description": "Client-chosen key, 8 to 128 characters of letters, numbers, dot, underscore, colon or hyphen. A retry with the same key and identical API body replays while retained by the server. Retain the key before submission; expired keys may cause a new charge."
},
"include_artifact": {
"type": "boolean",
"description": "Default true: include a portable ephemeris.forecast v1 artifact and embedded JSON attachment (up to 1 MiB), with full input history. Save it client-side for describe_forecast/plot_forecast or the CLI. false returns the existing API response only. No persistent hosted storage is created."
}
}
}| artifact* | object | Complete ephemeris.forecast schema_version 1 JSON object returned by forecast or saved by Ephemeris CLI. Pass the object, not a filename, URL, resource URI, request ID, or bearer token. Maximum 1 MiB UTF-8 JSON. Contains submitted history; send only data you are authorized to process on this hosted server. |
| series_index | integer | Zero-based series index; required when the artifact has multiple series, otherwise 0. |
| variate_index | integer | Zero-based variate index; required for multivariate results, otherwise 0. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"artifact"
],
"properties": {
"lower": {
"type": "number",
"description": "Existing lower quantile. Supply together with upper. Default pairs complementary available levels.",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
},
"upper": {
"type": "number",
"description": "Existing upper quantile, greater than lower. Supply together with lower.",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
},
"format": {
"enum": [
"png",
"svg"
],
"type": "string",
"default": "png",
"description": "png returns an inline image preview; svg returns an embedded text resource to save as .svg. Neither creates a hosted download URL."
},
"history": {
"anyOf": [
{
"type": "integer",
"maximum": 100000,
"minimum": 1
},
{
"type": "string",
"const": "all"
}
],
"description": "Observed points to show: default min(available, max(24, 2*horizon)). all shows full history. View changes never change the artifact or inference."
},
"artifact": {
"type": "object",
"description": "Complete ephemeris.forecast schema_version 1 JSON object returned by forecast or saved by Ephemeris CLI. Pass the object, not a filename, URL, resource URI, request ID, or bearer token. Maximum 1 MiB UTF-8 JSON. Contains submitted history; send only data you are authorized to process on this hosted server.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"series_index": {
"type": "integer",
"maximum": 63,
"minimum": 0,
"description": "Zero-based series index; required when the artifact has multiple series, otherwise 0."
},
"variate_index": {
"type": "integer",
"maximum": 255,
"minimum": 0,
"description": "Zero-based variate index; required for multivariate results, otherwise 0."
}
},
"additionalProperties": false
}