Skip to main content
Glama
molpass

mcp-biorhythm

by molpass
README.md
# mcp-biorhythm

생년월일을 받아 **바이오리듬 수치 + 사인파 차트(PNG)** 를 반환하는 MCP 서버.
"내 바이오리듬 보여줘"라고 하면 신체·감성·지성 세 곡선 그래프 이미지를 돌려준다.

> 구조·네이밍·PNG·설치 규약은 [`STANDARD.md`](STANDARD.md)를 따른다. `mcp-qr` skeleton 복제본.

---

## 계산 (결정론적)

고전 3주기 · 값 = `sin(2π × d / period)` (`d` = 출생일로부터 경과 일수):

| 사이클 | 주기 |
|---|---|
| 신체 (Physical) | 23일 |
| 감성 (Emotional) | 28일 |
| 지성 (Intellectual) | 33일 |

- 출력은 백분율(−100% ~ +100%).
- **임계일(critical day)**: 곡선이 0을 교차(부호가 바뀌는)하는 불안정일. 구간 내 목록으로 표시.
- **날짜는 UTC 자정 기준**으로 계산 → 타임존에 따른 ±1일 오차 없음.

---

## 도구

### `get_biorhythm`

| 파라미터 | 타입 | 필수 | 기본 | 설명 |
|---|---|---|---|---|
| `birthDate` | string `YYYY-MM-DD` | ✅ | — | 생년월일 |
| `targetDate` | string `YYYY-MM-DD` | | 오늘(UTC) | 기준일 |
| `rangeDays` | number | | `15` | 기준일 전후 표시 일수 (1–90) |

**출력 (둘 다 반환)**:
1. 구조화 텍스트 — 기준일의 신체/감성/지성 백분율 + 상승/하강 + 구간 내 임계일 목록
2. PNG 차트 — `[targetDate − rangeDays, targetDate + rangeDays]` 구간의 세 곡선 (1080×620)

예제 출력: [`examples/biorhythm_example.png`](examples/biorhythm_example.png)
(`1990-05-15` 출생 · `2026-06-19` 기준, 기본 옵션).

---

## 설치

```bash
git clone https://github.com/molpass/mcp-biorhythm.git
cd mcp-biorhythm
npm install && npm run build
```

예제 차트를 직접 생성해 보려면:

```bash
npm run example   # examples/biorhythm_example.png 재생성
```

> **폰트**: 한글 라벨(신체/감성/지성)을 위해 한글 가능 폰트가 필요하다.
> Windows는 Malgun Gothic이 기본 탑재라 추가 설치 불필요. Linux는 Nanum/Noto CJK 설치 권장.

---

## MCP 등록 (서버명 `biorhythm`)

```json
{
  "mcpServers": {
    "biorhythm": {
      "command": "node",
      "args": ["/abs/path/mcp-biorhythm/dist/index.js"]
    }
  }
}
```

> `/abs/path`는 클론한 실제 절대경로로 바꾼다.
> Windows 예: `"args": ["C:/Users/<you>/mcp-biorhythm/dist/index.js"]`

---

## 스택

- Node 20+ / TypeScript
- [`@modelcontextprotocol/sdk`](https://github.com/modelcontextprotocol/typescript-sdk) (stdio)
- [`@napi-rs/canvas`](https://github.com/Brooooooklyn/canvas) (차트 → PNG, prebuilt 바이너리)

## 스킬

페어링 스킬: [`skill/biorhythm.skill.md`](skill/biorhythm.skill.md).

## About / 제작

**Hermes Agent용 MCP** — molpass의 바이브 코딩(vibe coding) 프로젝트.

- 아이디어·방향: **molpass (이정훈)** · https://zeolinex.com
- 기획: **Claude (Chat)**
- 개발: **Claude Code**

자가 호스팅 [Hermes Agent](https://github.com/NousResearch/hermes-agent)에 도구로 붙여 쓰는 MCP 서버입니다.

같은 모음:
- [mcp-saju](https://github.com/molpass/mcp-saju) — 사주명리 만세력
- [mcp-qr](https://github.com/molpass/mcp-qr) — QR 코드 생성
- [mcp-biorhythm](https://github.com/molpass/mcp-biorhythm) — 바이오리듬
- [mcp-astrology](https://github.com/molpass/mcp-astrology) — 서양 점성술 네이탈 차트
- [mcp-ziwei](https://github.com/molpass/mcp-ziwei) — 자미두수 명반
- [mcp-numerology](https://github.com/molpass/mcp-numerology) — 수비학
- [mcp-liuren](https://github.com/molpass/mcp-liuren) — 대육임
- [mcp-qimen](https://github.com/molpass/mcp-qimen) — 기문둔갑
- [mcp-taiyi](https://github.com/molpass/mcp-taiyi) — 태을신수
- [mcp-weather](https://github.com/molpass/mcp-weather) — 한국 날씨·미세먼지
- [mcp-newsfeed](https://github.com/molpass/mcp-newsfeed) — 한국 주요뉴스

## License

MIT

TDQS

A4.2/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there's no risk of confusion between tools. The tool's purpose is clearly defined.

Naming Consistency5/5

With a single tool, naming consistency is not an issue. The name 'get_biorhythm' is clear and follows a common verb_noun pattern.

Tool Count3/5

One tool for a niche domain like biorhythm calculation is acceptable but minimal. A broader server might benefit from additional tools (e.g., for specific cycle queries or date ranges).

Completeness2/5

The tool provides biorhythm values and a chart, but lacks support for date ranges or retrieving only numerical data without the chart, which limits its completeness for typical use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues