Free VAT, card fee, loan, mortgage, margin, ROI and break-even calculators plus IBAN/SWIFT checks
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
How many sales a month cover fixed costs, from fixed monthly costs, price, cost per unit and payment fee percent.
Selling price per unit.
Cost per unit.
Fixed costs per month.
Payment fee in percent of the price. Default 0.
How many sales a month cover fixed costs, from fixed monthly costs, price, cost per unit and payment fee percent.
| Argument | Type | Description |
|---|---|---|
| price* | number | Selling price per unit. |
| unit_cost* | number | Cost per unit. |
| fixed_costs* | number | Fixed costs per month. |
| payment_fee_percent | number | Payment fee in percent of the price. Default 0. |
{
"type": "object",
"required": [
"fixed_costs",
"price",
"unit_cost"
],
"properties": {
"price": {
"type": "number",
"minimum": 0,
"description": "Selling price per unit."
},
"unit_cost": {
"type": "number",
"minimum": 0,
"description": "Cost per unit."
},
"fixed_costs": {
"type": "number",
"minimum": 0,
"description": "Fixed costs per month."
},
"payment_fee_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Payment fee in percent of the price. Default 0."
}
},
"additionalProperties": false
}Work out the fee on a card payment (percentage plus fixed fee), what you keep, and what to charge to receive the full amount after fees.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Payment amount. |
| fixed_fee | number | Fixed fee per payment, e.g. 0.30. Default 0.30. |
| percent_fee | number | Percentage fee, e.g. 2.9 for 2.9%. Default 2.9. |
| payments_per_month | number | Optional: payments a month, to total the fees. Default 0. |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"description": "Payment amount."
},
"fixed_fee": {
"type": "number",
"minimum": 0,
"description": "Fixed fee per payment, e.g. 0.30. Default 0.30."
},
"percent_fee": {
"type": "number",
"maximum": 99,
"minimum": 0,
"description": "Percentage fee, e.g. 2.9 for 2.9%. Default 2.9."
},
"payments_per_month": {
"type": "number",
"minimum": 0,
"description": "Optional: payments a month, to total the fees. Default 0."
}
},
"additionalProperties": false
}Check an Argentine CBU or CVU: 22 digits and both check digits, split into bank, branch and account.
| Argument | Type | Description |
|---|---|---|
| cbu* | string | The CBU or CVU, 22 digits. |
{
"type": "object",
"required": [
"cbu"
],
"properties": {
"cbu": {
"type": "string",
"description": "The CBU or CVU, 22 digits."
}
},
"additionalProperties": false
}Savings growth with monthly compounding and an optional monthly deposit: final balance, total paid in and interest earned.
| Argument | Type | Description |
|---|---|---|
| years* | integer | Number of years (up to 60). |
| monthly_deposit | number | Added each month. Default 0. |
| starting_amount* | number | Money at the start. |
| annual_rate_percent* | number | Yearly interest rate in percent. |
{
"type": "object",
"required": [
"starting_amount",
"annual_rate_percent",
"years"
],
"properties": {
"years": {
"type": "integer",
"maximum": 60,
"minimum": 0,
"description": "Number of years (up to 60)."
},
"monthly_deposit": {
"type": "number",
"minimum": 0,
"description": "Added each month. Default 0."
},
"starting_amount": {
"type": "number",
"minimum": 0,
"description": "Money at the start."
},
"annual_rate_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Yearly interest rate in percent."
}
},
"additionalProperties": false
}Check a 9-character CUSIP (US/Canadian security identifier) check digit and split it into issuer and issue.
| Argument | Type | Description |
|---|---|---|
| cusip* | string | The CUSIP, 9 characters. |
{
"type": "object",
"required": [
"cusip"
],
"properties": {
"cusip": {
"type": "string",
"description": "The CUSIP, 9 characters."
}
},
"additionalProperties": false
}Sale price after a percentage discount and, given unit cost and units normally sold, how many extra sales the discount needs to keep the same profit.
| Argument | Type | Description |
|---|---|---|
| price* | number | Normal price. |
| units | number | Optional: units sold at the normal price. |
| unit_cost | number | Optional: what one unit costs you. |
| discount_percent* | number | Discount in percent. |
{
"type": "object",
"required": [
"price",
"discount_percent"
],
"properties": {
"price": {
"type": "number",
"minimum": 0,
"description": "Normal price."
},
"units": {
"type": "number",
"minimum": 0,
"description": "Optional: units sold at the normal price."
},
"unit_cost": {
"type": "number",
"minimum": 0,
"description": "Optional: what one unit costs you."
},
"discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Discount in percent."
}
},
"additionalProperties": false
}Search SendPay Business's library of 170+ free calculators, checkers and generators for small businesses, freelancers, banking, FX, trading and crypto (invoice generator, VAT, card fees, loan, mortgage, IBAN, SWIFT, forex, bitcoin and more). Returns matching tools with links. Use it when the user needs a calculator or tool that is not offered directly here.
| Argument | Type | Description |
|---|---|---|
| query* | string | What the user wants to work out or make, e.g. 'invoice', 'forex pip value', 'chargeback'. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "What the user wants to work out or make, e.g. 'invoice', 'forex pip value', 'chargeback'."
}
},
"additionalProperties": false
}Use when the user wants a website for their business, shop or side hustle. SendPay Business offers a free business website builder: free to build, publish and keep, no card needed, with an optional shop cart and card payments later. Returns the link to start.
| Argument | Type | Description |
|---|---|---|
| business_type | string | Optional: what the business does, e.g. 'bakery'. |
{
"type": "object",
"properties": {
"business_type": {
"type": "string",
"description": "Optional: what the business does, e.g. 'bakery'."
}
},
"additionalProperties": false
}What a freelancer or sole trader should charge per hour and per day to reach a target yearly income after business costs and time off.
| Argument | Type | Description |
|---|---|---|
| weeks_off | number | Weeks off a year (holidays, sickness). Default 6. |
| yearly_costs | number | Yearly business costs. Default 0. |
| hours_per_day | number | Hours in a working day, for the day rate. Default 7. |
| target_income* | number | Yearly income wanted. |
| billable_hours_per_week | number | Hours billed to clients per week. Default 25. |
{
"type": "object",
"required": [
"target_income"
],
"properties": {
"weeks_off": {
"type": "number",
"maximum": 52,
"minimum": 0,
"description": "Weeks off a year (holidays, sickness). Default 6."
},
"yearly_costs": {
"type": "number",
"minimum": 0,
"description": "Yearly business costs. Default 0."
},
"hours_per_day": {
"type": "number",
"maximum": 24,
"minimum": 0,
"description": "Hours in a working day, for the day rate. Default 7."
},
"target_income": {
"type": "number",
"minimum": 0,
"description": "Yearly income wanted."
},
"billable_hours_per_week": {
"type": "number",
"maximum": 168,
"minimum": 0,
"description": "Hours billed to clients per week. Default 25."
}
},
"additionalProperties": false
}Check that an IBAN is well formed: country length and mod-97 check digits. Does not confirm that the account exists or who owns it.
| Argument | Type | Description |
|---|---|---|
| iban* | string | The IBAN, spaces allowed. |
{
"type": "object",
"required": [
"iban"
],
"properties": {
"iban": {
"type": "string",
"description": "The IBAN, spaces allowed."
}
},
"additionalProperties": false
}Check that an ISIN (ISO 6166 security identifier) is well formed: country code, 9-character national code and Luhn check digit.
| Argument | Type | Description |
|---|---|---|
| isin* | string | The ISIN, 12 characters. |
{
"type": "object",
"required": [
"isin"
],
"properties": {
"isin": {
"type": "string",
"description": "The ISIN, 12 characters."
}
},
"additionalProperties": false
}Check that a Legal Entity Identifier (LEI, ISO 17442) is well formed: 20 characters and MOD 97-10 check digits. Does not confirm the LEI is registered; GLEIF's search does.
| Argument | Type | Description |
|---|---|---|
| lei* | string | The LEI, 20 characters. |
{
"type": "object",
"required": [
"lei"
],
"properties": {
"lei": {
"type": "string",
"description": "The LEI, 20 characters."
}
},
"additionalProperties": false
}Monthly repayment, total repaid and total interest on a fixed-rate loan, from the amount, APR and term in months.
| Argument | Type | Description |
|---|---|---|
| amount* | number | Amount borrowed. |
| months* | integer | Term in months. |
| apr_percent* | number | APR in percent. |
{
"type": "object",
"required": [
"amount",
"apr_percent",
"months"
],
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"description": "Amount borrowed."
},
"months": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "Term in months."
},
"apr_percent": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "APR in percent."
}
},
"additionalProperties": false
}Monthly repayment mortgage payment, loan-to-value, total interest and interest-only payment from property price, deposit, rate and term.
| Argument | Type | Description |
|---|---|---|
| price* | number | Property price. |
| years* | number | Term in years. |
| deposit* | number | Deposit. |
| annual_rate_percent* | number | Mortgage interest rate in percent. |
{
"type": "object",
"required": [
"price",
"deposit",
"annual_rate_percent",
"years"
],
"properties": {
"price": {
"type": "number",
"minimum": 0,
"description": "Property price."
},
"years": {
"type": "number",
"maximum": 50,
"minimum": 1,
"description": "Term in years."
},
"deposit": {
"type": "number",
"minimum": 0,
"description": "Deposit."
},
"annual_rate_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Mortgage interest rate in percent."
}
},
"additionalProperties": false
}Three sums: X% of Y ('percent_of'), what percent X is of Y ('what_percent'), and percentage change from X to Y ('change').
| Argument | Type | Description |
|---|---|---|
| x* | number | percent_of: the percent. what_percent: the part. change: the old value. |
| y* | number | percent_of: the number. what_percent: the whole. change: the new value. |
| mode* | string | Which sum. |
{
"type": "object",
"required": [
"mode",
"x",
"y"
],
"properties": {
"x": {
"type": "number",
"description": "percent_of: the percent. what_percent: the part. change: the old value."
},
"y": {
"type": "number",
"description": "percent_of: the number. what_percent: the whole. change: the new value."
},
"mode": {
"enum": [
"percent_of",
"what_percent",
"change"
],
"type": "string",
"description": "Which sum."
}
},
"additionalProperties": false
}Profit, margin and markup from cost and selling price; or the selling price needed for a target margin.
| Argument | Type | Description |
|---|---|---|
| cost* | number | Cost of the item. |
| price | number | Selling price. Give this or target_margin_percent. |
| target_margin_percent | number | Wanted margin in percent, to work out the price. |
{
"type": "object",
"required": [
"cost"
],
"properties": {
"cost": {
"type": "number",
"minimum": 0,
"description": "Cost of the item."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Selling price. Give this or target_margin_percent."
},
"target_margin_percent": {
"type": "number",
"maximum": 99.99,
"minimum": 0,
"description": "Wanted margin in percent, to work out the price."
}
},
"additionalProperties": false
}Return on investment: profit and ROI % from the amount put in and the amount got back, and the yearly rate if the time in months is given.
| Argument | Type | Description |
|---|---|---|
| cost* | number | Amount invested. |
| months | number | Optional: how many months it took. |
| returned* | number | Amount got back in total. |
{
"type": "object",
"required": [
"cost",
"returned"
],
"properties": {
"cost": {
"type": "number",
"minimum": 0,
"description": "Amount invested."
},
"months": {
"type": "number",
"minimum": 0,
"description": "Optional: how many months it took."
},
"returned": {
"type": "number",
"description": "Amount got back in total."
}
},
"additionalProperties": false
}Check a 7-character SEDOL (UK/Irish security identifier) format and check digit.
| Argument | Type | Description |
|---|---|---|
| sedol* | string | The SEDOL, 7 characters. |
{
"type": "object",
"required": [
"sedol"
],
"properties": {
"sedol": {
"type": "string",
"description": "The SEDOL, 7 characters."
}
},
"additionalProperties": false
}Check that a SWIFT (BIC) code is well formed and split it into bank, country, location and branch. Has no bank directory.
| Argument | Type | Description |
|---|---|---|
| code* | string | SWIFT/BIC code, 8 or 11 characters. |
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "SWIFT/BIC code, 8 or 11 characters."
}
},
"additionalProperties": false
}Check a UK VAT number's format and check digits (9 digits, 12 with a branch, or GD/HA). Does not confirm registration; HMRC's service does.
| Argument | Type | Description |
|---|---|---|
| vat_number* | string | The VAT number, with or without GB. |
{
"type": "object",
"required": [
"vat_number"
],
"properties": {
"vat_number": {
"type": "string",
"description": "The VAT number, with or without GB."
}
},
"additionalProperties": false
}Add VAT to a net price, or remove VAT from a gross (VAT-inclusive) price, at any rate. UK standard rate is 20%, reduced 5%.
| Argument | Type | Description |
|---|---|---|
| mode | string | 'add' if the amount excludes VAT, 'remove' if it already includes VAT. Default 'add'. |
| rate | number | VAT rate in percent. Default 20. |
| amount* | number | The price. |
{
"type": "object",
"required": [
"amount"
],
"properties": {
"mode": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "'add' if the amount excludes VAT, 'remove' if it already includes VAT. Default 'add'."
},
"rate": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "VAT rate in percent. Default 20."
},
"amount": {
"type": "number",
"minimum": 0,
"description": "The price."
}
},
"additionalProperties": false
}