Skip to main content
Glama
NA-DEGEN-GIRL

mcp-novel-calc

README.md
# mcp-novel-calc

소설 집필용 계산기 MCP 서버. 날짜/요일, 수학, 속도/거리, 동양 전통 단위, 십이지시, 화폐, 군량, 성장률 등을 정확하게 계산합니다.

AI가 산수를 틀리는 문제를 해결하기 위해 만들었습니다. 무협, 판타지, 회귀물 등 숫자가 중요한 장르에 특히 유용합니다.

## 도구 목록

| 도구 | 설명 | 예시 |
|------|------|------|
| `calculate` | 수학 수식 계산 | `1250 * 1.35` → `1687.5` |
| `date_calc` | 날짜 더하기/빼기 | `2020-03-12 + 365일` → `2021-03-12 (금요일)` |
| `date_diff` | 두 날짜 차이 | → `1699일, 약 4.7년` |
| `d_plus` | D-Day 기준 변환 | `D+100` → `2020-06-20 (토요일)` |
| `weekday` | 요일/달력 조회 | `2020-03-12` → `목요일, 달력 표시` |
| `convert_time` | 십이지시 ↔ 현대 시각 | `14:30` → `미시(未時) 사각` |
| `speed_distance_time` | 속도·거리·시간 | 2개 입력 → 나머지 계산 |
| `travel_estimate` | 이동 수단별 소요 시간 | `100km, 천리마` → `2.2시간` |
| `unit_convert` | 단위 변환 | `10리` → `3.93km` |
| `currency_calc` | 화폐 단위 변환 (무협) | `3.5냥` → `3냥 5전` |
| `supply_calc` | 군량/보급 계산 | `1000명, 10섬` → `3.3일` |
| `growth_calc` | 복리/성장률 계산 | `100→300, 1.5%/일` → `74일` |

## 설치

### 요구사항

- Python 3.10+
- `mcp` 패키지

```bash
git clone https://github.com/NA-DEGEN-GIRL/mcp-novel-calc.git
cd mcp-novel-calc
pip install -r requirements.txt
```

### Claude Code에 등록

프로젝트의 `.mcp.json`에 추가:

```json
{
  "mcpServers": {
    "novel-calc": {
      "command": "python3",
      "args": ["/path/to/mcp-novel-calc/calc_server.py"]
    }
  }
}
```

### Claude Desktop에 등록

`claude_desktop_config.json`에 추가:

```json
{
  "mcpServers": {
    "novel-calc": {
      "command": "python3",
      "args": ["/path/to/mcp-novel-calc/calc_server.py"]
    }
  }
}
```

## 사용 예시

### 날짜 계산

```
> d_plus(d_day="2020-03-12", target="100")

D+0 = 2020년 3월 12일 (목요일)
D+100 = 2020년 6월 20일 (토요일) (2020-06-20)
```

### 십이지시 변환

```
> convert_time("14:30")

14:30 = 미시(未時) 사각(四刻)
범위: 13:00 ~ 15:00

> convert_time("자시")

자시(子時) = 23:00 ~ 익일 01:00 (약 2시간)
초각(初刻) = 23:00, 이각 = 23:30, 삼각 = 00:00, 사각 = 00:30
십이지: 쥐
```

### 이동 시간 추정

```
> travel_estimate(distance=100, mode="천리마")

이동 수단: 천리마(질주) (45.0km/h)
이동 거리: 100.0km (약 255리)
순수 이동: 2.2시간
동양식: 약 1.1시진(時辰)
📝 "255리 길을 천리마(질주)으로 달리면 2.2시간 정도 걸린다."
```

### 군량 계산

```
> supply_calc(people=1000, consumption_per_day=3, consumption_unit="홉", supply_amount=10, supply_unit="섬")

인원: 1,000명
1인 1일 소비: 3 홉 (3홉)
전체 1일 소비: 3,000홉 = 30.0말 = 3.00섬
보유량: 10 섬 (10,000홉)
버틸 수 있는 일수: 3.3일
```

### 화폐 변환

```
> currency_calc(3.5, "냥")

3.5 냥 = 3,500 푼(문)
분해: 3냥 5전

── 참고 물가 (무협 일반 설정) ──
  국수 한 그릇: 5~10문
  객잔 1박: 50~100문
  평범한 검: 2~5냥
  좋은 말 한 필: 10~30냥
```

### 성장률 계산

```
> growth_calc(start_value=100, target_value=300, daily_rate=1.5)

시작: 100.0 → 목표: 300.0 (3.0배)
성장률: 일 1.5%
필요 기간: 74일 (약 2.5개월)
📝 "매일 1.5%씩 수련하면 74일이면 300에 도달한다."
```

## 지원 단위

### 거리
`km`, `m`, `cm`, `리(里)`, `장(丈)`, `척(尺)`, `촌(寸)`, `보(步)`

### 시간
`시간`, `분`, `초`, `일`, `시진(時辰)`, `각(刻)`, `경(更)`

### 무게
`kg`, `g`, `근(斤)`, `냥(兩)`, `돈`, `관(貫)`

### 부피(곡물)
`섬(石)`, `말(斗)`, `되(升)`, `홉(合)`

### 화폐
`금`, `냥(兩)`, `전(錢)`, `푼/문(文)`

### 이동 수단 프리셋
`보행(4km/h)`, `급행군(6)`, `말_보통(15)`, `말_질주(40)`, `천리마(45)`, `마차(8)`, `경공_초급(30)`, `경공_중급(50)`, `경공_고수(80)`, `경공_초절정(120)`, `배(10)`

## License

MIT