关于 Taiwan Payroll
Taiwan Payroll 是面向台湾雇主、薪资人员和开发者的法定薪资计算引擎,可计算劳健保、劳退、税款及老年给付。它提供 TypeScript、Python 和 MCP 接口,参数取自官方公告,并以官方案例验证。
主要功能
- 01计算劳保、健保、劳退及职灾费用
- 02计算所得税扣缴与补充保费
- 03处理到离职破月计算
- 04生成健保补充保费申报 CSV
- 05试算劳保老年给付
适用场景
- 01核算员工各方保险与退休金负担
- 02处理月中到职或离职薪资
- 03生成补充保费申报资料
- 04估算不同类型的劳保老年给付
MCP 相关
提供 MCP 服务,供 AI 助手调用薪资费用计算。可使用 Streamable HTTP 远程端点,也可通过本地 npx 命令以 stdio 运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://taiwan-payroll.simoko.workers.dev/mcpclaude mcp add --transport http taiwan-payroll https://taiwan-payroll.simoko.workers.dev/mcp{"mcpServers":{"taiwan-payroll":{"type":"http","url":"https://taiwan-payroll.simoko.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"taiwan-payroll":{"type":"http","url":"https://taiwan-payroll.simoko.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"taiwan-payroll":{"type":"http","url":"https://taiwan-payroll.simoko.workers.dev/mcp"}}}{"mcpServers":{"taiwan-payroll":{"serverUrl":"https://taiwan-payroll.simoko.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
9| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| year | integer | 否 | 年度(公历,例如 2026)。省略则使用最新可用年度;可先使用 list_years 查询可用年度。 |
| monthlySalary | number | 是 | 月薪总额(经常性薪资),新台币元/月。 |
| identity | enum | 否 | 身份类别(默认 category1):category1=本国劳工或外籍配偶;migrantGeneral=一般移工(劳保仅普通事故 11.5%、不含就保/劳退);migrantDomestic=家事移工(仅健保+职灾,职灾费率请通过 occupationalRate 传入 0.0018)。不适用的险种返回 0。category1 | migrantGeneral | migrantDomestic |
| dependents | integer | 否 | 健保眷属人数(保费计算上限为 3 人),默认 0。 |
| employmentInsurance | boolean | 否 | 是否参加就业保险(劳保费率为 12.5% 或 11.5%),默认 true。一般移工/家事移工一律视为不参加。 |
| pensionSelfContribution | number | 否 | 劳工自愿提缴率,小数(0~0.06,例如 0.06 表示 6%),默认 0。 |
| occupationalRate | number | 否 | 职业灾害行业费率,小数比例(例如 0.0021 表示 0.21%;家事移工为 0.0018),范围 [0, 0.02)。省略则使用该年度平均费率。 |
| partTime | boolean | 否 | 是否为部分工时:true 时,未达到基本工资的薪资将按官方较低级距计算劳保/健保(职保仍归第 1 级)。默认 false。 |
| rounding | enum | 否 | 进位策略:round=四舍五入(默认)、ceil=无条件进位、aggregate-then-round=合计后分摊(政府方承担进位差)。round | ceil | aggregate-then-round |
详细介绍
来自项目 READMEtaiwan-payroll
開源的台灣勞健保勞退法定費用計算引擎。輸入薪資與身份,算出勞保(含就保)、健保、勞退、職災與二代健保補充保費的各方負擔——並涵蓋薪資所得扣繳、月中到職/離職破月、健保補充保費申報媒體檔,以及勞保老年給付試算。
示意:在支援 MCP 的 AI 助理(Claude / Cursor 等)中呼叫 taiwan-payroll
- 🧮 線上試算:https://taiwan-payroll.vercel.app(免安裝,瀏覽器直接算)
- 🔌 三種介面:TypeScript(npm)、Python(PyPI,純 stdlib)、MCP server(給 AI 助理呼叫)
- 📑 官方對證:級距表與費率逐級取自主管機關公告,計算結果對官方範例黃金向量逐位元驗證
- 🔁 跨語言一致:TS 與 Python 讀同一份
data/、跑同一套testdata/,結果逐位元相同 - 📦 零執行期依賴:core 不帶任何 runtime 套件
定位是「計算引擎」而非「法遵保證」。 內建民國 113–115(2024–2026)年度官方參數。
安裝
npm install taiwan-payroll # TypeScript / Node
pip install taiwan-payroll # Python
快速上手
import { createPayrollEngine } from 'taiwan-payroll';
const engine = createPayrollEngine({ year: 2026 });
const r = engine.calculate({
monthlySalary: 42000,
identity: 'category1',
dependents: 1,
employmentInsurance: true,
pensionSelfContribution: 0.06,
});
console.log(r.employee); // { labor: 1050, health: 1302, pensionSelf: 2520, total: 4872 }
console.log(r.employer.occupational); // 職災雇主負擔
二代健保補充保費與破月計算
// 補充保費(六類所得:bonus/parttime/professional/dividend/interest/rent)
engine.calculateSupplementary({ type: 'bonus', amount: 200000, monthlyInsuredSalary: 42000 });
// → { type: 'bonus', chargeable: 32000, rate: '0.0211', premium: 675 }
// 月中到職/離職(勞保/職保/勞退按日;健保採官方「月底歸屬」原則)
engine.calculateProrated({ monthlySalary: 29500, startDate: '2026-03-08' });
// → { ..., days: { insured: 23 }, healthCharged: true }
健保破月採「月底歸屬原則」:以月底所屬投保單位計收整月——到職當月計整月、離職當月不計。此為健保署實務規則(非按日、與 15 日分水嶺無關)。
申報媒體檔(健保補充保費)
由申報資料產生健保署「補充保險費明細申報檔」(CSV/Big5),涵蓋 6 類所得:獎金(62)、兼職薪資(63)、執行業務(65)、股利(66)、利息(67)、租金(68)。每個產生器皆以健保署官方範例逐位元驗證,TS 與 Python 結果一致。
import { generateSupplementaryBonusFiling } from 'taiwan-payroll';
const { filename, content } = generateSupplementaryBonusFiling({
year: 2026,
filingDate: '20260901', // 用於檔名
unit: { taxId: '11111111', name: '甲公司', phone: '0227065866', email: '[email protected]', contactName: '王小明' },
records: [
{ action: 'I', payDate: '20260615', payeeId: 'A123456789', payeeName: '李四',
bonusAmount: 50000, insuredSalary: 31800, ytdBonusCumulative: 150000, unitCode: '123456789' },
],
});
// filename: 'DPR111111111150901001.csv'
// content : Unicode 字串;檔案實際為 Big5,存檔時請以 Big5 編碼寫出。
- 獎金/兼職/執行業務/利息/租金:逐列補充保費由引擎計算。股利(
generateSupplementaryDividendFiling)因含股票股利/雇主扣除等情形,逐列保費由呼叫端提供(另附便利函式calcDividendPremium)。 - 輸出為「資料檔」供以官方入口上傳。Big5 編碼:TS 由呼叫端編碼,Python 提供
to_big5_bytes()(core 維持零依賴)。 - API 詳見文件站
/docs/api。
勞保老年給付試算
依勞保局官方公式試算三種老年給付(皆對官方數值/公式驗證、TS≡Python):
import { calcOldAgePension, calcOldAgeLumpSum, calcOldAgeSinglePayment, getYearData } from 'taiwan-payroll';
const d = getYearData(2026);
calcOldAgePension(d, { avgInsuredSalary: 32000, years: 35, months: 6 }); // 月領年金(擇優兩式,可提前/延後)
calcOldAgeLumpSum(d, { avgInsuredSalary: 30000, years: 10 }); // 老年一次金
calcOldAgeSinglePayment(d, { avgInsuredSalary: 30000, preSixtyYears: 20 }); // 一次請領(舊制基數)
- 老年年金:擇優兩式(
平均×年資×0.775%+3000vs×1.55%),提前/延後claimOffsetMonths(±4%/年、上限 ±5 年(±20%));附averageHighestInsuredSalary、statutoryClaimAge。 - 老年一次金:年資每滿 1 年發 1 個月,逾 60 歲後年資最多 5 年。
- 一次請領:基數制(前 15 年每年 1 基數、超過部分每年 2 基數、前 60 上限 45、合併上限 50),平均採退保前 36 個月。
- 試算僅供參考,實際以勞保局核定為準。
架構
data/{year}.json— 單一事實來源,年度法規參數(級距表、費率),以 JSON Schema 驗證。testdata/— 語言無關的黃金測試向量(官方案例,含source出處),是跨語言行為一致性的根基。packages/core— 零執行期依賴的 TypeScript 引擎。
其他語言與介面
- Python:
pip install taiwan-payroll,純 stdlib、API 對應 TS 版(PyPI)。 - MCP server:讓 Claude 等 AI 助理直接呼叫試算。遠端免安裝端點
https://taiwan-payroll.simoko.workers.dev/mcp(Streamable HTTP),或本地npx taiwan-payroll-mcp(stdio,npm)。 - 線上計算機與完整 API:https://taiwan-payroll.vercel.app
資料來源(2026 / 民國115年)
| 項目 | 主管機關 | 文號 |
|---|---|---|
| 勞保投保薪資分級表(11級,上限45,800) | 勞動部勞保局 | 勞動保2字第1140091863號令 |
| 勞退月提繳分級表(62級,上限150,000) | 勞動部勞保局 | 勞動福3字第1140153598號令 |
| 職災投保薪資分級表(21級,上限72,800) | 勞動部勞保局 | 職災保險法§17 |
| 健保投保金額分級表(58級,上限313,000) | 衛福部健保署 | 衛部保字第1140153424號令 |
費率:勞保 12.5%(含就保 1%)、健保 5.17%、勞退雇主 6%、職災平均 0.21%、二代健保補充保費 2.11%。
目前內建民國 113/114/115(2024/2025/2026) 三個年度,各年度的分級表與文號見 data/{year}.json 的 sources;以 createPayrollEngine({ year }) 指定,可用年度由 getAvailableYears() 取得。
開發
pnpm install
pnpm validate:data # 驗證 data schema、級距連續性、向量格式
pnpm -r test # 跑全部黃金測試向量
pnpm typecheck
免責聲明
本套件依公開法規與主管機關公告實作,計算結果僅供參考,實際應繳金額以勞保局、健保署核發之繳款單為準。本套件不構成法律或會計建議。
License
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。