mcpField
S
Stellara

Stellara

远程服务
mcp.mystellara.com游戏娱乐01 周前更新

关于 Stellara

Stellara 是免费的只读占星 MCP 服务,为希望以通俗语言阅读本命盘和行运解读的人提供服务。它还可生成星盘图像和名人匹配,文本为手工编写,不调用 LLM。

主要功能

  1. 01太阳星座与生命灵数解读
  2. 02含行星位置和相位的本命盘
  3. 03今日或一周的行运解读
  4. 04星盘比较与名人匹配
  5. 05PNG 和 SVG 星盘图像

适用场景

  1. 01获取易懂的本命盘解读
  2. 02查看指定日期范围的行星行运
  3. 03制作星盘图像或分享名人匹配结果

MCP 相关

Stellara 通过 `/mcp` 上的无状态 Streamable HTTP MCP 接口提供占星工具。响应包含结构化内容和文本,星盘工具还可返回图像内容。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.mystellara.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Stellara MCP(免费)

面向 Stellara 的免费只读 MCP 服务。无需登录,无需付费,也不使用数据库。变体 B:输出以“Made by Stellara. For self-reflection, not predictions.”(荷兰语:“Gemaakt door Stellara. ...”)结尾,且不包含指向 mystellara.com 的链接。图片和分享链接使用 MCP 自有主机(mcp.mystellara.com),且仅包含计算得出的星盘数据,绝不包含出生数据。

名称、描述和字段描述位于 src/config.ts;所有输出文本位于 src/copy.ts。

此代码库也是一个 Cursor 插件:.cursor-plugin/plugin.json、mcp.json(指向 https://mcp.mystellara.com/mcp)、skills/stellara-reading/SKILL.md、assets/logo.svg。使用 npm run validate-plugin 检查。

端点

方法路径说明
POST/mcp通过 Streamable HTTP 提供 MCP(无状态,JSON 响应)
GET/health{"status":"ok","version":"..."}
GET/简短的纯文本信息

GET/DELETE /mcp 返回 405(无会话,也没有 SSE 流)。

星盘图片

使用 ?id=<id>(可选 lang=nl)访问 GET /chart.png 和 GET /chart.svg,可获取完整的本命星盘图片(1400x1000):奶油色背景、带彩色星座符号和度数刻度的黄道环、带编号和宫头度数的 Placidus 宫位区段、As/Ds/Mc/Ic、带度数的行星符号、相位线(绿色表示和谐,红色表示紧张)、元素和性质百分比,以及显示位置和宫头的侧边表格。PNG 使用 resvg-js(MPL-2.0,未经修改)和捆绑的 DejaVu Sans 字体(位于 fonts/,免费许可)渲染,因此符号在任何地方看起来都一样。与 /mcp 使用相同的速率限制,每次请求时计算,不存储任何内容。id 为随机值(128 位);计算得出的渲染数据保存在服务端的内存 LRU 中(30 天,最多 20,000 条;如果 CHART_STORE_DIR 是可写卷,也可选择保存到磁盘)。URL 和图片中均不包含个人信息。未知或过期的 id 会返回 404;仅存于内存的链接在重启后将失效。旧的 ?date= 格式会被拒绝(400)。get_birth_chart 会将此 URL 作为 chart_image_url 返回,并将星盘作为 PNG 图片内容块返回(宽 1000 px;MCP 主机对 SVG 图片内容块会报错“Could not find MIME for Buffer”)。

在 X 上分享

get_birth_chart 和 compare_charts(带 celebrity 参数时)会返回 share_url(包含文本和分享页面的 X 发帖意图,不会包含 @标签)、share_page_url 和 share_image_url。

  • GET /s/match?t=…、GET /s/chart?t=…:分享页面,包含 og:* 和 twitter:card=summary_large_image、简短文本,以及一个指向 mystellara.com 的按钮。
  • GET /match.png?t=…、GET /chart-card.png?t=…:1200x675 卡片。
  • 令牌 t 是 base64url JSON,仅包含计算结果(星座索引、取整至整度的行星黄经、分数、名人的公开姓名)。不包含出生日期、时间或地点。不会存储或记录任何内容。

名人

compare_charts 接受 celebrity(姓名、X 用户名或其拼写错误)来替代 person_b,并返回趣味匹配结果:分数(40 到 98)、一句话简介、普通句子、用于 X 的分享文本(链接至 mystellara.com),以及一则说明结果并不代表任何人的私生活的提示。list_celebrities(query?) 会列出可用对象。

data/celebrities.json 收录 X 上关注者数量最多的 1000 位真实人物,由 scripts/build_celebrities.py 构建:排名依据 Wikidata 的关注者数量(P8687,带 X 用户 ID 限定符,仅限真人),出生日期 P569(精确到日),出生地 P19(含坐标),并与 Grokipedia 交叉核验。每条记录都注明各字段的来源和置信度(high = 双方一致,medium = 一个来源,low = 存在冲突,会在输出中标记)。仅在已公布出生证明的情况下才提供出生时间(Obama、Trump);其他人仅提供日期(明确说明没有上升星座或宫位)。Wikidata 采用 CC0 许可。

阅读风格

星盘和行运文本面向刚接触占星学的人:不写度数、相位名称或“上升点”,句子简短,主要解读最多 6 行。所有技术数据(位置、度数、宫位、带容许度的相位、行运确切日期)均位于 structuredContent 中。

工具

  • get_sun_sign_reading(birth_date, language?, voice?):根据简易日期表确定太阳星座,并计算毕达哥拉斯生命灵数,提供简短的手写风格文本;默认使用第三人称(voice: "second_person" 会直接对读者说话)。在太阳换座当天及前一天,会说明星座取决于出生时间。
  • create_christmas_star_card(birth_date, recipient_name?, language?):生成节日贺卡,包含文本和一张 Stellara 配色的 SVG 图片(1080x1350)。
  • get_birth_chart(birth_date, birth_time?, birth_place? | latitude+longitude+timezone, language?):提供太阳至冥王星的实际位置(热带黄道、星座、度数、逆行)、带容许度的主要相位(合相/对冲 8°、三分相/四分相 7°、六分相 5°),以及简短的性格解读。仅在同时提供出生时间和地点时,才提供上升点、中天和 Placidus 宫位(极圈以北使用整宫制;Einstein 的宫头与 astro.com/astrotheme 一致)。未提供时间时使用当地时间 12:00,不计算月亮相位;如果月亮在当天换座,则会特别标注。chart_image_url 仅包含随机 ID 和语言。末尾附有页脚。
  • get_transits(birth data, date?, period? = today|week, language?):提供 UTC 时间窗口(当天或从 date 起的 7 天)的中点时刻行星位置,以及行运(太阳至冥王星,不含月亮)与本命行星形成的相位:个人行星容许度为 2°,外行星为 1.5°,或在窗口内形成精确相位;若日期在 ±10/45 天内,还会提供确切的 UTC 日期。
  • compare_charts(person_a, person_b, language?):进行比较盘分析;包含至少涉及一颗个人行星的星盘间相位(容许度为标准值的 75%),按个人行星之间的相位优先排序,并附上数量统计和简短总结。

出生地点:使用包含全球约 171,000 个地点的离线地名数据库(来自 GeoNames cities1000,涵盖所有人口不少于 1000 的城镇),也可直接提供 latitude、longitude 和 IANA timezone。匹配时不区分大小写和重音符号(Zurich = Zürich),支持别名和荷兰语名称(Den Haag、Den Bosch、Keulen、Luik),也接受地点提示,例如 "Hengelo, Gelderland"、"Springfield, Illinois"、"Ootmarsum, Nederland"。优先采用官方名称,其次按人口排序。地点名称有歧义时(例如 Springfield),工具会返回错误,并列出前 5 个候选项及其地区和国家,供助手询问。不会调用外部地理编码服务,因此地点信息不会离开服务端。

地名数据库由 scripts/build-gazetteer.mjs 预处理为 data/gazetteer.tsv.gz(4.5 MB:名称、别名、国家、地区、纬度、经度、时区、人口)。启动后约 1 秒即可加载完毕(总 RSS 约为 210 MB)。

地点数据:GeoNames,依据 CC BY 4.0 授权。 详见 data/NOTICE.md。星盘输出会在 place.source 和备注中注明数据来源。当地时间使用 luxon 和 IANA 数据库进行转换,因此能够处理历史夏令时(例如,1975 年荷兰没有夏令时)。

准确性

位置数据来自 astronomy-engine(MIT,基于 VSOP87 / ELP):日期对应的视地心黄道经度。测试将全部十个天体的位置与 JPL Horizons(quantity 31)在 1990-06-01 12:00 UT 和 1879-03-14 10:50 UT 的数据进行比较:最大差异为 0.0016°。Einstein(Ulm,1879-03-14 11:30 LMT)的上升点 / 中天结果为巨蟹座 11°38' / 双鱼座 12°50',与 astro.com 相同。

前两个工具只需要 birth_date(YYYY-MM-DD,也支持 DD-MM-YYYY)这一项输入。language:en(默认)或 nl。所有工具都会返回与其 outputSchema 匹配的 structuredContent(sun_sign、life_path_number、reading / card_text、disclaimer 等),并在文本块中返回相同的 JSON。日期无效时,工具结果会包含 isError: true,而不是协议错误。内容仅供个性特征与自我反思,不作预测。只有 get_birth_chart 会提及 mystellara.com,且只提及一次。所有文本均为固定的手写内容;不会调用大模型。

数据处理

不会存储任何内容。没有数据库、文件、请求日志或分析数据。出生日期和姓名仅用于生成响应,请求结束后即会丢弃。速率限制器会将客户端 IP 保存在内存中,最长不超过一分钟,用于统计请求次数;绝不会写入或记录该 IP。唯一的日志行是启动消息。

安全性

  • 故意不进行身份验证:服务没有账户、密钥或用户数据,因此通过 IP 限制请求速率来提供保护。这是有意偏离 MCP「SHOULD authenticate」指南的做法。
  • 对 /mcp 进行来源检查(DNS 重绑定保护):没有 Origin 标头的请求(正常的 MCP 客户端请求)会被允许;浏览器请求仅在来自 localhost 或 ALLOWED_ORIGINS 中列出的来源(以逗号分隔)时允许。其他请求会收到 403。
  • 对输入进行验证(zod,限制最大长度);SVG 中的姓名会进行 XML 转义。

速率限制

/mcp 上每个 IP 每分钟最多 30 个请求(环境变量 RATE_LIMIT_PER_MINUTE)。超出限制时返回 HTTP 429。

运行

npm ci && npm run build && npm start        # PORT defaults to 8080
npm test                                    # node:test, no extra framework
npm run license-check                       # fails on non MIT/BSD/Apache/ISC deps
npx @modelcontextprotocol/inspector --cli http://localhost:8080/mcp --transport http --method tools/list

部署(Railway)

使用 Dockerfile(健康检查 /health)。平台会设置 PORT。无需密钥或环境变量。

许可证

MIT。依赖项仅限 MIT、BSD、Apache-2.0、ISC 和 MPL-2.0(仅使用未修改的 resvg-js)。不含 kerykeion、Swiss Ephemeris 或其他 (A)GPL 代码。太阳星座解读使用日期表;星盘工具使用 astronomy-engine(MIT)和 luxon(MIT)。地点数据来自 GeoNames(CC BY 4.0)。

内部:免费星盘渲染(用于 stellara-reports)

POST /render/free-chart 会返回一张竖版 PNG(1080 × 1350,品牌配色,Cormorant / Inter,使用 fonts/ 中的 OFL 字体)和三大星座,用于免费星盘邮件。只有在设置了 FREE_CHART_RENDER_SECRET(至少 16 个字符)时,此接口才会启用;调用方必须在 X-Render-Secret 中发送该密钥,否则返回 404。出生数据仅放在 POST 请求体中,绝不会出现在 URL 中,也不会被记录或存储。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。