CourtSplit

Split court costs, settle up and plan fair rotations for pickup games. Free.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
87%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~629Tokens (tool definitions)
~1.2 KBTypical response size
Minimal attention impact (0.49% of 128k context)

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-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools