Koskamo

Hat Trick Local MCP

An official MCP server providing read-only access to the Hat Trick Local youth sports directory. It allows AI agents to search for clubs and stores, retrieve detailed club information including fees and registration windows, and generate action links for claiming listings, suggesting corrections, or accessing online shops.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Hat Trick Local MCP logo, by Hat Trick LocalVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Hat Trick Local
MCP endpoint (Streamable HTTP)
https://hattricklocal.com/mcp
Vendor documentation

What you can do with it

  • Search for youth sports clubs by location or name
  • Retrieve club details, fees, and registration windows
  • Find local sports stores near a specific address
  • Generate claim, correction, or shop links for listings

Source and maintenance

Vendor evidenceRegistry 1.0.1
Maintenance checked

Protocol and capabilities

Server
com.hattricklocal/directory 1.0.1
MCP protocol
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Hat Trick Local is a public directory of US youth sports clubs and local sports stores (Ohio and Pennsylvania first; the listings today are soccer clubs and soccer stores). Use search_clubs or search_stores to find listings (a vague or misspelled name returns candidates), get_club or get_store for one listing with its current registration windows, fees and tryouts and their sources, and list_registration_windows for what is open or opening in a state. Every fact says how and when it was verified: 'observed' means seen on the organization's own site, not confirmed by it; null means unknown. Cite: "Youth soccer club data: Hat Trick Local - https://hattricklocal.com/soccer/directory-data". The create_*_link tools return links to hand the person; never open them to submit, pay, register or claim for the person. No player, family, roster or order data is available here.

Tools

8 advertised

search_clubs — Search clubs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_clubs input schema
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 80,
      "description": "Town or city name."
    },
    "near": {
      "type": "string",
      "description": "A 5-digit US ZIP code, or latitude,longitude, to search by distance. Results then carry distance_mi."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "How many results (default 10, at most 25)."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "description": "Club name, part of a name or a town. Every word must match; when nothing does, similar names come back as candidates."
    },
    "sport": {
      "type": "string",
      "maxLength": 30,
      "description": "soccer, lacrosse or hockey."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter US state code, for example OH or PA."
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor from the previous answer, for the next page of the same search."
    },
    "radius_mi": {
      "type": "number",
      "maximum": 250,
      "minimum": 1,
      "description": "Miles around near (default 25)."
    },
    "registration_open": {
      "type": "boolean",
      "description": "true: only clubs whose registration is open today."
    },
    "registration_status": {
      "enum": [
        "open",
        "upcoming",
        "not_on_record"
      ],
      "type": "string",
      "description": "open (today), upcoming (a window starts later) or not_on_record."
    }
  },
  "additionalProperties": false
}
search_clubs annotations
{
  "title": "Search clubs",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_club — Get a club
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_club input schema
{
  "type": "object",
  "required": [
    "org_key"
  ],
  "properties": {
    "org_key": {
      "type": "string",
      "maxLength": 200,
      "description": "The club's org_key from a search (an older key or a plain slug also works)."
    }
  },
  "additionalProperties": false
}
get_club annotations
{
  "title": "Get a club",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_registration_windows — List registration windows
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_registration_windows input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only windows overlapping up to this date (YYYY-MM-DD; a range is at most 400 days)."
    },
    "city": {
      "type": "string",
      "maxLength": 80,
      "description": "Town or city name."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only windows that cover this date (YYYY-MM-DD)."
    },
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only windows overlapping from this date (YYYY-MM-DD)."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "How many results (default 10, at most 25)."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "description": "Words of a club's name or town."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter US state code, for example OH or PA."
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor from the previous answer, for the next page of the same search."
    },
    "status": {
      "enum": [
        "open",
        "upcoming"
      ],
      "type": "string",
      "description": "open (covers today) or upcoming (opens later)."
    }
  },
  "additionalProperties": false
}
list_registration_windows annotations
{
  "title": "List registration windows",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_stores — Search sports stores
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_stores input schema
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 80,
      "description": "Town or city name."
    },
    "near": {
      "type": "string",
      "description": "A 5-digit US ZIP code, or latitude,longitude, to search by distance. Results then carry distance_mi."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1,
      "description": "How many results (default 10, at most 25)."
    },
    "query": {
      "type": "string",
      "maxLength": 100,
      "description": "Store name, chain or town. Every word must match; when nothing does, similar names come back as candidates."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "Two-letter US state code, for example OH or PA."
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor from the previous answer, for the next page of the same search."
    },
    "radius_mi": {
      "type": "number",
      "maximum": 250,
      "minimum": 1,
      "description": "Miles around near (default 25)."
    },
    "team_dealer": {
      "type": "boolean",
      "description": "true: only stores that outfit teams (uniforms for clubs)."
    }
  },
  "additionalProperties": false
}
search_stores annotations
{
  "title": "Search sports stores",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_store — Get a store
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_store input schema
{
  "type": "object",
  "required": [
    "org_key"
  ],
  "properties": {
    "org_key": {
      "type": "string",
      "maxLength": 200,
      "description": "The store's org_key from a search (an older key or a plain slug also works)."
    }
  },
  "additionalProperties": false
}
get_store annotations
{
  "title": "Get a store",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_claim_link — Claim link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

create_claim_link input schema
{
  "type": "object",
  "required": [
    "org_key"
  ],
  "properties": {
    "org_key": {
      "type": "string",
      "maxLength": 200,
      "description": "The club or store's org_key from a search (an older key or a plain slug also works)."
    }
  },
  "additionalProperties": false
}
create_claim_link annotations
{
  "title": "Claim link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_correction_link — Correction link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

create_correction_link input schema
{
  "type": "object",
  "required": [
    "org_key"
  ],
  "properties": {
    "field": {
      "enum": [
        "name",
        "website",
        "city",
        "email_public",
        "phone_public",
        "description",
        "remove_listing"
      ],
      "type": "string",
      "description": "What is wrong, so the form opens with it chosen."
    },
    "org_key": {
      "type": "string",
      "maxLength": 200,
      "description": "The listing's org_key from a search."
    }
  },
  "additionalProperties": false
}
create_correction_link annotations
{
  "title": "Correction link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_shop_link — Shop link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

create_shop_link input schema
{
  "type": "object",
  "required": [
    "org_key"
  ],
  "properties": {
    "org_key": {
      "type": "string",
      "maxLength": 200,
      "description": "The club or store's org_key from a search (an older key or a plain slug also works)."
    }
  },
  "additionalProperties": false
}
create_shop_link annotations
{
  "title": "Shop link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
413 ms
95th percentile latency
413 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 413 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http hat-trick-local-mcp https://hattricklocal.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add hat-trick-local-mcp --url https://hattricklocal.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable hat-trick-local-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "hat-trick-local-mcp": {
      "url": "https://hattricklocal.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "hat-trick-local-mcp": {
      "type": "streamableHttp",
      "url": "https://hattricklocal.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start hat-trick-local-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "hat-trick-local-mcp": {
      "type": "http",
      "url": "https://hattricklocal.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http hat-trick-local-mcp https://hattricklocal.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "hat-trick-local-mcp": {
      "url": "https://hattricklocal.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "hat-trick-local-mcp": {
      "serverUrl": "https://hattricklocal.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Hat Trick Local MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Hat Trick Local MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing