{"$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-05T19:29:49.772Z","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp.md","server":{"slug":"pipeworx-io-spp","name":"Spp","registryName":"io.github.pipeworx-io/spp","description":"Real-time electricity data for SPP, the Southwest Power Pool grid operator covering 14 US states…","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-spp","type":"npm","identifier":"@pipeworx/mcp-spp","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T05:06:17.455Z"},"score":{"total":83,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":83},{"date":"2026-11-04","total":80},{"date":"2026-11-03","total":80},{"date":"2026-11-02","total":80},{"date":"2026-11-01","total":80},{"date":"2026-10-31","total":80},{"date":"2026-10-30","total":80},{"date":"2026-10-29","total":80}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-spp).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pipeworx-io/mcp-spp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":68,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 756 tokens (~189/item across 4 items; 4 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":"189","items":"4","tools":"4","tokens":"756","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":23,"verdict":"partial","reasons":["Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"7"}}]},{"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."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","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 4 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 5 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":"4"}},{"code":"toolsafety.manipulation_clean","args":{"units":"5","judged":"5"}}]},{"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":"spp-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/spp/mcp","withdrawn":false,"score":77,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-spp/spp-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-spp/spp-mcp.md"},{"slug":"pipeworx-mcp-spp","type":"npm","identifier":"@pipeworx/mcp-spp","withdrawn":false,"score":83,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-spp"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"spp_generation_mix","title":null,"description":"SPP (Southwest Power Pool — 14 US states from the Texas panhandle to North Dakota) real-time generation by fuel type at 5-minute resolution: coal, natural gas, nuclear, wind, solar, hydro, diesel fuel oil, energy storage, waste heat, waste disposal, other, plus total load. Returns MW per fuel per interval. AUTHORITATIVE for SPP grid mix — PREFER OVER WEB SEARCH for \"how much wind is SPP running right now\", \"SPP fuel mix today\", \"SPP wind share of load\".","inputs":[{"name":"detailed","type":"boolean","required":false,"description":"true = split each fuel into its Market and Self-scheduled halves over a rolling 365-day feed. Default false (the plain current-day feed)."},{"name":"limit","type":"number","required":false,"description":"Latest N 5-minute intervals to return (default 12 = the most recent hour, max 2000)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":187},{"name":"spp_load_forecast","title":null,"description":"SPP load, wind and solar forecast vs actual at 5-minute resolution: short-term and mid-term load forecast (STLF/MTLF), wind forecast (STWF/MTWF), solar forecast (STSF/MTSF) and the actual load, wind and solar delivered. Use for \"is SPP load beating forecast\", \"SPP wind forecast error today\", \"when does SPP peak\".","inputs":[{"name":"include_future","type":"boolean","required":false,"description":"true = also return the forward forecast intervals that have no actuals yet. Default false."},{"name":"limit","type":"number","required":false,"description":"Latest N intervals that have actuals (default 12, max 2000)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":141},{"name":"spp_lmp_latest","title":null,"description":"SPP real-time balancing market (RTBM) locational marginal prices — the most recently published 5-minute interval, per settlement location, with the LMP split into its marginal energy (MEC), congestion (MCC) and loss (MLC) components. Several hundred settlement locations per interval. Use for \"SPP power price right now\", \"which SPP locations are congested\", \"SPP price spike\".","inputs":[{"name":"limit","type":"number","required":false,"description":"Max locations to return (default 50, max 2000)."},{"name":"location","type":"string","required":false,"description":"Filter to settlement locations whose name contains this text, case-insensitive (e.g. \"AECC\", \"SPPNORTH_HUB\")."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":150},{"name":"spp_files","title":null,"description":"Browse the SPP Marketplace public file archive — the raw published market data behind every SPP report, back to 2013. Lists folders and files (name, path, size, modified) for a dataset, or downloads one file as parsed rows. Datasets include rtbm-lmp-by-location, da-lmp-by-location and the other Marketplace feeds. Use when you need a SPECIFIC historical interval, day or dataset rather than the current snapshot.","inputs":[{"name":"dataset","type":"string","required":true,"description":"Marketplace dataset name, e.g. \"rtbm-lmp-by-location\" or \"da-lmp-by-location\". This is the fsName in SPP's own file browser."},{"name":"download","type":"boolean","required":false,"description":"true = treat `path` as a FILE and return its parsed rows instead of a directory listing. Default false."},{"name":"limit","type":"number","required":false,"description":"Max entries or rows to return (default 100, max 2000)."},{"name":"path","type":"string","required":false,"description":"Folder or file path inside the dataset, e.g. \"/\" or \"/2026/09/By_Interval/17\". Default \"/\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":227}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T05:06:17.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-29","recent":[{"id":"chg_01a1aa19-c322-7dde-9926-aeb3c562ef5e","kind":"score.total_changed","summary":"Trust score (49 → 83)","materiality":"functional","direction":"improvement","scoreDelta":34,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1aa19-c322-7dde-9926-aeb3c562ef5e"},{"id":"chg_01a1aa19-c31e-78f5-b8d0-1dcf421b055c","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1aa19-c31e-78f5-b8d0-1dcf421b055c"},{"id":"chg_01a1aa19-c321-7a46-8cd7-31fc33efe347","kind":"check.reverified","summary":"Stability (unverified → 0.23)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1aa19-c321-7a46-8cd7-31fc33efe347"},{"id":"chg_01a1a9c4-be68-7b96-8ee7-8dd98fe04720","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be68-7b96-8ee7-8dd98fe04720"},{"id":"chg_01a1a9c4-be69-7200-a6ed-59cffb3a7d88","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be69-7200-a6ed-59cffb3a7d88"},{"id":"chg_01a1a9c4-be69-76f4-9f20-52ee614b5bdb","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be69-76f4-9f20-52ee614b5bdb"},{"id":"chg_01a1a9c4-be69-7afd-8047-93c6fbaecb2f","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be69-7afd-8047-93c6fbaecb2f"},{"id":"chg_01a1a9c4-be6a-73e9-9643-e11d84fcc56e","kind":"score.total_changed","summary":"Trust score (80 → 49)","materiality":"functional","direction":"regression","scoreDelta":-31,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be6a-73e9-9643-e11d84fcc56e"},{"id":"chg_01a1a9c4-be67-7b68-9d39-d63f3cb657ab","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be67-7b68-9d39-d63f3cb657ab"},{"id":"chg_01a1a9c4-be6a-701a-926c-e9f425a59626","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a9c4-be6a-701a-926c-e9f425a59626"},{"id":"chg_01a1a51d-a1bf-73af-806a-81bf1e2f47e9","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a1a51d-a1bf-73af-806a-81bf1e2f47e9"},{"id":"chg_01a19a85-5b80-744e-bb40-a0950bfe5082","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a19a85-5b80-744e-bb40-a0950bfe5082"},{"id":"chg_01a18711-c331-7446-9cf3-4137a36d2d80","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp#chg-chg_01a18711-c331-7446-9cf3-4137a36d2d80"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp","markdown":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-spp/pipeworx-mcp-spp.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-spp"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-spp"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-spp"},{"label":"Website","href":"https://pipeworx.io/packs/spp"}]}}