y83 projects / 03 / python + mcp

PyJHora MCP — предметная область вместо «модель придумает»

работает · 2026

Без такого сервера агент рассуждает о картах по памяти и выдумывает. Здесь каждое утверждение опирается на вычисление: даши, транзиты, йоги, совместимость, сила планет — всё считается библиотекой и возвращается как типизированные данные, а не как текст модели. Методология вынесена отдельно: 284 правила йог и 8 дош лежат в справочнике, который агент читает, вместо того чтобы пересказывать по памяти.

инструментов
96 MCP
подсерверов
18 FastMCP
тестов
193 pytest
строк
8 284 Python

инструменты агента

Как библиотека превращается в проверяемые инструменты

Задача

Дать ИИ-агенту предметную область, которой у него нет. Модель не считает эфемериды — она их выдумывает. Значит, нужно взять чужую библиотеку, упаковать её в инструменты и закрыть тестами.

Решение

MCP-сервер отвечает за вычисления, скилл — за методологию: когда какой инструмент применять и в каком порядке читать карту. Смешивать это в один документ на 200 страниц было бы ошибкой — разделение слоёв здесь принципиально.

Следствие

Отдельная сложность — развернуть всё на устройстве, где нельзя собрать нативное: Termux без Rust и clang. Решение: готовые бинарники и эфемериды в комплекте с идемпотентным установщиком.

инструменты

96 инструментов, 16 модулей

Сгруппированы по предметным блокам — так же, как их удобно вызывать.

Расчёт

Панчанга · 10

титхи, накшатра, йога, карана, ваара; восход/заход; Раху Калам; мухурты; ведический календарь; праздники; чогхадия.

  • almanac

Карты · 7

раси-карта, все варги D2–D60, специальные лагны, аштакаварга, бхава-карта.

  • chart

Даша · 16

вимсоттари, йогини, аштоттари, нараяна, чара, калачакра, судэса и ещё; текущий период и drill-down по суб-периодам.

  • dasha

Сила · 3

шадбала, бхава-бала, вимшопака-бала.

  • strength

Интерпретация

Йоги и доши · 4

284 правила йог, 8 классических дош, раджа-йоги, расширенные йоги по варгам.

  • yoga

КП (KP) · 6

под-лорды, куспи, событийные предсказания, KP-значимость.

  • kp

Транзиты · 6

гочара, алерты, текущие позиции, аштакаварга транзита, дабл-транзит.

  • transit

Продвинутые · 12

караки Джаймини, спхуты, арудхи, прашна, сгорание, пушкара, марана-карака, аспекты.

  • advanced

Астрология по времени

Тайка и варшафал · 7

лорд года и месяца, мунта, варша-правеш, мааса-правеш, таджака-йоги.

  • annual

Коррекция времени рождения

BTR по известным событиям: джаныма-шуддхи, лагна-шуддхи, накшатра-шуддхи и подбор времени по совпадению даш.

  • btr

Артефакты и сервис

Готовые результаты

полное чтение карты одной командой, натальный отчёт, HTML-отчёт, PNG-карты в двух школах.

  • report

Тайминг под задачу

календарь благоприятных дней по пяти факторам, отдельный инструмент под бизнес, свадьбу, переезд, покупку, учёбу.

  • muhurta

Инфраструктура

поиск города, панчанга, восход/заход, календарь стрижки.

  • utility

как работает

Как агент пользуется этим

01

Вопрос

Пользователь спрашивает агента о карте или прогнозе.

02

Инструмент

Агент вызывает MCP-инструмент — тот считает, а не додумывает.

03

Методика

Скилл задаёт порядок чтения: лагна → лагнеш → Луна → Солнце → дома → йоги → варги → даша → транзиты.

04

Артефакт

Карта, отчёт или прогноз собираются в готовый файл.

результаты

96

MCP-инструментов

95 уникальных имён
193

теста pytest

19 файлов, ~1 950 строк
2 164

строки скиллов

2 SKILL.md + 7 справочников
18

подсерверов FastMCP

смонтированы в один

Цифры сверены с кодом проекта 2026-09-30.

артефакты

Что возвращает сервер

Не текст в чате, а результат, который можно показать или отправить.

листайте вбок · 5 экранов

PNG-карта D1

PNG-карта D1

южная школа

PNG-карта D9

PNG-карта D9

северная школа

HTML-отчёт

HTML-отчёт

таблицы и графики

Справочник инструментов

Справочник инструментов

скилл на 798 строк

Методика аналитика

Методика аналитика

скилл на 528 строк + 7 справочников

технологии

Из чего собрано

Язык

  • Python 3.12+
  • type hints
  • Pydantic v2

MCP

  • FastMCP (slim)
  • 18 подсерверов
  • stdio + HTTP

Астрономия

  • PyJHora 4.8.7
  • Swiss Ephemeris
  • ayanamsa LAHIRI

Тесты и упаковка

  • pytest 193
  • hatchling
  • вендор .so под Termux

этапы

Что сделано и что дальше

этап 1

Сервер v1.0

96 инструментов, 18 подсерверов, транспорт stdio и HTTP

этап 2

Скиллы

справочник по инструментам и методика астролога

этап 3

Автономное развёртывание без тулчейна

вендоринг 10 бинарных пакетов (.so) под ARM64/Termux, поставка 100 файлов эфемерид, идемпотентный install.sh и 193 теста pytest при 0 нативных сборок

вопросы

Частые вопросы

Зачем это, если астрология не работает как наука?

Ценность проекта не в астрологии. Инженерный приём: взять чужую тяжёлую библиотеку, разложить на 96 тестируемых инструментов и развернуть на устройстве, где сборка нативных зависимостей невозможна.

Как решена проблема сборки нативных C/Rust-зависимостей в Termux?

Колёса cryptography под Android с PyPI собраны под NDK и падают в Termux с ошибкой dlopen, а сборка из исходников требует clang и Rust. Поэтому сервер использует fastmcp-slim без криптографических extras, а 10 готовых бинарных пакетов с .so и 100 файлов эфемерид ставятся из vendor/ до запуска pip. Установка проходит с нулём компиляций.

Как это проверяется?

193 теста проверяют, что сервер действительно считает, а не красиво отвечает. Это про воспроизводимость вычислений, а не про красоту текста.

PyJHora MCP

Есть вопрос по проекту?

Галлюцинации LLM в точных расчётах убираются не промптом, а архитектурой: тяжёлая вычислительная Python-библиотека упакована в 96 типизированных MCP-инструментов (18 подсерверов FastMCP, Pydantic v2) и закрыта внешней базой правил — 2 164 строки скиллов и справочников. Плюс 193 теста pytest на сами вычисления.

@xipovski xipovski@gmail.com
следующий проект Y83 Games