True yearly cost of flat-rate and app loans, margin and markup, break-even, and susu fees.
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.
Use this when someone running a business gives their fixed costs for a period (rent, wages, power for a month), what one item costs them and what they sell it for, and asks how many they must sell to cover their costs (break even). Do not use it for a business plan's forecasts or to judge whether a business will succeed.
Costs that do not change with how much is sold, for the period (for example a month's rent, wages and power).
What one item costs to buy or make.
What one item is sold for.
The period the fixed costs are for. Leave out for a month.
The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http money-sums https://kwekuanansi.ai/mcp/money-sums
Use this when someone running a business gives their fixed costs for a period (rent, wages, power for a month), what one item costs them and what they sell it for, and asks how many they must sell to cover their costs (break even). Do not use it for a business plan's forecasts or to judge whether a business will succeed.
| Argument | Type | Description |
|---|---|---|
| period | string | The period the fixed costs are for. Leave out for a month. |
| currency | string | The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown. |
| fixed_costs* | number | Costs that do not change with how much is sold, for the period (for example a month's rent, wages and power). |
| cost_per_item* | number | What one item costs to buy or make. |
| sale_per_item* | number | What one item is sold for. |
{
"type": "object",
"required": [
"fixed_costs",
"cost_per_item",
"sale_per_item"
],
"properties": {
"period": {
"enum": [
"day",
"week",
"month",
"year"
],
"type": "string",
"description": "The period the fixed costs are for. Leave out for a month."
},
"currency": {
"enum": [
"GHS",
"NGN",
"KES",
"ZAR",
"UGX",
"TZS",
"RWF",
"ZMW",
"ZWG",
"MWK",
"BWP",
"NAD",
"ETB",
"EGP",
"MAD",
"XOF",
"XAF",
"SLE",
"LRD",
"GMD",
"MZN",
"AOA",
"USD",
"EUR",
"GBP"
],
"type": "string",
"description": "The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown."
},
"fixed_costs": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "Costs that do not change with how much is sold, for the period (for example a month's rent, wages and power)."
},
"cost_per_item": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "What one item costs to buy or make."
},
"sale_per_item": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "What one item is sold for."
}
},
"additionalProperties": false
}Use this when a trader gives what an item costs them and either what they sell it for, the margin they want, or the markup they want, and asks for the profit, the margin, the markup or what to sell it for (for example "I buy a bag of rice for 800 and want a 20% margin"). It keeps margin (a share of the sale) and markup (a share of the cost) apart, which are often confused. Do not use it for tax on a sale (use a VAT tool), for exchange rates, or to suggest what the market will pay.
| Argument | Type | Description |
|---|---|---|
| cost* | number | What one item costs the seller to buy or make. |
| currency | string | The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown. |
| sale_amount | number | What one item is sold for. Give this, or margin_percent, or markup_percent. |
| margin_percent | number | The profit wanted as a per cent of the sale amount. |
| markup_percent | number | The profit wanted as a per cent of the cost. |
{
"type": "object",
"required": [
"cost"
],
"properties": {
"cost": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "What one item costs the seller to buy or make."
},
"currency": {
"enum": [
"GHS",
"NGN",
"KES",
"ZAR",
"UGX",
"TZS",
"RWF",
"ZMW",
"ZWG",
"MWK",
"BWP",
"NAD",
"ETB",
"EGP",
"MAD",
"XOF",
"XAF",
"SLE",
"LRD",
"GMD",
"MZN",
"AOA",
"USD",
"EUR",
"GBP"
],
"type": "string",
"description": "The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown."
},
"sale_amount": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "What one item is sold for. Give this, or margin_percent, or markup_percent."
},
"margin_percent": {
"type": "number",
"maximum": 99.99,
"minimum": 0,
"description": "The profit wanted as a per cent of the sale amount."
},
"markup_percent": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "The profit wanted as a per cent of the cost."
}
},
"additionalProperties": false
}Use this when someone gives a loan amount, an interest rate and a number of weekly, fortnightly or monthly repayments, and asks what each repayment is, what the loan costs in total, or what the rate really is a year, for example "a microfinance loan of 5,000 at 5% flat a month for 6 months". It handles a flat rate (interest on the whole amount for the whole term, common with microfinance and hire purchase) and a reducing-balance rate, and fees taken at the start. Do not use it for a loan repaid in one sum (use loan.one_repayment), for a mortgage with a changing rate, or to say whether a loan is a good idea.
| Argument | Type | Description |
|---|---|---|
| amount* | number | The amount borrowed. |
| method | string | "flat" when interest is charged on the whole amount for the whole term; "reducing" when it is charged only on what is still owed. Leave out if unknown, and both are worked out. |
| currency | string | The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown. |
| rate_per* | string | Whether the quoted rate is a month or a year. |
| repayments* | integer | How many repayments there are. |
| repay_every | string | How often a repayment is made. Leave out for every month. |
Use this when someone borrows an amount and repays a single larger sum after some days, as with a phone or app loan, a salary advance or a loan from a moneylender, and asks what rate that is a month or a year (for example "I borrowed 1,000 and must repay 1,150 in 30 days"). Do not use it for a loan repaid in instalments (use loan.instalments), and do not use it to judge a lender.
| Argument | Type | Description |
|---|---|---|
| days* | integer | How many days until it must be repaid. |
| repay* | number | The whole amount to be paid back, including interest and any fees added to it. |
| amount* | number | The amount borrowed. |
| currency | string | The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown. |
| upfront_fees | number | Fees taken from the loan when it is paid out, as an amount. Leave out if none. |
{
"type": "object",
"required": [
"amount",
"repay",
"days"
],
"properties": {
"days": {
"type": "integer",
"maximum": 3650,
"minimum": 1,
"description": "How many days until it must be repaid."
},
"repay": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "The whole amount to be paid back, including interest and any fees added to it."
},
"amount": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "The amount borrowed."
},
"currency": {
"enum": [
"GHS",
"NGN",
"KES",
"ZAR",
"UGX",
"TZS",
"RWF",
"ZMW",
"ZWG",
"MWK",
"BWP",
"NAD",
"ETB",
"EGP",
"MAD",
"XOF",
"XAF",
"SLE",
"LRD",
"GMD",
"MZN",
"AOA",
"USD",
"EUR",
"GBP"
],
"type": "string",
"description": "The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown."
},
"upfront_fees": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "Fees taken from the loan when it is paid out, as an amount. Leave out if none."
}
},
"additionalProperties": false
}Use this when someone saves with a collector who takes regular deposits and keeps some of them as a fee (susu in Ghana, ajo or esusu in Nigeria, a daily contribution card), and asks how much they get back, what the fee is, or what it costs as a rate. A common arrangement is a daily deposit for 31 days with one day's deposit kept as the fee. Do not use it for a rotating group where members take turns to collect (a chama or rotating susu), for a bank savings account, or to judge a collector.
| Argument | Type | Description |
|---|---|---|
| deposit* | number | The amount paid in at each collection. |
| currency | string | The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown. |
| every_days | integer | Days between deposits. Leave out for every day. |
| collections | integer | How many deposits make one cycle before the pay-out. Leave out for 31. |
| fee_deposits | integer | How many of those deposits the collector keeps as the fee. Leave out for 1. |
{
"type": "object",
"required": [
"deposit"
],
"properties": {
"deposit": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "The amount paid in at each collection."
},
"currency": {
"enum": [
"GHS",
"NGN",
"KES",
"ZAR",
"UGX",
"TZS",
"RWF",
"ZMW",
"ZWG",
"MWK",
"BWP",
"NAD",
"ETB",
"EGP",
"MAD",
"XOF",
"XAF",
"SLE",
"LRD",
"GMD",
"MZN",
"AOA",
"USD",
"EUR",
"GBP"
],
"type": "string",
"description": "The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown."
},
"every_days": {
"type": "integer",
"maximum": 31,
"minimum": 1,
"description": "Days between deposits. Leave out for every day."
},
"collections": {
"type": "integer",
"maximum": 400,
"minimum": 2,
"description": "How many deposits make one cycle before the pay-out. Leave out for 31."
},
"fee_deposits": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many of those deposits the collector keeps as the fee. Leave out for 1."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.
| rate_percent* | number | The interest rate as quoted, in per cent, for example 5 for 5%. |
| upfront_fees | number | Fees taken when the loan is paid out (processing, insurance, commitment), as an amount. Leave out if none. |
| upfront_fee_percent | number | Fees taken when the loan is paid out, as a per cent of the amount. Leave out if none. |
{
"type": "object",
"required": [
"amount",
"rate_percent",
"rate_per",
"repayments"
],
"properties": {
"amount": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "The amount borrowed."
},
"method": {
"enum": [
"flat",
"reducing"
],
"type": "string",
"description": "\"flat\" when interest is charged on the whole amount for the whole term; \"reducing\" when it is charged only on what is still owed. Leave out if unknown, and both are worked out."
},
"currency": {
"enum": [
"GHS",
"NGN",
"KES",
"ZAR",
"UGX",
"TZS",
"RWF",
"ZMW",
"ZWG",
"MWK",
"BWP",
"NAD",
"ETB",
"EGP",
"MAD",
"XOF",
"XAF",
"SLE",
"LRD",
"GMD",
"MZN",
"AOA",
"USD",
"EUR",
"GBP"
],
"type": "string",
"description": "The currency, as its three-letter code (GHS, NGN, KES, ZAR...). Only labels the answer; leave out if unknown."
},
"rate_per": {
"enum": [
"month",
"year"
],
"type": "string",
"description": "Whether the quoted rate is a month or a year."
},
"repayments": {
"type": "integer",
"maximum": 600,
"minimum": 1,
"description": "How many repayments there are."
},
"repay_every": {
"enum": [
"week",
"fortnight",
"month"
],
"type": "string",
"description": "How often a repayment is made. Leave out for every month."
},
"rate_percent": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "The interest rate as quoted, in per cent, for example 5 for 5%."
},
"upfront_fees": {
"type": "number",
"maximum": 10000000000,
"minimum": 0,
"description": "Fees taken when the loan is paid out (processing, insurance, commitment), as an amount. Leave out if none."
},
"upfront_fee_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Fees taken when the loan is paid out, as a per cent of the amount. Leave out if none."
}
},
"additionalProperties": false
}