CourtSplit
Split court costs, settle up and plan fair rotations for pickup games. Free.
Should I use this
Quality & Safety
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": {
"court-split": {
"url": "https://court-split.magicteams.ai/mcp"
}
}
}Remote endpoints
https://court-split.magicteams.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢split_costs(total_cost, participants, shares, currency)
Split one total cost across players (equally or by relative weights) and show who owes what plus the fewest settle-up payments.
Input Schema
{
"type": "object",
"properties": {
"total_cost": {
"type": "number",
"description": "Total court/venue cost"
},
"participants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"paid": {
"type": "number"
}
},
"required": [
"name"
]
},
"description": "Players in the split"
},
"shares": {
"type": "array",
"items": {
"type": "number"
},
"description": "Optional relative weights, one per participant"
},
"currency": {
"type": "string",
"description": "Currency code for display, default USD"
}
},
"required": [
"total_cost",
"participants"
]
}🟢settle_up(total_cost, participants, shares, currency)
Given who paid what for a total cost, compute balances and the minimal set of payments to settle everyone.
Input Schema
{
"type": "object",
"properties": {
"total_cost": {
"type": "number"
},
"participants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"paid": {
"type": "number"
}
},
"required": [
"name"
]
}
},
"shares": {
"type": "array",
"items": {
"type": "number"
}
},
"currency": {
"type": "string"
}
},
"required": [
"total_cost",
"participants"
]
}🟢split_series(sessions, players, payments, currency)
Account for recurring sessions where different players attend different days: each session splits only among its attendees; returns who owes what and settle-up payments.
Input Schema
{
"type": "object",
"properties": {
"sessions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"cost": {
"type": "number"
},
"attendees": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"cost",
"attendees"
]
}
},
"players": {
"type": "array",
"items": {
"type": "string"
}
},
"payments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"paid": {
"type": "number"
}
},
"required": [
"name"
]
}
},
"currency": {
"type": "string"
}
},
"required": [
"sessions"
]
}🟢rotation_plan(players, capacity, courts, rounds)
Plan fair rotations for pickup games: who plays each round, who sits out, and games-played balance across the roster.
Input Schema
{
"type": "object",
"properties": {
"players": {
"type": "array",
"items": {
"type": "string"
},
"description": "Roster names"
},
"capacity": {
"type": "number",
"description": "Players per court (2 singles, 4 doubles)"
},
"courts": {
"type": "number"
},
"rounds": {
"type": "number"
}
},
"required": [
"players",
"capacity",
"rounds"
]
}Community
Evidence