# `net.kitbench/kitbench` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/net.kitbench/kitbench
- JSON: https://anlyon.dev/api/v1/servers/net.kitbench/kitbench
- Version: 1.0.0 (active)
- Publisher: net.kitbench (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T18:53:53.009Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Kitbench
Exact Japanese text & date tools: char count, business days with JP holidays, era, tax, units.
```

Scanned 2026-10-21T19:18:56.404Z over streamable-http.

**7 tools: 1 do something that can't be undone, 4 change things and 2 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 1 | ask |
| Changes things | write | 4 | ask |
| Only reads | read | 2 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `add_days` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "add_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "add_days" says "add": a word for a change.
```

- **warn** Annotations that disagree with the tool in `convert_japanese_era` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "convert_japanese_era" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_japanese_era" says "convert": a word for a change.
```

- **warn** Annotations that disagree with the tool in `convert_units` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "convert_units" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_units" says "convert": a word for a change.
```


## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `convert_units`

- The name "convert_units" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Convert units with official exact factors (NIST etc.), including Japanese units (tsubo, jo/tatami, shaku, sun, go, Japanese cups and spoons), temperature and fuel economy. Returns the exact result, a rounded display value, the factor, and extras such as feet-and-inches, inch fractions (1/16) and pounds-and-ounces. Unit ids by category - length: mm, cm, m, km, in, ft, yd, mi, nmi, shaku, sun; mass: mg, g, kg, t, oz, lb, st, ons, kwintal; temp: c, f, k; volume: ml, l, m3, tsp, tbsp, floz, cup, pt, qt, gal, flozuk, galuk, cupjp, tbspjp, tspjp, go; area: cm2, m2, ha, km2, sqin, sqft, sqyd, ac, sqmi, tsubo, jo, donum; speed: mps, kmh, mph, kn, fps; fuel: kml, l100, mpg, mpguk; pressure: pa, kpa, mpa, bar, psi, atm, mmhg; energy: j, kj, cal, kcal, wh, kwh, btu; power: w, kw, hp, ps; data: b, kb, mb, gb, tb, kib, mib, gib, tib.
```

## Changes things (4)

Creates or changes something that can be changed back. Claude Code: ask.

### `add_days`

- The name "add_days" says "add": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Find the date N days (or N business days) after or before a date, with its weekday and Japanese era date (wareki). unit "business" skips Saturdays, Sundays and Japanese national holidays; "weekdays" skips only weekends. Good for deadlines in Japan. N from 0 to 100,000.
```

### `calculate_age`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Calculate exact age from a birth date: age in years, years/months/days, Japanese kazoedoshi (traditional age), days since birth, next birthday and days until it, weekday of birth, Japanese era (wareki) of the birth date and the zodiac animal (eto). February 29 birthdays move to March 1 in non-leap years. Reference date defaults to today in Japan.
```

### `consumption_tax`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Calculate Japanese consumption tax with exact integer arithmetic: tax-excluded to tax-included or tax-included to tax-excluded, at 10% (standard), 8% (reduced) or any rate from 0 to 100 with up to 2 decimals, rounding down (floor, default), half up (round) or up (ceil). Returns the tax amount, both prices and the formula. Amounts are whole yen up to 13 digits.
```

### `convert_japanese_era`

- The name "convert_japanese_era" says "convert": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Convert between Western (Gregorian) dates and Japanese era dates (wareki: Meiji, Taisho, Showa, Heisei, Reiwa), using exact era start dates and "gannen" (元年) for year 1. Give either date (YYYY-MM-DD), or wareki such as "令和元年5月1日" / "R1.5.1", or era + year + month + day. Rejects dates that do not exist in that era (e.g. Heisei 31-05-01). Range 1873-01-01 to 2200-12-31.
```

## Only reads (2)

Looks things up and changes nothing. Claude Code: allow.

### `count_characters`

- The name "count_characters" says "count": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Count characters in a text exactly as KitBench's character counter does. Counts user-perceived characters (grapheme clusters: emoji sequences, combining marks and flags count as 1), plus counts excluding newlines and whitespace, half-width characters counted as 0.5, lines, paragraphs, Japanese manuscript paper (genkō yōshi, 20x20) sheets, UTF-8 bytes, English words, and a breakdown into hiragana, katakana, kanji, Latin letters, digits and other. Strong for Japanese text and character limits. Text up to 200,000 characters.
```

### `days_between`

- The description's first verb is "count": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Count the days between two dates: total days (optionally including the start day), weeks and days, years/months/days, Japanese business days (excluding weekends and Japanese national holidays from the Cabinet Office list) and weekdays (Mon-Fri). Exact calendar arithmetic, no time zones. Dates 1873-01-01 to 2200-12-31.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `kitbench`:

```json
{
  "permissions": {
    "allow": [
      "mcp__kitbench__count_characters",
      "mcp__kitbench__days_between"
    ],
    "ask": [
      "mcp__kitbench__add_days",
      "mcp__kitbench__calculate_age",
      "mcp__kitbench__convert_japanese_era",
      "mcp__kitbench__consumption_tax",
      "mcp__kitbench__convert_units"
    ],
    "deny": []
  }
}
```
