MCP-Server

BagIQ MCP

io.github.frankbongo/bagiq
Sonstiges Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Analyzes disc golf bags for coverage gaps and overlapping discs, builds minimalist setups, and recommends discs to fill missing shot roles.

analyze_bag
Performs a complete BagIQ analysis on a player's disc golf bag. Can accept a list of discs OR a BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7'). Returns slot coverage percentage, bag identity label (e.g. 'Overstable-heavy', 'Chaos bag'), top missing shot gaps, redundant overlaps, and mapped flight coordinates.
Eingabeschema
{'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')"}}}
build_minimal_bag
Extracts an optimal 3-to-5 disc minimalist setup from a larger bag, maximizing shot coverage while detailing necessary compromises. Accepts discs list or a BagIQ share link.
Eingabeschema
{'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)'}}}
detect_overlap
Detects redundant molds occupying the same flight slot or shot role, ranking pairs by overlap severity and recommending which disc to keep vs cut. Accepts discs list or a BagIQ share link.
Eingabeschema
{'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')"}}}
find_bag_gaps
Identifies missing shot shapes and unserved flight slots across BagIQ's 9 core slot targets (putter, midrange, fairway, and distance drivers), ranking voids by severity. Accepts discs list or a BagIQ share link.
Eingabeschema
{'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')"}}}
get_shared_bag
Retrieves and inspects a player's saved disc golf bag from a BagIQ share link (e.g. 'https://app.bagiq.app/?s=4fisr8a7'), short share ID, or slug link. Returns the full disc breakdown with plastics, wear states, confidence ratings, slot coverage, and interactive BagIQ deep links.
Eingabeschema
{'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')"}}}
recommend_bag_fillers
Suggests the highest-rated discs to fill missing shot slots or close voids in the bag based on BagIQ matrix coordinates and DiscList ratings, with interactive 1-click 'Add to Bag' deep links. Accepts discs list or a BagIQ share link.
Eingabeschema
{'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')"}}}
Hinzugefügt
get_shared_bag
17. September 2026 12:41
Hinzugefügt
build_minimal_bag
17. September 2026 12:41
Hinzugefügt
recommend_bag_fillers
17. September 2026 12:41
Hinzugefügt
detect_overlap
17. September 2026 12:41
Hinzugefügt
find_bag_gaps
17. September 2026 12:41
Hinzugefügt
analyze_bag
17. September 2026 12:41