What this MCP does
Analyzes disc golf bags for coverage gaps and overlapping discs, builds minimalist setups, and recommends discs to fill missing shot roles.
Tools
Input schema
{'type': 'object', 'properties': {'discs': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'description': "Disc name, slug, or brand+name string (e.g. 'Innova Destroyer' or 'discraft-buzzz')"}, {'type': 'object', 'required': ['disc'], 'properties': {'disc': {'type': 'string', 'description': 'Disc name or slug (required)'}, 'brand': {'type': 'string', 'description': 'Manufacturer brand name'}, 'usage': {'enum': ['rare', 'sometimes', 'often', 'all the time'], 'type': 'string', 'description': 'Usage frequency'}, 'locked': {'type': 'boolean', 'description': 'If true, lock this disc to prevent cut recommendations'}, 'plastic': {'type': 'string', 'description': 'Plastic blend (e.g. Star, Champion, ESP)'}, 'use_case': {'type': 'string', 'description': "Role or shot description (e.g. 'windy drives', 'tunnel shots')"}, 'confidence': {'enum': ['shaky', 'okay', 'trusted', 'money disc'], 'type': 'string', 'description': 'Player confidence'}, 'throw_type': {'enum': ['backhand', 'forehand', 'both'], 'type': 'string', 'description': 'Primary throw style'}, 'wear_state': {'enum': ['new', 'seasoned', 'beat'], 'type': 'string', 'description': 'Wear condition'}}}]}, 'maxItems': 35, 'minItems': 1, 'description': 'List of discs currently in the bag (optional if share_url or share_id is provided)'}, 'share_id': {'type': 'string', 'description': "Optional BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "Optional BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7' or 'https://app.bagiq.app/?discs=...')"}, 'preferred_brand': {'type': 'string', 'description': "Optional preferred brand for recommendations (e.g. 'Innova', 'Discraft')"}}}
Input schema
{'type': 'object', 'properties': {'discs': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'description': "Disc name, slug, or brand+name string (e.g. 'Innova Destroyer' or 'discraft-buzzz')"}, {'type': 'object', 'required': ['disc'], 'properties': {'disc': {'type': 'string', 'description': 'Disc name or slug (required)'}, 'brand': {'type': 'string', 'description': 'Manufacturer brand name'}, 'usage': {'enum': ['rare', 'sometimes', 'often', 'all the time'], 'type': 'string', 'description': 'Usage frequency'}, 'locked': {'type': 'boolean', 'description': 'If true, lock this disc to prevent cut recommendations'}, 'plastic': {'type': 'string', 'description': 'Plastic blend (e.g. Star, Champion, ESP)'}, 'use_case': {'type': 'string', 'description': "Role or shot description (e.g. 'windy drives', 'tunnel shots')"}, 'confidence': {'enum': ['shaky', 'okay', 'trusted', 'money disc'], 'type': 'string', 'description': 'Player confidence'}, 'throw_type': {'enum': ['backhand', 'forehand', 'both'], 'type': 'string', 'description': 'Primary throw style'}, 'wear_state': {'enum': ['new', 'seasoned', 'beat'], 'type': 'string', 'description': 'Wear condition'}}}]}, 'maxItems': 35, 'minItems': 3, 'description': 'Full disc collection or bag (optional if share_url or share_id is provided)'}, 'share_id': {'type': 'string', 'description': "Optional BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "Optional BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7')"}, 'target_count': {'type': 'integer', 'default': 3, 'description': 'Target number of discs in the minimal bag (2..6, default 3)'}}}
Input schema
{'type': 'object', 'properties': {'discs': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'description': "Disc name, slug, or brand+name string (e.g. 'Innova Destroyer' or 'discraft-buzzz')"}, {'type': 'object', 'required': ['disc'], 'properties': {'disc': {'type': 'string', 'description': 'Disc name or slug (required)'}, 'brand': {'type': 'string', 'description': 'Manufacturer brand name'}, 'usage': {'enum': ['rare', 'sometimes', 'often', 'all the time'], 'type': 'string', 'description': 'Usage frequency'}, 'locked': {'type': 'boolean', 'description': 'If true, lock this disc to prevent cut recommendations'}, 'plastic': {'type': 'string', 'description': 'Plastic blend (e.g. Star, Champion, ESP)'}, 'use_case': {'type': 'string', 'description': "Role or shot description (e.g. 'windy drives', 'tunnel shots')"}, 'confidence': {'enum': ['shaky', 'okay', 'trusted', 'money disc'], 'type': 'string', 'description': 'Player confidence'}, 'throw_type': {'enum': ['backhand', 'forehand', 'both'], 'type': 'string', 'description': 'Primary throw style'}, 'wear_state': {'enum': ['new', 'seasoned', 'beat'], 'type': 'string', 'description': 'Wear condition'}}}]}, 'maxItems': 35, 'minItems': 2, 'description': 'List of discs in the bag (minimum 2 discs, optional if share_url or share_id is provided)'}, 'share_id': {'type': 'string', 'description': "Optional BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "Optional BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7')"}}}
Input schema
{'type': 'object', 'properties': {'discs': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'description': "Disc name, slug, or brand+name string (e.g. 'Innova Destroyer' or 'discraft-buzzz')"}, {'type': 'object', 'required': ['disc'], 'properties': {'disc': {'type': 'string', 'description': 'Disc name or slug (required)'}, 'brand': {'type': 'string', 'description': 'Manufacturer brand name'}, 'usage': {'enum': ['rare', 'sometimes', 'often', 'all the time'], 'type': 'string', 'description': 'Usage frequency'}, 'locked': {'type': 'boolean', 'description': 'If true, lock this disc to prevent cut recommendations'}, 'plastic': {'type': 'string', 'description': 'Plastic blend (e.g. Star, Champion, ESP)'}, 'use_case': {'type': 'string', 'description': "Role or shot description (e.g. 'windy drives', 'tunnel shots')"}, 'confidence': {'enum': ['shaky', 'okay', 'trusted', 'money disc'], 'type': 'string', 'description': 'Player confidence'}, 'throw_type': {'enum': ['backhand', 'forehand', 'both'], 'type': 'string', 'description': 'Primary throw style'}, 'wear_state': {'enum': ['new', 'seasoned', 'beat'], 'type': 'string', 'description': 'Wear condition'}}}]}, 'maxItems': 35, 'minItems': 1, 'description': 'List of discs in the bag (optional if share_url or share_id is provided)'}, 'share_id': {'type': 'string', 'description': "Optional BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "Optional BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7')"}}}
Input schema
{'type': 'object', 'properties': {'share_id': {'type': 'string', 'description': "BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "BagIQ share link URL (e.g. 'https://app.bagiq.app/?s=4fisr8a7' or 'https://app.bagiq.app/?discs=innova-destroyer,discraft-buzzz')"}}}
Input schema
{'type': 'object', 'properties': {'brand': {'type': 'string', 'description': 'Optional brand filter for recommendations'}, 'discs': {'type': 'array', 'items': {'oneOf': [{'type': 'string', 'description': "Disc name, slug, or brand+name string (e.g. 'Innova Destroyer' or 'discraft-buzzz')"}, {'type': 'object', 'required': ['disc'], 'properties': {'disc': {'type': 'string', 'description': 'Disc name or slug (required)'}, 'brand': {'type': 'string', 'description': 'Manufacturer brand name'}, 'usage': {'enum': ['rare', 'sometimes', 'often', 'all the time'], 'type': 'string', 'description': 'Usage frequency'}, 'locked': {'type': 'boolean', 'description': 'If true, lock this disc to prevent cut recommendations'}, 'plastic': {'type': 'string', 'description': 'Plastic blend (e.g. Star, Champion, ESP)'}, 'use_case': {'type': 'string', 'description': "Role or shot description (e.g. 'windy drives', 'tunnel shots')"}, 'confidence': {'enum': ['shaky', 'okay', 'trusted', 'money disc'], 'type': 'string', 'description': 'Player confidence'}, 'throw_type': {'enum': ['backhand', 'forehand', 'both'], 'type': 'string', 'description': 'Primary throw style'}, 'wear_state': {'enum': ['new', 'seasoned', 'beat'], 'type': 'string', 'description': 'Wear condition'}}}]}, 'maxItems': 35, 'minItems': 1, 'description': 'Current bag contents (optional if share_url or share_id is provided)'}, 'limit': {'type': 'integer', 'default': 3, 'description': 'Number of recommendations per gap (1..5, default 3)'}, 'gap_id': {'type': 'string', 'description': "Specific gap ID to fill (e.g. 'fairway-understable', 'approach-overstable', 'mid-neutral')"}, 'share_id': {'type': 'string', 'description': "Optional BagIQ short share ID (e.g. '4fisr8a7')"}, 'share_url': {'type': 'string', 'description': "Optional BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7')"}}}
Recent tool changes
Similar MCP servers
Asterwise
Provides Vedic and Western astrology, numerology, tarot, dream-symbol, crystal, compatibility, and related esoteric calculations …
Vedic Astrology and Kundli MCP Server by RoxyAPI
Calculates and explains Vedic astrology charts, planetary positions, dashas, nakshatras, yogas, doshas, aspects, compatibility, a…
Sahadeva
Calculates and analyzes Vedic astrology charts, compatibility, dashas, transits, yogas, remedies, and evidence or readiness check…
tollbooth-sample
Provides current, forecast, and historical weather data alongside Lightning-based usage credits, pricing, coupons, balances, and …
Thesportsdb
Provides sports catalog and match data, including teams, players, leagues, schedules, standings, lineups, timelines, scores, and …
Rescuegroups
Searches adoptable animals, breeds, rescues, shelters, and organization details from RescueGroups.org.
Recipes
Provides meal and recipe discovery by ingredient, random selection, and detailed cooking instructions.
F1
Provides Formula 1 schedules, race results, driver profiles, and current championship standings.