{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5yapqc9xcs4x","handle":"courtsplit","url":"https://wellknown.network/agents/courtsplit","links":{"self":"https://wellknown.network/agents/courtsplit/record.json","html":"https://wellknown.network/agents/courtsplit","markdown":"https://wellknown.network/agents/courtsplit/record.md","api":"https://wellknown.network/api/v1/agents/courtsplit","status":"https://wellknown.network/api/v1/agents/courtsplit/status","claim":"https://wellknown.network/agents/courtsplit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/courtsplit/claim.json","badge":"https://wellknown.network/agents/courtsplit/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/courtsplit/history","tools":"https://wellknown.network/api/v1/agents/courtsplit/tools"},"ard":{"identifier":"urn:air:court-split.magicteams.ai:server:courtsplit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"CourtSplit","summary":"Split court costs, settle up and plan fair rotations for pickup games. Free.","description":"Split court costs, settle up and plan fair rotations for pickup games. Free.","publisher":{"name":"everyai-com","url":null},"homepage":null,"repository":"https://github.com/everyai-com/sahadeva","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://court-split.magicteams.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-04T12:30:03.723969Z","publishedAt":"2026-10-04T12:30:03.723969Z","registryName":"io.github.everyai-com/court-split"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"automation.scheduling","name":"Scheduling & Cron","confidence":0.54,"provenance":"derived"}],"categories":["automation","commerce"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-10T12:28:30.713Z","lastProbedAt":"2026-10-10T12:28:30.713Z","statusComputedAt":"2026-10-10T12:30:36.786Z","reliability30d":{"probes":12,"successRate":1,"p50Ms":20,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":12,"ok":12,"authBoundaryOk":0,"serviceOk":12,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T12:28:30.713Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split one total court or venue cost across players, equally or by relative weights, and show each player's share plus the fewest payments to settle up. Use for "},{"name":"settle_up","description":"Given a shared total and who already paid what, compute each player's balance and the minimal set of payments (who pays whom, how much) to settle everyone. Use "},{"name":"split_series","description":"Split a series of recurring sessions where attendance varies: each session's cost is shared only by that session's attendees, then payments already made are net"},{"name":"rotation_plan","description":"Plan fair player rotations for pickup games: who plays on each court every round and who sits out, balancing games played across the roster. Use when more playe"}],"toolCount":4,"toolsHash":"e427b128f9fb24d56bd12c44e0b45042fbfcf49a0ec6c3d7cd2f0c542482215e","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T06:28:24.041Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:28:31.405Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":10,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T17:27:35.580Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":16,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:22:00.904Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:48.057Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":13,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T20:24:56.089Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":31,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T13:21:34.839Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":29,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T06:24:04.532Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T00:26:52.702Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"split_costs","description":"Split a total cost among players when you need to divide expenses fairly. Not for tracking ongoing series; use `split_series` instead."},{"name":"settle_up","description":"Calculate the minimal payments to settle up balances among participants. Use when you need to resolve debts after a shared expense. Do NOT use when you need to "},{"name":"split_series","description":"Split a series of sessions among attendees; use when sessions are recurring with varying attendees, not when splitting a single event among all players (use set"},{"name":"rotation_plan","description":"Generate a balanced rotation plan for pickup games. Use when you need to schedule multiple rounds with equal playtime. Do NOT use when you need to split a serie"}],"toolCount":4,"toolsHash":"8efcddefeca9d72da0b9f5224c7bbef77038838b50761d7a5d0e21ef0d949b16","serverName":"court-split","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"split_costs","description":"Split one total court or venue cost across players, equally or by relative weights, and show each player's share plus the fewest payments to settle up. Use for "},{"name":"settle_up","description":"Given a shared total and who already paid what, compute each player's balance and the minimal set of payments (who pays whom, how much) to settle everyone. Use "},{"name":"split_series","description":"Split a series of recurring sessions where attendance varies: each session's cost is shared only by that session's attendees, then payments already made are net"},{"name":"rotation_plan","description":"Plan fair player rotations for pickup games: who plays on each court every round and who sits out, balancing games played across the roster. Use when more playe"}],"package":null,"toolSurface":{"id":"ts_d372c8k9z82h","endpointId":"ep_frd3g853ttr9","hash":"e427b128f9fb24d56bd12c44e0b45042fbfcf49a0ec6c3d7cd2f0c542482215e","toolCount":4,"serverName":"court-split","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T12:28:30.726Z","lastSeenAt":"2026-10-10T12:28:30.726Z","observations":1,"toolNames":["split_costs","settle_up","split_series","rotation_plan"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_frd3g853ttr9","url":"https://court-split.magicteams.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-08T13:21:34.856Z","auth":{"observedAt":"2026-10-08T13:21:34.880Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-08T13:21:35.662Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"magicteams.ai","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-04T06:09:22.000Z","validTo":"2027-01-02T07:09:19.000Z","daysToExpiry":83,"sanCount":3,"fingerprint256":"75:EB:49:19:0B:8E:98:33:34:FE:26:02:2D:6E:91:63:13:D8:C7:AD:CD:40:31:72:F7:7E:56:65:63:59:22:34"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.everyai-com/court-split","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.everyai-com%2Fcourt-split","firstSeenAt":"2026-10-07T11:20:05.315Z","fetchedAt":"2026-10-10T10:21:28.971Z","normalizedAt":"2026-10-10T10:21:28.971Z"}]},"firstSeenAt":"2026-10-07T11:20:05.315Z","updatedAt":"2026-10-10T12:31:29.846Z"}