{"$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-06T00:07:50.731Z","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp","markdownUrl":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp.md","server":{"slug":"info-sardine-sardine","name":"Sardine: Kalshi crypto settlement history","registryName":"info.sardine/sardine","description":"How often Kalshi BTC/ETH/XRP contracts settled YES, counted not forecast, with a public record","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"sardine-mcp","type":"pypi","identifier":"sardine-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T03:18:28.066Z"},"score":{"total":68,"tier":"medium","status":"scored","weekDelta":5,"history":[{"date":"2026-11-05","total":68},{"date":"2026-11-04","total":48},{"date":"2026-11-03","total":48},{"date":"2026-11-02","total":63},{"date":"2026-11-01","total":48},{"date":"2026-10-31","total":48},{"date":"2026-10-30","total":48},{"date":"2026-10-29","total":63},{"date":"2026-10-28","total":63},{"date":"2026-10-27","total":63},{"date":"2026-10-26","total":48}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"partial","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 31 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"31","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":19,"verdict":"fail","reasons":["Repository check failed: no source repository is declared.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (MIT).","Actively maintained (last published 9 days ago).","Security-disclosure policy not yet verified: we couldn't inspect the source repository."],"codes":[{"code":"provenance.repo_none","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"9"}},{"code":"disclosure.repo_inconclusive","args":{"reason":"repo_not_github"}}]},{"name":"Schema Quality & AI Usability","score":75,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1022 tokens (~127/item across 8 items; 7 tools + 1 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"127","items":"8","tools":"7","tokens":"1022","resources":"1"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":33,"verdict":"partial","reasons":["Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"10"}}]},{"name":"Tool Coverage","score":71,"verdict":"fail","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","0% 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":"0"}},{"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 9 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":"9","judged":"9"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Security-disclosure policy not yet verified: we couldn't inspect the source repository."],"malware":[],"components":[{"slug":"sardine","type":"remote","identifier":"https://sardine.info/mcp","withdrawn":false,"score":73,"current":false,"url":"https://verifymcp.io/servers/info-sardine-sardine/sardine","markdownUrl":"https://verifymcp.io/servers/info-sardine-sardine/sardine.md"},{"slug":"sardine-mcp","type":"pypi","identifier":"sardine-mcp","withdrawn":false,"score":68,"current":true,"url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp","markdownUrl":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"sardine-mcp"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_markets","title":null,"description":"List the Kalshi series Sardine covers, and whether each is currently served.\n\nEach entry gives the Sardine key (e.g. \"BTC-15M\"), the Kalshi series\nticker, the window length, and the latest calibration check: the largest\ngap, in probability points, between what Sardine published and what\nthen settled.","inputs":[],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":79},{"name":"get_settlement_rate","title":null,"description":"How often has a contract like this one settled in favour of `side`?\n\nUses the asset's live spot price. Give the contract's strike (target\nprice), the minutes left until it settles, and optionally Kalshi's ask\nin dollars (0.01-0.99) to get Kalshi's fee and all-in price on the same\nline.\n\nReturns the historical settlement rate, its 95% interval and the number\nof past windows counted. A small `windows_counted` means a weak answer.","inputs":[{"name":"asset","type":"string","required":true,"description":null},{"name":"kalshi_ask","type":null,"required":false,"description":null},{"name":"minutes_left","type":"number","required":true,"description":null},{"name":"side","type":"string","required":false,"description":null},{"name":"strike","type":"number","required":true,"description":null},{"name":"window_minutes","type":"integer","required":true,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":162},{"name":"get_live_board","title":null,"description":"Open Kalshi contracts right now, each with Kalshi's price beside Sardine's count.\n\nOptionally filter to one market. Each row has the contract, Kalshi's ask\nand fee, the historical settlement rate with its interval and sample\nsize, and a plain-English sentence describing the comparison.","inputs":[{"name":"limit","type":"integer","required":false,"description":null},{"name":"market","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":82},{"name":"get_rate_table","title":null,"description":"The full lookup table behind every Sardine number for one series.\n\nEach row is a (distance-from-strike, time-left) bucket: distance in\nvolatility units, seconds left, the share that settled YES, its 95%\ninterval, and the number of independent windows counted.","inputs":[{"name":"asset","type":"string","required":false,"description":null},{"name":"window_minutes","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":82},{"name":"get_track_record","title":null,"description":"How accurate Sardine's published numbers have been, scored against settlements.\n\nFor each series and probability bucket: what Sardine said, what actually\nsettled, and the miss in points. Use this before relying on any number.","inputs":[],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":55},{"name":"list_datasets","title":null,"description":"Downloadable CSV history files, with row counts, date ranges and URLs.\n\nFiles open directly in Excel, pandas or any CSV reader. Credit\n\"Sardine (sardine.info)\" when you use them.","inputs":[],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":52},{"name":"backtest_rule","title":null,"description":"Would this rule have made money? Replays recorded Kalshi quotes, second by second.\n\nDescribe a rule for Kalshi's 15-minute crypto up/down contracts: which side\nto buy, when (minutes left), at what prices (cents), and optionally only when\nSardine's history beats Kalshi's ask plus fee by `min_gap_cents` (side BEST\npicks whichever side has the larger gap). Sardine replays its per-second\nrecordings of Kalshi's order book: one trade per window, a limit order at the\nask landing after `latency_seconds`, filled only up to the size resting\nthere, Kalshi's real fee, and Kalshi's official settlement.\n\nReturns profit per contract after fees with a 95% interval, win rate, fill\nbehaviour, a zero-latency comparison (exposes stale-quote illusions), a\nfirst-half/second-half stability check, breakdowns by minutes left and\nprice, and warnings. Results only; no raw data. Dates are UTC YYYY-MM-DD.\nPresent results as what happened historically, never as a forecast.","inputs":[{"name":"contracts","type":"integer","required":false,"description":null},{"name":"end_date","type":null,"required":false,"description":null},{"name":"latency_seconds","type":"integer","required":false,"description":null},{"name":"market","type":"string","required":false,"description":null},{"name":"max_gap_cents","type":null,"required":false,"description":null},{"name":"max_minutes_left","type":"number","required":false,"description":null},{"name":"max_price_cents","type":"number","required":false,"description":null},{"name":"min_gap_cents","type":null,"required":false,"description":null},{"name":"min_minutes_left","type":"number","required":false,"description":null},{"name":"min_price_cents","type":"number","required":false,"description":null},{"name":"side","type":"string","required":false,"description":null},{"name":"start_date","type":null,"required":false,"description":null}],"outputs":[],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":334}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T03:18:28.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":31,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-10-26","recent":[{"id":"chg_01a1a9b7-0bf9-7563-93f1-fea5383dc203","kind":"check.reverified","summary":"Stability (unverified → 0.33)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a1a9b7-0bf9-7563-93f1-fea5383dc203"},{"id":"chg_01a1a9b7-0bfa-7191-806d-c55f85155236","kind":"score.total_changed","summary":"Trust score (48 → 68)","materiality":"functional","direction":"improvement","scoreDelta":20,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a1a9b7-0bfa-7191-806d-c55f85155236"},{"id":"chg_01a1a9b7-0bf8-7161-9153-95abcb7a2754","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a1a9b7-0bf8-7161-9153-95abcb7a2754"},{"id":"chg_01a19fa3-1394-7bdb-81be-451121c4be04","kind":"score.total_changed","summary":"Trust score (63 → 48)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a19fa3-1394-7bdb-81be-451121c4be04"},{"id":"chg_01a19fa3-1392-7f12-97f5-4e1f93865861","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a19fa3-1392-7f12-97f5-4e1f93865861"},{"id":"chg_01a199d1-8ef1-72ca-acde-52c40ffc13c9","kind":"score.total_changed","summary":"Trust score (48 → 63)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a199d1-8ef1-72ca-acde-52c40ffc13c9"},{"id":"chg_01a199d1-8ef0-71b6-a83e-36753732fdb3","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a199d1-8ef0-71b6-a83e-36753732fdb3"},{"id":"chg_01a18b07-7956-7aa1-bbdc-d08354aaf088","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a18b07-7956-7aa1-bbdc-d08354aaf088"},{"id":"chg_01a18b07-7959-7ab0-8b11-64f6243a0f76","kind":"score.total_changed","summary":"Trust score (63 → 48)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a18b07-7959-7ab0-8b11-64f6243a0f76"},{"id":"chg_01a17ae9-9923-7e3d-8ccf-f5ad854a93b0","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a17ae9-9923-7e3d-8ccf-f5ad854a93b0"},{"id":"chg_01a17ae9-9924-7610-afaf-d1346ff35641","kind":"score.total_changed","summary":"Trust score (48 → 63)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a17ae9-9924-7610-afaf-d1346ff35641"},{"id":"chg_01a179b8-6ba9-701a-b2f5-a12e185add75","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp#chg-chg_01a179b8-6ba9-701a-b2f5-a12e185add75"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp","markdown":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp.md","changelogJson":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/sardine-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/sardine-mcp"},{"label":"Website","href":"https://sardine.info/"}]}}