{"$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-05T18:40:16.373Z","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal","markdownUrl":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal.md","server":{"slug":"com-hattricklocal-directory","name":"Hat Trick Local Directory","registryName":"com.hattricklocal/directory","description":"US youth sports clubs and sports stores: registration windows, fees, tryouts and claim links.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"hattricklocal","type":"remote","identifier":"https://hattricklocal.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal","version":"1.0.1","transport":null,"scoredAt":"2026-11-05T00:01:24.724Z"},"score":{"total":77,"tier":"medium","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":77},{"date":"2026-11-04","total":77},{"date":"2026-11-03","total":76},{"date":"2026-11-02","total":76},{"date":"2026-11-01","total":75},{"date":"2026-10-31","total":75},{"date":"2026-10-30","total":74},{"date":"2026-10-29","total":74},{"date":"2026-10-28","total":73},{"date":"2026-10-27","total":73},{"date":"2026-10-26","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 1435 tokens (~179/item across 8 items; 8 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":"179","items":"8","tools":"8","tokens":"1435","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":33,"verdict":"partial","reasons":["Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"10"}}]},{"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 8 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 9 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":"8"}},{"code":"toolsafety.manipulation_clean","args":{"units":"9","judged":"9"}}]},{"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":[],"components":[{"slug":"hattricklocal","type":"remote","identifier":"https://hattricklocal.com/mcp","withdrawn":false,"score":77,"current":true,"url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal","markdownUrl":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal.md"}],"facts":[{"label":"Endpoint","value":"https://hattricklocal.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.1"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"search_clubs","title":"Search clubs","description":"Find youth sports clubs in the Hat Trick Local directory by name, town, state or distance (the listings today are soccer clubs). Use it whenever a person names a club, even vaguely or misspelled: when no listing matches every word, the answer lists candidates with similar names. Each result has the club's org_key (for get_club and the link tools), its town, whether registration is open or upcoming with dates and source, its fee range and how its facts were verified. Coverage is Ohio and Pennsylvania first; no result elsewhere means not in this directory, not that no club exists.","inputs":[{"name":"city","type":"string","required":false,"description":"Town or city name."},{"name":"cursor","type":"string","required":false,"description":"next_cursor from the previous answer, for the next page of the same search."},{"name":"limit","type":"integer","required":false,"description":"How many results (default 10, at most 25)."},{"name":"near","type":"string","required":false,"description":"A 5-digit US ZIP code, or latitude,longitude, to search by distance. Results then carry distance_mi."},{"name":"query","type":"string","required":false,"description":"Club name, part of a name or a town. Every word must match; when nothing does, similar names come back as candidates."},{"name":"radius_mi","type":"number","required":false,"description":"Miles around near (default 25)."},{"name":"registration_open","type":"boolean","required":false,"description":"true: only clubs whose registration is open today."},{"name":"registration_status","type":"string","required":false,"description":"open (today), upcoming (a window starts later) or not_on_record."},{"name":"sport","type":"string","required":false,"description":"soccer, lacrosse or hockey."},{"name":"state","type":"string","required":false,"description":"Two-letter US state code, for example OH or PA."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":333},{"name":"get_club","title":"Get a club","description":"One club's full listing: contacts, programs, locations, and its current season records (registration windows, fees and tryouts, each with its source link and how it was verified), plus its club website, shop link and action links when it has them.","inputs":[{"name":"org_key","type":"string","required":true,"description":"The club's org_key from a search (an older key or a plain slug also works)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"list_registration_windows","title":"List registration windows","description":"Registration windows on record across clubs, for questions like 'which clubs in Ohio have registration open now' or 'what opens in January'. Filter by state, town, club name words, status and dates. Each window has its opening and closing dates, season, source link and verification.","inputs":[{"name":"city","type":"string","required":false,"description":"Town or city name."},{"name":"cursor","type":"string","required":false,"description":"next_cursor from the previous answer, for the next page of the same search."},{"name":"date","type":"string","required":false,"description":"Only windows that cover this date (YYYY-MM-DD)."},{"name":"from","type":"string","required":false,"description":"Only windows overlapping from this date (YYYY-MM-DD)."},{"name":"limit","type":"integer","required":false,"description":"How many results (default 10, at most 25)."},{"name":"query","type":"string","required":false,"description":"Words of a club's name or town."},{"name":"state","type":"string","required":false,"description":"Two-letter US state code, for example OH or PA."},{"name":"status","type":"string","required":false,"description":"open (covers today) or upcoming (opens later)."},{"name":"to","type":"string","required":false,"description":"Only windows overlapping up to this date (YYYY-MM-DD; a range is at most 400 days)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":229},{"name":"search_stores","title":"Search sports stores","description":"Find local sports stores (soccer stores today) by name, chain, town, state or distance, with address, phone, brands and whether they outfit teams. Each result has the store's org_key for get_store and the link tools.","inputs":[{"name":"city","type":"string","required":false,"description":"Town or city name."},{"name":"cursor","type":"string","required":false,"description":"next_cursor from the previous answer, for the next page of the same search."},{"name":"limit","type":"integer","required":false,"description":"How many results (default 10, at most 25)."},{"name":"near","type":"string","required":false,"description":"A 5-digit US ZIP code, or latitude,longitude, to search by distance. Results then carry distance_mi."},{"name":"query","type":"string","required":false,"description":"Store name, chain or town. Every word must match; when nothing does, similar names come back as candidates."},{"name":"radius_mi","type":"number","required":false,"description":"Miles around near (default 25)."},{"name":"state","type":"string","required":false,"description":"Two-letter US state code, for example OH or PA."},{"name":"team_dealer","type":"boolean","required":false,"description":"true: only stores that outfit teams (uniforms for clubs)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":225},{"name":"get_store","title":"Get a store","description":"One store's full listing: address, phone, hours where listed, brands, whether it outfits teams, and its online ordering and action links when it has them.","inputs":[{"name":"org_key","type":"string","required":true,"description":"The store's org_key from a search (an older key or a plain slug also works)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":67},{"name":"create_claim_link","title":"Claim link","description":"A link to hand a person who runs a club or store, so they can claim its free listing. Opening it changes nothing: the person fills in and sends the claim on the page. If the listing is already claimed, the person can still send a claim and Hat Trick Local reviews it. Never open the link to submit for the person.","inputs":[{"name":"org_key","type":"string","required":true,"description":"The club or store's org_key from a search (an older key or a plain slug also works)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":106},{"name":"create_correction_link","title":"Correction link","description":"A link to hand a person who found something wrong in a listing. It opens the listing with the correction form open (field preselects what is wrong); the person writes and sends it, and Hat Trick Local reviews it before anything changes. Never submit for the person.","inputs":[{"name":"field","type":"string","required":false,"description":"What is wrong, so the form opens with it chosen."},{"name":"org_key","type":"string","required":true,"description":"The listing's org_key from a search."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"create_shop_link","title":"Shop link","description":"A link to where a club or store sells online through Hat Trick Local (a club's team store or a store's online ordering). Many listings do not sell online; the answer then says so and gives the listing's page. The person chooses and pays there; never order or pay for them.","inputs":[{"name":"org_key","type":"string","required":true,"description":"The club or store's org_key from a search (an older key or a plain slug also works)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T00:01:24.000Z","track":"remote","endpoint":"https://hattricklocal.com/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=hattricklocal.com","issuer":"CN=YE1,O=Let's Encrypt,C=US","notBefore":"2026-09-15T18:31:23Z","notAfter":"2026-12-14T18:31:22Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=YE1,O=Let's Encrypt,C=US","issuer":"CN=Root YE,O=ISRG,C=US","notBefore":"2025-09-03T00:00:00Z","notAfter":"2028-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=Root YE,O=ISRG,C=US","issuer":"CN=ISRG Root X2,O=Internet Security Research Group,C=US","notBefore":"2026-05-13T00:00:00Z","notAfter":"2032-09-02T23:59:59Z","keyType":"ECDSA","keyBits":384,"isCa":true},{"subject":"CN=ISRG Root X2,O=Internet Security Research Group,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":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"hattricklocal.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"hattricklocal.com.","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-26","recent":[{"id":"chg_01a1a3dc-1e7f-77e8-a0f8-04a85c62419c","kind":"score.total_changed","summary":"Trust score (76 → 77)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a1a3dc-1e7f-77e8-a0f8-04a85c62419c"},{"id":"chg_01a1998f-71b3-7dab-8c90-ebf513cd7ff8","kind":"score.total_changed","summary":"Trust score (75 → 76)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a1998f-71b3-7dab-8c90-ebf513cd7ff8"},{"id":"chg_01a18f42-06e2-7a37-9bd9-77cd70fd1b4d","kind":"score.total_changed","summary":"Trust score (74 → 75)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a18f42-06e2-7a37-9bd9-77cd70fd1b4d"},{"id":"chg_01a184f5-4cfd-7119-b589-601dc5dff00a","kind":"score.total_changed","summary":"Trust score (73 → 74)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a184f5-4cfd-7119-b589-601dc5dff00a"},{"id":"chg_01a17aa8-4ce4-7361-8877-99e63059ee7f","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a17aa8-4ce4-7361-8877-99e63059ee7f"},{"id":"chg_01a17aa8-4ce9-781a-a0d1-8a06b0131db2","kind":"score.total_changed","summary":"Trust score (72 → 73)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a17aa8-4ce9-781a-a0d1-8a06b0131db2"},{"id":"chg_01a17815-20c9-72fd-83c3-73e68c8914d6","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-26","url":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal#chg-chg_01a17815-20c9-72fd-83c3-73e68c8914d6"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal","markdown":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal.md","changelogJson":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal/changelog.json","changelogRss":"https://verifymcp.io/servers/com-hattricklocal-directory/hattricklocal.xml","external":[{"label":"Remote endpoint","href":"https://hattricklocal.com/mcp"},{"label":"Repository","href":"https://github.com/Build-Stuff-Fast/hat-trick-local-directory"},{"label":"Website","href":"https://hattricklocal.com/developers"}]}}