{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T22:42:52.603Z","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp","markdownUrl":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp.md","server":{"slug":"industries-cascade-ephemeris","name":"Ephemeris Time-Series Forecasting","registryName":"industries.cascade/ephemeris","description":"Probabilistic time-series forecasts from zero-shot foundation models: routed, single or ensembled.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-mcp","type":"remote","identifier":"https://ephemeris.cascade.industries/api/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp","version":"1.0.1","transport":null,"scoredAt":"2026-11-05T01:26:59.238Z"},"score":{"total":91,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":91},{"date":"2026-11-04","total":90},{"date":"2026-11-03","total":90},{"date":"2026-11-02","total":89},{"date":"2026-11-01","total":89},{"date":"2026-10-31","total":89},{"date":"2026-10-30","total":88},{"date":"2026-10-29","total":88},{"date":"2026-10-28","total":87},{"date":"2026-10-27","total":87},{"date":"2026-10-26","total":86},{"date":"2026-10-25","total":86},{"date":"2026-10-24","total":85},{"date":"2026-10-23","total":85},{"date":"2026-10-22","total":84},{"date":"2026-10-21","total":84},{"date":"2026-10-20","total":83},{"date":"2026-10-19","total":83},{"date":"2026-10-18","total":82},{"date":"2026-10-17","total":82},{"date":"2026-10-16","total":82},{"date":"2026-10-15","total":81},{"date":"2026-10-14","total":81},{"date":"2026-10-13","total":80},{"date":"2026-10-12","total":80},{"date":"2026-10-11","total":79},{"date":"2026-10-10","total":76},{"date":"2026-10-07","total":36}]},"categories":[{"name":"Endpoint Security","score":97,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC.","The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.rfc9728_invoke","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}},{"code":"auth.registration_cimd","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":61,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 2638 tokens (~376/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"376","items":"7","tools":"7","tokens":"2638","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":93,"verdict":"partial","reasons":["Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"28"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"8","judged":"8"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"api-mcp","type":"remote","identifier":"https://ephemeris.cascade.industries/api/mcp","withdrawn":false,"score":91,"current":true,"url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp","markdownUrl":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp.md"},{"slug":"ephemeris-mcp","type":"npm","identifier":"ephemeris-mcp","withdrawn":false,"score":38,"current":false,"url":"https://verifymcp.io/servers/industries-cascade-ephemeris/ephemeris-mcp","markdownUrl":"https://verifymcp.io/servers/industries-cascade-ephemeris/ephemeris-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://ephemeris.cascade.industries/api/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"required"},{"label":"Version","value":"1.0.1"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_version","title":"Inspect the hosted Ephemeris 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), 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.","inputs":[],"outputs":[{"name":"artifact_schema_versions","type":"object","required":true,"description":null},{"name":"build_commit","type":null,"required":true,"description":null},{"name":"component","type":"string","required":true,"description":null},{"name":"runtime_tls","type":"object","required":true,"description":null},{"name":"version","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":150},{"name":"describe_forecast","title":"Describe a saved 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.","inputs":[{"name":"artifact","type":"object","required":true,"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…"},{"name":"series_index","type":"integer","required":false,"description":"Zero-based series index; required when the artifact has multiple series, otherwise 0."},{"name":"variate_index","type":"integer","required":false,"description":"Zero-based variate index; required for multivariate results, otherwise 0."}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":332},{"name":"plot_forecast","title":"Plot a saved 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.","inputs":[{"name":"artifact","type":"object","required":true,"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…"},{"name":"format","type":"string","required":false,"description":"png returns an inline image preview; svg returns an embedded text resource to save as .svg. Neither creates a hosted download URL."},{"name":"history","type":null,"required":false,"description":"Observed points to show: default min(available, max(24, 2*horizon)). all shows full history. View changes never change the artifact or inference."},{"name":"lower","type":"number","required":false,"description":"Existing lower quantile. Supply together with upper. Default pairs complementary available levels."},{"name":"series_index","type":"integer","required":false,"description":"Zero-based series index; required when the artifact has multiple series, otherwise 0."},{"name":"upper","type":"number","required":false,"description":"Existing upper quantile, greater than lower. Supply together with lower."},{"name":"variate_index","type":"integer","required":false,"description":"Zero-based variate index; required for multivariate results, otherwise 0."}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":461},{"name":"forecast","title":"Forecast a time series","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.","inputs":[{"name":"combine","type":"string","required":false,"description":"Ensemble only. \"mixture\" averages the predictive distributions (default); \"vincentize\" averages the quantiles."},{"name":"context","type":"object","required":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 fro…"},{"name":"context_len","type":"integer","required":false,"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."},{"name":"horizon","type":"integer","required":false,"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."},{"name":"idempotency_key","type":"string","required":false,"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 bef…"},{"name":"include_artifact","type":"boolean","required":false,"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…"},{"name":"mode","type":"string","required":true,"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`."},{"name":"model","type":"string","required":false,"description":"Required when mode is \"explicit\". Must be a name returned by list_models."},{"name":"quantiles","type":"array","required":false,"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."},{"name":"series","type":"array","required":true,"description":"One to 64 series forecast in one request. All share horizon and quantiles."},{"name":"top_k","type":"integer","required":false,"description":"Ensemble only: cap on how many models participate."}],"outputs":[{"name":"artifact","type":"object","required":false,"description":"Portable ephemeris.forecast v1 JSON including full history and local context. Save client-side and pass the object to describe_forecast/plot_forecast. Not a hosted URL."},{"name":"artifact_error","type":"string","required":false,"description":null},{"name":"artifact_status","type":"string","required":false,"description":"included or unavailable. A packaging/size failure never discards the paid forecasts/meta response."},{"name":"forecasts","type":"array","required":false,"description":"One entry per input series, aligned with the request."},{"name":"meta","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":690},{"name":"list_models","title":"List forecasting 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 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.","inputs":[],"outputs":[{"name":"models","type":"array","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":96},{"name":"get_balance","title":"Get credit balance","description":"Return the account's spendable credit balance in millicredits, excluding credits reserved by in-progress forecasts. 1000 millicredits equal one credit.","inputs":[],"outputs":[{"name":"active_holds_mc","type":"string","required":false,"description":"Millicredits reserved by in-flight forecasts."},{"name":"balance_mc","type":"string","required":false,"description":"Spendable millicredits (ledger minus active holds)."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":41},{"name":"get_usage","title":"Get recent 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.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Rows per page, 1 to 200. Defaults to 50."},{"name":"offset","type":"integer","required":false,"description":"Rows to skip. Use `pagination.next_offset` from the previous page."}],"outputs":[{"name":"data","type":"array","required":false,"description":"Request log rows, newest first."},{"name":"limit","type":"number","required":false,"description":null},{"name":"offset","type":"number","required":false,"description":null},{"name":"pagination","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":86}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T01:26:59.000Z","track":"remote","endpoint":"https://ephemeris.cascade.industries/api/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=ephemeris.cascade.industries","issuer":"CN=YR1,O=Let's Encrypt,C=US","notBefore":"2026-09-10T09:18:26Z","notAfter":"2026-12-09T09:18:25Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=YR1,O=Let's Encrypt,C=US","issuer":"CN=Root YR,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Root YR,O=ISRG,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"ephemeris.cascade.industries.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"industries.","outcome":"verified","label":"Verified"},{"zone":"cascade.industries.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"enforced_validated","label":"Enforced and verified","gate":"invoke","gateLabel":"On tool calls","status":200,"authorizationServers":["https://clerk.ephemeris.cascade.industries"]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":308},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-07","recent":[{"id":"chg_01a1a950-fbbe-7386-9f1b-a57861535d0a","kind":"score.total_changed","summary":"Trust score (90 → 91)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a1a950-fbbe-7386-9f1b-a57861535d0a"},{"id":"chg_01a19f03-e39f-7db5-8f3a-ca771b580079","kind":"score.total_changed","summary":"Trust score (89 → 90)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a19f03-e39f-7db5-8f3a-ca771b580079"},{"id":"chg_01a18f91-adab-7ed4-9ca1-14286424c9b0","kind":"score.total_changed","summary":"Trust score (88 → 89)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a18f91-adab-7ed4-9ca1-14286424c9b0"},{"id":"chg_01a18546-4b13-7f37-8e25-8d82e916dd40","kind":"score.total_changed","summary":"Trust score (87 → 88)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a18546-4b13-7f37-8e25-8d82e916dd40"},{"id":"chg_01a17af7-c5f0-7ac5-a3a0-24167d7afedc","kind":"score.total_changed","summary":"Trust score (86 → 87)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a17af7-c5f0-7ac5-a3a0-24167d7afedc"},{"id":"chg_01a170aa-2fb1-7826-acf5-a56d65f9fb97","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a170aa-2fb1-7826-acf5-a56d65f9fb97"},{"id":"chg_01a16b83-eee5-7e77-8a30-76d45258dd86","kind":"tool.description_changed","summary":"Tool “get_version” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-24","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a16b83-eee5-7e77-8a30-76d45258dd86"},{"id":"chg_01a1665c-d743-7a90-a13a-a8912301f46d","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a1665c-d743-7a90-a13a-a8912301f46d"},{"id":"chg_01a15c0e-ddf6-7834-bb78-03604d415270","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a15c0e-ddf6-7834-bb78-03604d415270"},{"id":"chg_01a156e8-33c6-780a-927d-e9818b85dcc4","kind":"param.description_changed","summary":"“forecast” reworded the description of “context_len”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a156e8-33c6-780a-927d-e9818b85dcc4"},{"id":"chg_01a156e8-33c6-7cec-be90-727b96c776f5","kind":"tool.description_changed","summary":"Tool “list_models” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a156e8-33c6-7cec-be90-727b96c776f5"},{"id":"chg_01a156e8-33c7-7697-b6ec-4c6ed6a46d8e","kind":"server.version_changed","summary":"Server version (1.2.0 → 1.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a156e8-33c7-7697-b6ec-4c6ed6a46d8e"},{"id":"chg_01a156e8-33c7-7b30-ba61-e15db323f0e1","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a156e8-33c7-7b30-ba61-e15db323f0e1"},{"id":"chg_01a151c1-8013-71c0-a23d-7bda61397509","kind":"score.total_changed","summary":"Trust score (82 → 83)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a151c1-8013-71c0-a23d-7bda61397509"},{"id":"chg_01a14257-6abd-75d6-82f6-48086b089b0c","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a14257-6abd-75d6-82f6-48086b089b0c"},{"id":"chg_01a13809-6e1e-79e1-9909-c08681d6cd79","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a13809-6e1e-79e1-9909-c08681d6cd79"},{"id":"chg_01a12eb1-c163-7392-ba06-7ef3e9a3c65e","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-12","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a12eb1-c163-7392-ba06-7ef3e9a3c65e"},{"id":"chg_01a12d3e-c89f-7356-a598-6ef8907dfcda","kind":"score.total_changed","summary":"Trust score (76 → 79)","materiality":"functional","direction":"improvement","scoreDelta":3,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a12d3e-c89f-7356-a598-6ef8907dfcda"},{"id":"chg_01a12d3e-c89d-7acc-a9f8-a493519d7060","kind":"check.appeared","summary":"First check of Authorization (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a12d3e-c89d-7acc-a9f8-a493519d7060"},{"id":"chg_01a12d3e-c89c-71ae-9760-41895f57d37b","kind":"check.verdict","summary":"Authorization (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-11","url":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp#chg-chg_01a12d3e-c89c-71ae-9760-41895f57d37b"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp","markdown":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp.md","changelogJson":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/industries-cascade-ephemeris/api-mcp.xml","external":[{"label":"Remote endpoint","href":"https://ephemeris.cascade.industries/api/mcp"},{"label":"Authorisation metadata","href":"https://ephemeris.cascade.industries/.well-known/oauth-protected-resource/api/mcp"},{"label":"Repository","href":"https://github.com/TensorLink-AI/ephemeris-mcp"},{"label":"Website","href":"https://ephemeris.cascade.industries/"}]}}