{"name":"industries.cascade/ephemeris","slug":"cascade-ephemeris","title":"Ephemeris Time-Series Forecasting","description":"Probabilistic time-series forecasts from zero-shot foundation models: routed, single or ensembled.","url":"https://mcp.market/server/cascade-ephemeris","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":36,"stars":0,"forks":0,"downloads_week":431,"last_push_at":"2026-10-10T11:12:40.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T06:35:29.547Z","last_ok_at":"2026-11-04T06:35:29.547Z","latency_ms":1104},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/TensorLink-AI/ephemeris-mcp","website":"https://ephemeris.cascade.industries","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://ephemeris.cascade.industries/api/mcp","headers":[{"description":"Bearer token: \"Bearer pc_live_...\". Create an API key at https://ephemeris.cascade.industries/dashboard after signing up.","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","identifier":"ephemeris-mcp","version":"1.0.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Ephemeris API key (pc_live_...), from https://ephemeris.cascade.industries/dashboard/api-keys","isRequired":true,"isSecret":true,"name":"EPHEMERIS_API_KEY"}]}],"tools":[{"name":"describe_forecast","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"artifact":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"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."},"series_index":{"description":"Zero-based series index; required when the artifact has multiple series, otherwise 0.","type":"integer","minimum":0,"maximum":63},"variate_index":{"description":"Zero-based variate index; required for multivariate results, otherwise 0.","type":"integer","minimum":0,"maximum":255}},"required":["artifact"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"forecast","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"context":{"type":"object","properties":{"series":{"maxItems":64,"type":"array","items":{"type":"object","properties":{"series_id":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"unit":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"target_description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"measurement":{"anyOf":[{"type":"string","enum":["period_total","period_average","point_in_time"]},{"type":"null"}]},"timestamps":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":100}},{"type":"null"}]},"future_timestamps":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":100}},{"type":"null"}]},"source_available_at":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"recorded_as_of":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"future_covariate_roles":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","enum":["known_future","scenario_assumption","unspecified"]}}},"additionalProperties":false}},"scenario_assumptions":{"maxItems":100,"type":"array","items":{"type":"string","maxLength":2000}}},"required":["series"],"additionalProperties":false,"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."},"include_artifact":{"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.","type":"boolean"},"mode":{"type":"string","enum":["route","ensemble","explicit"],"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":{"description":"Required when mode is \"explicit\". Must be a name returned by list_models.","type":"string","minLength":1},"series":{"minItems":1,"maxItems":64,"type":"array","items":{"type":"object","properties":{"values":{"anyOf":[{"minItems":1,"type":"array","items":{"type":"number"}},{"minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"type":"number"}}}],"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."},"freq":{"description":"Pandas-style sampling frequency such as \"H\", \"D\", \"W\", \"15min\" or \"M\". Improves routing and seasonal handling; omit if unknown.","type":"string","minLength":1},"covariates":{"type":"object","properties":{"past":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"number"}},"description":"Named historical channels, each the same length as the series context."},"future":{"description":"Future numeric channels (known future or explicit scenario assumptions), each exactly `horizon` long. Every future channel must also appear in `past`.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"number"}}}},"required":["past"],"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."}},"required":["values"]},"description":"One to 64 series forecast in one request. All share horizon and quantiles."},"horizon":{"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.","type":"integer","minimum":1,"maximum":4096},"context_len":{"description":"Most recent points per variate to feed the model and bill for, 1 to 16384. Defaults to 256. Values beyond the model's context cap are truncated at the cap.","type":"integer","minimum":1,"maximum":16384},"quantiles":{"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.","maxItems":21,"type":"array","items":{"type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"top_k":{"description":"Ensemble only: cap on how many models participate.","type":"integer","minimum":1,"maximum":16},"combine":{"description":"Ensemble only. \"mixture\" averages the predictive distributions (default); \"vincentize\" averages the quantiles.","type":"string","enum":["mixture","vincentize"]},"idempotency_key":{"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.","type":"string","pattern":"^[A-Za-z0-9._:-]{8,128}$"}},"required":["mode","series"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_balance","description":"Return the account's spendable credit balance in millicredits, excluding credits reserved by in-progress forecasts. 1000 millicredits equal one credit.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_usage","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"description":"Rows per page, 1 to 200. Defaults to 50.","type":"integer","minimum":1,"maximum":200},"offset":{"description":"Rows to skip. Use `pagination.next_offset` from the previous page.","type":"integer","minimum":0,"maximum":9007199254740991}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_version","description":"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), and artifact_schema_versions. 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"list_models","description":"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 per thousand series-slots in millicredits and maximum billable context. Call this before using forecast in explicit mode; the deployed panel can differ from any documentation.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"plot_forecast","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"artifact":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"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."},"series_index":{"description":"Zero-based series index; required when the artifact has multiple series, otherwise 0.","type":"integer","minimum":0,"maximum":63},"variate_index":{"description":"Zero-based variate index; required for multivariate results, otherwise 0.","type":"integer","minimum":0,"maximum":255},"format":{"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.","type":"string","enum":["png","svg"]},"history":{"description":"Observed points to show: default min(available, max(24, 2*horizon)). all shows full history. View changes never change the artifact or inference.","anyOf":[{"type":"integer","minimum":1,"maximum":100000},{"type":"string","const":"all"}]},"lower":{"description":"Existing lower quantile. Supply together with upper. Default pairs complementary available levels.","type":"number","exclusiveMinimum":0,"exclusiveMaximum":1},"upper":{"description":"Existing upper quantile, greater than lower. Supply together with lower.","type":"number","exclusiveMinimum":0,"exclusiveMaximum":1}},"required":["artifact"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-14T05:25:55.153Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-14T05:25:55.033Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1807ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://ephemeris.cascade.industries/api/mcp","reachable":true,"authRequired":false,"latencyMs":1807,"serverInfo":{"name":"ephemeris","version":"1.2.0"}}],"packages":[{"registryType":"npm","identifier":"ephemeris-mcp","version":"1.0.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-10-04T11:23:36.185Z","repositoryUrl":"git+https://github.com/TensorLink-AI/ephemeris-mcp.git","weeklyDownloads":431}],"repo":{"found":true,"owner":"TensorLink-AI","repo":"ephemeris-mcp","archived":false,"pushedAt":"2026-10-10T11:12:40Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/193437271?v=4","ownerCreatedAt":"2025-01-01T21:26:26Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/TensorLink-AI/ephemeris-mcp/main/assets/logo-256.png","source":"registry","width":256,"height":256},"presence":{"stars":0,"forks":0,"downloadsWeek":431,"license":"MIT","lastPushAt":"2026-10-10T11:12:40.000Z","score":36}}}},"grade_history":[],"reviews":[]}