mcpField
S
Softwiro Excel templates and calculators

Softwiro Excel templates and calculators

Remote
softwiro.comData & Analytics0Updated 1d ago

About Softwiro Excel templates and calculators

Softwiro MCP is a hosted calculation service for AI assistants, using formulas from 67 free Excel templates and running 23 calculators. It is stateless, requires no API key, and does not store request content.

Key features

  1. 01Search 67 Excel templates
  2. 02Inspect template schemas and inputs
  3. 03Calculate with template formulas
  4. 04Run 23 calculators
  5. 05Get template download links
  6. 06Render interactive result views

Use cases

  1. 01Calculate business data with Excel templates
  2. 02Work out VAT or break-even figures
  3. 03Estimate BMI, calories, or a due date
  4. 04Check gold prices and related estimates

MCP support

Its hosted Streamable HTTP MCP endpoint exposes six tools for finding templates, inspecting schemas, calculating, retrieving download links, and running calculators.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://softwiro.com/api/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

Softwiro MCP

An MCP server that lets an AI assistant calculate inside 67 free Arabic Excel templates and run 23 quick calculators (VAT, BMI, due date, gold zakat and more), instead of guessing the numbers. Results come from the templates' own formulas and the calculators' own code. Stateless, no API key, nothing stored.

Ask your assistant to use it explicitly ("use the softwiro MCP and do not calculate yourself"). Without that, an assistant may calculate in its head and never call the tool.

Connect

These steps follow each app's own documentation; menus can differ by plan and version.

Claude Code

claude mcp add --transport http softwiro https://softwiro.com/api/mcp

Claude (web / desktop): Customize → Connectors → + Add → Add custom connector, name softwiro, URL above.

ChatGPT: Plugins → + → Add custom MCP server, name softwiro, URL above, authentication: No authentication. Custom MCP servers may need a plan or workspace setting that allows them.

Cursor (.cursor/mcp.json):

{ "mcpServers": { "softwiro": { "url": "https://softwiro.com/api/mcp" } } }

Check it from a terminal:

curl -s https://softwiro.com/api/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

ToolWhat it does
list_templatesSearch the catalog of free Excel templates (Arabic or English text).
get_schemaTables, columns (input vs formula), settings and result cells of one template. Call before calculate.
calculateFills a template with your records and settings, recalculates with its own formulas, returns the results. Nothing is saved.
get_downloadLinks to the .xlsx file and the online version of a template.
list_calculatorsLists the 23 calculators and their input names.
run_calculatorRuns one calculator.

All six are read-only and idempotent (templates that use TODAY() follow the server's date).

Calculators

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.

10 gold calculators from Qintar: zakat on gold, silver and cash, 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. They fetch live prices from qintar.app and return an error if prices are unavailable. Results are indicative: the zakat and gold calculators are not a fatwa, and the health calculators are not medical advice.

Example

Use the softwiro MCP (run_calculator with vat-calculator) and do not calculate anything yourself.
Egypt, add VAT to two items of 1,000 each and one item of 250.

Returns net 2,250, tax 315, total 2,565 (VAT 14%).

Run it yourself

Node 18+.

npm install
npm start            # http://127.0.0.1:3000/api/mcp
npm test             # offline smoke test

Environment variables: PORT, HOST, TRUST_PROXY (set to 1 behind a reverse proxy so rate limits see the real client address), USAGE_FILE (JSON file for aggregate counters; omit to keep them in memory), SITE_BASE (base URL used in catalog links, default https://softwiro.com).

As a library
const express = require('express');
const { configure, mount } = require('./src/index');
configure({ dataDir: './data' });   // also: templatesDir, schemasDir, siteBase, usageFile, catalog()
const app = express(); mount(app, express);
Layout
src/index.js          HTTP handlers, MCP JSON-RPC, limits, aggregate usage counters
src/worker.js         one calculation in an isolated worker thread (timeout kills it)
src/engine.js         the formula engine (fast-formula-parser with Excel-compatible tweaks)
src/tools-softwiro.js the 13 Softwiro calculators
src/tools-gold.js     the 10 Qintar gold calculators
data/catalog.json     template catalog      data/templates/   the .xlsx files
data/schemas/         one JSON schema per template      data/tool-text.json   Arabic page text of the calculators
Limits

Request body 200 KB, at most 500 rows and 500 cells, 30 calculations and 120 reads per minute per client, 15 seconds per calculation, 2 calculations at once.

Privacy

Request content is not stored or logged by this server. It keeps aggregate daily counters only (calls per tool, template or calculator, errors, and the connecting app's name such as claude-code): no IP addresses and no request bodies. The hosted service sits behind the softwiro.com web server, which keeps ordinary access logs for a short period (see https://softwiro.com/privacy). The zakat calculator sends the amounts you enter to Qintar's calculator service.

Tests

npm test is an offline smoke test. test/parity/gold.test.mjs compares the gold calculators with the live Qintar pages in a headless browser (dev-only: needs playwright-core and a Chromium, or CHROME_PATH).

License

Code: MIT, see LICENSE. The files in data/templates/ are the same free Excel templates published at https://softwiro.com/templates: use, edit and share them freely.


Softwiro MCP (بالعربي)

خادم MCP يخلّي مساعد الذكاء الاصطناعي يحسب داخل 67 قالب إكسل عربي مجاني ويشغّل 23 حاسبة (ضريبة القيمة المضافة، كتلة الجسم، موعد الولادة، زكاة الذهب وغيرها) بدل ما يخمّن الأرقام. النتائج من معادلات القوالب نفسها ومن كود الحاسبات. بلا مفتاح ولا حساب، ولا يخزّن شيئًا.

  • الرابط المستضاف (مجاني): https://softwiro.com/api/mcp
  • الشرح والأمثلة والشروط والخصوصية: https://softwiro.com/ar/mcp
  • في Claude Code: claude mcp add --transport http softwiro https://softwiro.com/api/mcp
  • ابدأ طلبك بـ «استخدم الـ MCP بتاع softwiro وماتحسبش بنفسك» عشان المساعد ينادي الأداة بدل ما يحسب في دماغه.

الأدوات الست: list_templates (بحث في القوالب)، get_schema (هيكل القالب)، calculate (الحساب في قالب)، get_download (روابط التحميل)، list_calculators وrun_calculator (الحاسبات). النتائج استرشادية: حاسبات الزكاة والذهب ليست فتوى، والحاسبات الصحية ليست نصيحة طبية.

التشغيل محليًا: npm install ثم npm start.

Interactive connector (MCP Apps)

The result tools (list_templates, calculate, list_calculators, run_calculator) carry _meta.ui.resourceUri = ui://softwiro/result. Hosts that support MCP Apps (Claude, among others) fetch that resource with resources/read (text/html;profile=mcp-app) and render it beside the conversation: a form per calculator built from its input schema, a table of templates, and a readable view of results. Hosts without support ignore the metadata and use the unchanged text result. Results also carry structuredContent (arrays are wrapped as {items}).

  • The view is one self-contained HTML file (src/app-ui.js) that speaks the MCP Apps postMessage protocol directly: no script is loaded from anywhere, and the default CSP (connect-src 'none') is enough. It calls tools only through the host.
  • Opening a download or page link asks the user to confirm inside the view, then asks the host to open it (ui/open-link).
  • Nothing is stored. The view gets only what the tool already returned to the model.

A2UI 1.0 (agent-generated interfaces)

Alongside MCP, the server speaks A2UI 1.0: the agent sends declarative JSON (createSurface, updateDataModel, deleteSurface), the client draws it from a fixed catalog and sends the user's clicks back.

EndpointWhat
GET /api/a2ui/surface/calculator/:idSSE stream: a form for one calculator, built from its input schema, bound to a data model
GET /api/a2ui/surface/templates?q=SSE stream: a list of Excel templates; each download asks for confirmation first
POST /api/a2ui/eventsbody { "message": { "version": "1.0", "action": { name, surfaceId, context } } }; answers with an SSE stream of A2UI messages (updateDataModel with the result, or error)
GET /api/a2ui/appthe React renderer (demo page, from web/dist)

The MCP tools list_calculators, list_templates and run_calculator also return the same messages in structuredContent.a2ui (additive; the data keys do not change).

Security: only basic-catalog components, no code, no inline catalogs; ids and inputs are checked against the server's own catalog and schemas; download URLs come from the server, never from the client; every message is validated (version must be "1.0", exactly one operation, known action names). An action registered with sensitive: true (registerAction in src/a2ui.js) does not run on the first request: the server returns a confirm card holding a signed token bound to that action and context (5 minutes); the action runs only when the user presses Confirm and the token comes back. Nothing is stored.

The React renderer is in web/ (npm install && npm run build; src/processor.js applies messages, src/A2uiRenderer.jsx draws the catalog subset: Text, Column, Row, List, Card, Divider, Image, Button, TextField, CheckBox, ChoicePicker, Modal). The official @a2ui/react package (0.15) does not yet ship a v1.0 basic catalog, so this one is small and self-contained.

A2UI inside the MCP App (how the pieces fit)

The ui://softwiro/result view is the A2UI renderer bundle (web/dist/index.html). Inside a host it speaks the MCP Apps bridge; tool results carry the screen as an embedded resource of type application/a2ui+json (a JSON array of A2UI 1.0 messages). Model tools that open a screen: open_calculator (form), list_templates (table), run_calculator / calculate (result). Button presses go back through the app-only tool a2ui_action (_meta.ui.visibility: ["app"]), whose result is again application/a2ui+json. The same screens are available outside MCP as SSE under /api/a2ui/* and on /api/a2ui/app.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.