Make a salary slip for an employee in India as a print-ready PDF and an Excel file.
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.
Use this when the user wants a salary slip (payslip, salary slip format for India) as a PDF and Excel file from earnings and deductions they give. Put components into earnings and deductions as items ({name, amount}, or percent/of for a deduction); a simple pasted list (one name and amount per item) works as a fallback. Prorates earnings for LOP days (paid_days or lop_days, calendar or fixed-day month) or a mid-month joining, keeps bonus and reimbursements in full, and returns gross, total deductions, net pay, net pay in words (Indian and international), and download links. Does not compute PF, ESI, professional tax or TDS by law and does not take PAN, UAN or bank numbers. Do not use for salary negotiation, CTC planning or tax calculation.
Shortcut: PF deduction amount, e.g. 1800, or "12%" (of Basic).
Shortcut: HRA for the full month, e.g. 10000.
Shortcut: TDS deduction as given, e.g. 1500.
Shortcut: Basic for the full month, e.g. 25000 (same as an earnings item).
Pay month, e.g. "October 2026" or "2026-10". Default: last month.
Earnings with full-month amounts: [{"name":"Basic","amount":25000},{"name":"HRA","amount":10000},{"name":"Special Allowance","amount":8000}], or {"Basic":25000,"HRA":10000}, or text "Basic 25000, HRA 10000".
true to print blank PAN, UAN and bank account lines to fill by hand. These numbers are not collected.
Optional work location, e.g. "Pune".
Loss-of-pay days, e.g. 2. Paid days = days in month - LOP days.
"rupee" (default, prorated amounts to the nearest rupee) or "paise".
"A4" (default) or "Letter".
Days paid, e.g. 28 or 29.5. Default: all days of the month (or days from joining).
Deductions as the user gives them: [{"name":"PF","amount":1800},{"name":"Professional Tax","amount":200},{"name":"TDS","amount":1500}], or a percent of a named earning, {"name":"PF","percent":12,"of":"Basic"}, or text "PF 12% of Basic, PT 200". Nothing is computed by law.
Optional department, e.g. "Engineering".
Optional job title, e.g. "Software Engineer".
Optional employee ID, e.g. "EMP-0042".
Proration basis: "calendar" (default, 28 to 31) or a fixed number such as 30 or 26.
Employee name as it should print, any script, e.g. "Priya Sharma" or "प्रिया शर्मा".
Company name for the header, e.g. "Acme Technologies Pvt Ltd".
Optional joining date, e.g. "2026-10-12" or "12/10/2026" (day first). Joining inside the pay month sets paid days when paid_days is not given.
Optional company address, e.g. "4th Floor, Tech Park, Pune 411014".
Optional last working day inside the pay month, e.g. "2026-10-20", for a final slip.
Shortcut: professional tax deduction as given, e.g. 200.
Shortcut: Special Allowance for the full month, e.g. 8000.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http salary-slip https://salary-slip.zovo.one/mcp
Use this when the user wants a salary slip (payslip, salary slip format for India) as a PDF and Excel file from earnings and deductions they give. Put components into earnings and deductions as items ({name, amount}, or percent/of for a deduction); a simple pasted list (one name and amount per item) works as a fallback. Prorates earnings for LOP days (paid_days or lop_days, calendar or fixed-day month) or a mid-month joining, keeps bonus and reimbursements in full, and returns gross, total deductions, net pay, net pay in words (Indian and international), and download links. Does not compute PF, ESI, professional tax or TDS by law and does not take PAN, UAN or bank numbers. Do not use for salary negotiation, CTC planning or tax calculation.
| Argument | Type | Description |
|---|---|---|
| pf | number | string | null | Shortcut: PF deduction amount, e.g. 1800, or "12%" (of Basic). |
| hra | number | string | null | Shortcut: HRA for the full month, e.g. 10000. |
| tds | number | string | null | Shortcut: TDS deduction as given, e.g. 1500. |
| basic | number | string | null | Shortcut: Basic for the full month, e.g. 25000 (same as an earnings item). |
| month | string | null | Pay month, e.g. "October 2026" or "2026-10". Default: last month. |
| earnings | any | Earnings with full-month amounts: [{"name":"Basic","amount":25000},{"name":"HRA","amount":10000},{"name":"Special Allowance","amount":8000}], or {"Basic":25000,"HRA":10000}, or text "Basic 25000, HRA 10000". |
| id_lines | boolean | string | null | true to print blank PAN, UAN and bank account lines to fill by hand. These numbers are not collected. |
| location | string | null | Optional work location, e.g. "Pune". |
| lop_days | number | string | null | Loss-of-pay days, e.g. 2. Paid days = days in month - LOP days. |
| rounding | string | null | "rupee" (default, prorated amounts to the nearest rupee) or "paise". |
| page_size | string | null | "A4" (default) or "Letter". |
| paid_days | number | string | null | Days paid, e.g. 28 or 29.5. Default: all days of the month (or days from joining). |
| deductions | any | Deductions as the user gives them: [{"name":"PF","amount":1800},{"name":"Professional Tax","amount":200},{"name":"TDS","amount":1500}], or a percent of a named earning, {"name":"PF","percent":12,"of":"Basic"}, or text "PF 12% of Basic, PT 200". Nothing is computed by law. |
| department | string | null | Optional department, e.g. "Engineering". |
| designation | string | null | Optional job title, e.g. "Software Engineer". |
| employee_id | string | null | Optional employee ID, e.g. "EMP-0042". |
| days_in_month | number | string | null | Proration basis: "calendar" (default, 28 to 31) or a fixed number such as 30 or 26. |
| employee_name | string | null | Employee name as it should print, any script, e.g. "Priya Sharma" or "प्रिया शर्मा". |
| employer_name | string | null | Company name for the header, e.g. "Acme Technologies Pvt Ltd". |
| date_of_joining | string | null | Optional joining date, e.g. "2026-10-12" or "12/10/2026" (day first). Joining inside the pay month sets paid days when paid_days is not given. |
| employer_address | string | null | Optional company address, e.g. "4th Floor, Tech Park, Pune 411014". |
| last_working_day | string | null | Optional last working day inside the pay month, e.g. "2026-10-20", for a final slip. |
| professional_tax | number | string | null | Shortcut: professional tax deduction as given, e.g. 200. |
| special_allowance | number | string | null | Shortcut: Special Allowance for the full month, e.g. 8000. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"pf": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: PF deduction amount, e.g. 1800, or \"12%\" (of Basic)."
},
"hra": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: HRA for the full month, e.g. 10000."
},
"tds": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: TDS deduction as given, e.g. 1500."
},
"basic": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: Basic for the full month, e.g. 25000 (same as an earnings item)."
},
"month": {
"type": [
"string",
"null"
],
"description": "Pay month, e.g. \"October 2026\" or \"2026-10\". Default: last month."
},
"earnings": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {}
},
{
"type": "object",
"properties": {
"of": {
"type": [
"string",
"null"
],
"description": "Deductions only: earnings the percent applies to, e.g. \"Basic\" or \"Basic + Dearness Allowance\". Default Basic."
},
"max": {
"type": [
"number",
"string",
"null"
],
"description": "Deductions only: optional cap on the percent amount, e.g. 1800."
},
"name": {
"type": [
"string",
"null"
],
"description": "Component name, e.g. \"Basic\", \"HRA\", \"Special Allowance\", \"PF\"."
},
"amount": {
"type": [
"number",
"string",
"null"
],
"description": "Monthly amount in rupees, e.g. 25000 or \"Rs 25,000\". For earnings, the full-month amount before LOP."
},
"percent": {
"type": [
"number",
"string",
"null"
],
"description": "Deductions only: percent of named earnings instead of an amount, e.g. 12."
},
"prorate": {
"type": [
"boolean",
"string",
"null"
],
"description": "Earnings only: false to pay in full despite LOP days (bonus, reimbursement). Default true, except bonus/arrears/reimbursement/incentive/overtime names."
}
},
"additionalProperties": {}
}
]
}
},
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
]
},
{
"type": "null"
}
],
"description": "Earnings with full-month amounts: [{\"name\":\"Basic\",\"amount\":25000},{\"name\":\"HRA\",\"amount\":10000},{\"name\":\"Special Allowance\",\"amount\":8000}], or {\"Basic\":25000,\"HRA\":10000}, or text \"Basic 25000, HRA 10000\"."
},
"id_lines": {
"type": [
"boolean",
"string",
"null"
],
"description": "true to print blank PAN, UAN and bank account lines to fill by hand. These numbers are not collected."
},
"location": {
"type": [
"string",
"null"
],
"description": "Optional work location, e.g. \"Pune\"."
},
"lop_days": {
"type": [
"number",
"string",
"null"
],
"description": "Loss-of-pay days, e.g. 2. Paid days = days in month - LOP days."
},
"rounding": {
"type": [
"string",
"null"
],
"description": "\"rupee\" (default, prorated amounts to the nearest rupee) or \"paise\"."
},
"page_size": {
"type": [
"string",
"null"
],
"description": "\"A4\" (default) or \"Letter\"."
},
"paid_days": {
"type": [
"number",
"string",
"null"
],
"description": "Days paid, e.g. 28 or 29.5. Default: all days of the month (or days from joining)."
},
"deductions": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {}
},
{
"type": "object",
"properties": {
"of": {
"type": [
"string",
"null"
],
"description": "Deductions only: earnings the percent applies to, e.g. \"Basic\" or \"Basic + Dearness Allowance\". Default Basic."
},
"max": {
"type": [
"number",
"string",
"null"
],
"description": "Deductions only: optional cap on the percent amount, e.g. 1800."
},
"name": {
"type": [
"string",
"null"
],
"description": "Component name, e.g. \"Basic\", \"HRA\", \"Special Allowance\", \"PF\"."
},
"amount": {
"type": [
"number",
"string",
"null"
],
"description": "Monthly amount in rupees, e.g. 25000 or \"Rs 25,000\". For earnings, the full-month amount before LOP."
},
"percent": {
"type": [
"number",
"string",
"null"
],
"description": "Deductions only: percent of named earnings instead of an amount, e.g. 12."
},
"prorate": {
"type": [
"boolean",
"string",
"null"
],
"description": "Earnings only: false to pay in full despite LOP days (bonus, reimbursement). Default true, except bonus/arrears/reimbursement/incentive/overtime names."
}
},
"additionalProperties": {}
}
]
}
},
{
"type": "string"
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
]
},
{
"type": "null"
}
],
"description": "Deductions as the user gives them: [{\"name\":\"PF\",\"amount\":1800},{\"name\":\"Professional Tax\",\"amount\":200},{\"name\":\"TDS\",\"amount\":1500}], or a percent of a named earning, {\"name\":\"PF\",\"percent\":12,\"of\":\"Basic\"}, or text \"PF 12% of Basic, PT 200\". Nothing is computed by law."
},
"department": {
"type": [
"string",
"null"
],
"description": "Optional department, e.g. \"Engineering\"."
},
"designation": {
"type": [
"string",
"null"
],
"description": "Optional job title, e.g. \"Software Engineer\"."
},
"employee_id": {
"type": [
"string",
"null"
],
"description": "Optional employee ID, e.g. \"EMP-0042\"."
},
"days_in_month": {
"type": [
"number",
"string",
"null"
],
"description": "Proration basis: \"calendar\" (default, 28 to 31) or a fixed number such as 30 or 26."
},
"employee_name": {
"type": [
"string",
"null"
],
"description": "Employee name as it should print, any script, e.g. \"Priya Sharma\" or \"प्रिया शर्मा\"."
},
"employer_name": {
"type": [
"string",
"null"
],
"description": "Company name for the header, e.g. \"Acme Technologies Pvt Ltd\"."
},
"date_of_joining": {
"type": [
"string",
"null"
],
"description": "Optional joining date, e.g. \"2026-10-12\" or \"12/10/2026\" (day first). Joining inside the pay month sets paid days when paid_days is not given."
},
"employer_address": {
"type": [
"string",
"null"
],
"description": "Optional company address, e.g. \"4th Floor, Tech Park, Pune 411014\"."
},
"last_working_day": {
"type": [
"string",
"null"
],
"description": "Optional last working day inside the pay month, e.g. \"2026-10-20\", for a final slip."
},
"professional_tax": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: professional tax deduction as given, e.g. 200."
},
"special_allowance": {
"type": [
"number",
"string",
"null"
],
"description": "Shortcut: Special Allowance for the full month, e.g. 8000."
}
}
}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 8, 2026.