← WebMCP Directory

Tool tree

evensplit-iota.vercel.app

Finance & CryptoTools verified
Website
Settle shared trip costs and see exactly how every balance was worked out.
Explore capabilities
    list_peopleAnswer

    List everyone sharing costs on this trip, with what each person currently owes or is owed. Call this first when you need names.

    View tool JSON
    {
      "name": "list_people",
      "kind": "answer",
      "impl": "imperative",
      "description": "List everyone sharing costs on this trip, with what each person currently owes or is owed. Call this first when you need names.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    list_expensesAnswer

    List every expense logged on the trip: what it was, who paid, how it splits, and what each participant owes on it. Use this before editing or deleting an expense.

    View tool JSON
    {
      "name": "list_expenses",
      "kind": "answer",
      "impl": "imperative",
      "description": "List every expense logged on the trip: what it was, who paid, how it splits, and what each participant owes on it. Use this before editing or deleting an expense.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "person": {
            "type": "string",
            "description": "Optional. Only return expenses this person paid for or shares in."
          }
        }
      }
    }
    get_balancesAnswer

    Net position for every person: a negative balance means they owe the group, a positive one means the group owes them. All balances always sum to zero.

    View tool JSON
    {
      "name": "get_balances",
      "kind": "answer",
      "impl": "imperative",
      "description": "Net position for every person: a negative balance means they owe the group, a positive one means the group owes them. All balances always sum to zero.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    explain_balanceAction

    Line by line reason for one person's balance: every expense they paid for, their share of every expense they were part of, and every repayment. Also opens the breakdown in the page so the person can read along. Use this whenever somebody questions a number.

    View tool JSON
    {
      "name": "explain_balance",
      "kind": "act",
      "impl": "imperative",
      "description": "Line by line reason for one person's balance: every expense they paid for, their share of every expense they were part of, and every repayment. Also opens the breakdown in the page so the person can read along. Use this whenever somebody questions a number.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "person": {
            "type": "string",
            "description": "Whose balance to break down."
          }
        },
        "required": [
          "person"
        ]
      }
    }
    summarize_tripAction

    Totals for the whole trip: overall spend, average per person, who is furthest out of pocket, how much has already been paid back, and how much is still moving.

    View tool JSON
    {
      "name": "summarize_trip",
      "kind": "act",
      "impl": "imperative",
      "description": "Totals for the whole trip: overall spend, average per person, who is furthest out of pocket, how much has already been paid back, and how much is still moving.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    preview_settlementAction

    Work out the shortest set of payments that clears everyone, without changing anything. Read only: use stage_settlement when the person actually wants to settle up.

    View tool JSON
    {
      "name": "preview_settlement",
      "kind": "act",
      "impl": "imperative",
      "description": "Work out the shortest set of payments that clears everyone, without changing anything. Read only: use stage_settlement when the person actually wants to settle up.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    add_personAction

    Add somebody to the trip so they can be put on expenses.

    View tool JSON
    {
      "name": "add_person",
      "kind": "act",
      "impl": "imperative",
      "description": "Add somebody to the trip so they can be put on expenses.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The person to add."
          }
        },
        "required": [
          "name"
        ]
      }
    }
    add_expenseAction

    Log one thing somebody paid for. Only the people listed in participants owe anything on it, so leave out anyone who was not there. Call this once per expense: three expenses in one sentence means three calls.

    View tool JSON
    {
      "name": "add_expense",
      "kind": "act",
      "impl": "imperative",
      "description": "Log one thing somebody paid for. Only the people listed in participants owe anything on it, so leave out anyone who was not there. Call this once per expense: three expenses in one sentence means three calls.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Short name for the expense, for example \"Dinner on Tuesday\"."
          },
          "amount": {
            "type": "number",
            "description": "Amount in EUR, for example 90 or 12.50. Never in cents."
          },
          "paidBy": {
            "type": "string",
            "description": "Who actually paid for it."
          },
          "participants": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Names of everyone who shares this cost. Omit to include everyone on the trip."
          },
          "splitMode": {
            "type": "string",
            "enum": [
              "equal",
              "weight",
              "exact"
            ],
            "description": "equal splits it evenly. weight gives some people a larger share, for example someone who drinks counting double. exact sets a fixed amount per person. Defaults to equal."
          },
          "weights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Only for splitMode \"weight\". Name to number of shares, for example {\"Sam\": 2}. Anyone not listed gets 1 share."
          },
          "exactAmounts": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Only for splitMode \"exact\". Name to amount owed. These have to add up to the total."
          },
          "date": {
            "type": "string",
            "description": "Date as YYYY-MM-DD. Defaults to today."
          }
        },
        "required": [
          "description",
          "amount",
          "paidBy"
        ]
      }
    }
    update_expenseAction

    Correct an expense that is already logged. Pass only the fields that change. Use this when somebody remembers that a person was not actually there, or that the amount was wrong.

    View tool JSON
    {
      "name": "update_expense",
      "kind": "act",
      "impl": "imperative",
      "description": "Correct an expense that is already logged. Pass only the fields that change. Use this when somebody remembers that a person was not actually there, or that the amount was wrong.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expense": {
            "type": "string",
            "description": "The expense to change, by description or id."
          },
          "description": {
            "type": "string",
            "description": "New name for the expense."
          },
          "amount": {
            "type": "number",
            "description": "Amount in EUR, for example 90 or 12.50. Never in cents."
          },
          "paidBy": {
            "type": "string",
            "description": "Change who paid."
          },
          "participants": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Replace the full list of people sharing this cost."
          },
          "removeParticipants": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Take these people off the expense, leaving the rest as they are."
          },
          "addParticipants": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Add these people to the expense."
          },
          "splitMode": {
            "type": "string",
            "enum": [
              "equal",
              "weight",
              "exact"
            ]
          },
          "weights": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Name to shares, for splitMode \"weight\"."
          },
          "exactAmounts": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            },
            "description": "Name to amount, for splitMode \"exact\"."
          },
          "date": {
            "type": "string",
            "description": "New date as YYYY-MM-DD."
          }
        },
        "required": [
          "expense"
        ]
      }
    }
    delete_expenseSensitive Action

    Remove an expense that should not be on the trip at all. Prefer update_expense when the entry is real but wrong.

    View tool JSON
    {
      "name": "delete_expense",
      "kind": "transact",
      "impl": "imperative",
      "description": "Remove an expense that should not be on the trip at all. Prefer update_expense when the entry is real but wrong.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expense": {
            "type": "string",
            "description": "The expense to remove, by description or id."
          }
        },
        "required": [
          "expense"
        ]
      }
    }
    record_paymentSensitive Action

    Record money that has already changed hands between two people, in cash or by transfer. This reduces what the payer owes. Use it for things nobody wrote down at the time, such as somebody handing over cash mid trip.

    View tool JSON
    {
      "name": "record_payment",
      "kind": "transact",
      "impl": "imperative",
      "description": "Record money that has already changed hands between two people, in cash or by transfer. This reduces what the payer owes. Use it for things nobody wrote down at the time, such as somebody handing over cash mid trip.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Who handed over the money."
          },
          "to": {
            "type": "string",
            "description": "Who received it."
          },
          "amount": {
            "type": "number",
            "description": "Amount in EUR, for example 90 or 12.50. Never in cents."
          },
          "date": {
            "type": "string",
            "description": "Date as YYYY-MM-DD. Defaults to today."
          },
          "note": {
            "type": "string",
            "description": "Short note, for example \"cash at the apartment\"."
          }
        },
        "required": [
          "from",
          "to",
          "amount"
        ]
      }
    }
    stage_settlementAction

    Work out the shortest set of payments that clears everyone and put it on the page for approval. This does not record anything: the payments appear as a pending proposal and only the person using the page can approve them. Say so when you report back.

    View tool JSON
    {
      "name": "stage_settlement",
      "kind": "act",
      "impl": "imperative",
      "description": "Work out the shortest set of payments that clears everyone and put it on the page for approval. This does not record anything: the payments appear as a pending proposal and only the person using the page can approve them. Say so when you report back.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    discard_settlementAction

    Clear a staged settlement proposal without recording it.

    View tool JSON
    {
      "name": "discard_settlement",
      "kind": "act",
      "impl": "imperative",
      "description": "Clear a staged settlement proposal without recording it.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    rename_tripAction

    Change the name shown at the top of the page.

    View tool JSON
    {
      "name": "rename_trip",
      "kind": "act",
      "impl": "imperative",
      "description": "Change the name shown at the top of the page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The new trip name."
          }
        },
        "required": [
          "name"
        ]
      }
    }