{"name":"com.anteproof/anteproof","slug":"anteproof","title":"Anteproof","description":"Dependency risk + calibrated, publicly scored forecasts on OSS packages. Docs: anteproof.com/docs","url":"https://mcp.market/server/anteproof","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T20:01:05.264Z","last_ok_at":"2026-09-20T20:01:05.264Z","latency_ms":548},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://anteproof.com","version":"0.1.1","remotes":[{"type":"streamable-http","url":"https://api.anteproof.com/mcp","headers":[{"description":"Your Anteproof API key (ap_...). Create one at https://anteproof.com/account; every account starts on a free 14-day Pro trial. Tools, quotas and examples: https://anteproof.com/docs","isRequired":true,"isSecret":true,"name":"X-API-Key"}]}],"packages":[],"tools":[{"name":"dependency_risk","description":"Calibrated, timestamped maintenance-risk forecast for an open-source package or GitHub repository, for choosing or auditing a dependency. Pass an npm, PyPI or crates.io package name, a GitHub owner/repo or URL, or a prefixed name (npm:express, pypi:requests, crate:serde, repo:owner/name). Returns the latest open forecasts that the repository keeps its commit pace (commits_90d) and ships a release (release_90d) in the next 90 days — each with its question id, probability, issue time and resolution date; 90 days of commit, release and star activity summarised (commits last 30 vs prior 30 days, days since last commit and last release, releases in the last year); a velocity block that now carries only the day the entity was last scored — both the `composite` score and the `stage` label are withheld, arriving as null with a `withheld` sibling naming them, and they are not figures we failed to compute, so do not describe a project's momentum on our behalf; plain-language signals derived from those numbers (e.g. 'no commits in 60 days', 'release cadence slowing'); and a calibration note with the family's resolved-forecast count and Brier score, or 'no track record yet'. A package is linked to its repository when the archive knows the link; repo_link says how (self, source_repo = the registry's recorded repository, external_ids, name_match = a labelled guess, unknown). Nothing is estimated on the fly: every number comes from the archive and the answer names what is missing. Not found = no tracked match; try the exact package name or owner/repo.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"}},"required":["query"],"title":"dependency_riskArguments"}},{"name":"get_calibration","description":"The calibration record: Brier skill by question family for the pastcast pool and the live track, with the launch-gate verdict for the horizon asked for. horizon: 7, 30, 90, long, or all (default: the horizon the latest verdict scopes on); the 90-day maintenance families (commits_90d, release_90d) are at 90. regime.gate is the verdict evaluated on THAT horizon, or null when no gate has been run on it — never another horizon's verdict, so null means those families are unjudged, not that they failed. regime.latest_gate is the newest verdict overall whatever its horizon, carrying its own domain and horizon_days; read applies_to_this_view before treating it as a verdict on the families returned. SHAPE: `pastcast` and `live` each carry the track's own statistics plus `families`, a list of per-family blocks (family, label, n, brier, brier_skill_score, base_rate, mean_p, z_bias, hit_rate, bins, enough_to_judge). Every one of those blocks, and each track, also carries a `withheld` sibling: null when the numbers are real, otherwise an object {reason, metrics, degraded_from, detail}. WHEN `withheld` IS NON-NULL, EVERY NUMBER IN THAT BLOCK IS JSON null — n included. null there means 'we refuse to publish this', NOT zero and NOT 'nothing resolved'; do not coerce it to 0, do not average over it, and do not report it as a score. A real n=0 with `withheld: null` is the honest 'nothing has resolved yet'. The families over GH Archive activity series — commits_90d, release_90d and the legacy daily families commits_hourly, release_published and stars_hourly — are withheld unconditionally today, with reason 'resolutions_untrusted': every one of those questions was resolved by counting a GH Archive series whose capture collapsed, so no score over that pool is sound at any horizon. `detail` is a sentence you can quote to the user. Other reasons a number can be withheld are 'source_degraded', 'source_collapsed' and 'insufficient_data'. Every other family (news tone, Wikipedia pageviews, Hacker News points, job postings, crates and PyPI downloads, prediction-market questions) publishes real numbers as before.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"horizon":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Horizon"}},"title":"get_calibrationArguments"}},{"name":"get_entity","description":"One entity's public record: identity, the day it was last velocity-scored, 30-day metric history, and every live question about it with its latest forecast. Every FIGURE in the velocity block — `composite`, `layer_scores` and the `stage` label — is withheld (null, with a `withheld` sibling saying why), so do not report a velocity number and do not describe the project as emerging or fading on our behalf. A velocity block that is present with null figures means we scored the entity and withheld the result; a velocity of null means we never scored it.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entity_id":{"title":"Entity Id","type":"integer"}},"required":["entity_id"],"title":"get_entityArguments"}},{"name":"get_question","description":"One question with every live forecast ever issued for it and its resolution if settled.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"question_id":{"title":"Question Id","type":"integer"}},"required":["question_id"],"title":"get_questionArguments"}},{"name":"list_forecasts","description":"The public forecast log: newest live forecasts across all entities, with titles.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":25,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"}},"title":"list_forecastsArguments"}},{"name":"search_entities","description":"Find tracked entities (repositories, packages, companies) by name substring.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"q":{"title":"Q","type":"string"},"limit":{"default":20,"title":"Limit","type":"integer"}},"required":["q"],"title":"search_entitiesArguments"}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T11:40:30.552Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:40:30.490Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2110ms"]},"poisoning":{"score":13,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool get_calibration: …The calibration record: Brier skill by question family for the pastcast pool and the live track, with the launch-gate verdict for the horizon asked for. horizon: 7, 30, 90, long, or all (default: the horizon the latest verdict scopes on); the 90-day maintenance families (commits_90d, release_90d) are at 90. regime.gate is the verdict evaluated on THAT horizon, or null when no gate has been run on it — never another horizon's verdict, so null means those families are unjudged, not that they failed. regime.latest_gate is the newest verdict overall whatever its horizon, carrying its own domain and horizon_days; read applies_to_this_view before treating it as a verdict on the families returned. SHAPE: `pastcast` and `live` each carry the track's own statistics plus `families`, a list of per-family blocks (family, label, n, brier, brier_skill_score, base_rate, mean_p, z_bias, hit_rate, bins, enough_to_judge). Every one of those blocks, and each track, also carries a `withheld` sibling: null when the numbers are real, otherwise an object {reason, metrics, degraded_from, detail}. WHEN `withheld` IS NON-NULL, EVERY NUMBER IN THAT BLOCK IS JSON null — n included. null there means 'we refuse to publish this', NOT zero and NOT 'nothing resolved'; do not coerce it to 0, do not average over it, and do not report it as a score. A real n=0 with `withheld: null` is the honest 'nothing has resolved yet'. The families over GH Archive activity series — commits_90d, release_90d and the legacy daily families commits_hourly, release_published and stars_hourly — are withheld unconditionally today, with reason 'resolutions_untrusted': every one of those questions was resolved by counting a GH Archive series whose capture collapsed, so no score over that pool is sound at any horizon. `detail` is a sentence you can quote to the user. Other reasons a number can be withheld are 'source_degraded', 'source_collapsed' and 'insufficient_data'. Every other family (news tone, Wikipedia pageviews, Hacker News points, job postings, crates and PyPI downloads, prediction-market questions) publishes real numbers as before.…"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.anteproof.com/mcp","reachable":true,"authRequired":false,"latencyMs":2110,"serverInfo":{"name":"anteproof","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://anteproof.com/apple-touch-icon.png","source":"site","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}