Falcı Hatun MCP Server

Falcı Hatun MCP Server

Provides real astrology and tarot computations using actual ephemeris and a 78-card deck, returning structured data such as natal charts, synastry, transits, and tarot draws without relying on an LLM for astrological facts.

Category
访问服务器

README

Falcı Hatun — Astrology & Tarot Engine

An OKX.AI A2MCP service. It returns facts, not prose — because the agent calling it is already a language model.

Most "AI astrology" products bolt an LLM onto a vague prompt and let it improvise the sky. This one does the opposite. Falcı Hatun computes the chart with a real ephemeris and hands the agent structured truth: every planet's longitude, sign, house and retrograde state; every aspect with its orb; every transit bisected to the exact moment it perfects; the drawn cards and their meanings.

The agent writes the reading. That split is the whole design — and it means this service needs no LLM of its own: no API key, no vendor bill, no rate limit, and an answer that is byte-identical every time you ask.

Agent  →  "birth data"  →  Falcı Hatun  →  the actual sky  →  Agent writes the reading

Tools

Tool What it returns
natal_chart Sun, Moon, Ascendant, Midheaven, 10 planets (sign, degree, house, retrograde), 12 house cusps, all major aspects with orbs.
synastry Real cross-aspects between two charts, scored across four dimensions using classical significators, plus house overlays.
transits When transiting planets form exact aspects to a person's natal placements — a dated timeline, searched from the ephemeris.
sky_ahead Real New/Full Moons, real retrograde stations, real sign ingresses. Every date solved for.
tarot_draw A full 78-card Turkish Rider-Waite deck, shuffled and dealt, upright/reversed, with meanings. Seedable for reproducibility.
reference Signs, planets, aspect orbs, spreads, and every recognised birthplace.

Chart engine: astronomy-engine (JPL-grade positions) + luxon (IANA timezone rules, so historical DST is handled rather than assumed). House system: Equal — stated in the response, because a chart that hides its house system cannot be verified.

Bilingual by construction

This grew out of a Turkish app, and OKX.AI is a global marketplace. A tool that answers "Kılıç Dokuzlusu: kaygı, endişe, uykusuzluk" to an English-speaking agent has not really answered.

So nothing is replaced — everything is doubled. Every sign, planet, aspect, spread position and card meaning ships in both languages on the same response:

{ "name": "Boğa",           "en": "Taurus", "element": "toprak", "elementEn": "earth" }
{ "name": "Kılıç Dokuzlusu", "nameEn": "Nine of Swords",
  "meaning":   "kaygı, endişe, uykusuzluk, kabuslar",
  "meaningEn": "anxiety, worry, sleeplessness, nightmares" }

The agent replies in whichever language the person used — the MCP instructions tell it so. All 78 cards, both orientations, are covered; a test asserts there are no gaps. Turkish stays first-class: it is the original, and it is the market this was built for.


What was fake, and what is real now

This engine grew out of Falcı Hatun, a shipped Turkish astrology app. Porting it surfaced two features that were not doing what they claimed.

Compatibility was a hash of the partner's name.

const seed = hash(partner.name + partner.date);
emotional:     40 + (seed % 60),
communication: 40 + ((seed >> 3) % 60),
attraction:    40 + ((seed >> 6) % 60),

Change one letter of the name and "emotional compatibility" moved. Neither chart was ever consulted. synastry now computes actual cross-aspects — Venus to Mars, Moon to Saturn, the whole grid — weighted by classical significators and orb exactness. There is a test that asserts renaming a person does not move the score, and that changing their birth date does.

The transit timeline was six hardcoded events.

{ days: 7,  title: 'Merkür Retrosu Başlıyor' }
{ days: 14, title: 'Boğa Burcunda Dolunay' }

Fixed offsets from today, identical for every user. Mercury was not necessarily stationing; the Moon was not necessarily full; nobody's chart was involved. sky_ahead and transits now search the ephemeris and bisect to the exact moment — and a test checks that consecutive new moons come out one synodic month apart (~29.53 days), which a hardcoded list could never satisfy.


It tells you what it doesn't know

A reading that looks authoritative and is quietly wrong is worse than no reading.

Unknown birthplace → error, not a guess. The original silently fell back to { lat: 39.0, lon: 35.0 } — the geographic centre of Turkey — for any city it didn't recognise. The ascendant and every house cusp depend on latitude and longitude, so an unrecognised birthplace produced a confident, wrong chart. Now it raises UnknownPlaceError and suggests near-matches. Explicit latitude/longitude work anywhere on Earth.

No birth time → the chart says so. Without a time, the ascendant, the midheaven and every house placement rotate a full circle every 24 hours. Falcı Hatun still returns the chart, but the caveats field states plainly which parts are unusable, and the MCP instructions tell the calling agent not to speak about them. Transits to the Ascendant are omitted entirely rather than invented.

A dimension with no planetary contacts scores null, not a number. If two people have no Moon–Venus contact, the emotional score is absent — not filled in with something plausible.


Run it

npm install
npm test        # 60 assertions
npm run dev     # http://localhost:8788/mcp

Deploy

vercel --prod

Your MCP endpoint is https://<your-domain>/api/mcp — that HTTPS URL is what you register with OKX.AI.

Call it

curl -X POST https://<your-domain>/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
        "name":"natal_chart",
        "arguments":{"date":"1990-05-15","time":"09:30","place":"İzmir"}}}'
{
  "sun":    { "name": "Boğa",  "degree": 24.17, "element": "toprak" },
  "moon":   { "name": "Oğlak", "degree": 12.4 },
  "rising": { "name": "Yengeç" },
  "planets": [
    { "name": "Merkür", "sign": { "name": "Boğa" }, "house": 10, "retrograde": true },
    { "name": "Plüton", "sign": { "name": "Akrep" }, "house": 5, "retrograde": true }
  ],
  "aspects": [
    { "from": "Güneş", "to": "Ay", "aspectTr": "üçgen", "orb": 0.16, "exactness": 0.977 }
  ],
  "houseSystem": "equal",
  "caveats": []
}

Pricing

Free.

Relationship to the Falcı Hatun app

This is a separate, standalone service. The mobile app is untouched — its Cloudflare Worker, its prompts and its reading flows are not used, not called, and not modified. What was carried over is the data layer (the 78-card Turkish deck, the zodiac table, the city coordinates) and the astrology mathematics, rebuilt for Node and corrected where it was wrong.

MIT.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选