内容
# 不知道就问天 MCP 服务器
[](https://github.com/douglasgan/asktian-mcp/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@asktian/mcp-server)
[](LICENSE)
[](https://glama.ai/mcp/servers/douglasgan/asktian-mcp)
> **中国玄学融入您的 AI 助手。**
> 不知道就问天 · 当你不知道时问天。
为任何支持**模型上下文协议**的 AI 代理添加 4000 年的中国玄学传统(八字、奇门、五行、每日干支能量)作为可调用的工具 - Claude Desktop、Claude Code、Cursor、Windsurf、Zed 和任何 MCP 兼容的客户端。
当您向 AI 助手询问时间、人或决策问题时,它可以悄悄地咨询不知道就问天,然后再回答。
**AI 代理的决策层。** 代理已经接入搜索、记忆和支付 - 不知道就问天是赋予他们**立场**的层:一个具体的、可验证的调用,而不是 *"这取决于..."* → [为什么它有用](docs/POSITIONING.md) · [2 分钟快速入门](docs/quickstart.md)
> ### ✨ 真实的读取,**无需密钥。**
>
> 工具调用实时的不知道就问天后端并返回**真实**结果 - 每日黄历、命运兼容性、名称分析、日能量 - 直接开箱使用。读取端点是**公共和限速的**(~300 请求 / 15 分钟)。一个**可选的** `ASKTIAN_API_KEY` ([api.asktian.com](https://api.asktian.com))提高限制并解锁**高级 `tian.*` 读取层**。`market_read` 是一个确定性的本地新颖信号;`best_time` 返回一个有指导的预览(暂无后端端点)。
```
你: "我明天 3 点要与老板进行一次艰难的对话。我应该推迟吗?"
Claude (带有不知道就问天 MCP):
→ 调用 asktian_best_time_for_action({ birthdate, action: "difficult_conversation" })
→ "星期五 10 点的评分要高得多。明天 3 点是你的冲突时辰。是否要我帮你起草一封重新安排的邮件?"
```
---
## 安装
```bash
npm install -g @asktian/mcp-server
```
然后将其添加到客户端的 MCP 配置中:
### Claude Desktop
编辑 `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)或 `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"asktian": {
"command": "asktian-mcp",
"env": {
"ASKTIAN_API_KEY": "at_live_xxxxxxxxxxxxxxxx"
}
}
}
}
```
重启 Claude Desktop。查找 🔌 图标 - 不知道就问天应该会出现,带有 6 个工具。
### Cursor
添加到 `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"asktian": {
"command": "asktian-mcp",
"env": {
"ASKTIAN_API_KEY": "at_live_xxxxxxxxxxxxxxxx"
}
}
}
}
```
### Windsurf
添加到 `~/.codeium/windsurf/mcp_config.json` - 形状与上述相同。
### Zed
在 `assistant.mcp_servers` 下添加到您的 Zed 设置中 - 相同的命令 + 环境变量。
### 任何其他 MCP 客户端
将 `asktian-mcp` 作为子进程运行;它通过 stdio 以 JSON-RPC 协议与 [MCP 规范](https://spec.modelcontextprotocol.io) 进行通信。
### 远程 / 主机(可流式 HTTP)
对于 LangChain、LlamaIndex、Fetch.ai 或任何连接到托管 MCP 端点的代理,在 HTTP 模式下运行服务器,而不是 stdio:
```bash
ASKTIAN_MCP_HTTP=1 PORT=8080 npx -y @asktian/mcp-server
# → 在 :8080/mcp 上启用流式 HTTP (健康检查:GET :8080/health)
```
托管在 **`https://mcp.asktian.com/mcp`**。将您的密钥作为 Bearer 头部传递:
`Authorization: Bearer YOUR_ASKTIAN_API_KEY`.
### LangChain & LlamaIndex
两者都有原生的 MCP 适配器 - 不知道就问天无需额外的集成代码即可使用。复制粘贴 **[docs/langchain-llamaindex.md](docs/langchain-llamaindex.md)** 中的代码片段。
---
## API 密钥
**密钥是可选的 - 读取结果无论如何都是真实的。**
| | 🆓 **无密钥** (默认) | 🔑 **有密钥** |
|---|---|---|
| 设置 | 无需设置 - 立即生效 | 在 [api.asktian.com](https://api.asktian.com) 获取密钥 |
| 读取结果 | **真实** - 实时的 api.asktian.com 后端(每日黄历、兼容性、名称分析、日能量) | 相同的真实读取结果 |
| 速率限制 | ~**300 请求 / 15 分钟** (每个 IP) | **更高的限制** |
| 高级 `tian.*` 层 | - | **解锁** |
| 成本 | **免费** | 按密钥计划计费 |
**使用密钥** (更高的限制 + 高级层),请在客户端配置中设置 `ASKTIAN_API_KEY`:
```jsonc
{
"mcpServers": {
"asktian": {
"command": "npx",
"args": ["-y", "@asktian/mcp-server"],
"env": { "ASKTIAN_API_KEY": "at_live_..." } // ← 省略此行以保持本地模式
}
}
}
```
托管(流式 HTTP)?请将其作为头部传递:`Authorization: Bearer at_live_...`.
---
## 6 个工具
### 1. `asktian_daily_reading`
个人每日能量读取。
```
输入: { birthdate: "1992-05-15", birth_hour?: "14:30", gender?: "male"|"female"|"any" }
输出: archetype (八卦之一),今日干支能量,有利颜色 / 方向 / 小时,标题 + 正文建议
```
**使用场景:** 用户询问今天会如何,穿什么颜色的衣服,面向哪个方向的办公桌,每日指导。
### 2. `asktian_compatibility`
两人之间的命运兼容性。返回定性标签(例如 *"互补型 Complementary"*),然后是数值评分(如果 <60,根据不知道就问天的设计原则隐藏 - 避免低兼容性评分让人感到被拒绝)。
```
输入: { person_a_birthdate, person_b_birthdate, dimension?: "love"|"career"|"friend"|"general" }
输出: 定性标签,类别,元素流动,今日建议,评分(带有 should_show_score 标志)
```
**使用场景:** "这两个人会合作得好吗?", "兼容性检查", "这是一个好的匹配吗?"
### 3. `asktian_best_time_for_action`
最吉利的时机窗口。找到特定行动在接下来的 N 天内最合适的时机。
```
输入: { birthdate, action: "difficult_conversation"|"negotiation"|"launch"|... , range_days?: 7 }
输出: 前 3 个最佳时机窗口(日期 + 小时 + 评分 + 原因),应避免的时机窗口
```
**使用场景:** "我什么时候应该做 X", "我应该推迟这个会议吗?", "明天是启动产品的吉日吗?", "我什么时候应该进行艰难的对话?"
### 4. `asktian_today_energy`
当日的一般能量 - 无需出生日期。
```
输入: { date?: "YYYY-MM-DD" } (默认为今日)
输出: 干支,五行主导,描述
```
**使用场景:** AI 想要在建议中添加宇宙背景,而无需用户的出生日期。
### 5. `asktian_name_analysis`
名称的快速能量概况(姓名学)。
```
输入: { name, language?: "en"|"zh"|"auto" }
输出: 主导元素猜测,音调,一句话总结
```
**使用场景:** 讨论婴儿名字、公司名称或 "X 是什么样的人"(当出生日期未知时)。
### 6. `asktian_market_read`
二进制预测市场问题的中国玄学信号(Polymarket/Kalshi 风格)。
```
输入: { question, resolve_date?: YYYY-MM-DD, subject_birthdate?: YYYY-MM-DD }
输出: { signal: { lean: yes|no|neutral, score 5–95, confidence }, reasoning, disclaimer }
```
**使用场景:** 用户或交易代理想要对市场问题进行**无关**、娱乐性的读取 - "X 会在 Y 日期发生吗?"。该值不是预测;它是一个**确定性的信号,不读取相同的新闻,每个 LLM 都读取过**,因此可以随着时间推移对调用进行评分。
⚠️ **娱乐 / 可验证的仪式 - 不是财务建议。** 每个回答都这么说,该工具的设计是作为新颖事物呈现,而不是作为投注建议。
---
## 工具设计原则
不知道就问天是有主见的。MCP 工具通过 `note_for_ai` 字段将这些约束暴露给您的 AI 代理。值得注意的规则:
1. **定性标签始终优先。** 数值是次要的。
2. **低于 60 的分数隐藏数值。** 只使用标签 - 永远不要让某人因数字而感到被拒绝。
3. **最积极准确的框架。** 同一张图表可以有 5 种解读方式;选择尊重个人的解读方式。
4. **今日建议具体,不模糊。** "在 2 点前联系" 胜过 "水星逆行。"
如果您的 AI 客户端在 `should_show_score: false` 时显示数值评分,则违反了设计合同。
---
## 示例 - 调用不知道就问天的样本提示
这些是安装不知道就问天的 AI 代理可以更好地处理的典型用户提示:
| 用户提示 | AI 将使用的工具 |
|---|---|
| *"今天对我来说会如何? 出生于 1992-05-15。"* | `asktian_daily_reading` |
| *"我明天 3 点有一个与困难客户的会议。我应该推迟吗?"* | `asktian_best_time_for_action` |
| *"我的伴侣出生于 1990-08-22,我出生于 1992-05-15。我们作为一对情侣怎么样?"* | `asktian_compatibility` |
| *"今天是什么样的日子?"* | `asktian_today_energy` |
| *" 'Aurora' 是否适合我的公司名称?"* | `asktian_name_analysis` |
| *"最佳的产品发布时机? 我的出生日期是..."* | `asktian_best_time_for_action` |
| *"我应该这个月向我的伴侣求婚吗? 我的出生日期是 1992-05-15,他们的出生日期是 1990-08-22。"* | `asktian_best_time_for_action` + `asktian_compatibility` |
代理在每个案例中的回答变得具体且可行,而不是模糊的。
---
## 路线图
- [ ] 直接与完整的 api.asktian.com 端点目录集成(奇门,紫微,风水,姓名分析传统)
- [ ] 我附近的好地方(Google Places 集成)
- [ ] 天点 / $TIAN 代币激励,用于大力推广
- [ ] 场地 / 业务工具:"这个地址对咖啡馆来说是吉祥的吗?"
- [ ] 多传统交叉参考(西方占星术,吠陀,I Ching)- 同一个人,多个镜头
欢迎提交合并请求。lib/ 文件夹故意自成体系,以便于 npm 分发。
---
## 链接
- **API & 文档(可选密钥 - 更高的限制 + 高级层):** [api.asktian.com](https://api.asktian.com)
- **$TIAN 代币 + 钱包:** [wallet.asktian.com](https://wallet.asktian.com)
- **源码:** [github.com/douglasgan/asktian-mcp](https://github.com/douglasgan/asktian-mcp)
---
## 许可证
MIT - 任意使用,分叉,发布到您的产品中。
不知道就问天协议旨在成为公共基础设施。
不知道就问天.