{"$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-05T17:24:36.887Z","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp","markdownUrl":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp.md","server":{"slug":"fr-docteurbet-docteurbet","name":"Docteur Bet — football probabilities","registryName":"fr.docteurbet/docteurbet","description":"Free football match probabilities (Dixon-Coles), season projections and a public track record.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"mcp","type":"remote","identifier":"https://mcp.docteurbet.fr/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp","version":"1.0.2","transport":null,"scoredAt":"2026-11-05T08:08:51.013Z"},"score":{"total":82,"tier":"high trust","status":"scored","weekDelta":4,"history":[{"date":"2026-11-05","total":82},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":81},{"date":"2026-11-02","total":80},{"date":"2026-11-01","total":80},{"date":"2026-10-31","total":79},{"date":"2026-10-30","total":79},{"date":"2026-10-29","total":78},{"date":"2026-10-28","total":78},{"date":"2026-10-27","total":78},{"date":"2026-10-26","total":77},{"date":"2026-10-25","total":77},{"date":"2026-10-24","total":76},{"date":"2026-10-23","total":76},{"date":"2026-10-22","total":75},{"date":"2026-10-21","total":75},{"date":"2026-10-20","total":74},{"date":"2026-10-19","total":74},{"date":"2026-10-18","total":73},{"date":"2026-10-17","total":73},{"date":"2026-10-16","total":72}]},"categories":[{"name":"Endpoint Security","score":80,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","The HSTS (Strict-Transport-Security) header is present.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":69,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1248 tokens (~178/item across 7 items; 7 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":"178","items":"7","tools":"7","tokens":"1248","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":67,"verdict":"partial","reasons":["Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"20"}}]},{"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 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 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":"8","judged":"8"}}]},{"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":"mcp","type":"remote","identifier":"https://mcp.docteurbet.fr/mcp","withdrawn":false,"score":82,"current":true,"url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp","markdownUrl":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp.md"}],"facts":[{"label":"Endpoint","value":"https://mcp.docteurbet.fr/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.2"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_competitions","title":"List competitions","description":"Lists the football competitions Docteur Bet models (major European leagues, three second tiers (Championship, Serie B, La Liga 2), other European leagues, Champions League, Europa League) and what is published for each: match probabilities, full match markets, season projection (title/relegation chances), team strengths. Call this when unsure whether a competition is covered.","inputs":[{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":105},{"name":"find_match","title":"Find a match","description":"Finds upcoming or recent football matches (next 21 days) by team name, accepting nicknames such as \"PSG\", \"Man City\", \"Barça\" or \"Bayern Munich\". Optionally narrow with the opponent and a date. Returns candidate matches with their match_id, to pass to get_match_probabilities. If several teams match (e.g. \"Paris\" = Paris FC or Paris Saint-Germain), all are returned: ask the user which one they mean.","inputs":[{"name":"date","type":"string","required":false,"description":"Match date (YYYY-MM-DD, UTC), if known."},{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."},{"name":"opponent","type":"string","required":false,"description":"The other team, if known."},{"name":"team","type":"string","required":true,"description":"A team name or nickname, e.g. \"PSG\", \"Arsenal\", \"Inter\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":181},{"name":"get_match_probabilities","title":"Match probabilities","description":"Returns the probabilities for one football match from the free Dixon-Coles model offered by Docteur Bet (not the Docteur Bet model, which is reserved for value bets in the app): home win / draw / away win, over/under 1.5, 2.5 and 3.5 goals, both teams to score, expected goals, most likely exact scores and team strengths. Get the match_id from find_match or get_upcoming_matches. Always cite the source, the model and the calculation date.","inputs":[{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."},{"name":"match_id","type":"integer","required":true,"description":"The match_id returned by find_match or get_upcoming_matches."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":157},{"name":"get_upcoming_matches","title":"Upcoming matches","description":"Lists the upcoming matches of one competition over the next days, each with home/draw/away probabilities from the free Dixon-Coles model offered by Docteur Bet, when published. The competition can be given by name (\"Premier League\", \"Ligue 1\", \"Champions League\"), common abbreviation (\"EPL\", \"UCL\") or id from list_competitions.","inputs":[{"name":"competition","type":"string","required":true,"description":"Competition name, abbreviation or id."},{"name":"days","type":"integer","required":false,"description":"How many days ahead (1-21)."},{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"get_season_projection","title":"Season projection","description":"Returns the current table of a league with a season projection from tens of thousands of seasons simulated with the free Dixon-Coles model offered by Docteur Bet: each team's chances of winning the title, finishing in Champions League and European places, being relegated, and its projected final points. Not available for cups or for leagues whose format the simulator does not handle (see list_competitions).","inputs":[{"name":"competition","type":"string","required":true,"description":"League name, abbreviation or id."},{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"get_team_strengths","title":"Team strengths (power ranking)","description":"Returns the power ranking of a competition from the free Dixon-Coles model offered by Docteur Bet: each team's attack and defence strength relative to the league average (1 = average; a lower defence figure is better), an overall index (attack / defence), and the gap between its strength rank and its actual league position.","inputs":[{"name":"competition","type":"string","required":true,"description":"League name, abbreviation or id."},{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"get_track_record","title":"Track record","description":"Returns Docteur Bet's public track record: every value bet published before kick-off and then settled, wins and losses, with the number of bets, average odds and yield for each country's bookmaker market. These value bets come from the Docteur Bet model, Docteur Bet's own model for app subscribers (not the free Dixon-Coles model); the individual bets are subscriber-only and are not returned.","inputs":[{"name":"lang","type":"string","required":false,"description":"Language of the summary and notices: \"en\" or \"fr\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T08:08:50.000Z","track":"remote","endpoint":"https://mcp.docteurbet.fr/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=mcp.docteurbet.fr","issuer":"CN=YR2,O=Let's Encrypt,C=US","notBefore":"2026-10-16T08:37:59Z","notAfter":"2027-01-14T08:37:58Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=YR2,O=Let's Encrypt,C=US","issuer":"CN=Root YR,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":true},{"subject":"CN=Root YR,O=ISRG,C=US","issuer":"CN=ISRG Root X1,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"mcp.docteurbet.fr.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"fr.","outcome":"verified","label":"Verified"},{"zone":"docteurbet.fr.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-16","recent":[{"id":"chg_01a1aac0-e661-7dda-a9da-0d221a31a531","kind":"score.total_changed","summary":"Trust score (81 → 82)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a1aac0-e661-7dda-a9da-0d221a31a531"},{"id":"chg_01a1a072-9cae-7c08-acfb-e850ffb45c96","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a1a072-9cae-7c08-acfb-e850ffb45c96"},{"id":"chg_01a19626-b984-7e8a-a3b2-9cecd6e2c510","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a19626-b984-7e8a-a3b2-9cecd6e2c510"},{"id":"chg_01a18bda-b024-79f5-bd7f-395802f27661","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a18bda-b024-79f5-bd7f-395802f27661"},{"id":"chg_01a17c65-2be2-7b3a-9530-ab8586688893","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a17c65-2be2-7b3a-9530-ab8586688893"},{"id":"chg_01a17218-577d-73d6-9c6a-39d27c88854b","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a17218-577d-73d6-9c6a-39d27c88854b"},{"id":"chg_01a167cc-04cd-7804-bd5c-50f97eddcdb4","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a167cc-04cd-7804-bd5c-50f97eddcdb4"},{"id":"chg_01a15d7f-e589-7d7c-9c39-1c43a27a52f9","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a15d7f-e589-7d7c-9c39-1c43a27a52f9"},{"id":"chg_01a15333-709b-7f08-a5e0-f27d23cfa96b","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a15333-709b-7f08-a5e0-f27d23cfa96b"},{"id":"chg_01a148e7-0580-7bc2-9bcd-d3763f12ccaa","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a148e7-0580-7bc2-9bcd-d3763f12ccaa"},{"id":"chg_01a148e7-0581-7776-995e-75b44c6b3f91","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a148e7-0581-7776-995e-75b44c6b3f91"},{"id":"chg_01a144cc-7965-7065-aa9a-ee145b040ecb","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp#chg-chg_01a144cc-7965-7065-aa9a-ee145b040ecb"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp","markdown":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp.md","changelogJson":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/fr-docteurbet-docteurbet/mcp.xml","external":[{"label":"Remote endpoint","href":"https://mcp.docteurbet.fr/mcp"},{"label":"Website","href":"https://docteurbet.fr/en/mcp"}]}}