CourtlyGo
Tennis, pickleball and padel courts from OpenStreetMap: surface, lighting, access, fee. Read-only.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"courts": {
"url": "https://courtlygo.com/mcp"
}
}
}远程端点
https://courtlygo.com/mcpstreamable-http它能做什么
工具清单
工具(3)
🟢search_courts(sport, city, country, lat, lon, ...)
Search tennis, padel and pickleball courts in a covered city, metro area or around a point. Use 'city' (e.g. 'Austin, TX', 'Long Beach', 'Tbilisi' or 'Los Angeles area'; 'country' if the name is ambiguous) or 'lat'+'lon'+'radius_km'. Results are venues (courts within 70 m are merged) with number of courts, surface, lighting, access, fee, address or the park/street nearby, and the source of each record. Filters are strict: a court passes only if the property is explicitly mapped; set match_unknown=true to also include courts where it is unknown. Data comes from OpenStreetMap (ODbL) and is often incomplete; every answer carries the data date and attribution.
输入模式
{
"type": "object",
"properties": {
"sport": {
"type": "string",
"enum": [
"tennis",
"padel",
"pickleball"
],
"description": "Sport: tennis, padel or pickleball. Omit for any."
},
"city": {
"type": "string",
"description": "A covered city, e.g. 'Austin, TX', 'Long Beach' or 'Tbilisi', or a whole metro area, e.g. 'Los Angeles area' (all of Los Angeles and Orange counties) or 'New York area'. See list_coverage."
},
"country": {
"type": "string",
"description": "Country name or ISO code, e.g. 'Georgia', 'GE', 'US'. Use it when the same city name exists in several countries; with lat/lon it limits the search to that country. Distances are in miles for the US and metres/kilometres elsewhere (distance_km is always given)."
},
"lat": {
"type": "number",
"description": "Latitude of the search point (use with lon)."
},
"lon": {
"type": "number",
"description": "Longitude of the search point (use with lat)."
},
"radius_km": {
"type": "number",
"default": 5,
"minimum": 0.1,
"maximum": 50,
"description": "Search radius around lat/lon, km."
},
"setting": {
"type": "string",
"enum": [
"any",
"outdoor",
"indoor"
],
"default": "any",
"description": "'outdoor' = open-air courts; 'indoor' = indoor or covered."
},
"lit": {
"type": "boolean",
"default": false,
"description": "Only courts with lighting."
},
"open_to_public": {
"type": "boolean",
"default": false,
"description": "Only courts anyone can use: access is public, or free of charge, or inside a park. Clubs (access_status club), private and likely private courts are excluded."
},
"free": {
"type": "boolean",
"default": false,
"description": "Only courts mapped as free of charge (fee=no)."
},
"min_courts": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Minimum number of courts at the venue."
},
"match_unknown": {
"type": "boolean",
"default": false,
"description": "Also return courts where a filtered property is not mapped (unknown)."
},
"limit": {
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"maximum": 5000,
"description": "Skip this many results (paging)."
}
},
"additionalProperties": false
}🟢get_court(id)
Get full details of one court venue by id (from search_courts): courts per sport, surface, access, OpenStreetMap links, source, data date and caveats.
输入模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Venue id, e.g. 'way-123456'."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢list_coverage
List the covered cities with the number of venues per sport, the data date and the attribution.
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}社区
证据