{"serverId":"mcp-registry/io.github.frankbongo/bagiq","tools":[{"name":"analyze_bag","fixed":{"name":"analyze_bag","description":"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.","inputSchema":{"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')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":548,"tokensAfter":548},{"name":"find_bag_gaps","fixed":{"name":"find_bag_gaps","description":"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.","inputSchema":{"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')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":469,"tokensAfter":469},{"name":"get_shared_bag","fixed":{"name":"get_shared_bag","description":"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.","inputSchema":{"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')"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175}],"toolsChanged":3,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}