
Arabic Excel templates and 23 calculators (VAT, BMI, gold zakat...). No key, nothing stored.
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.
Fills a template with the records and settings you send, recalculates it with the template's own formulas, and returns the results: the summary cells listed in get_schema plus the calculated columns of every row you sent. Nothing is saved on the server: the workbook exists only for this request, so calling it again with the same input gives the same output (templates that use TODAY() follow the server's date). Call get_schema first. Sends your records into the template and returns what its own formulas calculate. records: [{sheet, table (index in schema, default 0), rows: [{"<column header or letter>": value}]}] fills a record table (only typed/input columns; calculated columns are returned in rows[].calculated). mode: "replace" (default, clears the sample rows first) or "append". cells: {"Sheet name!B3": value} sets settings cells. read: ["Sheet name!B5"] limits which cells come back (default: the sheet results listed in the schema). Dates: send "YYYY-MM-DD". Nothing is stored. Limits: 500 rows, 500 cells, 15 seconds. Fails with a message naming the bad sheet, column or cell, or "unknown template id".
Template id from list_templates.
"replace" (default) clears the template's sample rows before writing yours; "append" adds your rows after them.
Optional cell addresses to return, for example ["Sheet name!B5"]. Default: the result cells listed in the schema.
Settings cells to set, as { "Sheet name!B3": value }. Cells that hold formulas are ignored and reported in warnings.
Rows to write into record tables: [{ sheet: "sheet name", table?: index in the schema (default 0), rows: [{ "<column header or letter>": value }] }]. Fill input columns only; calculated columns come back in the result.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http templates https://softwiro.com/api/mcp
Tool list last changed Nov 6, 2026.
Fills a template with the records and settings you send, recalculates it with the template's own formulas, and returns the results: the summary cells listed in get_schema plus the calculated columns of every row you sent. Nothing is saved on the server: the workbook exists only for this request, so calling it again with the same input gives the same output (templates that use TODAY() follow the server's date). Call get_schema first. Sends your records into the template and returns what its own formulas calculate. records: [{sheet, table (index in schema, default 0), rows: [{"<column header or letter>": value}]}] fills a record table (only typed/input columns; calculated columns are returned in rows[].calculated). mode: "replace" (default, clears the sample rows first) or "append". cells: {"Sheet name!B3": value} sets settings cells. read: ["Sheet name!B5"] limits which cells come back (default: the sheet results listed in the schema). Dates: send "YYYY-MM-DD". Nothing is stored. Limits: 500 rows, 500 cells, 15 seconds. Fails with a message naming the bad sheet, column or cell, or "unknown template id".
| Argument | Type | Description |
|---|---|---|
| id* | string | Template id from list_templates. |
| mode | string | "replace" (default) clears the template's sample rows before writing yours; "append" adds your rows after them. |
| read | array | Optional cell addresses to return, for example ["Sheet name!B5"]. Default: the result cells listed in the schema. |
| cells | object | Settings cells to set, as { "Sheet name!B3": value }. Cells that hold formulas are ignored and reported in warnings. |
| records | array | Rows to write into record tables: [{ sheet: "sheet name", table?: index in the schema (default 0), rows: [{ "<column header or letter>": value }] }]. Fill input columns only; calculated columns come back in the result. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Template id from list_templates."
},
"mode": {
"enum": [
"replace",
"append"
],
"type": "string",
"description": "\"replace\" (default) clears the template's sample rows before writing yours; \"append\" adds your rows after them."
},
"read": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional cell addresses to return, for example [\"Sheet name!B5\"]. Default: the result cells listed in the schema."
},
"cells": {
"type": "object",
"description": "Settings cells to set, as { \"Sheet name!B3\": value }. Cells that hold formulas are ignored and reported in warnings."
},
"records": {
"type": "array",
"items": {
"type": "object"
},
"description": "Rows to write into record tables: [{ sheet: \"sheet name\", table?: index in the schema (default 0), rows: [{ \"<column header or letter>\": value }] }]. Fill input columns only; calculated columns come back in the result."
}
}
}Returns two links for one template: xlsx (the free Excel file to download, no sign-in) and online (the template page on softwiro.com, where the sheet can also be filled in the browser). Use it when the user wants the file itself to keep and edit, because calculate saves nothing. Read-only. Fails with "unknown template id" if the id did not come from list_templates.
| Argument | Type | Description |
|---|---|---|
| id* | string | Template id from list_templates, for example gym-memberships. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Template id from list_templates, for example gym-memberships."
}
}
}Returns the structure of one template: its sheets, the record tables (header row, first and last row, capacity) with each column marked as input or formula, example values, dropdown values, the settings cells (label, cell address, sample value) and the result cells. Call it after list_templates and before calculate, so the data you send uses the exact sheet and column names and only fills input columns. Read-only. Fails with "unknown template id" if the id did not come from list_templates.
| Argument | Type | Description |
|---|---|---|
| id* | string | Template id from list_templates, for example gym-memberships. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Template id from list_templates, for example gym-memberships."
}
}
}Lists the 23 quick calculators with their input names: 13 from Softwiro (VAT, BMI, calories, due date, ovulation, break-even, garment costing, fabric requirements, piece-rate pay, pharmacy margin, reorder point, no-show cost, study timetable) and 10 gold calculators from Qintar (zakat, nisab, making charge, bar and pound prices, fair-price check, sell-now, unit conversion, budget, gold vs certificates vs dollar, swapping old gold for new). Use it for a one-off calculation that does not need a spreadsheet, then call run_calculator. For multi-row tracking sheets use list_templates instead. Read-only, nothing is stored.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional search text in Arabic or English, for example "zakat" or "vat". Matched against id, title, description and group. Omit to list all 23. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search text in Arabic or English, for example \"zakat\" or \"vat\". Matched against id, title, description and group. Omit to list all 23."
}
}
}Search the catalog of about 70 free Arabic Excel templates (students, clinics, shops, farms, rent, installments, payroll, recipe costing, gym...). Returns id, Arabic title, description, sector, page URL and download URL for each match. Use it first whenever the user needs a tracking sheet or a multi-row calculation a business spreadsheet could do. For a single quick calculation (VAT, BMI, gold zakat) use list_calculators instead. Read-only, nothing is stored. An empty query returns the whole catalog.
| Argument | Type | Description |
|---|---|---|
| query | string | Optional search text in Arabic or English, for example "gym" or "اشتراكات". Matched against id, title, description and sector. Omit to list every template. |
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search text in Arabic or English, for example \"gym\" or \"اشتراكات\". Matched against id, title, description and sector. Omit to list every template."
}
}
}Runs one calculator from list_calculators and returns its result as JSON, with the same numbers as the calculator's page on the website. Nothing is stored. The gold calculators fetch live prices from qintar.app and include the price date; if prices are unavailable they return an error instead of guessing. Invalid or missing inputs fail with a message naming the field. Results are indicative: the zakat and gold calculators are not a fatwa, and the health calculators are not medical advice.
| Argument | Type | Description |
|---|---|---|
| id* | string | Calculator id from list_calculators, for example vat-calculator or gold-zakat. |
| inputs | object | The inputs for that calculator, using the input names that list_calculators shows for the id. Dates are YYYY-MM-DD; prices are EGP per gram. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Calculator id from list_calculators, for example vat-calculator or gold-zakat."
},
"inputs": {
"type": "object",
"description": "The inputs for that calculator, using the input names that list_calculators shows for the id. Dates are YYYY-MM-DD; prices are EGP per gram."
}
}
}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 6, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.
RunRuns one calculator from list_calculators.list_calculators inputsand isreturns anits objectresult as JSON, with the inputsame namesnumbers listedas forthe thatcalculator's id.page Goldon the website. Nothing is stored. The gold calculators usefetch live prices from qintar.app and include the price date; if prices are unavailable they return theiran date.error Nothinginstead isof stored.guessing. Invalid or missing inputs fail with a message naming the field. Results are indicative: the zakat and gold calculators are not a fatwa, and the health calculators are not medical advice.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"inputs": {
"type": "object"
}
}
}{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Calculator id from list_calculators, for example vat-calculator or gold-zakat."
},
"inputs": {
"type": "object",
"description": "The inputs for that calculator, using the input names that list_calculators shows for the id. Dates are YYYY-MM-DD; prices are EGP per gram."
}
}
}ListLists the free23 quick calculators with their input names: 13 from Softwiro (VAT, BMI, calories, due date, ovulation,break-even, garment costing, and making charge, fair-price check, sell-now, swapping old gold for Use for a one-off calculation that does not need a spreadsheet,
Read-only. Returns two links for one template: xlsx (the downloadablefree Excel file,file free,to download, no sign-in) and online (the template page on softwiro.com, where the sheet can also be filled in the browser). Use it when the user wants the file itself to keep and edit, sincebecause calculate does not save anything Fails with "unknown template id" if the id not list_templates.
Fills a template with the records and settings you send, recalculates it Sends your records into the template and returns what its own formulas calculate. records: [{sheet, table (index in schema, default 0), rows: [{"<column header or letter>": value}]}] fills a record table (only typed/input columns; calculated columns are returned in rows[].calculated). mode: "replace" (default, clears the sample rows first) or "append". cells: {"Sheet name!B3": value} sets settings cells. read: ["Sheet name!B5"] limits which cells come back (default: the sheet results listed in the schema). Dates: send "YYYY-MM-DD". Nothing is stored.
Read-only. Returns the structure of one Excel template: its sheets, the record tables (header row, first and last row, capacity) with each column marked as input or formula, example values, dropdown values, the settings cells (label, cell address, sample value) and the result cells. Call it after list_templates and before calculate, so the data you send uses the exact sheet and column names and only fills input columns. Read-only. Fails with "unknown template id" if the id isdid not one returnedcome byfrom list_templates.
ListSearch the free Arabic Excelcatalog templatesof fromabout softwiro.com70 (aboutfree 70Arabic sheets:Excel students,templates teachers, clinics, shops, farms, rent, installments, payroll, recipe
{
"type": "object",
"properties": {
"query": {
"type": "string"
}
}
}{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search text in Arabic or English, for example \"zakat\" or \"vat\". Matched against id, title, description and group. Omit to list all 23."
}
}
}{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"mode": {
"enum": [
"replace",
"append"
],
"type": "string"
},
"read": {
"type": "array",
"items": {
"type": "string"
}
},
"cells": {
"type": "object"
},
"records": {
"type": "array",
"items": {
"type": "object"
}
}
}
}{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Template id from list_templates."
},
"mode": {
"enum": [
"replace",
"append"
],
"type": "string",
"description": "\"replace\" (default) clears the template's sample rows before writing yours; \"append\" adds your rows after them."
},
"read": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional cell addresses to return, for example [\"Sheet name!B5\"]. Default: the result cells listed in the schema."
},
"cells": {
"type": "object",
"description": "Settings cells to set, as { \"Sheet name!B3\": value }. Cells that hold formulas are ignored and reported in warnings."
},
"records": {
"type": "array",
"items": {
"type": "object"
},
"description": "Rows to write into record tables: [{ sheet: \"sheet name\", table?: index in the schema (default 0), rows: [{ \"<column header or letter>\": value }] }]. Fill input columns only; calculated columns come back in the result."
}
}
}{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "search text in Arabic or English"
}
}
}{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search text in Arabic or English, for example \"gym\" or \"اشتراكات\". Matched against id, title, description and sector. Omit to list every template."
}
}
}