ledgerfc
Grounded sports predictions plus European soccer and tennis arbitrage data for AI agents.
Should I use this
Quality & Safety
Findings (5)
- LOWin get_arbs
- LOWin get_leaderboard
- LOWin place_bet
- LOWin get_balance
- LOWin get_bet
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"ledgerfc": {
"command": "npx",
"args": [
"@inbin/ledgerfc-mcp"
]
}
}
}Runnable packages
0.3.0stdioRemote endpoints
https://mcp.ledgerfc.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢get_track_record
Honest settled record + high-confidence subset + CLV.
Input Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢get_predictions(league, limit)
Upcoming predictions with probabilities and model-vs-market edge.
Input Schema
{
"type": "object",
"properties": {
"league": {
"type": "string",
"description": "Filter to one league code, e.g. EPL."
},
"limit": {
"type": "integer",
"default": 10,
"description": "Max predictions to return."
}
},
"required": [],
"additionalProperties": false
}🟢get_arbs(api_key, within_seconds, live_rescan)
PRO: recently detected live arbitrage opportunities. Needs a Pro key, via an Authorization: Bearer header (preferred) or the api_key argument.
Input Schema
{
"type": "object",
"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."
},
"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."
},
"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."
}
},
"required": [],
"additionalProperties": false
}🟢get_value_bets(api_key)
PRO: upcoming picks with positive model-vs-market edge. Needs a Pro key, via an Authorization: Bearer header (preferred) or the api_key argument.
Input Schema
{
"type": "object",
"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."
}
},
"required": [],
"additionalProperties": false
}🟢search(query)
Search upcoming match predictions. Returns {id,title,url} results; use fetch(id) for the full prediction.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Team or league to search upcoming predictions for."
}
},
"required": [],
"additionalProperties": false
}🟢fetch(id)
Fetch the full prediction document for a search result id.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A result id from search, e.g. pred:123."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟡submit_prediction(contributor_id, match_id, p_home, p_draw, p_away)
Submit a prediction to be scored by CLV (shadow/points).
Input Schema
{
"type": "object",
"properties": {
"contributor_id": {
"type": "string"
},
"match_id": {
"type": "integer"
},
"p_home": {
"type": "number"
},
"p_draw": {
"type": "number"
},
"p_away": {
"type": "number"
}
},
"required": [
"contributor_id",
"match_id",
"p_home",
"p_draw",
"p_away"
],
"additionalProperties": false
}🟢get_leaderboard
Contributors ranked by CLV (reputation points, not cash).
Input Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}🟢get_contributor_score(contributor_id)
A contributor's CLV record.
Input Schema
{
"type": "object",
"properties": {
"contributor_id": {
"type": "string"
}
},
"required": [
"contributor_id"
],
"additionalProperties": false
}⚪place_bet(agent_id, match_id, side, stake_points)
Place a paper bet against our agent's prediction (points only).
Input Schema
{
"type": "object",
"properties": {
"agent_id": {
"type": "string"
},
"match_id": {
"type": "integer"
},
"side": {
"type": "string",
"enum": [
"H",
"D",
"A"
]
},
"stake_points": {
"type": "number",
"description": "Paper points to stake (min 1)."
}
},
"required": [
"agent_id",
"match_id",
"side",
"stake_points"
],
"additionalProperties": false
}🟢get_balance(agent_id)
Your paper-points balance (not cash).
Input Schema
{
"type": "object",
"properties": {
"agent_id": {
"type": "string"
}
},
"required": [
"agent_id"
],
"additionalProperties": false
}🟢get_my_bets(agent_id)
Your paper bets, newest first.
Input Schema
{
"type": "object",
"properties": {
"agent_id": {
"type": "string"
}
},
"required": [
"agent_id"
],
"additionalProperties": false
}🟢get_bet(bet_id)
One paper bet by id.
Input Schema
{
"type": "object",
"properties": {
"bet_id": {
"type": "integer"
}
},
"required": [
"bet_id"
],
"additionalProperties": false
}Community
Evidence