{"$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-05T16:02:42.788Z","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp","markdownUrl":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp.md","server":{"slug":"com-bigballi-rallyiq","name":"RallyIQ","registryName":"com.bigballi/rallyiq","description":"Tennis game plans, scouting reports and match breakdowns from shot-by-shot charted matches.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"rallyiq-mcp","type":"remote","identifier":"https://bigballi.com/RallyIQ/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T00:30:39.350Z"},"score":{"total":88,"tier":"high trust","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":88},{"date":"2026-11-04","total":87},{"date":"2026-11-03","total":87},{"date":"2026-11-02","total":87},{"date":"2026-11-01","total":86},{"date":"2026-10-31","total":86},{"date":"2026-10-30","total":85},{"date":"2026-10-29","total":85},{"date":"2026-10-28","total":84},{"date":"2026-10-27","total":84},{"date":"2026-10-26","total":83},{"date":"2026-10-25","total":81},{"date":"2026-10-24","total":80},{"date":"2026-10-23","total":80},{"date":"2026-10-22","total":79},{"date":"2026-10-21","total":79},{"date":"2026-10-20","total":79},{"date":"2026-10-19","total":78},{"date":"2026-10-18","total":78},{"date":"2026-10-17","total":77},{"date":"2026-10-16","total":77},{"date":"2026-10-15","total":76},{"date":"2026-10-14","total":76},{"date":"2026-10-13","total":75},{"date":"2026-10-12","total":75},{"date":"2026-10-11","total":74},{"date":"2026-10-10","total":74},{"date":"2026-10-08","total":73}]},"categories":[{"name":"Endpoint Security","score":83,"verdict":"partial","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 is configured correctly; the domain's records validate against the full chain to the root."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_present","args":{}},{"code":"dnssec.validated","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":76,"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 1194 tokens (~238/item across 5 items; 4 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":"238","items":"5","tools":"4","tokens":"1194","resources":"1"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":93,"verdict":"partial","reasons":["Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"28"}}]},{"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 4 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":"4"}},{"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).","Supports UI / widget rendering."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}},{"code":"cap.ui_supported","args":{}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"rallyiq-mcp","type":"remote","identifier":"https://bigballi.com/RallyIQ/mcp","withdrawn":false,"score":88,"current":true,"url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp","markdownUrl":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://bigballi.com/RallyIQ/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_game_plan","title":"Tennis game plan for a matchup","description":"A scouting game plan for one player against an opponent, from 11,822 shot-by-shot charted ATP and WTA matches: the match forecast with a 90% range (same tour only), where to serve first serves on each court against this returner and the optimal mix, which returns work best against this server, the rally shots to favour and to avoid, what the opponent tends to serve, career shot ratings side by side, style compatibility and the charted head-to-heads. Optionally for one surface.","inputs":[{"name":"opponent","type":"string","required":true,"description":"The opponent, e.g. \"Jannik Sinner\", \"Swiatek\", \"Alcaraz\". Misspellings and surnames alone are fine."},{"name":"player","type":"string","required":true,"description":"The player the plan is for, e.g. \"Jannik Sinner\", \"Swiatek\", \"Alcaraz\". Misspellings and surnames alone are fine."},{"name":"surface","type":"string","required":false,"description":"Court surface for the forecast and rally plan (default all)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":213},{"name":"get_player","title":"Tennis player scouting report","description":"One charted player's scouting report, found by name: serve and return points won against an average opponent, shot ratings per 100 shots (direction choice, shot selection, execution, long rallies, points left on the table) with tour percentiles, first-serve direction habits per court including on break points, how exploitable the serve is and the optimal mix, the shots they hurt opponents with most and the shots they are most exposed to, best-equipped opponents, stylistically similar players and recent charted matches. When the name matches several players it returns the best match and lists the others.","inputs":[{"name":"name","type":"string","required":true,"description":"The player, e.g. \"Jannik Sinner\", \"Swiatek\", \"Alcaraz\". Misspellings and surnames alone are fine."},{"name":"tour","type":"string","required":false,"description":"Restrict the name search to one tour when a surname is shared (e.g. Williams)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":190},{"name":"explain_match","title":"Explain a charted tennis match","description":"Why a charted match went the way it did: points won, and each player's gain or loss against expectation split into direction choice, shot selection and execution, by stroke and by set, the loser's biggest leaks and the points each player left on the table by not choosing the best-value direction. Finds the most recent charted match for a player, narrowed by opponent, tournament or year, and lists other matching matches.","inputs":[{"name":"opponent","type":"string","required":false,"description":"The other player (optional), e.g. \"Jannik Sinner\", \"Swiatek\", \"Alcaraz\". Misspellings and surnames alone are fine."},{"name":"player","type":"string","required":true,"description":"A player in the match, e.g. \"Jannik Sinner\", \"Swiatek\", \"Alcaraz\". Misspellings and surnames alone are fine."},{"name":"tournament","type":"string","required":false,"description":"Words from the tournament name, e.g. \"Wimbledon\", \"Roland Garros\", \"Indian Wells\"."},{"name":"year","type":"integer","required":false,"description":"Season of the match."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":215},{"name":"get_leaders","title":"Tennis tactical leaderboards","description":"Top 10 ATP or WTA players on one tactical measure: direction_choice: Picks the more valuable direction for the stroke being hit (per 100 shots, opponent-adjusted). execution: Gets more out of a shot than the same choice usually yields (per 100 shots, opponent-adjusted). shot_selection: Chooses strokes worth more than the position average; partly reflects the ball they were given (per 100 shots, opponent-adjusted). fewest_points_left: Smallest gap per 100 shots between the direction chosen and the best-value direction for that stroke. most_exploitable_serve: Points per 100 first serves an optimal direction mix would win over the current one, allowing for returners reading a habit. serve_off_equilibrium: First-serve directions that win at clearly different rates (p < 0.01): usage-weighted gap per 100 first serves and the direction to use more. long_rallies_hold_up: Execution from the ninth shot of a rally on, minus the player's own earlier-rally execution, per 100 shots (ATP only). long_rallies_fade: The same long-rally measure, most fading first (ATP only). adaptability: Moves the first-serve mix toward what has been winning in earlier sets, per 100 first serves. A weak habit, not a proven gain. adapts_fastest: The same, every two to three service games, per 100 first serves. Players need at least 5,000 modelled shots.","inputs":[{"name":"board","type":"string","required":true,"description":"Which leaderboard."},{"name":"scope","type":"string","required":false,"description":"active: charted in the last three seasons (default); all_eras: every era."},{"name":"tour","type":"string","required":false,"description":"atp (default) or wta."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":364}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:30:39.000Z","track":"remote","endpoint":"https://bigballi.com/RallyIQ/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=bigballi.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-30T14:58:16Z","notAfter":"2027-01-28T15:57:53Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"secure","label":"Secure","name":"bigballi.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"bigballi.com.","outcome":"verified","label":"Verified"},{"zone":"bigballi.com.","outcome":"verified","label":"Verified"}]},"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-08","recent":[{"id":"chg_01a1a91d-690e-7c13-a2d4-9df7b8785334","kind":"score.total_changed","summary":"Trust score (87 → 88)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a1a91d-690e-7c13-a2d4-9df7b8785334"},{"id":"chg_01a199a0-8e94-750d-ab80-5e4866dab2e6","kind":"score.total_changed","summary":"Trust score (86 → 87)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a199a0-8e94-750d-ab80-5e4866dab2e6"},{"id":"chg_01a18f4d-c15e-7ebe-92ff-22336d553ad8","kind":"score.total_changed","summary":"Trust score (85 → 86)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a18f4d-c15e-7ebe-92ff-22336d553ad8"},{"id":"chg_01a18507-0159-74b5-951a-475257eb0d85","kind":"score.total_changed","summary":"Trust score (84 → 85)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a18507-0159-74b5-951a-475257eb0d85"},{"id":"chg_01a17ab0-94cc-7389-8ea9-06ee4ce592d6","kind":"score.total_changed","summary":"Trust score (83 → 84)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17ab0-94cc-7389-8ea9-06ee4ce592d6"},{"id":"chg_01a17591-1a70-72b5-b5db-3270729b92b9","kind":"check.measure","summary":"Schema quality (293 → 238)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a70-72b5-b5db-3270729b92b9"},{"id":"chg_01a17591-1a71-7022-9645-56b3292b305d","kind":"check.appeared","summary":"First check of Capabilities (pass)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a71-7022-9645-56b3292b305d"},{"id":"chg_01a17591-1a71-7933-bb89-4cd6df438983","kind":"check.appeared","summary":"First check of Schema quality (100)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a71-7933-bb89-4cd6df438983"},{"id":"chg_01a17591-1a71-7ea7-895a-c9277b47a87c","kind":"check.measure","summary":"Schema quality (excellent → good)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a71-7ea7-895a-c9277b47a87c"},{"id":"chg_01a17591-1a72-7e4b-867f-8f7d905dcb5d","kind":"resource.added","summary":"New resource “game-plan”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a72-7e4b-867f-8f7d905dcb5d"},{"id":"chg_01a17591-1a73-74a6-898c-6caf424029ec","kind":"capability.enabled","summary":"The server now declares the “resources” capability","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a73-74a6-898c-6caf424029ec"},{"id":"chg_01a17591-1a73-79a3-9f50-44fa4b2de2ea","kind":"score.total_changed","summary":"Trust score (81 → 83)","materiality":"functional","direction":"improvement","scoreDelta":2,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a17591-1a73-79a3-9f50-44fa4b2de2ea"},{"id":"chg_01a1706e-725c-70b5-a3c8-f11cf68eeaa4","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a1706e-725c-70b5-a3c8-f11cf68eeaa4"},{"id":"chg_01a1661a-9b79-7e30-9562-c0f202be3e50","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a1661a-9b79-7e30-9562-c0f202be3e50"},{"id":"chg_01a1569e-ebe2-767c-bdad-33a9566e7a24","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-20","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a1569e-ebe2-767c-bdad-33a9566e7a24"},{"id":"chg_01a14c54-5563-70dd-a00a-545b781483d9","kind":"score.total_changed","summary":"Trust score (77 → 78)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-18","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a14c54-5563-70dd-a00a-545b781483d9"},{"id":"chg_01a14206-50f9-7616-84e5-2ec77ec3363f","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-16","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a14206-50f9-7616-84e5-2ec77ec3363f"},{"id":"chg_01a137bb-a4df-7c2e-a667-5cfa6a14c7f4","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a137bb-a4df-7c2e-a667-5cfa6a14c7f4"},{"id":"chg_01a12e7c-f691-7695-aa64-76ecff67184f","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-12","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a12e7c-f691-7695-aa64-76ecff67184f"},{"id":"chg_01a1260b-beab-7e0a-92c0-c718ee7def76","kind":"check.reverified","summary":"Stability (unverified → 0.07)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-10","url":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp#chg-chg_01a1260b-beab-7e0a-92c0-c718ee7def76"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp","markdown":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp.md","changelogJson":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-bigballi-rallyiq/rallyiq-mcp.xml","external":[{"label":"Remote endpoint","href":"https://bigballi.com/RallyIQ/mcp"},{"label":"Repository","href":"https://github.com/BigBalli/rallyiq-mcp"},{"label":"Website","href":"https://bigballi.com/RallyIQ/connect"}]}}