这是一个使用Node.js和TypeScript构建的专业级模型上下文协议(MCP)服务器,用于Rider-Waite塔罗牌阅读。该服务器通过MCP协议和HTTP API端点提供了全面的塔罗功能,包括基于研究的解释和高级阅读分析。
{
"command": "npx",
"args": ["tarot-mcp-server@latest"],
"env": {
"NODE_ENV": "production"
}
}
✅ 完全实现并运行:
这里是一个专业的凯尔特十字阅读示例:
{
"question": "今年我对职业道路应该知道什么?",
"cards": [
{"position": "当前情况", "card": "皇帝(正位)", "meaning": "领导机会和职业晋升"},
{"position": "挑战", "card": "恋人(逆位)", "meaning": "职业生涯选择不当或职场冲突"},
{"position": "基础", "card": "权杖ACE(正位)", "meaning": "创意火花和新机会"},
// ... 再有7张牌
],
"analysis": {
"elementalBalance": "强烈的火元素表明需要行动和创造力",
"positionDynamics": "意识目标与潜意识驱动一致",
"energyFlow": "从挑战到解决的进展",
"guidance": "相信你的领导能力,同时解决人际关系冲突"
}
}
展示的关键特性:
我们的服务器提供11种专门的塔罗布局,设计用于不同的生活领域和精神实践:
每个布局都包括:
| 特性 | 这个服务器 | 基本塔罗API | 普通卡片阅读器 |
|---|---|---|---|
| 基于研究的准确性 | ✅ 经过专业来源验证 | ❌ 通用含义 | ❌ 简化的解释 |
| 高级分析 | ✅ 元素、数字、原型 | ❌ 基本卡片含义 | ❌ 单层解释 |
| 上下文感知 | ✅ 根据问题特定含义 | ❌ 一刀切 | ❌ 通用响应 |
| 专业布局 | ✅ 凯尔特十字动力学 | ❌ 简单布局 | ❌ 基本定位 |
| MCP集成 | ✅ 本地MCP+HTTP/SSE | ❌ HTTP仅 | ❌ 有限协议 |
| 生产就绪 | ✅ Docker、健康检查、监控 | ❌ 基本部署 | ❌ 开发重点 |
| 类型安全性 | ✅ 完整TypeScript | ❌ 仅JavaScript | ❌ 最小类型 |
克隆并安装
git clone https://git.moraxcheng.me/Morax/tarot-mcp.git
cd tarot-mcp
npm install
构建项目
npm run build
作为MCP服务器运行(标准I/O)
npm start
# 或
node dist/index.js
作为HTTP服务器运行
npm run start:http
# 或
node dist/index.js --transport http --port 3000
开发模式
npm run dev:http # 带热重载的HTTP服务器
npm run dev # 带热重载的标准I/O服务器
快速部署脚本
chmod +x deploy.sh
./deploy.sh
手动Docker构建
npm run docker:build
npm run docker:run
Docker Compose
npm run docker:compose
# 或
docker-compose up -d
使用Traefik(可选)
docker-compose --profile traefik up -d
在HTTP模式下运行时,以下端点可用:
GET /health - 包含服务状态的健康检查GET /api/info - 服务器信息、能力和可用工具GET /api/cards - 列出所有卡片,带有过滤选项
?category=all|major_arcana|minor_arcana|wands|cups|swords|pentaclesGET /api/cards/:cardName - 获取详细的卡片信息
?orientation=upright|reversed(默认:正位)POST /api/reading - 执行全面的塔罗阅读
{
"spreadType": "single_card|three_card|celtic_cross|horseshoe|relationship_cross|career_path|decision_making|spiritual_guidance|year_ahead|chakra_alignment|shadow_work",
"question": "您的具体问题在这里",
"sessionId": "用于跟踪的可选会话ID"
}
POST /api/custom-spread - 创建并执行自定义塔罗布局
{
"spreadName": "您的自定义布局名称",
"description": "此布局探讨的内容",
"positions": [
{
"name": "位置名称",
"meaning": "此位置代表的内容"
}
],
"question": "您的具体问题",
"sessionId": "可选会话ID"
}
GET /api/spreads - 列出所有可用的布局类型及其描述GET /sse - 供MCP客户端使用的Server-Sent Events端点POST /mcp - 用于直接协议通信的基于HTTP的MCP端点服务器提供8种全面的MCP工具,用于专业塔罗阅读和分析:
get_card_info获取特定塔罗牌的综合信息,包括象征、占星学和数理学。
{
"cardName": "愚者",
"orientation": "正位"
}
返回:适用于一般、爱情、职业、健康和精神背景的详细卡片意义。
list_all_cards列出所有可用的塔罗牌,带有过滤和分类。
{
"category": "major_arcana|minor_arcana|wands|cups|swords|pentacles|all"
}
返回:带有关键词和简要描述的组织卡片列表。
perform_reading执行具有高级解释分析的专业塔罗阅读。
{
"spreadType": "single_card|three_card|celtic_cross|horseshoe|relationship_cross|career_path|decision_making|spiritual_guidance|year_ahead|chakra_alignment|shadow_work",
"question": "今年我对职业道路应该知道什么?",
"sessionId": "可选会话ID"
}
特性:
search_cards使用各种标准(如关键词、花色、元素等)搜索塔罗牌。
{
"keyword": "爱情",
"suit": "杯子",
"arcana": "小阿卡纳",
"element": "水",
"orientation": "正位",
"limit": 10
}
特性:
find_similar_cards查找给定卡片的相似意义的卡片。
{
"cardName": "愚者",
"limit": 5
}
特性:
get_database_analytics获取关于塔罗牌数据库的全面分析和统计数据。
{
"includeRecommendations": true
}
特性:
get_random_cards获取随机卡片,带有可选过滤,用于练习和探索。
{
"count": 3,
"suit": "权杖",
"arcana": "大阿卡纳",
"element": "火"
}
特性:
create_custom_spread创建自定义塔罗布局并为其抽牌。当没有现有的布局适合特定需求时,非常适合AI。
{
"spreadName": "AI决策制定布局",
"description": "一种自定义布局,旨在帮助AI在没有现有布局适合的情况下做出决策",
"positions": [
{
"name": "当前状况",
"meaning": "需要解决的现状"
},
{
"name": "隐藏影响",
"meaning": "影响情况的未见因素"
},
{
"name": "指导",
"meaning": "最佳决策的智慧和建议"
}
],
"question": "在这种独特情况下,最好的方法是什么?",
"sessionId": "可选会话ID"
}
特性:
node dist/index.js [选项]
选项:
--transport <类型> 传输类型:标准I/O、HTTP、SSE(默认:标准I/O)
--port <数字> HTTP/SSE传输端口(默认:3000)
--help, -h 显示帮助信息
NODE_ENV - 环境(开发/生产)PORT - 服务器端口(默认:3000)添加到您的Cursor mcp.json:
{
"mcpServers": {
"tarot": {
"command": "npx",
"args": ["tarot-mcp-server@latest"]
}
}
}
或者对于本地开发:
{
"mcpServers": {
"tarot": {
"command": "node",
"args": ["/path/to/tarot-mcp/dist/index.js"]
}
}
}
对于支持HTTP MCP的客户端:
{
"mcpServers": {
"tarot": {
"url": "http://localhost:3000/mcp"
}
}
}
对于支持Server-Sent Events的客户端:
{
"mcpServers": {
"tarot": {
"url": "http://localhost:3000/sse"
}
}
}
curl -X POST http://localhost:3000/api/reading \
-H "Content-Type: application/json" \
-d '{
"spreadType": "single_card",
"question": "今天我应该拥抱什么样的能量?"
}'
特性:元素分析、每日指导、精神洞察
curl -X POST http://localhost:3000/api/reading \
-H "Content-Type: application/json" \
-d '{
"spreadType": "three_card",
"question": "如何改善我的关系?"
}'
特性:过去/现在/未来的流动,能量进展分析
curl -X POST http://localhost:3000/api/reading \
-H "Content-Type: application/json" \
-d '{
"spreadType": "celtic_cross",
"question": "今年我对职业道路应该知道什么?"
}'
特性:10张牌的全面分析,位置动力学,意识与潜意识