Skip to main content
Glama

Ayurveda MCP Server by RoxyAPI

Ayurveda seasonal regimen - Ritucharya and ritu resolution API

post_ayurveda_ritucharya
Read-only

Resolve the ritucharya, the Ayurvedic season, for a date from the real solar ingress instants and return the regimen the primary text gives for it. The response carries the season with its exact opening and closing instants, the half of the year the sun is in, where each dosha stands in the seasonal cycle, the taste that grows across the season, and the behaviour items the chapter states. Season boundaries are measured in the tropical zodiac by default, which is what published almanacs use, and the sidereal reading is available as a convention and runs about 24 days later.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesThe 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.
langNoResponse 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.en
compactNoSet 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.
hemisphereNoWhich 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.northern
rituZodiacNoWhich 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.sayana
ritucharyaSchemeNoWhich 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.sutrasthana-6

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYes
metaYes
rituYes
ayanaYes
phaseYes
regimenYes
sourcesYes
summaryYes
strengthYes
doshaCycleYes
conventionsYes
tasteIncreasingYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / date / description
      Previous value: -"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."New value: +"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."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "ayana": {
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "properties": {
      +            "chapter": {
      +              "type": "string"
      +            },
      +            "note": {
      +              "type": "string"
      +            },
      +            "publicDomain": {
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "type": "string"
      +            },
      +            "translation": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "verse": {
      +              "type": "string"
      +            },
      +            "year": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "text",
      +            "chapter",
      +            "verse",
      +            "translation",
      +            "year",
      +            "publicDomain"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    "conventions": {
      +      "properties": {
      +        "hemisphere": {
      +          "type": "string"
      +        },
      +        "rituZodiac": {
      +          "type": "string"
      +        },
      +        "ritucharyaScheme": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "ritucharyaScheme",
      +        "rituZodiac",
      +        "hemisphere"
      +      ],
      +      "type": "object"
      +    },
      +    "date": {
      +      "type": "string"
      +    },
      +    "doshaCycle": {
      +      "items": {
      +        "properties": {
      +          "dosha": {
      +            "type": "string"
      +          },
      +          "meaning": {
      +            "type": "string"
      +          },
      +          "note": {
      +            "type": "string"
      +          },
      +          "state": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "dosha",
      +          "state",
      +          "meaning"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "meta": {
      +      "properties": {
      +        "disclaimer": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "disclaimer"
      +      ],
      +      "type": "object"
      +    },
      +    "phase": {
      +      "properties": {
      +        "id": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "properties": {
      +            "chapter": {
      +              "type": "string"
      +            },
      +            "note": {
      +              "type": "string"
      +            },
      +            "publicDomain": {
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "type": "string"
      +            },
      +            "translation": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "verse": {
      +              "type": "string"
      +            },
      +            "year": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "text",
      +            "chapter",
      +            "verse",
      +            "translation",
      +            "year",
      +            "publicDomain"
      +          ],
      +          "type": "object"
      +        },
      +        "tastes": {
      +          "items": {
      +            "properties": {
      +              "english": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "sanskritName": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "sanskritName",
      +              "english"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "tastes",
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    "regimen": {
      +      "items": {
      +        "properties": {
      +          "guidance": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "properties": {
      +              "chapter": {
      +                "type": "string"
      +              },
      +              "note": {
      +                "type": "string"
      +              },
      +              "publicDomain": {
      +                "type": "boolean"
      +              },
      +              "text": {
      +                "type": "string"
      +              },
      +              "translation": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "verse": {
      +                "type": "string"
      +              },
      +              "year": {
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "text",
      +              "chapter",
      +              "verse",
      +              "translation",
      +              "year",
      +              "publicDomain"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "guidance",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "ritu": {
      +      "properties": {
      +        "classicalRitu": {
      +          "type": "string"
      +        },
      +        "devanagari": {
      +          "type": "string"
      +        },
      +        "end": {
      +          "type": "string"
      +        },
      +        "gloss": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "sanskritName": {
      +          "type": "string"
      +        },
      +        "solarMonths": {
      +          "items": {
      +            "properties": {
      +              "id": {
      +                "type": "string"
      +              },
      +              "index": {
      +                "type": "number"
      +              },
      +              "sanskritName": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "index",
      +              "id",
      +              "sanskritName"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "start": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "sanskritName",
      +        "devanagari",
      +        "gloss",
      +        "classicalRitu",
      +        "start",
      +        "end",
      +        "solarMonths"
      +      ],
      +      "type": "object"
      +    },
      +    "sources": {
      +      "items": {
      +        "properties": {
      +          "chapter": {
      +            "type": "string"
      +          },
      +          "note": {
      +            "type": "string"
      +          },
      +          "publicDomain": {
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "translation": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "verse": {
      +            "type": "string"
      +          },
      +          "year": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "text",
      +          "chapter",
      +          "verse",
      +          "translation",
      +          "year",
      +          "publicDomain"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "strength": {
      +      "properties": {
      +        "level": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "properties": {
      +            "chapter": {
      +              "type": "string"
      +            },
      +            "note": {
      +              "type": "string"
      +            },
      +            "publicDomain": {
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "type": "string"
      +            },
      +            "translation": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "verse": {
      +              "type": "string"
      +            },
      +            "year": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "text",
      +            "chapter",
      +            "verse",
      +            "translation",
      +            "year",
      +            "publicDomain"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "level",
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "tasteIncreasing": {
      +      "properties": {
      +        "english": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "type": "string"
      +        },
      +        "sanskritName": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "properties": {
      +            "chapter": {
      +              "type": "string"
      +            },
      +            "note": {
      +              "type": "string"
      +            },
      +            "publicDomain": {
      +              "type": "boolean"
      +            },
      +            "text": {
      +              "type": "string"
      +            },
      +            "translation": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "verse": {
      +              "type": "string"
      +            },
      +            "year": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "text",
      +            "chapter",
      +            "verse",
      +            "translation",
      +            "year",
      +            "publicDomain"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "sanskritName",
      +        "english",
      +        "source"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "date",
      +    "ritu",
      +    "ayana",
      +    "phase",
      +    "strength",
      +    "tasteIncreasing",
      +    "doshaCycle",
      +    "regimen",
      +    "summary",
      +    "sources",
      +    "conventions",
      +    "meta"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/destructive annotations: discloses the 400 near supported-span edges, English fallback for untranslated fields, ~40-52% token reduction from compact, that hemisphere is NEVER inferred from latitude, and that non-classical conventions are echoed in the response. This is exactly the kind of behavioral context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and each sentence carries real information. The prose is dense and slightly literary (e.g. 'the half of the year the sun is in'), costing a little scannability, but nothing is clearly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description still covers the error condition, language fallback, compact mode, and convention choices. An agent has everything needed to call this correctly for a six-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all six parameters in depth. The description adds only marginal meaning (tropical matches almanacs, sidereal ayanamsa gap, northern rotation caveat) that largely restates the schema text, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource: resolving the ritucharya/Ayurvedic season for a date from real solar ingress instants and returning the corresponding regimen. It even enumerates what the response carries, letting an agent distinguish it from siblings like post_ayurveda_dinacharya or get_ayurveda_daily without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear selection context for the variants: tropical (sayana) is the almanac default and sidereal (nirayana) runs ~24 days later; hemisphere defaults to northern because no classical text handles the southern case. However, it never names or routes against the sibling tools, so an agent gets no explicit 'use X instead when...' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources