mcp-registry/io.github.kishida-devil/jp-payroll-mcp · v0.4.5
Also listed as glama/kishida-devil/jp-payroll-mcp
As of 2026-10-22 01:58 UTC, the Kishida Devil Jp Payroll MCP server is up with a Glimind reliability score of 97/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Japan payroll & social insurance. 日本の給与計算・社会保険。47都道府県の料率、源泉所得税、割増賃金、有給、標準報酬月額の改定、最低賃金。根拠の条文つき。
Claude Code
claude mcp add --transport http kishida-devil-jp-payroll-mcp-server https://japan-payroll-api.tsumugi.workers.dev/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"kishida-devil-jp-payroll-mcp-server": {
"type": "http",
"url": "https://japan-payroll-api.tsumugi.workers.dev/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
3 tool definition(s) exceed ~1,200 tokens each (largest: estimate_resident_tax, ~1,432).
Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~2,353 tokens every session. How to fix →
30 of 30 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
19 parameter(s) across 5 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
3 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.
Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 5 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp/fixes
{
"name": "calculate_annual_cost",
"description": "What one employee costs an employer over a year, bonuses included.\n\nReach for this rather than multiplying a payslip by twelve, because the two do not agree once a bonus is paid. 健康保険法第45条 caps the standard bonus cumulatively across the year — 5,730,000 from 1 April to 31 March — so the same bonus costs a different amount depending on where it falls, and once the year is used up later bonuses carry no health premium. 厚生年金保険法第24条の4 caps at 1,500,000 per payment with no yearly total, so pension ke",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"prefecture",
"monthly_salary"
],
"properties": {
"age": {
"type": "number",
"description": "Either this or birth_date is required."
},
"bonuses": {
"type": "array",
"items": {
"type": "number"
},
"description": "Each bonus in yen, in the order paid. The health cap fills from the first."
},
"birth_date": {
"type": "string",
"description": "Date of birth, YYYY-MM-DD. Strongly preferred over `age`: 年齢計算ニ関スル法律 puts the attainment of an age on the day *before* the birthday, so someone born on the 1st of a month crosses a threshold in the previous month and their premium changes a month earlier than a naive calculation gives."
},
"dependants": {
"type": "number"
},
"prefecture": {
"type": "string",
"description": "Prefecture of the employer's 適用事業所 — English (\"Tokyo\"), Japanese (\"東京\" or \"東京都\"), or JIS code 1-47. Health insurance rates differ by prefecture; pension does not."
},
"fiscal_year": {
"type": "number",
"description": "Year the 1 April to 31 March window starts. Defaults from the current date."
},
"resident_tax": {
"type": "number",
"description": "Monthly resident tax, multiplied by twelve as given. It is never derived here."
},
"business_type": {
"enum": [
"general",
"agriculture_forestry_fishery_sake",
"construction"
],
"type": "string"
},
"monthly_salary": {
"type": "number",
"description": "Gross monthly pay in yen."
},
"workers_comp_type": {
"type": "string",
"description": "事業の種類の番号. Charged on bonuses as well, being levied on total wages."
},
"standard_remuneration": {
"type": "number",
"description": "The 標準報酬月額 fixed by 算定基礎届, if known. Without it the grade is derived from the pay given."
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "年間の労務コスト — 賞与の上限を年度で通した額"
}{
"name": "calculate_bonus",
"description": "Premiums and income tax on a 賞与. Both work differently from monthly pay and are routinely got wrong.\n\nPremiums are charged on 標準賞与額 (the bonus truncated to the thousand yen) under two caps that behave differently: health, long-term care and child support cap at 5,730,000 yen CUMULATIVELY across the fiscal year from 1 April, while pension caps at 1,500,000 yen PER PAYMENT. The annual cap cannot be applied without fiscal_year_to_date, so pass it whenever an earlier bonus was paid in the same fisca",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"prefecture",
"bonus"
],
"properties": {
"age": {
"type": "number",
"description": "Age in years. Either this or birth_date is required. Prefer birth_date."
},
"as_of": {
"type": "string",
"description": "YYYY-MM-DD. Which rate table to use. Rates change every March, so a bonus paid in a previous year needs the table that was in force then; the call is refused rather than answered with today's rates."
},
"bonus": {
"type": "number",
"description": "Gross bonus in yen."
},
"column": {
"enum": [
"kou",
"otsu"
],
"type": "string",
"description": "Withholding column for the tax half: 甲 when a 扶養控除等申告書 was filed (the normal case), 乙 when it was not. 乙 has its own rate table. Defaults to 甲."
},
"birth_date": {
"type": "string",
"description": "Date of birth, YYYY-MM-DD. Strongly preferred over `age`: 年齢計算ニ関スル法律 puts the attainment of an age on the day *before* the birthday, so someone born on the 1st of a month crosses a threshold in the previous month and their premium changes a month earlier than a naive calculation gives."
},
"dependants": {
"type": "number"
},
"prefecture": {
"type": "string",
"description": "Prefecture of the employer's 適用事業所 — English (\"Tokyo\"), Japanese (\"東京\" or \"東京都\"), or JIS code 1-47. Health insurance rates differ by prefecture; pension does not."
},
"include_tax": {
"type": "boolean",
"description": "Also compute withholding tax. Requires previous_month_pay."
},
"previous_month_pay": {
"type": "number",
"description": "Gross pay in the month before the bonus. The tax rate is derived from this."
},
"fiscal_year_to_date": {
"type": "number",
"description": "標準賞与額 already paid since 1 April this fiscal year. Needed for the annual health cap."
},
"previous_month_insurance": {
"type": "number",
"description": "Social insurance deducted from that previous month's pay."
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "賞与の社会保険料と源泉所得税"
}{
"name": "calculate_overtime_pay",
"description": "Works out statutory premium pay under 労働基準法第37条 — overtime, night work and work on a statutory holiday.\n\nThe rates do not simply add up, and getting this wrong under-pays wages. A night premium stacks on top: overtime at night is 1.25 + 0.25 = 1.5, holiday work at night is 1.35 + 0.25 = 1.6. But a statutory holiday carries no overtime premium at all — a day with no duty to work has nothing to exceed — so holiday hours are 1.35, never 1.6 by adding overtime. Overtime beyond sixty hours in a month",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"base_monthly_pay",
"monthly_scheduled_hours"
],
"properties": {
"night_hours": {
"type": "number",
"description": "How many of those hours fell between 22:00 and 05:00."
},
"holiday_hours": {
"type": "number",
"description": "Hours worked on a statutory holiday."
},
"overtime_hours": {
"type": "number",
"description": "Statutory overtime hours, excluding work on a statutory holiday."
},
"base_monthly_pay": {
"type": "number",
"description": "Monthly pay forming the premium base, after removing any of the seven excludable allowances."
},
"holiday_night_hours": {
"type": "number",
"description": "How many of those fell between 22:00 and 05:00."
},
"monthly_scheduled_hours": {
"type": "number",
"description": "月平均所定労働時間 — annual scheduled working days times daily hours, divided by twelve."
}
}
},
"annotations": {
"readOnlyHint": true
},
"title": "割増賃金(時間外・深夜・休日)の計算"
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.kishida-devil/jp-payroll-mcp"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.kishida-devil/jp-payroll-mcp"}) over MCP.
estimate_resident_tax ~1,432 tokenscalculate_year_end_adjustment ~1,409 tokenscalculate_payslip ~1,312 tokenscalculate_bonus ~662 tokenscalculate_payroll_batch ~657 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.kishida-devil%2Fjp-payroll-mcp?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:82740fac41478bde…, first seen 2026-10-17, included at leaf 9699 of 42,808. Version history · verify what your client received.
Compare: most reliable data servers · most reliable finance servers · most reliable retrieval servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-22 01:58 UTC, the Kishida Devil Jp Payroll MCP server is up with a Glimind reliability score of 97/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.
Kishida Devil Jp Payroll MCP server advertises 30 tools, including business_days, calculate_annual_cost, calculate_bonus, calculate_overtime_pay, calculate_payroll_batch.
Point your MCP client at this streamable-http endpoint: https://japan-payroll-api.tsumugi.workers.dev/mcp
Glimind scanned all 30 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.