Skip to main content
Glama
README.md
# mcp-taiyi

기준 일시를 받아 **태을신수(太乙神數)** 국·산법을 계산해 구조화 텍스트와
**포국 PNG**를 반환하는 MCP 서버. (Python 런타임)

> 구조·네이밍·PNG·설치 규약은 [`STANDARD.md`](STANDARD.md)를 따른다(§6 Python 블록).
> mcp-qimen / mcp-liuren과 동일한 Python 패턴.

---

## 구성 / 계산

- **산법 엔진**: [`kintaiyi`](https://pypi.org/project/kintaiyi/) — 太乙 年計/月計/日計/時計/分計.
- **천체력/유틸 의존**: `sxtwl`, `ephem`, `numpy`, `cn2an` (kintaiyi 내부 사용, 미선언이라 명시 설치).
- **렌더**: [`Pillow`](https://pypi.org/project/pillow/) — 산법 결과 그리드, 한자/한글 폰트.
- 결정론적: 같은 입력 → 같은 국.

---

## 도구

### `get_taiyi`

| 파라미터 | 타입 | 필수 | 기본 | 설명 |
|---|---|---|---|---|
| `datetime_str` | string `YYYY-MM-DD HH:MM` | ✅ | — | 기준 일시 |
| `mode` | `year`\|`month`\|`day`\|`hour`\|`minute`\|`ming` | | `day` | 計 단위(年計~分計/命法) |

- mode 매핑: `year`→年計, `month`→月計, `day`→日計, `hour`→時計, `minute`→分計.
- ⚠️ **`ming`(命法)**: kintaiyi 0.2.3은 命法을 직접 제공하지 않는다. 太乙命法이 출생 年計 반을
  토대로 함에 따라 **年計(ji_style 0)로 근사**하며, 출력·PNG에 근사임을 명시한다. (집에서 함께 검증 예정)

**출력 (둘 다 반환)**:
1. 구조화 텍스트 — 局式·紀元·太歲·太乙落宮·文昌·始擊·主客算將參·定算·君臣民基 등
2. 포국 PNG (1080×약760, 局式 배너 + 산법 그리드)

예제 출력: [`examples/taiyi_example.png`](examples/taiyi_example.png) (`2024-02-10 14:30`, 日計).

---

## 설치 (Python 3.10/3.11)

> ⚠️ `sxtwl`/`ephem`은 바이너리 휠이 필요하다. **Windows에서는 Python 3.10 또는 3.11**을 쓴다
> (3.12+는 sxtwl 휠 부재 → 빌드 실패). Linux는 3.12도 manylinux 휠로 가능.

```bash
git clone https://github.com/molpass/mcp-taiyi.git
cd mcp-taiyi
python -m venv .venv && . .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
```

예제 포국을 직접 생성해 보려면:

```bash
python examples/generate-example.py   # examples/taiyi_example.png 재생성 + 전 mode 점검
```

> **폰트**: 한자·한글 라벨을 위해 한글 가능 폰트가 필요하다.
> Windows는 Malgun Gothic 기본 탑재. Linux는 Noto CJK / Nanum 권장.

---

## MCP 등록 (서버명 `taiyi`, STANDARD §6 Python)

```json
{
  "mcpServers": {
    "taiyi": {
      "command": "/abs/path/mcp-taiyi/.venv/bin/python",
      "args": ["/abs/path/mcp-taiyi/server.py"]
    }
  }
}
```

> Windows 예: `"command": "C:/Users/<you>/mcp-taiyi/.venv/Scripts/python.exe"`,
> `"args": ["C:/Users/<you>/mcp-taiyi/server.py"]`

---

## 스킬

페어링 스킬: [`skill/taiyi.skill.md`](skill/taiyi.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.6/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools.

Naming Consistency5/5

The single tool follows a clear verb_noun pattern, which is consistent and descriptive.

Tool Count4/5

The server has a narrow, specialized purpose (Taiyi calculations), so one comprehensive tool is appropriate, though slightly thin for a general-purpose server.

Completeness4/5

The tool covers multiple calculation modes (year, month, day, hour, minute, ming) and returns both text and PNG, making it fairly complete for its domain.

Maintenance

ActivityInactive
ResponsivenessNo issues