{"serverId":"mcp-registry/io.github.yaotsakpo/ledgerfc","tools":[{"name":"fetch","fixed":{"name":"fetch","description":"Fetch the full prediction document for a search result id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"A result id from search, e.g. pred:123."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":74,"tokensAfter":74},{"name":"get_arbs","fixed":{"name":"get_arbs","description":"PRO: recently detected live arbitrage opportunities. Needs a Pro key, via an Authorization: Bearer header (preferred) or the api_key argument.","inputSchema":{"type":"object","required":[],"properties":{"api_key":{"type":"string","description":"Optional Pro API key (get one with /key in the Ledger FC Telegram bot). Preferred instead: send it as an Authorization: Bearer header, so it never enters the conversation."},"live_rescan":{"type":"boolean","default":false,"description":"If true, fetch fresh odds NOW and return current arbs (age ~0) instead of logged ones. Rate-limited (costs API credits). Falls back to logged arbs if unavailable."},"within_seconds":{"type":"integer","default":180,"description":"Look-back window in seconds. Default is tight because arbs die fast; widen only for a historical view."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":245,"tokensAfter":245},{"name":"get_balance","fixed":{"name":"get_balance","description":"Your paper-points balance (not cash).","inputSchema":{"type":"object","required":["agent_id"],"properties":{"agent_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"get_bet","fixed":{"name":"get_bet","description":"One paper bet by id.","inputSchema":{"type":"object","required":["bet_id"],"properties":{"bet_id":{"type":"integer"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":51,"tokensAfter":51},{"name":"get_contributor_score","fixed":{"name":"get_contributor_score","description":"A contributor's CLV record.","inputSchema":{"type":"object","required":["contributor_id"],"properties":{"contributor_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"get_leaderboard","fixed":{"name":"get_leaderboard","description":"Contributors ranked by CLV (reputation points, not cash).","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"get_my_bets","fixed":{"name":"get_my_bets","description":"Your paper bets, newest first.","inputSchema":{"type":"object","required":["agent_id"],"properties":{"agent_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":55,"tokensAfter":55},{"name":"get_predictions","fixed":{"name":"get_predictions","description":"Upcoming predictions with probabilities and model-vs-market edge.","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"integer","default":10,"description":"Max predictions to return."},"league":{"type":"string","description":"Filter to one league code, e.g. EPL."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"get_track_record","fixed":{"name":"get_track_record","description":"Honest settled record + high-confidence subset + CLV.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"get_value_bets","fixed":{"name":"get_value_bets","description":"PRO: upcoming picks with positive model-vs-market edge. Needs a Pro key, via an Authorization: Bearer header (preferred) or the api_key argument.","inputSchema":{"type":"object","required":[],"properties":{"api_key":{"type":"string","description":"Optional Pro API key (get one with /key in the Ledger FC Telegram bot). Preferred instead: send it as an Authorization: Bearer header, so it never enters the conversation."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"search","fixed":{"name":"search","description":"Search upcoming match predictions. Returns {id,title,url} results; use fetch(id) for the full prediction.","inputSchema":{"type":"object","required":[],"properties":{"query":{"type":"string","description":"Team or league to search upcoming predictions for."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"submit_prediction","fixed":{"name":"submit_prediction","description":"Submit a prediction to be scored by CLV (shadow/points).","inputSchema":{"type":"object","required":["contributor_id","match_id","p_home","p_draw","p_away"],"properties":{"p_away":{"type":"number"},"p_draw":{"type":"number"},"p_home":{"type":"number"},"match_id":{"type":"integer"},"contributor_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109}],"toolsChanged":12,"tokensSaved":0,"todo":[{"tool":"get_balance","params":["agent_id"]},{"tool":"get_bet","params":["bet_id"]},{"tool":"get_contributor_score","params":["contributor_id"]},{"tool":"get_my_bets","params":["agent_id"]},{"tool":"place_bet","params":["side","agent_id","match_id"]},{"tool":"submit_prediction","params":["p_away","p_draw","p_home","match_id","contributor_id"]}],"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."}