Ayurveda MCP Server by RoxyAPI
What this MCP does
Provides Ayurvedic dosha, qualities, tastes, constitution, daily routine, and seasonal regimen information and calculations.
Tools
Input schema
{'type': 'object', 'examples': [{'latitude': 51.5074, 'longitude': -0.1278}], 'required': ['latitude', 'longitude'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-06-21', 'description': 'Reading date in YYYY-MM-DD format. Past and future dates are both supported, for editorial scheduling and backfill. Defaults to the current day in the timezone parameter.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 51.5074, 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees. It sets how long the day and the night actually are, which is what the dosha periods are cut from.'}, 'timezone': {'type': 'string', 'example': 'Europe/London', 'description': 'Selects which day counts as current when date is omitted, and which local day sunrise is computed for. Defaults to UTC, so the reading rolls over at 00:00 UTC. Accepts an IANA name (e.g. "Europe/London"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").'}, 'longitude': {'type': 'number', 'example': -0.1278, 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees. It sets the clock time of sunrise at this place.'}}}
Output schema
{'type': 'object', 'required': ['date', 'sunrise', 'sunset', 'brahmaMuhurta', 'doshaPeriods', 'ritu', 'doshaCycle', 'summary', 'sources', 'conventions', 'meta'], 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'ritu': {'type': 'object', 'required': ['id', 'sanskritName', 'gloss', 'start', 'end', 'ayana', 'phase', 'strength', 'tasteIncreasing'], 'properties': {'id': {'type': 'string'}, 'end': {'type': 'string'}, 'ayana': {'type': 'string'}, 'gloss': {'type': 'string'}, 'phase': {'type': 'string'}, 'start': {'type': 'string'}, 'strength': {'type': 'string'}, 'sanskritName': {'type': 'string'}, 'tasteIncreasing': {'type': 'string'}}}, 'sunset': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}, 'summary': {'type': 'string'}, 'sunrise': {'type': 'string'}, 'doshaCycle': {'type': 'array', 'items': {'type': 'object', 'required': ['dosha', 'state'], 'properties': {'dosha': {'type': 'string'}, 'state': {'type': 'string'}}}}, 'conventions': {'type': 'object', 'required': ['doshaClock', 'ritucharyaScheme', 'rituZodiac', 'hemisphere'], 'properties': {'doshaClock': {'type': 'string'}, 'hemisphere': {'type': 'string'}, 'rituZodiac': {'type': 'string'}, 'ritucharyaScheme': {'type': 'string'}}}, 'doshaPeriods': {'type': 'array', 'items': {'type': 'object', 'required': ['dosha', 'start', 'end', 'span'], 'properties': {'end': {'type': 'string'}, 'span': {'type': 'string'}, 'dosha': {'type': 'string'}, 'start': {'type': 'string'}}}}, 'brahmaMuhurta': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}}}}
Input schema
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'limit': {'type': 'integer', 'default': 3, 'example': 3, 'maximum': 3, 'minimum': 1, 'description': 'Maximum items to return per page. Range: 1-3, default 3.'}, 'offset': {'type': 'integer', 'default': 0, 'example': 0, 'minimum': 0, 'description': 'Number of items to skip for pagination. Default 0.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
Output schema
{'type': 'object', 'required': ['total', 'limit', 'offset', 'doshas', 'sources', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'limit': {'type': 'number'}, 'total': {'type': 'number'}, 'doshas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'alsoCalled', 'element', 'modernElementPair', 'qualities', 'qualityGunas', 'seats', 'specialSeat', 'seatsVariant', 'functions', 'subDoshas', 'states', 'source'], 'properties': {'id': {'type': 'string'}, 'seats': {'type': 'array', 'items': {'type': 'string'}}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'states': {'type': 'object', 'required': ['balanced', 'accumulating', 'aggravated', 'settlesWith', 'source'], 'properties': {'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'balanced': {'type': 'string'}, 'aggravated': {'type': 'string'}, 'settlesWith': {'type': 'string'}, 'accumulating': {'type': 'string'}}}, 'element': {'type': 'string'}, 'functions': {'type': 'array', 'items': {'type': 'string'}}, 'qualities': {'type': 'array', 'items': {'type': 'string'}}, 'subDoshas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'seat', 'function', 'source'], 'properties': {'id': {'type': 'string'}, 'seat': {'type': 'string'}, 'moves': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'function': {'type': 'string'}, 'devanagari': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}, 'alsoCalled': {'type': 'array', 'items': {'type': 'string'}}, 'devanagari': {'type': 'string'}, 'specialSeat': {'type': 'string'}, 'qualityGunas': {'type': 'array', 'items': {'type': 'string'}}, 'sanskritName': {'type': 'string'}, 'seatsVariant': {'type': 'string'}, 'modernElementPair': {'type': 'string'}}}}, 'offset': {'type': 'number'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}}}
Input schema
{'type': 'object', 'examples': [{'id': 'vata'}], 'required': ['id'], 'properties': {'id': {'enum': ['vata', 'pitta', 'kapha'], 'type': 'string', 'example': 'vata', 'description': 'Dosha identifier, case-insensitive. One of vata, pitta or kapha.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
Output schema
{'type': 'object', 'required': ['dosha', 'sources', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'dosha': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'alsoCalled', 'element', 'modernElementPair', 'qualities', 'qualityGunas', 'seats', 'specialSeat', 'seatsVariant', 'functions', 'subDoshas', 'states', 'source'], 'properties': {'id': {'type': 'string'}, 'seats': {'type': 'array', 'items': {'type': 'string'}}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'states': {'type': 'object', 'required': ['balanced', 'accumulating', 'aggravated', 'settlesWith', 'source'], 'properties': {'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'balanced': {'type': 'string'}, 'aggravated': {'type': 'string'}, 'settlesWith': {'type': 'string'}, 'accumulating': {'type': 'string'}}}, 'element': {'type': 'string'}, 'functions': {'type': 'array', 'items': {'type': 'string'}}, 'qualities': {'type': 'array', 'items': {'type': 'string'}}, 'subDoshas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'seat', 'function', 'source'], 'properties': {'id': {'type': 'string'}, 'seat': {'type': 'string'}, 'moves': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'function': {'type': 'string'}, 'devanagari': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}, 'alsoCalled': {'type': 'array', 'items': {'type': 'string'}}, 'devanagari': {'type': 'string'}, 'specialSeat': {'type': 'string'}, 'qualityGunas': {'type': 'array', 'items': {'type': 'string'}}, 'sanskritName': {'type': 'string'}, 'seatsVariant': {'type': 'string'}, 'modernElementPair': {'type': 'string'}}}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}}}
Input schema
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'limit': {'type': 'integer', 'default': 10, 'example': 10, 'maximum': 10, 'minimum': 1, 'description': 'Maximum items to return per page. Range: 1-10, default 10.'}, 'offset': {'type': 'integer', 'default': 0, 'example': 0, 'minimum': 0, 'description': 'Number of items to skip for pagination. Default 0.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
Output schema
{'type': 'object', 'required': ['total', 'limit', 'offset', 'rule', 'pairs', 'sources', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'rule': {'type': 'string'}, 'limit': {'type': 'number'}, 'pairs': {'type': 'array', 'items': {'type': 'object', 'required': ['number', 'a', 'b'], 'properties': {'a': {'type': 'object', 'required': ['id', 'sanskritName', 'english', 'action', 'actionSanskrit', 'doshas'], 'properties': {'id': {'type': 'string'}, 'action': {'type': 'string'}, 'doshas': {'type': 'array', 'items': {'type': 'string'}}, 'english': {'type': 'string'}, 'sanskritName': {'type': 'string'}, 'actionSanskrit': {'type': 'string'}}}, 'b': {'type': 'object', 'required': ['id', 'sanskritName', 'english', 'action', 'actionSanskrit', 'doshas'], 'properties': {'id': {'type': 'string'}, 'action': {'type': 'string'}, 'doshas': {'type': 'array', 'items': {'type': 'string'}}, 'english': {'type': 'string'}, 'sanskritName': {'type': 'string'}, 'actionSanskrit': {'type': 'string'}}}, 'note': {'type': 'string'}, 'number': {'type': 'number'}}}}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}}}
Input schema
{'type': 'object', 'examples': [{}], 'properties': {'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'limit': {'type': 'integer', 'default': 6, 'example': 6, 'maximum': 6, 'minimum': 1, 'description': 'Maximum items to return per page. Range: 1-6, default 6.'}, 'offset': {'type': 'integer', 'default': 0, 'example': 0, 'minimum': 0, 'description': 'Number of items to skip for pagination. Default 0.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}}}
Output schema
{'type': 'object', 'required': ['total', 'limit', 'offset', 'strengthOrder', 'rasas', 'matrix', 'sources', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'limit': {'type': 'number'}, 'rasas': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'textForm', 'english', 'elements', 'decreases', 'increases'], 'properties': {'id': {'type': 'string'}, 'english': {'type': 'string'}, 'elements': {'type': 'array', 'items': {'type': 'string'}}, 'textForm': {'type': 'string'}, 'decreases': {'type': 'array', 'items': {'type': 'string'}}, 'increases': {'type': 'array', 'items': {'type': 'string'}}, 'devanagari': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}, 'total': {'type': 'number'}, 'matrix': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['decreasedBy', 'increasedBy'], 'properties': {'decreasedBy': {'type': 'array', 'items': {'type': 'string'}}, 'increasedBy': {'type': 'array', 'items': {'type': 'string'}}}}}, 'offset': {'type': 'number'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}, 'strengthOrder': {'type': 'array', 'items': {'type': 'string'}}}}
Input schema
{'type': 'object', 'examples': [{'date': '1990-07-04', 'time': '10:12:00', 'latitude': 28.6139, 'longitude': 77.209}], 'required': ['date', 'time', 'latitude', 'longitude'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '1990-07-04', 'description': 'Birth date in YYYY-MM-DD format. It sets the sidereal positions the whole reading is built from, so an approximate date gives an approximate constitution.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'time': {'type': 'string', 'format': 'time', 'example': '10:12:00', 'description': 'Birth time in 24-hour HH:MM:SS format. The rising sign turns roughly every two hours and carries the heaviest weight of the three factors, so time is the input a reading is most sensitive to.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'ayanamsa': {'enum': ['kp-newcomb', 'kp-old', 'lahiri', 'raman', 'custom'], 'type': 'string', 'default': 'lahiri', 'example': 'lahiri', 'description': 'Sidereal frame the chart is cast in. "lahiri" is the traditional Vedic standard used by most software and is the default. "raman" sits about 1.45 degrees below it. "kp-newcomb" and "kp-old" are the two Krishnamurti Paddhati frames. "custom" takes your own value in degrees via ayanamsaValue. The frame rotates the whole zodiac, so a graha within 1.45 degrees of a boundary can change rashi when you switch, which moves both sign factors of the reading.'}, 'latitude': {'type': 'number', 'example': 28.6139, 'maximum': 90, 'minimum': -90, 'description': 'Birth latitude in decimal degrees. It sets the local sidereal time behind the rising sign, and it feeds the strength of each graha through the sunrise at that place.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 5.5, 'example': 5.5, 'description': 'Timezone as an IANA name such as "Asia/Kolkata", or as decimal hours from UTC such as 5.5. An IANA name is resolved to the offset in force on the birth date, so a summer-time birth is placed correctly. Defaults to 5.5.'}, 'longitude': {'type': 'number', 'example': 77.209, 'maximum': 180, 'minimum': -180, 'description': 'Birth longitude in decimal degrees. It sets the local sidereal time behind the rising sign, together with the latitude.'}, 'ayanamsaValue': {'type': 'number', 'example': 24, 'description': 'Custom sidereal frame value in degrees. Required when ayanamsa is "custom" and ignored otherwise. Use it to reconcile exactly against a specific reference program.'}, 'signDoshaScheme': {'enum': ['satyacharya', 'bphs'], 'type': 'string', 'default': 'satyacharya', 'example': 'satyacharya', 'description': 'Which classical sign table the rising sign and the Moon sign are read through. "satyacharya" is the twelve-sign extract appended to Brihat Jataka 18.20, carried in two independent public-domain translations that agree on all twelve rows, and is the default. "bphs" is the Brihat Parasara Hora Sastra rule by elemental triplicity. The two agree exactly on three signs of twelve, overlap in part on seven, and share no humour at all on Scorpio or Sagittarius, so the choice can change the reading outright and is echoed in the response.'}}}
Output schema
{'type': 'object', 'required': ['frame', 'lagnaSign', 'moonSign', 'factors', 'composite', 'strengthRanking', 'planetDoshas', 'summary', 'conventions', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'frame': {'type': 'object', 'required': ['ayanamsa', 'ayanamsaDegrees'], 'properties': {'ayanamsa': {'type': 'string'}, 'ayanamsaDegrees': {'type': 'number'}}}, 'factors': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'input', 'doshas', 'weight', 'source'], 'properties': {'id': {'type': 'string'}, 'input': {'type': 'string'}, 'doshas': {'type': 'array', 'items': {'type': 'string'}}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'weight': {'type': 'number'}}}}, 'summary': {'type': 'string'}, 'moonSign': {'type': 'string'}, 'composite': {'type': 'object', 'required': ['vata', 'pitta', 'kapha', 'dominant', 'secondary', 'type', 'convention', 'weighting'], 'properties': {'type': {'type': 'string'}, 'vata': {'type': 'number'}, 'kapha': {'type': 'number'}, 'pitta': {'type': 'number'}, 'dominant': {'type': 'string'}, 'secondary': {'type': 'string'}, 'weighting': {'type': 'object', 'required': ['lagnaSign', 'moonSign', 'strongestPlanet', 'strongPlanetThreshold', 'dualTypeMargin'], 'properties': {'moonSign': {'type': 'number'}, 'lagnaSign': {'type': 'number'}, 'dualTypeMargin': {'type': 'number'}, 'strongestPlanet': {'type': 'number'}, 'strongPlanetThreshold': {'type': 'number'}}}, 'convention': {'type': 'string'}}}, 'lagnaSign': {'type': 'string'}, 'conventions': {'type': 'object', 'required': ['signDoshaScheme', 'ayanamsa'], 'properties': {'ayanamsa': {'type': 'string'}, 'signDoshaScheme': {'type': 'string'}}}, 'planetDoshas': {'type': 'array', 'items': {'type': 'object', 'required': ['graha', 'sanskritName', 'doshas', 'dhatu', 'dhatuSanskrit', 'doshaSource', 'dhatuSource'], 'properties': {'dhatu': {'type': 'string'}, 'graha': {'type': 'string'}, 'doshas': {'type': 'array', 'items': {'type': 'string'}}, 'dhatuSource': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'doshaSource': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'sanskritName': {'type': 'string'}, 'dhatuSanskrit': {'type': 'string'}}}}, 'strengthRanking': {'type': 'array', 'items': {'type': 'object', 'required': ['graha', 'totalVirupas', 'rank', 'strong'], 'properties': {'rank': {'type': 'number'}, 'graha': {'type': 'string'}, 'strong': {'type': 'boolean'}, 'totalVirupas': {'type': 'number'}}}}}}
Input schema
{'type': 'object', 'examples': [{'date': '2026-06-21', 'latitude': 51.5074, 'longitude': -0.1278}], 'required': ['date', 'latitude', 'longitude'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-06-21', 'description': 'The local calendar date, in YYYY-MM-DD format. Sunrise and sunset are computed for this date at the given place, and the whole routine follows from them, so the answer changes through the year at any latitude away from the equator.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'latitude': {'type': 'number', 'example': 51.5074, 'maximum': 90, 'minimum': -90, 'description': 'Latitude in decimal degrees. It sets how long the day and the night actually are, which is the whole difference between this and a printed timetable: at 51 north in June the day runs about sixteen and a half hours and its thirds are five and a half hours each.'}, 'timezone': {'anyOf': [{'type': 'number', 'maximum': 14, 'minimum': -14}, {'type': 'string'}], 'default': 0, 'example': 'Europe/London', 'description': 'Timezone as an IANA name such as "Europe/London", or as decimal hours from UTC such as 5.5. An IANA name is resolved to the offset in force on the requested date, and on the clock-hour grid at the local hour each block opens, so on a daylight-saving change every block keeps its printed hour and one that falls in the skipped hour moves forward past it. It decides which local day is meant and, on the clock-hour grid, where the blocks fall. Defaults to 0.'}, 'longitude': {'type': 'number', 'example': -0.1278, 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees. It sets the clock time of sunrise at this place.'}, 'doshaClock': {'enum': ['sunrise-anchored', 'clock-hours'], 'type': 'string', 'default': 'sunrise-anchored', 'example': 'sunrise-anchored', 'description': 'How the six dosha periods are cut. "sunrise-anchored" divides the actual day and the actual night at this place into thirds, which is the division the frame chapter states, and is the default. "clock-hours" is the modern grid of six four-hour blocks from six in the morning; no classical text assigns clock hours, and the grid is only exact at an equinox near the equator. Both sets are returned whichever is chosen, so a caller can show one and reconcile against the other.'}}}
Output schema
{'type': 'object', 'required': ['date', 'sunrise', 'sunset', 'nextSunrise', 'brahmaMuhurta', 'doshaPeriods', 'alternatePeriods', 'routine', 'summary', 'sources', 'conventions', 'meta'], 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'sunset': {'type': 'string'}, 'routine': {'type': 'array', 'items': {'type': 'object', 'required': ['order', 'id', 'sanskritName', 'guidance', 'timing', 'source'], 'properties': {'id': {'type': 'string'}, 'order': {'type': 'number'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'timing': {'type': 'string'}, 'guidance': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}, 'summary': {'type': 'string'}, 'sunrise': {'type': 'string'}, 'conventions': {'type': 'object', 'required': ['doshaClock'], 'properties': {'doshaClock': {'type': 'string'}}}, 'nextSunrise': {'type': 'string'}, 'doshaPeriods': {'type': 'array', 'items': {'type': 'object', 'required': ['dosha', 'start', 'end', 'span'], 'properties': {'end': {'type': 'string'}, 'span': {'type': 'string'}, 'dosha': {'type': 'string'}, 'start': {'type': 'string'}, 'third': {'type': 'number'}}}}, 'brahmaMuhurta': {'type': 'object', 'required': ['start', 'end', 'muhurtaMinutes', 'muhurtasPerAhoratra', 'source'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'muhurtaMinutes': {'type': 'number'}, 'muhurtasPerAhoratra': {'type': 'number'}}}, 'alternatePeriods': {'type': 'array', 'items': {'type': 'object', 'required': ['dosha', 'start', 'end', 'span'], 'properties': {'end': {'type': 'string'}, 'span': {'type': 'string'}, 'dosha': {'type': 'string'}, 'start': {'type': 'string'}, 'third': {'type': 'number'}}}}}}
Input schema
{'type': 'object', 'examples': [{'date': '2026-03-01'}], 'required': ['date'], 'properties': {'date': {'type': 'string', 'format': 'date', 'example': '2026-03-01', 'description': 'The date to resolve, in YYYY-MM-DD format. The season is read at midday UTC on this date, because a season boundary is an instant and a calendar day has to be reduced to one; on a day that carries a boundary, the half the midday falls in is the answer. Within about two months of either end of the supported span, a date whose season opens or closes outside that span answers 400.'}, 'lang': {'enum': ['en', 'tr', 'de', 'es', 'hi', 'pt', 'fr', 'ru', 'zh-Hans', 'zh-Hant'], 'type': 'string', 'default': 'en', 'example': 'en', 'description': 'Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.'}, 'compact': {'type': 'boolean', 'default': False, 'description': 'Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.'}, 'hemisphere': {'enum': ['northern', 'southern'], 'type': 'string', 'default': 'northern', 'example': 'northern', 'description': 'Which half of the world the season names are stated for. Defaults to "northern", which is the half the primary text describes. It is NEVER inferred from a latitude: a silent flip would change the answer without the caller asking, and no classical text handles the southern case at all. Passing "southern" rotates the six season names by three places, following a modern almanac rather than a verse, and the response says so and states what was not rotated with them.'}, 'rituZodiac': {'enum': ['sayana', 'nirayana'], 'type': 'string', 'default': 'sayana', 'example': 'sayana', 'description': 'Which zodiac the solar-month boundaries are measured in. "sayana" is the tropical reading, which is what published almanacs use for seasons and is the default. "nirayana" is the sidereal reading in the Lahiri frame, which runs about 24 days later. The gap is the size of the ayanamsa, so near a boundary the two answer with different seasons for the same date, which is why the value is echoed in every response.'}, 'ritucharyaScheme': {'enum': ['sutrasthana-6', 'vimana-8'], 'type': 'string', 'default': 'sutrasthana-6', 'example': 'sutrasthana-6', 'description': 'Which six-season division the year is cut into. "sutrasthana-6" is the standard set of sisira, vasanta, grisma, varsa, sarad and hemanta, and is the default. "vimana-8" is the alternate division in which three seasons of extreme character alternate with three of moderate character and pravrt, the season of the first rains, replaces sisira. The alternate is not a relabelling: five of the six boundaries move, and because its verse gives no solar-month boundaries the month allocation is a RoxyAPI convention, stated in the response.'}}}
Output schema
{'type': 'object', 'required': ['date', 'ritu', 'ayana', 'phase', 'strength', 'tasteIncreasing', 'doshaCycle', 'regimen', 'summary', 'sources', 'conventions', 'meta'], 'properties': {'date': {'type': 'string'}, 'meta': {'type': 'object', 'required': ['disclaimer'], 'properties': {'disclaimer': {'type': 'string'}}}, 'ritu': {'type': 'object', 'required': ['id', 'sanskritName', 'devanagari', 'gloss', 'classicalRitu', 'start', 'end', 'solarMonths'], 'properties': {'id': {'type': 'string'}, 'end': {'type': 'string'}, 'gloss': {'type': 'string'}, 'start': {'type': 'string'}, 'devanagari': {'type': 'string'}, 'solarMonths': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'id', 'sanskritName'], 'properties': {'id': {'type': 'string'}, 'index': {'type': 'number'}, 'sanskritName': {'type': 'string'}}}}, 'sanskritName': {'type': 'string'}, 'classicalRitu': {'type': 'string'}}}, 'ayana': {'type': 'object', 'required': ['id', 'source'], 'properties': {'id': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}}, 'phase': {'type': 'object', 'required': ['id', 'tastes', 'source'], 'properties': {'id': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'tastes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sanskritName', 'english'], 'properties': {'id': {'type': 'string'}, 'english': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}}}, 'regimen': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'guidance', 'source'], 'properties': {'id': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'guidance': {'type': 'string'}}}}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}, 'summary': {'type': 'string'}, 'strength': {'type': 'object', 'required': ['level', 'source'], 'properties': {'level': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}}}, 'doshaCycle': {'type': 'array', 'items': {'type': 'object', 'required': ['dosha', 'state', 'meaning'], 'properties': {'note': {'type': 'string'}, 'dosha': {'type': 'string'}, 'state': {'type': 'string'}, 'meaning': {'type': 'string'}}}}, 'conventions': {'type': 'object', 'required': ['ritucharyaScheme', 'rituZodiac', 'hemisphere'], 'properties': {'hemisphere': {'type': 'string'}, 'rituZodiac': {'type': 'string'}, 'ritucharyaScheme': {'type': 'string'}}}, 'tasteIncreasing': {'type': 'object', 'required': ['id', 'sanskritName', 'english', 'source'], 'properties': {'id': {'type': 'string'}, 'source': {'type': 'object', 'required': ['text', 'chapter', 'verse', 'translation', 'year', 'publicDomain'], 'properties': {'note': {'type': 'string'}, 'text': {'type': 'string'}, 'year': {'type': ['number', 'null']}, 'verse': {'type': 'string'}, 'chapter': {'type': 'string'}, 'translation': {'type': ['string', 'null']}, 'publicDomain': {'type': 'boolean'}}}, 'english': {'type': 'string'}, 'sanskritName': {'type': 'string'}}}}}
Recent tool changes
Similar MCP servers
Dailymed
Retrieves FDA DailyMed structured drug labels, label histories and diffs, drug classes, recent updates, and label references by d…
Symmap
Provides a Traditional Chinese Medicine association graph for exploring relationships among symptoms, diagnoses, herbs, formulas,…
Opentargets
Provides Open Targets disease, drug, target, therapeutic-area, and disease-association knowledge graph lookups.
Aemps Cima
Searches and retrieves Spanish AEMPS CIMA medicine records, regulatory documents, label sections, medicine changes, and supply-sh…
Nice Guidance
Searches and retrieves NICE guidance, recommendations, publication details, status, and topic-based guidance listings.
Bioportal
Searches biomedical ontologies and retrieves concept definitions, synonyms, hierarchy relationships, and mappings across clinical…
Nci Evs
Searches NCI Enterprise Vocabulary Services and retrieves cancer-research terminology concepts, definitions, relationships, hiera…
Umls
Provides access to UMLS terminology services for searching and resolving biomedical and clinical concepts.