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 recent community issues