Skip to main content
Glama
h-kazuki-pixel

jp-business-days MCP Server

README.md
# jp-business-days MCP Server 📅✅

[![CI](https://github.com/h-kazuki-pixel/jp-business-days-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/h-kazuki-pixel/jp-business-days-mcp-server/actions/workflows/ci.yml)

日本の営業日計算(土日・祝日を除く)を Claude に提供する MCP (Model Context Protocol) サーバーです。

An MCP server that gives Claude accurate Japanese business-day calculations (weekends and national holidays excluded). Works fully offline — no API keys required.

jp-series の第2弾です。第1弾の [jp-dates-mcp-server](https://github.com/h-kazuki-pixel/jp-dates-mcp-server)(祝日・和暦)と組み合わせて使うと、より便利になります。

## ✨ できること / Features

Claude にこんな質問が正確に即答できるようになります:

- 「今日は営業日?」
- 「今日から5営業日後は何日?」
- 「今月と来月の間で、営業日は何日ある?」
- 「9月30日が期限の書類、10営業日前までに準備するなら、いつまでに動けばいい?」

| ツール | 説明 |
|---|---|
| `jp_is_business_day` | 指定日が営業日(平日かつ祝日でない)かどうかを判定 |
| `jp_add_business_days` | 指定日からN営業日後・前の日付を計算 |
| `jp_business_days_between` | 2つの日付の間(両端含む)の営業日数をカウント |
| `jp_calc_deadline` | 基準日(有効期限・締切日など)からN営業日前の「対応期限日」を逆算 |

- ✅ **APIキー不要・完全オフライン**(祝日はアルゴリズムで算出)
- ✅ 振替休日・国民の休日・2020/2021年の五輪特例に対応
- ✅ 対応範囲: 2020〜2099年

### 💡 `jp_calc_deadline` の使いどころ

許認可の更新、契約の更新、各種届出など、「期限のX営業日前までに提出・対応する」という管理が必要な場面で使えます。土日・祝日を挟んでも、実際に動ける営業日ベースで正確に逆算します。

## 🚀 セットアップ / Setup

### 1. インストール

```bash
git clone https://github.com/h-kazuki-pixel/jp-business-days-mcp-server.git
cd jp-business-days-mcp-server
npm install
npm run build
```

### 2. Claude Desktop に登録

`claude_desktop_config.json` に以下を追加します。

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "jp-business-days": {
      "command": "node",
      "args": ["/absolute/path/to/jp-business-days-mcp-server/dist/index.js"]
    }
  }
}
```

Claude Desktop を再起動すると、🔌アイコンからツールが確認できます。

### 3. 使ってみる

Claude にそのまま話しかけるだけです:

> 「今日から10営業日後はいつ?」
> 「8月31日が期限なら、10営業日前はいつまでに動けばいい?」

## 🧪 動作確認 / Testing

MCP Inspector で対話的にテストできます:

```bash
npx @modelcontextprotocol/inspector node dist/index.js
```

リポジトリ同梱の統合テスト(4つのツールをすべて実行して検証)も実行できます:

```bash
npm run build
node test/run_tests.mjs
```

## 📝 営業日計算について / Notes

- 祝日は法律(国民の祝日に関する法律)のルールに基づきアルゴリズムで算出しています(jp-dates-mcp-serverと同じロジック)
- 「営業日」は「祝日でない平日(月〜金)」として計算しています。会社独自の休業日(夏季休業・年末年始休業など)は含まれません
- 将来の法改正には追従が必要です。誤りを見つけたら Issue で教えてください!

## 🤝 コントリビュート / Contributing

Issue・Pull Request 歓迎です!

## 📄 License

MIT

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a distinct primary purpose: checking a date, adding business days, counting between dates, and calculating deadlines. There is some overlap between jp_add_business_days with negative days and jp_calc_deadline, but the descriptions clearly frame the latter for deadline management, reducing misselection risk.

Naming Consistency4/5

All tools share the jp_ prefix and mostly follow verb_noun patterns (is, add, calc). The exception is jp_business_days_between, which uses a noun-preposition-noun structure, and 'calc' is abbreviated while others are full words. Overall, the pattern is consistent enough to be predictable.

Tool Count5/5

With 4 tools, the server is well-scoped for its narrow domain. Each tool addresses a specific, necessary operation (check, add, count, deadline) without unnecessary bloat or missing essentials.

Completeness5/5

The domain of Japanese business days is thoroughly covered: checking a date, adding/subtracting business days, counting between dates, and computing deadlines. No critical operations are missing; a holiday-listing tool would be nice but is not essential for common use cases.

Maintenance

ActivitySlowing
ResponsivenessNo issues