RoxyAPI MCPサーバー
コミット 2026年11月7日Provides a Dart and Flutter SDK to integrate astrology, Vedic astrology, tarot, numerology, and human design into applications and AI agents.
別名 RoxyAPI/sdk-dart
- スター
- 0
- ツール
- —
- ダウンロード数(30日間)
- —
- 最新バージョン
- —
- 最終コミット
- 2026年11月7日
- ライセンス
- MIT
RoxyAPI MCPとは
RoxyAPIはMCPサーバーです。 Provides a Dart and Flutter SDK to integrate astrology, Vedic astrology, tarot, numerology, and human design into applications and AI agents.
プロジェクトのREADMEから生成された概要
RoxyAPI MCP server について
Integrating spiritual and astrological data into Flutter applications or Dart backends is what this SDK enables. It provides a single interface to access over 18 different domains, including Western astrology, Vedic astrology, tarot, numerology, and human design. Developers can use one API key to pull diverse data such as natal charts, daily horoscopes, synastry, and kundli generation.
The SDK is designed for ease of use with fully typed responses and a location service that handles geocoding for over 5 million cities. This ensures that users do not have to manually enter coordinates, as the server resolves timezones and DST offsets automatically. It is particularly useful for building agentic AI tools, wellness apps, or matrimonial matching services.
Users connect via a single subscription to Roxy, which manages all requests through the SDK. The system includes specialized namespaces for various traditions like Chinese astrology, Feng Shui, I-Ching, and Ayurveda. It also offers tools for generating branded PDF or HTML reports based on the retrieved astrological data.
できること
- 1Perform Vedic astrological analysisDevelopers can implement kundli generation and detailed panchang data for astrological apps.
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
README
GitHubで見るroxyapi
Dart and Flutter SDK for astrology, Vedic astrology, numerology, tarot, and more.
One API key. Fully typed. Verified against NASA JPL Horizons.
The fastest way to add natal charts, daily horoscopes, synastry, Vedic kundli, tarot spreads, numerology, human design bodygraphs, and transit forecasts to Flutter apps, Dart backends, and AI agents. 18+ domains behind a single Roxy subscription, interpretations in 10+ languages.
Install
dart pub add roxyapi
# or
flutter pub add roxyapi
Start with one call
Get real product value with a single typed call. No setup beyond your API key.
import 'dart:io';
import 'package:roxyapi/roxyapi.dart';
Future<void> main() async {
final roxy = Roxy(Platform.environment['ROXY_API_KEY'] ?? '');
final horoscope = await roxy.astrology.getDailyHoroscope(sign: Sign.aries);
print('${horoscope.overview} Lucky number ${horoscope.luckyNumber}');
}
Then expand into charts, compatibility, numerology, tarot, and more.
Quick start
// Step 1: geocode the birth city once. Every chart endpoint takes these three values.
final places = await roxy.location.searchCities(q: 'London');
final place = places.cities.first;
print('${place.city}, ${place.country}: ${place.timezone}');
// Step 2: a Western natal chart. The timezone is the IANA name from the lookup; the server
// resolves it to the DST-correct offset for the date of the chart.
final chart = await roxy.astrology.generateNatalChart(
date: '1990-01-15',
time: '14:30:00',
latitude: place.latitude,
longitude: place.longitude,
timezone: NumOrString.string(place.timezone),
);
// `planets` is a list: find a body by its `name`.
final moon = chart.planets.firstWhere((p) => p.name == 'Moon');
print('Moon in ${moon.sign}, ${chart.ascendant.sign} rising');
// Step 3: the same birth as a Vedic kundli. Same inputs, sidereal zodiac.
final kundli = await roxy.vedicAstrology.generateBirthChart(
date: '1990-01-15',
time: '14:30:00',
latitude: place.latitude,
longitude: place.longitude,
timezone: NumOrString.string(place.timezone),
);
// `meta` is keyed by graha; its `nakshatra` is an object, so read `name`.
final vedicMoon = kundli.meta['Moon'];
print('Rashi ${vedicMoon?.rashi}, nakshatra ${vedicMoon?.nakshatra.name}');
Roxy sets the base URL (https://roxyapi.com/api/v2) and sends the key and an SDK identification header on every request. Every method returns the typed response and throws RoxyException on a 4xx or 5xx (see Error handling). A network failure (DNS, timeout, connection reset) is not an API error: it throws the HTTP client exception, so catch it where that matters. Call close() when you are done with the client.
Domains
| Namespace | What it covers |
|---|---|
roxy.astrology |
Western astrology API for natal birth charts, daily, weekly, monthly, and yearly horoscopes with unique content per s... |
roxy.vedicAstrology |
Vedic astrology (Jyotish) and KP API for kundli generation with the sixteen Shodasavarga divisional charts (D1 to D60... |
roxy.forecast |
Astrology forecast API that merges upcoming transit aspects, sign ingresses, retrograde stations, new and full moons,... |
roxy.humanDesign |
Human Design API that generates the full bodygraph from a birth moment: type, strategy, inner authority, profile, def... |
roxy.chineseAstrology |
Chinese zodiac and BaZi astrology API: Four Pillars charts, Chinese zodiac signs and the Chinese lunisolar calendar f... |
roxy.fengShui |
Compute classical feng shui from one API: Xuan Kong flying star natal charts for any of the nine periods and 24 mount... |
roxy.mesoamericanAstrology |
Calculate Mayan astrology day signs, the Tzolkin sacred round, the Haab year, the full Long Count and the Aztec tonal... |
roxy.vastu |
Vastu Shastra API for directional home and plot analysis: entrance padas with the classical effect of each of the 32... |
roxy.numerology |
Numerology API for life path numbers, complete numerology charts and compatibility, in both Pythagorean and Chaldean... |
roxy.kabbalah |
Kabbalah API for gematria, the 72 names, the Tree of Life and the Hebrew birthday |
roxy.tarot |
Tarot reading API with the complete 78-card Rider-Waite-Smith deck and card meanings for love, career, health, and sp... |
roxy.biorhythm |
Biorhythm API for entertainment and reflection, with 10 model cycle types across 3 primary (physical, emotional, inte... |
roxy.ayurveda |
Ayurveda API for dosha profiles, the dinacharya daily routine and the ritucharya seasonal regimen, with a verse cited... |
roxy.iching |
I-Ching oracle API with all 64 hexagrams, 384 changing lines, 8 trigrams, and modern interpretations for love, career... |
roxy.crystals |
Crystal healing API covering the most popular and widely-searched healing crystals and gemstones, from Amethyst and R... |
roxy.dreams |
Dream interpretation API with a 2,200+ symbol dream dictionary and psychological meanings covering animals, objects,... |
roxy.angelNumbers |
Angel numbers API with meanings for 111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, and 75+ sequences covering eve... |
roxy.location |
Timezone and location API with city search and geocoding across 5,180,000+ cities, towns and villages in 240+ countri... |
roxy.usage |
Monitor your API usage, check rate limits, and track request consumption |
roxy.reports |
Branded reports built from the API: a natal chart and more as a print-ready PDF, self-contained HTML or Markdown, whi... |
roxy.languages |
List the response languages accepted by the lang query parameter on every i18n-aware endpoint |
Most-used endpoints
The highest-demand endpoints by domain, in the order you are most likely to ship them. Every example below reads the same birth through a different domain, and every coordinate comes from one location lookup at the top: one API key, one lookup, and eighteen domains that compose into a single product instead of eighteen separate ones. Full catalog in the API reference.
Location first: one lookup feeds every chart
Every chart, horoscope, panchang, dasha, dosha, synastry and compatibility endpoint needs latitude, longitude and timezone. Never ask users to type coordinates. Look the city up once and reuse the result in every domain below.
/// One birth: the moment, and the place a city search returned.
final class Birth {
const Birth(this.date, this.time, this.place);
final String date;
final String time;
final SearchCitiesResponseCitiesItem place;
num get latitude => place.latitude;
num get longitude => place.longitude;
/// The IANA name from the city record. The server resolves it to the DST-correct offset
/// for the date of each chart.
NumOrString get timezone => NumOrString.string(place.timezone);
}
Future<(Birth, Birth)> location(Roxy roxy) async {
// One lookup feeds every chart below.
final newYork = await roxy.location.searchCities(q: 'New York');
final birth = Birth('1990-01-15', '14:30:00', newYork.cities.first);
// A second person for the two-chart calls (synastry, Guna Milan, Human Design connection).
final london = await roxy.location.searchCities(q: 'London');
final partner = Birth('1992-07-22', '09:00:00', london.cities.first);
return (birth, partner);
}
1. Western astrology API (natal chart, daily horoscope, synastry)
Natal chart products, daily horoscope features, dating and compatibility apps, and lunar-cycle wellness apps start here.
// Natal chart. The most requested Western call, run once at onboarding.
final natal = await roxy.astrology.generateNatalChart(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print('${natal.ascendant.sign} rising, Sun in ${natal.planets.first.sign}');
// Daily horoscope. The highest per-user call frequency in the catalog.
final horoscope = await roxy.astrology.getDailyHoroscope(sign: Sign.aries);
print('${horoscope.overview} Lucky number ${horoscope.luckyNumber}');
// Synastry. Full inter-aspect analysis between two charts.
final synastry = await roxy.astrology.calculateSynastry(
person1: CalculateSynastryRequestPerson1(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
),
person2: CalculateSynastryRequestPerson2(
date: partner.date,
time: partner.time,
latitude: partner.latitude,
longitude: partner.longitude,
timezone: partner.timezone,
),
);
print('Compatibility ${synastry.compatibilityScore}');
// Moon phase. A zero-setup GET for wellness, cycle-tracking and meditation apps.
final moon = await roxy.astrology.getCurrentMoonPhase();
print('${moon.phase}, ${moon.illumination}% lit, in ${moon.sign}');
2. Vedic astrology API (kundli, panchang, dasha, Guna Milan, KP)
Kundli generators, matrimonial matching, muhurta and panchang apps, and KP practitioners. The same birth, read sidereally.
// Vedic kundli. The same birth read sidereally.
final kundli = await roxy.vedicAstrology.generateBirthChart(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print('Moon in ${kundli.meta['Moon']?.rashi}');
// Detailed panchang. Tithi, nakshatra, yoga, karana and the muhurtas for a date and place.
final panchang = await roxy.vedicAstrology.getDetailedPanchang(
date: '2026-10-01',
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print('Tithi ${panchang.tithi.name}, nakshatra ${panchang.nakshatra.name}');
// Vimshottari dasha. The periods running right now.
final dasha = await roxy.vedicAstrology.getCurrentDasha(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print(
'${dasha.mahadasha.planet} mahadasha, ${dasha.antardasha.planet} antardasha',
);
// Mangal Dosha. The most asked matrimonial check.
final dosha = await roxy.vedicAstrology.checkManglikDosha(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print('Manglik: ${dosha.present}');
// Guna Milan. The 36-point Ashtakoota score behind kundli matching.
final milan = await roxy.vedicAstrology.calculateGunMilan(
person1: CompatibilityRequestPerson1(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
),
person2: CompatibilityRequestPerson2(
date: partner.date,
time: partner.time,
latitude: partner.latitude,
longitude: partner.longitude,
timezone: partner.timezone,
),
);
print('Guna Milan ${milan.total} of 36');
// KP ruling planets. Horary answers at the moment of the question.
final kp = await roxy.vedicAstrology.getKpRulingPlanets(
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
);
print('Day lord ${kp.dayLord}');
3. Astrology forecast API (transit forecast, cross-domain timeline)
Forecast feeds, transit alerts and timing tools. One call returns a dated, significance-scored event list; the timeline variant merges Vedic dasha boundaries and biorhythm critical days into the same list, which no single-domain API can do.
// Transit forecast. Transit-to-natal aspects, sign ingresses and retrograde stations.
final transits = await roxy.forecast.forecastTransits(
birthData: ForecastTransitsRequestBirthData(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
),
startDate: '2026-10-01',
endDate: '2026-10-31',
);
print('${transits.count} transit events');
// Cross-domain timeline. The same window with Vedic dasha boundaries and biorhythm
// critical days merged in.
final timeline = await roxy.forecast.generateTimeline(
birthData: GenerateTimelineRequestBirthData(
date: birth.date,
time: birth.time,
latitude: birth.latitude,
longitude: birth.longitude,
timezone: birth.timezone,
),
startDate: '2026-10-01',
endDate: '2026-10-31',
);
print('First event: ${timeline.events.first.description}');
4. Human Design API (bodygraph, connection)
Self-discovery apps, coaching bots and compatibility products. The full bodygraph is one call, and the Design side is solved on the exact 88-degree solar arc rather than approximated as calendar days.
// Bodygraph. Type, strategy, authority, profile, centers, channels and gates in one call.
final hd = await roxy.humanDesign.generateBodygraph(
date: birth.date,
time: birth.time,
timezone: birth.timezone,
);
print('${hd.type}, ${hd.strategy}, ${hd.authority}, profile ${hd.profile}');
// Connection. Two bodygraphs combined, each channel classified by how the pair forms it.
final connection = await roxy.humanDesign.calculateConnection(
personA: CalculateConnectionRequestPersonA(
date: birth.date,
time: birth.time,
timezone: birth.timezone,
),
personB: CalculateConnectionRequestPersonB(
date: partner.date,
time: partner.time,
timezone: partner.timezone,
),
);
print('${connection.totalChannels} channels');
5. Chinese zodiac API (BaZi four pillars, zodiac animal, almanac)
BaZi readings, zodiac content and Tong Shu date pages. The school splits that make two calculators disagree (dayBoundary, yearBoundary, hourClock) are typed request parameters with named defaults.
// BaZi Four Pillars. Each response echoes the conventions it was computed under.
final bazi = await roxy.chineseAstrology.generateBaziChart(
date: birth.date,
time: birth.time,
timezone: birth.timezone,
);
print('Day master ${bazi.dayMaster.element}, ${bazi.zodiacAnimal}');
// Chinese zodiac animal. Defaults to the Lunar New Year boundary.
final animal = await roxy.chineseAstrology.calculateZodiacAnimal(
date: birth.date,
);
print('${animal.animal.name} (${animal.animal.element})');
// Almanac day. The Tong Shu view of a date.
final almanac = await roxy.chineseAstrology.getAlmanacDay(date: '2026-10-01');
print('Clash animal ${almanac.clashAnimal}');
6. Feng shui API (Kua number, flying star chart)
Kua numbers with the Eight Mansions map, Xuan Kong flying star charts for any of the nine periods and 24 mountains, annual and monthly star plates, and the annual afflictions.
// Kua number. One birth date and a gender give the personal directions.
final kua = await roxy.fengShui.calculateKuaNumber(
date: birth.date,
gender: Gender.female,
);
print('Kua ${kua.kua}, ${kua.group} group');
// Flying star natal chart. Period plus facing gives the nine palaces.
final stars = await roxy.fengShui.generateFlyingStarChart(
period: 9,
facing: GenerateFlyingStarChartFacing.bing,
);
print('Facing ${stars.facing.label}, ${stars.palaces.length} palaces');
7. Mayan astrology API (Tzolkin day sign, full Maya chart)
Maya day signs, the Haab and Long Count, and the Aztec tonalpohualli, every value a function of the date under a typed correlation convention echoed back in conventions.
// Tzolkin day sign. The most asked Maya question, answered from a date alone.
final tzolkin = await roxy.mesoamericanAstrology.calculateTzolkin(
date: birth.date,
);
print('${tzolkin.number} ${tzolkin.daySignName}');
// Full Maya chart. Tzolkin, Haab, Long Count, Calendar Round and Year Bearer.
final maya = await roxy.mesoamericanAstrology.generateMayanChart(
date: birth.date,
);
print('Long Count ${maya.longCount.formatted}');
8. Vastu Shastra API (entrance analysis, room compliance)
Home and plot analysis from typed geometry. Every verdict carries a source object naming the text, chapter and verse it rests on, or a convention label where the texts are silent.
// Entrance analysis. Plot, facing and door in; the pada, its devata and the effect out.
final entrance = await roxy.vastu.calculateEntrancePada(
plot: CalculateEntrancePadaRequestPlot(
width: 30,
depth: 40,
unit: Unit.feet,
),
facing: GenerateEightMansionsFacing.north,
doorPosition: 0.4,
);
print('Pada ${entrance.pada}, ${entrance.devata?.name}: ${entrance.effect}');
// Room compliance. A verdict per room with the verse or convention it rests on.
final rooms = await roxy.vastu.calculateRoomCompliance(
plot: CalculateRoomComplianceRequestPlot(
width: 30,
depth: 40,
unit: Unit.feet,
),
facing: GenerateEightMansionsFacing.north,
rooms: [
CalculateRoomComplianceRequestRoomsItem(
type: CalculateRoomComplianceType.kitchen,
direction: Direction.southeast,
),
CalculateRoomComplianceRequestRoomsItem(
type: CalculateRoomComplianceType.puja,
direction: Direction.northeast,
),
],
);
print('Score ${rooms.score}, kitchen ${rooms.rooms.first.verdict}');
9. Numerology API (life path, full chart, personal year)
Works from the birth date and name alone, no coordinates, which makes it the easiest domain to integrate.
// Life Path. The most searched numerology number, from the birth date alone.
final lifePath = await roxy.numerology.calculateLifePath(
year: 1990,
month: 1,
day: 15,
);
print('Life Path ${lifePath.number} (${lifePath.type})');
// Full numerology chart. The core numbers, karmic lessons and pinnacles in one call.
final chart = await roxy.numerology.generateNumerologyChart(
fullName: 'Jane Smith',
year: 1990,
month: 1,
day: 15,
);
print('Expression ${chart.coreNumbers.expression.number}');
// Personal Year. The annual theme.
final personalYear = await roxy.numerology.calculatePersonalYear(
month: 1,
day: 15,
year: 2026,
);
print('Personal Year ${personalYear.personalYear}: ${personalYear.theme}');
10. Kabbalah API (gematria, birth profile)
Gematria of a Latin name under a declared transliteration convention, the 72 names, the Tree of Life, and a Hebrew birthday computed from the same birth instant as every chart above.
// Gematria. A Latin name transliterated under a declared convention, ten ciphers.
final gematria = await roxy.kabbalah.calculateGematria(text: 'Sarah');
print(
'${gematria.chosen.hebrew}: ${gematria.values.first.name} ${gematria.values.first.value}',
);
// Birth profile. The Hebrew date, the three birth angels and the birth sephirah.
final profile = await roxy.kabbalah.generateBirthProfile(
date: birth.date,
time: birth.time,
timezone: birth.timezone,
);
print('Hebrew date ${profile.hebrewDate.day} ${profile.hebrewDate.month}');
11. Tarot API (daily card, three-card, Celtic Cross, yes or no)
The complete 78-card deck with meanings for love, career, health and spirit. Pass a seed per user for deterministic once-per-day draws.
// Daily card. The same seed and date always return the same card.
final daily = await roxy.tarot.getDailyCard(seed: 'user-42');
print('${daily.card.name}${daily.card.reversed ? ' (reversed)' : ''}');
// Three-card spread. Past, present, future.
final three = await roxy.tarot.castThreeCard(
question: 'My next quarter',
seed: 'user-42',
);
for (final position in three.positions) {
print('${position.name}: ${position.card.name}');
}
// Celtic Cross. The ten-position professional reading.
final celtic = await roxy.tarot.castCelticCross(
question: 'What should I focus on?',
);
print(celtic.summary);
// Yes or no. One card, one answer, with its strength.
final answer = await roxy.tarot.castYesNo(
question: 'Should I take the offer?',
);
print('${answer.answer} (${answer.strength}), ${answer.card.name}');
12. Biorhythm API (reading, forecast)
Ten cycle types across primary, secondary and extended cycles, for wellness, productivity, sports and couples apps.
// Biorhythm reading. All ten cycles for a date.
final reading = await roxy.biorhythm.getReading(
birthDate: birth.date,
targetDate: '2026-10-01',
);
print(
'Physical ${reading.cycles['physical']?.value}, energy ${reading.energyRating}',
);
// Forecast. Every cycle for every day of a window, with the best and worst days named.
final window = await roxy.biorhythm.getForecast(
birthDate: birth.date,
startDate: '2026-10-01',
endDate: '2026-10-31',
);
print('Best day ${window.summary.bestDay}');
RoxyAPI MCPのよくある質問
What can I build with RoxyAPI?
You can add natal charts, daily horoscopes, synastry, Vedic kundli, tarot spreads, numerology, human design bodygraphs, and transit forecasts to your apps.
How do I install the SDK?
You can install it using dart pub add roxyapi or flutter pub add roxyapi.