{"$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-05T20:25:54.735Z","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime","markdownUrl":"https://verifymcp.io/servers/cschmertz-deptime/deptime.md","server":{"slug":"cschmertz-deptime","name":"DepTime","registryName":"io.github.cschmertz/deptime","description":"What changed in a Python library, in which release, and what replaces it. Answered locally.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"deptime","type":"pypi","identifier":"deptime","withdrawn":false,"url":"https://verifymcp.io/servers/cschmertz-deptime/deptime","version":"0.1.5","transport":"stdio","scoredAt":"2026-11-05T19:40:20.160Z"},"score":{"total":70,"tier":"medium","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":70},{"date":"2026-11-04","total":84},{"date":"2026-11-03","total":84},{"date":"2026-11-02","total":68},{"date":"2026-11-01","total":83},{"date":"2026-10-31","total":67},{"date":"2026-10-30","total":82},{"date":"2026-10-29","total":66},{"date":"2026-10-28","total":65}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"partial","reasons":["Malware scan not yet available for this package.","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.","2 of 36 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"36","unhealthy":"2"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to cschmertz/deptime).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"cschmertz/deptime"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":71,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 926 tokens (~185/item across 5 items; 5 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":"185","items":"5","tools":"5","tokens":"926","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":27,"verdict":"partial","reasons":["Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"8"}}]},{"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 5 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 6 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":"5"}},{"code":"toolsafety.manipulation_clean","args":{"units":"6","judged":"6"}}]},{"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":["Malware scan not yet available for this package."],"malware":[],"components":[{"slug":"deptime","type":"pypi","identifier":"deptime","withdrawn":false,"score":70,"current":true,"url":"https://verifymcp.io/servers/cschmertz-deptime/deptime","markdownUrl":"https://verifymcp.io/servers/cschmertz-deptime/deptime.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"deptime"},{"label":"Version","value":"0.1.5"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"explain_error","title":"Explain a Python import/attribute/signature error","description":"Call this when a third-party Python library raises ImportError ('cannot import name'), ModuleNotFoundError, AttributeError ('has no attribute'), or TypeError ('unexpected keyword argument' / 'missing required argument'). Returns what changed, in which release, the deprecation message, replacement candidates with evidence, and the version pin that restores the old API. Pass installed versions for an exact answer. An error DepTime can't explain returns empty findings rather than a guess; check `note` and `not_covered`.","inputs":[{"name":"installed_versions","type":null,"required":false,"description":"Installed versions, e.g. {\"httpx\": \"0.28.1\"}."},{"name":"pip_freeze","type":null,"required":false,"description":"Output of `pip freeze` / `uv pip freeze` / `pip list`."},{"name":"traceback","type":"string","required":true,"description":"Traceback text, or at least the final 'SomeError: message' line. Long logs are fine: only the last 20,000 characters are analysed."}],"outputs":[{"name":"findings","type":"array","required":true,"description":null},{"name":"not_covered","type":"array","required":false,"description":"Packages involved in the error that DepTime does not index."},{"name":"note","type":null,"required":false,"description":null},{"name":"signal","type":null,"required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":195},{"name":"symbol_history","title":"Version history of one symbol","description":"Version history of one public symbol, e.g. package='httpx', path='httpx.Client.__init__': first and last release it exists in, signature changes, deprecations, removals, and replacement candidates. Use before writing code against an API you remember from training data. A path no indexed release has is not an error: it returns ever_seen=false. For many symbols at one installed version, use check_symbols.","inputs":[{"name":"package","type":"string","required":true,"description":"PyPI distribution name, e.g. 'langchain-core'."},{"name":"path","type":"string","required":true,"description":"Public dotted path; the package prefix may be omitted."}],"outputs":[{"name":"events","type":"array","required":false,"description":null},{"name":"ever_seen","type":"boolean","required":false,"description":"False means no indexed version ever exposed this public path."},{"name":"first_seen","type":null,"required":false,"description":null},{"name":"indexed","type":"boolean","required":true,"description":"False when the package is not in DepTime's coverage; see the `coverage` tool."},{"name":"last_seen","type":null,"required":false,"description":null},{"name":"latest_indexed_version","type":null,"required":false,"description":null},{"name":"note","type":null,"required":false,"description":null},{"name":"package","type":"string","required":true,"description":null},{"name":"path","type":"string","required":true,"description":null},{"name":"present_in_latest","type":"boolean","required":false,"description":null},{"name":"replacements","type":"array","required":false,"description":null},{"name":"signature_at_last_seen","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":132},{"name":"check_symbols","title":"Check symbols and kwargs against an installed version","description":"Batch-check that symbols, and the keyword arguments you plan to pass, exist in a specific version of a package. Returns present/missing per symbol, rejected kwargs, deprecation notes, and hints. Use it to preflight code against the version you have installed; for one symbol across all releases use symbol_history, and after an exception use explain_error.","inputs":[{"name":"package","type":"string","required":true,"description":"PyPI distribution name, e.g. 'langchain-core'."},{"name":"symbols","type":"array","required":true,"description":"Up to 100 symbols, each a public dotted path plus the keyword arguments you plan to pass."},{"name":"version","type":"string","required":true,"description":"Installed version, e.g. '0.28.1'."}],"outputs":[{"name":"exact","type":"boolean","required":true,"description":null},{"name":"note","type":null,"required":false,"description":null},{"name":"package","type":"string","required":true,"description":null},{"name":"requested_version","type":"string","required":true,"description":null},{"name":"resolved_version","type":null,"required":true,"description":"Nearest indexed version <= requested_version."},{"name":"results","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":143},{"name":"diff_versions","title":"Breaking changes between versions","description":"Breaking changes and deprecations of a package between two versions, or since a date such as your training cutoff ('YYYY-MM-DD'). Optionally restrict to the symbols your code uses. Most severe first. Use it when upgrading, or for code written against an older release; for a single symbol use symbol_history.","inputs":[{"name":"from_version","type":"string","required":true,"description":"Version, or a date 'YYYY-MM-DD' (nearest release on/before)."},{"name":"include_added","type":"boolean","required":false,"description":"Also list symbols added in the range. Off by default: breaking changes and deprecations only."},{"name":"limit","type":"integer","required":false,"description":"Maximum events to return (1-500), most severe first; `truncated` is true when more exist."},{"name":"package","type":"string","required":true,"description":"PyPI distribution name, e.g. 'langchain-core'."},{"name":"to_version","type":null,"required":false,"description":"Defaults to the latest indexed release."},{"name":"used_symbols","type":null,"required":false,"description":"Public dotted paths your code uses (up to 500); only changes on these paths or their members are returned."}],"outputs":[{"name":"events","type":"array","required":true,"description":null},{"name":"from_version","type":null,"required":true,"description":null},{"name":"note","type":null,"required":false,"description":null},{"name":"package","type":"string","required":true,"description":null},{"name":"to_version","type":null,"required":true,"description":null},{"name":"truncated","type":"boolean","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":210},{"name":"coverage","title":"What DepTime indexes","description":"Lists indexed packages and version ranges. If a package is missing, DepTime cannot answer about it. Takes no arguments; call it first when unsure whether a package is covered.","inputs":[],"outputs":[{"name":"configured_but_not_indexed","type":"array","required":false,"description":null},{"name":"index_built_at","type":null,"required":true,"description":null},{"name":"packages","type":"array","required":true,"description":null},{"name":"policy","type":"string","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":42}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T19:40:20.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":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":36,"partial":false,"deprecated":null,"stale":1,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1ad39-f967-7908-b6c6-23da9481b433","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1ad39-f967-7908-b6c6-23da9481b433"},{"id":"chg_01a1ad39-f969-7114-a30e-c838b1d3e1d0","kind":"package.version_changed","summary":"Package version (0.1.4 → 0.1.5)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1ad39-f969-7114-a30e-c838b1d3e1d0"},{"id":"chg_01a1ad39-f969-7829-96cc-cb6068d0ec5a","kind":"score.total_changed","summary":"Trust score (85 → 70)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1ad39-f969-7829-96cc-cb6068d0ec5a"},{"id":"chg_01a1aac6-be0e-750e-9f78-f5c2a6dbf74a","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1aac6-be0e-750e-9f78-f5c2a6dbf74a"},{"id":"chg_01a1a03b-3d1f-7219-9803-c014c98fd2b9","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1a03b-3d1f-7219-9803-c014c98fd2b9"},{"id":"chg_01a1a03b-3d21-72c0-9618-6a1e1ed0dc15","kind":"score.total_changed","summary":"Trust score (68 → 84)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1a03b-3d21-72c0-9618-6a1e1ed0dc15"},{"id":"chg_01a19bb7-b57d-7a86-992f-c804a060c014","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a19bb7-b57d-7a86-992f-c804a060c014"},{"id":"chg_01a19bb7-b57f-719b-a3c3-b97b47d704d4","kind":"score.total_changed","summary":"Trust score (83 → 68)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a19bb7-b57f-719b-a3c3-b97b47d704d4"},{"id":"chg_01a198b5-f79b-7333-9645-ad13af4cd1d6","kind":"score.total_changed","summary":"Trust score (50 → 83)","materiality":"functional","direction":"improvement","scoreDelta":33,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b5-f79b-7333-9645-ad13af4cd1d6"},{"id":"chg_01a198b3-a44c-7991-92b7-dfb21f233fd4","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44c-7991-92b7-dfb21f233fd4"},{"id":"chg_01a198b3-a44d-7b11-b1ea-843d4799a006","kind":"check.unverifiable","summary":"Stability (0.10 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44d-7b11-b1ea-843d4799a006"},{"id":"chg_01a198b3-a44e-7550-a38b-461903104b98","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44e-7550-a38b-461903104b98"},{"id":"chg_01a198b3-a44e-7a54-8fe7-41a572f2e391","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44e-7a54-8fe7-41a572f2e391"},{"id":"chg_01a198b3-a44e-7ebc-bbdb-60ea476f8930","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44e-7ebc-bbdb-60ea476f8930"},{"id":"chg_01a198b3-a44f-744f-954b-ad5dab2b056e","kind":"package.version_changed","summary":"Package version (0.1.3 → 0.1.4)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44f-744f-954b-ad5dab2b056e"},{"id":"chg_01a198b3-a44f-7b71-88bc-93a373bdd586","kind":"score.total_changed","summary":"Trust score (83 → 50)","materiality":"functional","direction":"regression","scoreDelta":-33,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a198b3-a44f-7b71-88bc-93a373bdd586"},{"id":"chg_01a19604-bd93-73d8-bfa9-b0412776497f","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a19604-bd93-73d8-bfa9-b0412776497f"},{"id":"chg_01a19604-bd94-768f-9501-e389a081585a","kind":"score.total_changed","summary":"Trust score (67 → 83)","materiality":"functional","direction":"improvement","scoreDelta":16,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a19604-bd94-768f-9501-e389a081585a"},{"id":"chg_01a1917e-f40d-7f32-8680-aa3ac2fe67f4","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1917e-f40d-7f32-8680-aa3ac2fe67f4"},{"id":"chg_01a1917e-f40e-77e6-ab54-2ce0a843f92b","kind":"score.total_changed","summary":"Trust score (82 → 67)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/cschmertz-deptime/deptime#chg-chg_01a1917e-f40e-77e6-ab54-2ce0a843f92b"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cschmertz-deptime/deptime/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cschmertz-deptime/deptime","markdown":"https://verifymcp.io/servers/cschmertz-deptime/deptime.md","changelogJson":"https://verifymcp.io/servers/cschmertz-deptime/deptime/changelog.json","changelogRss":"https://verifymcp.io/servers/cschmertz-deptime/deptime.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/deptime/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/deptime"},{"label":"Repository","href":"https://github.com/cschmertz/deptime"}]}}