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