关于 Softwiro Excel templates and calculators
Softwiro MCP 是面向 AI 助手的托管计算服务,可按 67 个免费 Excel 模板公式计算,并运行 23 种计算器。服务无状态、无需 API 密钥,也不保存请求内容。
主要功能
- 01搜索 67 个 Excel 模板
- 02读取模板结构与输入项
- 03按模板公式执行计算
- 04运行 23 种计算器
- 05获取模板下载链接
- 06提供交互式结果界面
适用场景
- 01用 Excel 模板计算业务数据
- 02计算增值税或收支平衡点
- 03估算 BMI、热量或预产期
- 04查询黄金相关价格与估算
MCP 相关
通过托管的 Streamable HTTP MCP 端点公开六种工具,用于查找模板、读取结构、计算、获取下载链接和运行计算器。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://softwiro.com/api/mcpclaude mcp add --transport http com-softwiro-templates https://softwiro.com/api/mcp{"mcpServers":{"com-softwiro-templates":{"type":"http","url":"https://softwiro.com/api/mcp"}}}在 Cursor 中打开{"servers":{"com-softwiro-templates":{"type":"http","url":"https://softwiro.com/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-softwiro-templates":{"type":"http","url":"https://softwiro.com/api/mcp"}}}{"mcpServers":{"com-softwiro-templates":{"serverUrl":"https://softwiro.com/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Softwiro MCP
一个 MCP 服务,可让 AI 助手使用 67 个免费的阿拉伯语 Excel 模板进行计算,并运行 23 个快速计算器(增值税、BMI、预产期、黄金天课等),而不是猜测数字。结果来自模板自身的公式和计算器自身的代码。无状态、无需 API 密钥、不存储任何内容。
- 托管端点(免费,无需密钥):
https://softwiro.com/api/mcp(Streamable HTTP) - 概览、示例、条款和隐私:https://softwiro.com/mcp · 阿拉伯语:https://softwiro.com/ar/mcp
- 附带完整示例的分步指南:https://softwiro.com/blog/mcp-excel-templates-ai-agent-guide.html
- 官方 MCP Registry 名称:
com.softwiro/templates
明确要求助手使用它(“使用 softwiro MCP,不要自行计算”)。否则,助手可能会在脑中计算,而不调用工具。
连接
以下步骤依据各应用自身的文档;菜单可能因套餐和版本而异。
Claude Code
claude mcp add --transport http softwiro https://softwiro.com/api/mcp
Claude(网页 / 桌面): Customize → Connectors → + Add → Add custom connector,名称填写 softwiro,URL 填写上方地址。
ChatGPT: Plugins → + → Add custom MCP server,名称填写 softwiro,URL 填写上方地址,身份验证选择 No authentication。自定义 MCP 服务可能需要相应套餐或允许使用这些服务的工作区设置。
Cursor(.cursor/mcp.json):
{ "mcpServers": { "softwiro": { "url": "https://softwiro.com/api/mcp" } } }
在终端中检查:
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"}'
工具
| 工具 | 功能 |
|---|---|
list_templates | 搜索免费 Excel 模板目录(阿拉伯语或英语文本)。 |
get_schema | 获取某个模板的表格、列(输入与公式)、设置和结果单元格。调用 calculate 前请先调用此工具。 |
calculate | 使用你的记录和设置填充模板,通过模板自身的公式重新计算,并返回结果。不会保存任何内容。 |
get_download | 获取模板的 .xlsx 文件和在线版本链接。 |
list_calculators | 列出 23 个计算器及其输入项名称。 |
run_calculator | 运行一个计算器。 |
这六个工具均为只读且具有幂等性(使用 TODAY() 的模板遵循服务端日期)。
计算器
Softwiro 提供的 13 个计算器:增值税、BMI、卡路里、预产期、排卵期、盈亏平衡、服装成本核算、面料需求、计件工资、药房利润率、再订货点、未到诊成本、学习时间表。
来自 Qintar 的 10 个黄金计算器:黄金、白银和现金天课、起征额、工费、金条和金币价格、公允价格检查、立即出售、单位换算、预算、黄金与存款凭证及美元对比、以旧换新。它们会从 qintar.app 获取实时价格;如果价格不可用,则会返回错误。结果仅供参考:天课和黄金计算器不构成教法裁决,健康计算器也不构成医疗建议。
示例
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.
返回净额 2,250、税额 315、总额 2,565(增值税 14%)。
自行运行
Node 18+。
npm install
npm start # http://127.0.0.1:3000/api/mcp
npm test # offline smoke test
环境变量:PORT、HOST、TRUST_PROXY(位于反向代理后时设为 1,以便速率限制识别客户端的真实地址)、USAGE_FILE(用于汇总计数器的 JSON 文件;省略时计数器保存在内存中)、SITE_BASE(目录链接使用的基础 URL,默认为 https://softwiro.com)。
作为库使用
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);
目录结构
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
限制
请求正文最大 200 KB,最多 500 行和 500 个单元格;每个客户端每分钟最多 30 次计算和 120 次读取;每次计算最多 15 秒;同时最多进行 2 次计算。
隐私
此服务不会存储或记录请求内容。它仅保留每日汇总计数器(按工具、模板或计算器统计调用次数和错误,以及连接应用的名称,如 claude-code):不记录 IP 地址,也不记录请求正文。托管服务位于 softwiro.com Web 服务器之后,该服务器会在短时间内保留常规访问日志(请参阅 https://softwiro.com/privacy)。天课计算器会将你输入的金额发送到 Qintar 的计算器服务。
测试
npm test 是离线冒烟测试。test/parity/gold.test.mjs 会在无头浏览器中将黄金计算器与实时 Qintar 页面进行比较(仅用于开发:需要 playwright-core 和 Chromium,或设置 CHROME_PATH)。
许可证
代码:MIT,详见 LICENSE。data/templates/ 中的文件与 https://softwiro.com/templates 发布的免费 Excel 模板相同:可自由使用、编辑和分享。
Softwiro MCP(阿拉伯语)
MCP 服务可让 AI 助手使用 67 个免费的阿拉伯语 Excel 模板进行计算,并运行 23 个计算器(增值税、身体质量指数、预产期、黄金天课等),而不是猜测数字。结果来自模板本身的公式和计算器代码。无需密钥或账户,也不会存储任何内容。
- 托管链接(免费):
https://softwiro.com/api/mcp - 说明、示例、条款和隐私政策:https://softwiro.com/ar/mcp
- 在 Claude Code 中:
claude mcp add --transport http softwiro https://softwiro.com/api/mcp - 以「使用 softwiro 的 MCP,别自己计算」开头提出请求,这样助手就会调用工具,而不是在脑中计算。
六种工具:list_templates(搜索模板)、get_schema(模板结构)、calculate(使用模板计算)、get_download(下载链接)、list_calculators 和 run_calculator(计算器)。结果仅供参考:天课和黄金计算器不构成教法裁决,健康计算器不构成医疗建议。
本地运行:npm install,然后运行 npm start。
交互式连接器(MCP Apps)
结果工具(list_templates、calculate、list_calculators、run_calculator)带有 _meta.ui.resourceUri = ui://softwiro/result。支持 MCP Apps 的主机(包括 Claude)会通过 resources/read(text/html;profile=mcp-app)获取该资源,并将其显示在对话旁边:每个计算器都会根据其输入架构生成一个表单,另有模板表格和易读的结果视图。不支持的主机会忽略此元数据,并使用未更改的文本结果。结果还带有 structuredContent(数组会包装为 {items})。
- 视图是一个独立的 HTML 文件(
src/app-ui.js),直接使用 MCP Apps 的 postMessage 协议:不会从任何地方加载脚本,默认 CSP(connect-src 'none')已足够。视图仅通过主机调用工具。 - 打开下载链接或页面链接时,视图会先请求用户确认,然后请求主机打开链接(
ui/open-link)。 - 不会存储任何内容。视图只会收到工具已经返回给模型的内容。
A2UI 1.0(由 Agent 生成的界面)
除了 MCP,服务端还支持 A2UI 1.0:Agent 发送声明式 JSON(createSurface、updateDataModel、deleteSurface),客户端根据固定目录绘制界面,并将用户的点击发送回来。
| 端点 | 内容 |
|---|---|
GET /api/a2ui/surface/calculator/:id | SSE 流:一个计算器的表单,根据其输入架构构建,并绑定到数据模型 |
GET /api/a2ui/surface/templates?q= | SSE 流:Excel 模板列表;每次下载前都会请求确认 |
POST /api/a2ui/events | 请求体 { "message": { "version": "1.0", "action": { name, surfaceId, context } } };以 A2UI 消息的 SSE 流作为响应(包含结果的 updateDataModel,或 error) |
GET /api/a2ui/app | React 渲染器(演示页面,来自 web/dist) |
MCP 工具 list_calculators、list_templates 和 run_calculator 也会在 structuredContent.a2ui 中返回相同的消息(这是附加内容;数据键不会改变)。
安全性:仅使用 basic-catalog 组件,不含代码或内联目录;ID 和输入均根据服务端自身的目录和架构进行检查;下载 URL 由服务端提供,绝不来自客户端;每条消息都会经过验证(version 必须为 "1.0",且只能有一个操作,并且操作名称必须是已知名称)。使用 sensitive: true 注册的操作(src/a2ui.js 中的 registerAction)不会在首次请求时执行:服务端会返回一个确认卡片,其中包含绑定到该操作和上下文的签名令牌(有效期为 5 分钟);只有用户点击 Confirm 并返回令牌后,操作才会执行。不会存储任何内容。
React 渲染器位于 web/(npm install && npm run build;src/processor.js 处理消息,src/A2uiRenderer.jsx 绘制目录子集:Text、Column、Row、List、Card、Divider、Image、Button、TextField、CheckBox、ChoicePicker、Modal)。官方的 @a2ui/react 包(0.15)尚未提供 v1.0 basic catalog,因此这个渲染器小巧且独立。
MCP App 中的 A2UI(各部分如何协作)
ui://softwiro/result 视图是 A2UI 渲染器捆绑包(web/dist/index.html)。在宿主中,它通过 MCP Apps
桥接通信;工具结果会将屏幕作为类型为 application/a2ui+json 的嵌入式资源传递(A2UI 1.0 消息的 JSON 数组)。用于打开屏幕的模型工具:open_calculator(表单)、list_templates(表格)、run_calculator / calculate
(结果)。按钮按下事件会通过仅供 App 使用的工具 a2ui_action(_meta.ui.visibility: ["app"])返回,其结果
同样是 application/a2ui+json。在 MCP 之外,也可以通过 /api/a2ui/* 下的 SSE 接口和 /api/a2ui/app 使用相同的屏幕。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。