Sri Lanka Payslip

Source-backed Sri Lanka payslip tools for APIT/PAYE, EPF, ETF, stamp duty, and net pay.

OtherJavaScriptv2026.27.2

Sri Lanka Salary Calculator and Payslip Reference

sri-lanka-salary-calculator MCP server

An inspectable reference implementation for estimating a regular primary employment payslip in Sri Lanka. It calculates monthly APIT (PAYE), employee EPF, employer EPF, employer ETF, stamp duty, net pay, and employer cost.

The current reference is maintained by MyPayslip.lk for the Sri Lanka 2026/27 year of assessment. The latest regular-employment APIT table published by the Inland Revenue Department is labelled 2025/26; the relief and rates effective from 1 April 2025 remain the basis used for 2026/27.

Try the calculator

No account is required. The hosted calculator runs in the browser, and the public calculation API does not store salary inputs.

Verified example

For a monthly gross salary and EPF/ETF contribution base of LKR 200,000:

ItemMonthly amount
Gross salaryLKR 200,000
APIT / PAYELKR 3,000
Employee EPF (8%)LKR 16,000
Stamp dutyLKR 25
Estimated net payLKR 180,975
Employer EPF (12%)LKR 24,000
Employer ETF (3%)LKR 6,000

Run the same case locally:

node examples/calculate.mjs 200000

Or call the hosted read-only API:

curl "https://mypayslip.lk/api/calc?salary=200000"

Reference implementation

calculator.mjs is intentionally dependency-free. It accepts a gross monthly salary and an optional EPF/ETF eligible earnings base. The contribution base should come from payroll records when excluded or unusual payments make it different from gross salary.

Install the package from npm after its first registry release, or directly from this public repository now:

npm install github:Buddhima-JD3/sri-lanka-salary-calculator
import { calculateSalary } from "sri-lanka-salary-calculator";

const result = calculateSalary({
  grossSalary: 200000,
  epfEtfEarningsBase: 200000,
});

console.log(result.netPay); // 180975

Verify the published examples:

npm test

Use with an AI assistant

This repository includes a local Model Context Protocol server built with the official MCP SDK. It gives compatible AI assistants three read-only tools:

ToolPurpose
calculate_sri_lanka_payslipCalculate APIT/PAYE, EPF, ETF, stamp duty, net pay, and employer cost
get_sri_lanka_payroll_referenceRetrieve maintained assumptions, scope limits, and official sources
get_sri_lanka_payslip_checklistPrepare or review the required payslip fields and arithmetic checks

Use the no-auth Streamable HTTP endpoint when the client supports remote MCP servers:

https://mypayslip.lk/api/mcp

The same tools can run locally over stdio. In that mode, salary inputs are not sent to MyPayslip.lk or another external service.

Official MCP Registry: io.github.Buddhima-JD3/sri-lanka-payslip

Agent-oriented installation instructions are available in llms-install.md.

The Registry package is a public AMD64/ARM64 container:

docker run -i --rm ghcr.io/buddhima-jd3/sri-lanka-payslip-mcp:2026.27.2

Add it to an MCP client configuration:

{
  "mcpServers": {
    "sri-lanka-payslip": {
      "command": "npx",
      "args": [
        "-y",
        "github:Buddhima-JD3/sri-lanka-salary-calculator"
      ]
    }
  }
}

Or start it from this repository:

npm install
npm run mcp

Machine-readable references

Primary sources

Scope

This reference covers regular profits from primary employment. Bonus, terminal-benefit, secondary-employment, non-resident, and unusual payroll cases may require a different APIT table or professional review. Results are estimates, not payroll, tax, or legal advice.

When citing a result, use:

MyPayslip.lk, Sri Lanka 2026/27 payslip calculation methodology, verified 17 July 2026.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
docker run -i --rm ghcr.io/buddhima-jd3/sri-lanka-payslip-mcp:2026.27.2

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-buddhima-jd3-sri-lanka-payslip": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/buddhima-jd3/sri-lanka-payslip-mcp:2026.27.2"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

ghcr.io/buddhima-jd3/sri-lanka-payslip-mcp:2026.27.2docker

Compatible MCP Clients

Sri Lanka Payslip works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More