Server definition
- Hash
- sha256:295e5ea00c6a02ce76482b231e4bc1a2e97253522ffab13270aab32682e670a2
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "Anteproof publishes calibrated probability forecasts about software projects, packages and companies, and scores every forecast against what happened. Use search_entities to find an entity, get_entity for its open questions and latest forecasts, get_question for one question's full forecast history, list_forecasts for the newest forecasts across everything, and get_calibration to judge how much to trust a number, and dependency_risk for a one-call maintenance-risk answer about a package or repository. Probabilities are estimates, not advice.",
"tools": [
{
"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.",
"inputSchema": {
"properties": {
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "dependency_riskArguments",
"type": "object"
},
"name": "dependency_risk",
"outputSchema": null
},
{
"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'. EACH TRACK also carries `partial_withheld`: null normally, otherwise an object with the same {reason, metrics, degraded_from, detail} keys plus `excluded_families` (the families left out of this pooled figure, each with its own reason) and a computed `note`. It means the track's numbers ARE REAL and ARE SOUND, and were pooled over only the families that are individually publishable — partial coverage, not a withheld number. Report the numbers; quote `note` or `detail` alongside them so the scope travels with the figure. `withheld` and `partial_withheld` are never both non-null on the same block. 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.",
"inputSchema": {
"properties": {
"horizon": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Horizon"
}
},
"title": "get_calibrationArguments",
"type": "object"
},
"name": "get_calibration",
"outputSchema": null
},
{
"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.",
"inputSchema": {
"properties": {
"entity_id": {
"title": "Entity Id",
"type": "integer"
}
},
"required": [
"entity_id"
],
"title": "get_entityArguments",
"type": "object"
},
"name": "get_entity",
"outputSchema": null
},
{
"description": "One question with every live forecast ever issued for it and its resolution if settled.",
"inputSchema": {
"properties": {
"question_id": {
"title": "Question Id",
"type": "integer"
}
},
"required": [
"question_id"
],
"title": "get_questionArguments",
"type": "object"
},
"name": "get_question",
"outputSchema": null
},
{
"description": "The public forecast log: newest live forecasts across all entities, with titles.",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
}
},
"title": "list_forecastsArguments",
"type": "object"
},
"name": "list_forecasts",
"outputSchema": null
},
{
"description": "Find tracked entities (repositories, packages, companies) by name substring.",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"q": {
"title": "Q",
"type": "string"
}
},
"required": [
"q"
],
"title": "search_entitiesArguments",
"type": "object"
},
"name": "search_entities",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:295e5ea00c6a02ce76482b231e4bc1a2e97253522ffab13270aab32682e670a2 | sha256sum