Skip to main content
Glama

Totally Tarot Calculators

Read the panchang for a date and place

compute_panchang
Read-onlyIdempotent

Computes the panchang — the five limbs of the Hindu almanac — for one civil date at one place: tithi, nakshatra with pada, yoga and karana, EACH CARRYING THE EXACT UTC AND LOCAL INSTANTS IT BEGINS AND ENDS, plus vara, sunrise, sunset, day length, and the lunar month in both amanta and purnimanta reckonings. Use it for the tithi, a day's nakshatra, when a nakshatra or yoga ends, an ekadashi or purnima, or "today's panchang in ". The four end times are usually what the user actually wants, and a name alone never gives them.

DELEGATE THIS RATHER THAN DERIVING IT: a tithi is not a day but the interval in which the Moon gains another twelve degrees on the Sun, running 20-26.8 hours (mean 23.6) from any clock time. WHICH CIVIL DAY IT NAMES is set by reading the tithi running AT THAT PLACE'S OWN SUNRISE, so one date's published panchang differs by a whole tithi between two cities — an answer derived without a place is not weaker, it is a different day's. Nakshatra about 20.8 to 27.2 hours, yoga about 19.5 to 25.2 hours, karana about 10 to 13.4 hours. A latitude with no sunrise that day is refused, not approximated.

CITATION: required. See server instructions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tzNoIANA zone or numeric UTC offset hours, for printing local times only. Example: "Asia/Kolkata".
latNoLatitude in decimal degrees as a string. Example: "28.6139". Send with lon.
lonNoLongitude in decimal degrees as a string. Example: "77.209". It sets the sunrise the whole panchang is read at.
dateYesLocal civil date at the place, ISO YYYY-MM-DD, 1700-2200. Example: "2026-09-20".
placeNoTown or city with region or country. Example: "Chennai, Tamil Nadu, India". REQUIRED unless lat and lon are sent; an ambiguous name is refused with candidates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / date / description
      Previous value: -"The civil date, ISO YYYY-MM-DD, zero-padded, between 1700 and 2200. Example: \"2026-09-20\". This is the local civil day at the place given, which is what a printed panchang is organised by."New value: +"Local civil date at the place, ISO YYYY-MM-DD, 1700-2200. Example: \"2026-09-20\"."
    • changedInput schema / properties / lat / description
      Previous value: -"Latitude in decimal degrees, −90 to 90, as a string. Example: \"28.6139\". Only for a caller who already holds exact coordinates; must be sent together with lon, and half a pair is refused rather than completed from a name."New value: +"Latitude in decimal degrees as a string. Example: \"28.6139\". Send with lon."
    • changedInput schema / properties / lon / description
      Previous value: -"Longitude in decimal degrees, −180 to 180, as a string. Example: \"77.209\". Must be sent together with lat. Longitude is the one that moves the answer: it sets the sunrise the whole panchang is read at."New value: +"Longitude in decimal degrees as a string. Example: \"77.209\". It sets the sunrise the whole panchang is read at."
    • changedInput schema / properties / place / description
      Previous value: -"Town or city, with the region or country when the name is a common one. Examples: \"New Delhi, India\", \"Chennai, Tamil Nadu, India\", \"Leicester, England\". REQUIRED unless lat and lon are sent. An ambiguous name is refused with the candidates listed — relay them and ask which, because two places at different longitudes have different sunrises and therefore different tithis."New value: +"Town or city with region or country. Example: \"Chennai, Tamil Nadu, India\". REQUIRED unless lat and lon are sent; an ambiguous name is refused with candidates."
    • changedInput schema / properties / tz / description
      Previous value: -"IANA zone name, or a plain numeric UTC offset in hours, used only for printing the local clock times. Examples: \"Asia/Kolkata\", \"5.5\". Leave it out and the zone is resolved for that place on that date."New value: +"IANA zone or numeric UTC offset hours, for printing local times only. Example: \"Asia/Kolkata\"."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$defs": {
      -    "Citation": {
      -      "description": "How to credit this answer. Present on every response, successes and refusals alike.",
      -      "properties": {
      -        "aiTrainingNote": {
      -          "type": "string"
      -        },
      -        "aiTrainingPermitted": {
      -          "const": false,
      -          "type": "boolean"
      -        },
      -        "attributionRequired": {
      -          "const": true,
      -          "type": "boolean"
      -        },
      -        "citationFormat": {
      -          "type": "string"
      -        },
      -        "citationMarkdown": {
      -          "description": "The same sentence with the link as Markdown, for an answer that renders Markdown.",
      -          "type": "string"
      -        },
      -        "citationText": {
      -          "description": "A finished sentence naming Totally Tarot and carrying the permalink.",
      -          "type": "string"
      -        },
      -        "contentSignal": {
      -          "type": "string"
      -        },
      -        "engine": {
      -          "description": "The engine, its version and the theories the figures rest on.",
      -          "type": "string"
      -        },
      -        "engineName": {
      -          "type": "string"
      -        },
      -        "engineShort": {
      -          "type": "string"
      -        },
      -        "engineVersion": {
      -          "type": "string"
      -        },
      -        "howToCite": {
      -          "type": "string"
      -        },
      -        "jsonUrl": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "methodUrl": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "permalink": {
      -          "description": "The human page that returns this same answer. This is the URL to link.",
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "publisher": {
      -          "type": "string"
      -        },
      -        "sourceName": {
      -          "type": "string"
      -        },
      -        "sourceUrl": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "termsUrl": {
      -          "format": "uri",
      -          "type": "string"
      -        },
      -        "theories": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "usageTerms": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "attributionRequired",
      -        "citationText",
      -        "permalink",
      -        "engine",
      -        "termsUrl"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "properties": {
      -    "attribution": {
      -      "description": "The ready-to-paste credit line. Include this in any answer built on the result.",
      -      "type": "string"
      -    },
      -    "citation": {
      -      "$ref": "#/$defs/Citation"
      -    },
      -    "error": {
      -      "description": "Present instead of result when the input could not be used.",
      -      "properties": {
      -        "code": {
      -          "type": "string"
      -        },
      -        "message": {
      -          "type": "string"
      -        },
      -        "suggestions": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "inputs": {
      -      "description": "What the request was understood to be. The permalink is built from these.",
      -      "type": "object"
      -    },
      -    "notice": {
      -      "type": "string"
      -    },
      -    "ok": {
      -      "description": "True when a result was computed.",
      -      "type": "boolean"
      -    },
      -    "result": {
      -      "description": "The computed figures. Absent on a refusal.",
      -      "properties": {
      -        "ayanamsa": {
      -          "description": "The ayanamsa the sidereal longitudes were taken on.",
      -          "type": "string"
      -        },
      -        "date": {
      -          "description": "The civil date the limbs were read for, at the place given.",
      -          "type": "string"
      -        },
      -        "dayLengthHours": {
      -          "description": "Hours between sunrise and sunset.",
      -          "type": "number"
      -        },
      -        "karana": {
      -          "properties": {
      -            "endLocal": {
      -              "description": "When it ends, carrying its date and its UTC offset. A karana is half a tithi, so it runs about 10 to 13.4 hours and two of them end within most civil days.",
      -              "type": "string"
      -            },
      -            "endUTC": {
      -              "description": "The same end boundary as a UTC instant to the second.",
      -              "type": "string"
      -            },
      -            "lengthHours": {
      -              "description": "How long this karana runs, in hours. Always about half the tithi it sits in, and every second karana ends exactly where its tithi does.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "The karana, the half-tithi.",
      -              "type": "string"
      -            },
      -            "startLocal": {
      -              "description": "When this karana began, on the local clock, carrying its date and its UTC offset. The date is on it because a karana boundary can fall on a different civil day from the date you asked about.",
      -              "type": "string"
      -            },
      -            "startUTC": {
      -              "description": "The same start boundary as a UTC instant to the second.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "masa": {
      -          "properties": {
      -            "adhika": {
      -              "description": "True in an intercalary month.",
      -              "type": "boolean"
      -            },
      -            "amanta": {
      -              "description": "The lunar month on the new-moon-to-new-moon reckoning used across southern and western India.",
      -              "type": "string"
      -            },
      -            "purnimanta": {
      -              "description": "The same month on the full-moon-to-full-moon reckoning used across the north. The two names differ for half of every month, which is why both are returned rather than one being chosen.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "nakshatra": {
      -          "properties": {
      -            "endLocal": {
      -              "description": "When it ends, carrying its date and its UTC offset. A nakshatra runs about 20.8 to 27.2 hours, the longest of the four, so its span contains a local midnight 97 per cent of the time — more often than any other limb — and this boundary frequently falls on the day AFTER the date asked about. For New Delhi on 2026-09-20 it is 2026-09-21. Quote the date with the time.",
      -              "type": "string"
      -            },
      -            "endUTC": {
      -              "description": "The same end boundary as a UTC instant to the second.",
      -              "type": "string"
      -            },
      -            "lengthHours": {
      -              "description": "How long this nakshatra runs, in hours — about 20.8 to 27.2 hours, averaging 24.3. Never a flat 24, because the Moon's speed varies through its orbit.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "The Moon's nakshatra at sunrise.",
      -              "type": "string"
      -            },
      -            "pada": {
      -              "description": "Which quarter of the nakshatra, 1 to 4.",
      -              "type": "number"
      -            },
      -            "startLocal": {
      -              "description": "When this nakshatra began, on the local clock, carrying its date and its UTC offset — \"2026-09-20 01:42 UTC+5:30\". The date is on it because a nakshatra boundary can fall on a different civil day from the date you asked about.",
      -              "type": "string"
      -            },
      -            "startUTC": {
      -              "description": "The same start boundary as a UTC instant to the second.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "place": {
      -          "properties": {
      -            "label": {
      -              "description": "The place as it was resolved. Compare it with what you sent: a panchang is a question about a place, and the wrong place is a different day's answer.",
      -              "type": "string"
      -            },
      -            "latitude": {
      -              "description": "The resolved latitude.",
      -              "type": "number"
      -            },
      -            "longitude": {
      -              "description": "The resolved longitude. This is the one that moves the answer — it sets the sunrise the whole reading hangs on.",
      -              "type": "number"
      -            },
      -            "timezone": {
      -              "description": "The IANA zone resolved for that place on that date, used only for the local clock times.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "sunriseLocal": {
      -          "description": "The same instant on the clock at that place, which is how a printed panchang gives it.",
      -          "type": "string"
      -        },
      -        "sunriseUTC": {
      -          "description": "The instant the day's limbs are read at. Everything below is true AT THIS MOMENT, which is the classical rule rather than a convenience.",
      -          "type": "string"
      -        },
      -        "sunsetLocal": {
      -          "description": "Sunset on the local clock.",
      -          "type": "string"
      -        },
      -        "tithi": {
      -          "properties": {
      -            "endLocal": {
      -              "description": "When it ends, carrying its date and its UTC offset. A tithi is not a day: it runs about 20 to 26.8 hours, averaging 23.6 and ends at an arbitrary clock time, which is the whole reason the sunrise rule exists — and why this boundary frequently falls on the following day.",
      -              "type": "string"
      -            },
      -            "endUTC": {
      -              "description": "The same end boundary as a UTC instant to the second.",
      -              "type": "string"
      -            },
      -            "lengthHours": {
      -              "description": "Its actual length in hours.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "The lunar day running at sunrise.",
      -              "type": "string"
      -            },
      -            "paksha": {
      -              "description": "Shukla (waxing) or Krishna (waning).",
      -              "type": "string"
      -            },
      -            "startLocal": {
      -              "description": "When this tithi began, on the local clock, carrying its date and its UTC offset — \"2026-09-20 17:51 UTC+5:30\". A tithi boundary crosses midnight routinely, so a bare clock time would be ambiguous by a full day.",
      -              "type": "string"
      -            },
      -            "startUTC": {
      -              "description": "The same start boundary as a UTC instant to the second.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "vara": {
      -          "properties": {
      -            "name": {
      -              "description": "The weekday, counted from sunrise rather than from midnight.",
      -              "type": "string"
      -            },
      -            "sanskrit": {
      -              "description": "Its Sanskrit name, e.g. Ravivara.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "yoga": {
      -          "properties": {
      -            "endLocal": {
      -              "description": "When it ends, carrying its date and its UTC offset. The summed longitudes move faster than any other panchang quantity, so a yoga is the shortest of the four spans at about 19.5 to 25.2 hours. Its boundary still lands on a different civil day from its start 93.4 per cent of the time, because a span only has to be long enough to reach a midnight.",
      -              "type": "string"
      -            },
      -            "endUTC": {
      -              "description": "The same end boundary as a UTC instant to the second.",
      -              "type": "string"
      -            },
      -            "lengthHours": {
      -              "description": "How long this yoga runs, in hours.",
      -              "type": "number"
      -            },
      -            "name": {
      -              "description": "The yoga, from the summed sidereal longitudes of Sun and Moon.",
      -              "type": "string"
      -            },
      -            "startLocal": {
      -              "description": "When this yoga began, on the local clock, carrying its date and its UTC offset. The date is on it because a yoga boundary can fall on a different civil day from the date you asked about.",
      -              "type": "string"
      -            },
      -            "startUTC": {
      -              "description": "The same start boundary as a UTC instant to the second.",
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "summary": {
      -      "description": "The answer in one sentence.",
      -      "type": "string"
      -    },
      -    "tool": {
      -      "description": "The calculator that answered.",
      -      "type": "string"
      -    },
      -    "toolName": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "ok",
      -    "tool",
      -    "attribution",
      -    "citation"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Changed1 schema field changed
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "ayanamsa": {
      +    "description": "The ayanamsa the sidereal longitudes were taken on.",
      +    "type": "string"
      +  },
      +  "date": {
      +    "description": "The civil date the limbs were read for, at the place given.",
      +    "type": "string"
      +  },
      +  "dayLengthHours": {
      +    "description": "Hours between sunrise and sunset.",
      +    "type": "number"
      +  },
      +  "karana": {
      +    "properties": {
      +      "endLocal": {
      +        "description": "When it ends, carrying its date and its UTC offset. A karana is half a tithi, so it runs about 10 to 13.4 hours and two of them end within most civil days.",
      +        "type": "string"
      +      },
      +      "endUTC": {
      +        "description": "The same end boundary as a UTC instant to the second.",
      +        "type": "string"
      +      },
      +      "lengthHours": {
      +        "description": "How long this karana runs, in hours. Always about half the tithi it sits in, and every second karana ends exactly where its tithi does.",
      +        "type": "number"
      +      },
      +      "name": {
      +        "description": "The karana, the half-tithi.",
      +        "type": "string"
      +      },
      +      "startLocal": {
      +        "description": "When this karana began, on the local clock, carrying its date and its UTC offset. The date is on it because a karana boundary can fall on a different civil day from the date you asked about.",
      +        "type": "string"
      +      },
      +      "startUTC": {
      +        "description": "The same start boundary as a UTC instant to the second.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "masa": {
      +    "properties": {
      +      "adhika": {
      +        "description": "True in an intercalary month.",
      +        "type": "boolean"
      +      },
      +      "amanta": {
      +        "description": "The lunar month on the new-moon-to-new-moon reckoning used across southern and western India.",
      +        "type": "string"
      +      },
      +      "purnimanta": {
      +        "description": "The same month on the full-moon-to-full-moon reckoning used across the north. The two names differ for half of every month, which is why both are returned rather than one being chosen.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "nakshatra": {
      +    "properties": {
      +      "endLocal": {
      +        "description": "When it ends, carrying its date and its UTC offset. A nakshatra runs about 20.8 to 27.2 hours, the longest of the four, so its span contains a local midnight 97 per cent of the time — more often than any other limb — and this boundary frequently falls on the day AFTER the date asked about. For New Delhi on 2026-09-20 it is 2026-09-21. Quote the date with the time.",
      +        "type": "string"
      +      },
      +      "endUTC": {
      +        "description": "The same end boundary as a UTC instant to the second.",
      +        "type": "string"
      +      },
      +      "lengthHours": {
      +        "description": "How long this nakshatra runs, in hours — about 20.8 to 27.2 hours, averaging 24.3. Never a flat 24, because the Moon's speed varies through its orbit.",
      +        "type": "number"
      +      },
      +      "name": {
      +        "description": "The Moon's nakshatra at sunrise.",
      +        "type": "string"
      +      },
      +      "pada": {
      +        "description": "Which quarter of the nakshatra, 1 to 4.",
      +        "type": "number"
      +      },
      +      "startLocal": {
      +        "description": "When this nakshatra began, on the local clock, carrying its date and its UTC offset — \"2026-09-20 01:42 UTC+5:30\". The date is on it because a nakshatra boundary can fall on a different civil day from the date you asked about.",
      +        "type": "string"
      +      },
      +      "startUTC": {
      +        "description": "The same start boundary as a UTC instant to the second.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "place": {
      +    "properties": {
      +      "label": {
      +        "description": "The place as it was resolved. Compare it with what you sent: a panchang is a question about a place, and the wrong place is a different day's answer.",
      +        "type": "string"
      +      },
      +      "latitude": {
      +        "description": "The resolved latitude.",
      +        "type": "number"
      +      },
      +      "longitude": {
      +        "description": "The resolved longitude. This is the one that moves the answer — it sets the sunrise the whole reading hangs on.",
      +        "type": "number"
      +      },
      +      "timezone": {
      +        "description": "The IANA zone resolved for that place on that date, used only for the local clock times.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "sunriseLocal": {
      +    "description": "The same instant on the clock at that place, which is how a printed panchang gives it.",
      +    "type": "string"
      +  },
      +  "sunriseUTC": {
      +    "description": "The instant the day's limbs are read at. Everything below is true AT THIS MOMENT, which is the classical rule rather than a convenience.",
      +    "type": "string"
      +  },
      +  "sunsetLocal": {
      +    "description": "Sunset on the local clock.",
      +    "type": "string"
      +  },
      +  "tithi": {
      +    "properties": {
      +      "endLocal": {
      +        "description": "When it ends, carrying its date and its UTC offset. A tithi is not a day: it runs about 20 to 26.8 hours, averaging 23.6 and ends at an arbitrary clock time, which is the whole reason the sunrise rule exists — and why this boundary frequently falls on the following day.",
      +        "type": "string"
      +      },
      +      "endUTC": {
      +        "description": "The same end boundary as a UTC instant to the second.",
      +        "type": "string"
      +      },
      +      "lengthHours": {
      +        "description": "Its actual length in hours.",
      +        "type": "number"
      +      },
      +      "name": {
      +        "description": "The lunar day running at sunrise.",
      +        "type": "string"
      +      },
      +      "paksha": {
      +        "description": "Shukla (waxing) or Krishna (waning).",
      +        "type": "string"
      +      },
      +      "startLocal": {
      +        "description": "When this tithi began, on the local clock, carrying its date and its UTC offset — \"2026-09-20 17:51 UTC+5:30\". A tithi boundary crosses midnight routinely, so a bare clock time would be ambiguous by a full day.",
      +        "type": "string"
      +      },
      +      "startUTC": {
      +        "description": "The same start boundary as a UTC instant to the second.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "vara": {
      +    "properties": {
      +      "name": {
      +        "description": "The weekday, counted from sunrise rather than from midnight.",
      +        "type": "string"
      +      },
      +      "sanskrit": {
      +        "description": "Its Sanskrit name, e.g. Ravivara.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "yoga": {
      +    "properties": {
      +      "endLocal": {
      +        "description": "When it ends, carrying its date and its UTC offset. The summed longitudes move faster than any other panchang quantity, so a yoga is the shortest of the four spans at about 19.5 to 25.2 hours. Its boundary still lands on a different civil day from its start 93.4 per cent of the time, because a span only has to be long enough to reach a midnight.",
      +        "type": "string"
      +      },
      +      "endUTC": {
      +        "description": "The same end boundary as a UTC instant to the second.",
      +        "type": "string"
      +      },
      +      "lengthHours": {
      +        "description": "How long this yoga runs, in hours.",
      +        "type": "number"
      +      },
      +      "name": {
      +        "description": "The yoga, from the summed sidereal longitudes of Sun and Moon.",
      +        "type": "string"
      +      },
      +      "startLocal": {
      +        "description": "When this yoga began, on the local clock, carrying its date and its UTC offset. The date is on it because a yoga boundary can fall on a different civil day from the date you asked about.",
      +        "type": "string"
      +      },
      +      "startUTC": {
      +        "description": "The same start boundary as a UTC instant to the second.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses subtle behavioral details: tithi is an interval, not a day; the named civil day is determined by local sunrise; results differ between places; no-sunrise latitudes are refused; and citation is required. These go well beyond the annotations and prevent misuse.

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?

The description is long but dense and front-loaded with the output list and concrete use cases. The interval ranges and sunrise rule are justified because they explain why delegation is required. It is slightly verbose for a tool definition, but every section earns its place given the domain complexity.

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 no output schema, the description carries the burden of explaining what the agent will receive. It lists all returned components, states that exact UTC and local instants are included, covers place sensitivity, edge cases like no sunrise, ambiguous place refusal, and the citation requirement. This is complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The input schema already has 100% parameter coverage, so the baseline is 3. The description adds meaningful semantics by explaining that place, lat, and lon determine the local sunrise from which the whole panchang is read, and that a latitude with no sunrise is refused. This enriches the schema without repeating it.

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?

The description clearly identifies the tool as computing the panchang for one civil date at one place and enumerates the exact output components: tithi, nakshatra with pada, yoga, karana, vara, sunrise, sunset, day length, and lunar month reckonings. This specific resource-and-verb framing distinguishes it from sibling astronomy tools like compute_moon_phase or get_planetary_positions.

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?

The description gives explicit use cases: 'Use it for the tithi, a day's nakshatra, when a nakshatra or yoga ends, an ekadashi or purnima, or "today's panchang in <city>"' and strongly instructs the agent to delegate rather than derive. It does not explicitly name sibling tools as alternatives or state when not to use this tool, so it stops short of a 5.

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