Skip to main content
Glama
Espivc

ming-metaphysics-mcp

by Espivc
README.md
# ming-metaphysics-mcp

Five Chinese metaphysics engines as MCP tools for Claude Desktop and any MCP-compatible client.

## vs Cantian's `bazi-mcp`

| Dimension | Cantian `bazi-mcp` | Ming `ming-metaphysics-mcp` |
|---|---|---|
| **Arts covered** | BaZi only | **All five** — BaZi + QMDJ + ZWDS + Feng Shui + I Ching |
| **Engine depth** | Good BaZi implementation | 9.0–9.5/10 expert-verified across all five engines |
| **Classical sourcing** | Not documented | 子平真詮, 淵海子平, 紫微斗數全書 + 108-title library cited |
| **Output quality** | Competent readings | Scholar-validated, bilingual (EN/ZH), report-grade depth |
| **Consultation funnel** | None | Master reading available via Ming Bot (link TBA) |
| **Kua + Eight Mansions** | ❌ | ✅ |
| **QMDJ timing** | ❌ | ✅ (sxtwl Ju computation) |
| **I Ching (Liu Yao)** | ❌ | ✅ (classical 納甲法) |

---

## Tools

| Tool | Engine | Description |
|---|---|---|
| `ming_bazi_analyze` | BaZi 八字 | Four Pillars chart — Day Master, pattern, luck pillars |
| `ming_qmdj_direction` | QMDJ 奇門 | Optimal direction + timing window for a date |
| `ming_zwds_chart` | ZWDS 紫微 | Twelve-palace natal chart with 四化 transformations |
| `ming_fengshui_flying_stars` | Feng Shui 風水 | Kua number + Eight Mansions directional analysis |
| `ming_iching_cast` | I Ching 易經 | Hexagram via classical 納甲法 (Liu Yao) |
| `ming_full_forecast` | All four birth-data engines | Integrated five-engine forecast with confidence score |

---

## Engine requirement

This package is an MCP **wrapper**. It does not contain metaphysics
calculation logic — it forwards tool calls to a Ming engine endpoint over
HTTP. To use it, point `MING_API_URL` at a running engine.

Two ways to get an engine:

1. **Hosted endpoint (preferred, when available).** A public Ming endpoint
   will be announced; once available, configure `MING_API_URL` to point at
   it and you're done.
2. **Self-host.** The Ming engine itself is currently a closed-source
   reference implementation. If you have access to the Ming codebase, run
   `uvicorn api.main:app --port 8000` and point this MCP at `localhost:8000`.

Without a reachable engine, the MCP server starts and lists tools, but tool
calls return an HTTP error.

## Install

### Step 1 — Ensure an engine is reachable

See "Engine requirement" above.

### Step 2 — Install the MCP server

```bash
npm install -g @espivc/ming-metaphysics-mcp
```

### Step 3 — Add to `claude_desktop_config.json`

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "ming": {
      "command": "ming-metaphysics-mcp",
      "args": [],
      "env": {
        "MING_API_URL": "http://localhost:8000"
      }
    }
  }
}
```

Restart Claude Desktop. The Ming tools will appear in the tools list.

### Verification

In Claude Desktop:

```
Using the ming_bazi_analyze tool, analyze the chart for someone born 1990-03-15, male, in Singapore.
```

You should get a full BaZi reading. If the tool errors, verify the Python engine is running at port 8000.

---

## Endpoint Gaps

The following capabilities require FastAPI expansion before they fully function as specified. Each is flagged with a note in the tool response — no silent failures.

| Gap | Affected Tool | Required FastAPI Change |
|---|---|---|
| **Annual flying star map for a specific year** | `ming_fengshui_flying_stars` | `/consult` needs a `year` query parameter to compute annual stars for years other than current |
| **`forecast_year` parameter** | `ming_full_forecast` | `/consult` computes annual analysis against the current year internally; it does not accept a target year |
| **Full ISO casting_timestamp** | `ming_iching_cast` | `/iching-cast` accepts `date` (YYYY-MM-DD) and `hour_branch` separately, not an ISO 8601 timestamp; only the date portion is forwarded |
| **`goal: "bazi"/"qmdj"/"zwds"` routing** | All individual tools | The spec assumed `/consult` would accept engine-name goals, but the real endpoint uses purpose goals (`wealth/career/health/relationship/general`). Individual tools route to dedicated per-engine endpoints instead (`/analyze`, `/zwds`, `/qmdj`, `/iching-cast`) |

To implement year-specific flying stars or forecast_year support, add those parameters to `/consult` in `api/main.py` and update the corresponding tool handlers here.

---

## Development

```bash
git clone <this-repo>
cd ming-metaphysics-mcp
npm install
npm run build          # compile TypeScript → dist/
npm test               # smoke tests (no engine required)

# With engine running at localhost:8000:
npx ts-node scripts/benchmark.ts --tool all --iterations 5
```

### Environment variables

| Variable | Default | Description |
|---|---|---|
| `MING_API_URL` | `http://localhost:8000` | Base URL of the Ming FastAPI engine |

### Latency targets

| Tool | Target |
|---|---|
| `ming_bazi_analyze` | < 3s |
| `ming_qmdj_direction` | < 3s |
| `ming_fengshui_flying_stars` | < 3s |
| `ming_zwds_chart` | < 5s |
| `ming_full_forecast` | < 5s |
| `ming_iching_cast` | < 3s |

If any tool exceeds 5s consistently, check the engine bottleneck and consider adding `timeout: 10000` to the MCP config.

---

## Auth

None at the wrapper level — this server is open-source and free (MIT
license). Authentication, if any, is enforced by whatever endpoint
`MING_API_URL` points at.

---

## For a complete five-engine reading

A guided five-engine consultation (BaZi + ZWDS + QMDJ + Feng Shui + I Ching
synthesised by Master Chen) is available via Ming's Telegram bot. Link will
be published once the bot is in public beta.

---

## Privacy

This MCP wrapper itself does not collect data. It forwards your tool
arguments (birth date, hour, gender, question text) to whichever
`MING_API_URL` you configured. If you point at a hosted endpoint, that
endpoint receives the data — read its privacy policy. If you self-host,
nothing leaves your network.

Birth data is sensitive. If you're configuring this for end users, be
explicit about which endpoint receives their inputs.

---

## Project status

This package is at version `1.0.0`. The MCP protocol surface (6 tools, JSON
schemas, response shapes) is stable. The underlying Ming engine evolves
faster — minor numeric changes in tool responses are normal.

Contributions welcome — see `CONTRIBUTING.md`.

---

## License

MIT — see `LICENSE`.

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool covers a distinct metaphysical system (BaZi, Feng Shui, I Ching, QMDJ, ZWDS) plus a combined forecast, with no overlapping purposes.

Naming Consistency5/5

All tools follow a consistent 'ming_system_action' pattern in snake_case, e.g., ming_bazi_analyze, ming_iching_cast.

Tool Count5/5

With 6 tools covering the main systems of Chinese metaphysics, the count is well-scoped and appropriate for the server's purpose.

Completeness5/5

The tool set covers all major Chinese metaphysical systems (BaZi, ZWDS, QMDJ, Feng Shui, I Ching) and includes a combined forecast, leaving no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues