Asterwise
Server Details
Vedic astrology MCP server connecting any AI to real ephemeris calculations — natal charts, Vimshottari Dasha, yogas with BPHS citations, matchmaking with Rajju/Vedha vetoes, panchanga, KP system, Lal Kitab, and numerology. OAuth 2.1. Free sandbox tier.
- Status
- Healthy
- Uptime
- 79.6% over 81 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 118 tools
Nearly every description carries an explicit DO-NOT-CONFUSE block, which rescues many otherwise overlapping families (four compatibility systems, four dasha systems, five remedy tools, four day-timing tools). However real collisions remain: get_gemstone_recommendations vs get_crystal_recommendations_natal are both natal-chart gem prescriptions differing mainly in output shape, and get_hora vs get_western_planetary_hours compute the same 24 hours in two framings. An agent can usually pick correctly by reading carefully, but the surface is dense enough that misselection is a live risk.
All 118 tools use a single asterwise_ prefix with snake_case verb_noun names (get_*, check_*, draw_*), and variants are suffixed predictably (get_western_transits_daily/_weekly/_monthly, get_*_dasha). Tradition families are namespaced consistently (western_, kp_, lal_kitab_, varshaphal_, tarot_). No camelCase or verb-style drift anywhere.
118 tools is far beyond the 3-15 sweet spot and forces an agent to scan a very large surface before acting. The underlying domain is genuinely vast (Vedic, Western, KP, Lal Kitab, Tajika, numerology, tarot, crystals, dreams), so each tool is not trivial, but fine-grained splits (per-number numerology tools, redundant panchanga/kaal variants) inflate the count well past what is needed.
Coverage is unusually deep: natal/divisional charts, strength, four dasha systems, doshas, yogas, remedies, panchanga, muhurta, festivals, geocoding, full Western track (returns, progressions, horary, synastry, transits), plus tarot, crystals, dreams, numerology and angel numbers. Only minor gaps appear, such as no cross-domain search and a few reference-catalogue endpoints that exist only for some traditions (e.g. rudraksha is per-planet only).
Available Tools
118 toolsasterwise_check_mobile_numberMobile Number CheckARead-onlyIdempotentInspect
Sums the digits of the national number (country code left out), reduces them to a single number, and returns harmonic scoring plus interpretive copy.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — anchor Life Path before judging the line. AFTER: None.
INPUT CONTRACT: Only digits count; the country calling code is never counted. Numbers written with '+' or '00' use the national number. Without a prefix, pass country (ISO 3166 alpha-2, e.g. IN, US, CN) so the number is read as dialled in that country; with no country, only India's 12-digit 91… form is shortened and every other number is summed exactly as written (e.g. 14155552671 without country sums all 11 digits = 42; with country=US it is 41). With country, the number is read as dialled there first, international dialling prefix included (e.g. AU 0011, US 011). A '+'/'00' number drops its country code only when it is a valid number: an invalid '+' number sums every digit after '+', an invalid '00' number is summed as written.
DO NOT CONFUSE WITH: asterwise_check_vehicle_number — plate digit rules, not SIM numbering. asterwise_get_business_name_analysis — letter Expression scan, not phone roots.
Full output and error contract: https://docs.asterwise.com/mcp/tools/check-mobile-number/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Not used: the analysis depends only on the digits. Omit it; it is accepted only so older calls keep working. | |
| name | No | Not used: the analysis depends only on the digits. Omit it; it is accepted only so older calls keep working. | |
| country | No | Country of the number as ISO 3166 alpha-2, e.g. 'IN', 'US', 'CN'. Used only when the number has no '+'/'00' prefix: it is then read as dialled in that country and the country code is left out of the sum. | |
| mobile_number | Yes | Mobile number to analyse; digits only, country code optional. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover only the safety profile (read-only, idempotent, non-destructive, closed-world); the description adds the actual behavioral contract: only digits count, the calling code is never summed, '+'/'00' prefixes drop a country code only for valid numbers, and invalid prefixed numbers are summed as written. It also discloses the output shape and that there is no follow-up tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then organizes the rest under labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH), so the density is navigable. The input contract is lengthy with several worked examples, which is justified by genuinely ambiguous edge cases but is heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained; the description instead covers everything else an agent needs — input normalization rules, country handling, workflow ordering, sibling disambiguation, and a link to the full output and error contract. Nothing required for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by showing the country parameter's concrete effect on the computation (14155552671 = 42 without country vs 41 with country=US) and explaining how local dialling prefixes (AU 0011, US 011) are handled. The unused date/name parameters are explained consistently with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a precise operation (sum the digits of the national number, reduce to a single number) and the exact artifact returned (harmonic scoring plus interpretive copy). The DO NOT CONFUSE WITH section distinguishes it from the nearest siblings, asterwise_check_vehicle_number and asterwise_get_business_name_analysis, so an agent can select it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow precondition (RECOMMENDED asterwise_get_numerology_profile before judging the line) and names two alternatives with the reason each is different. It also states the conditions under which the country parameter must be supplied versus when the number is read as written.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_check_sade_satiSade SatiARead-onlyIdempotentInspect
Evaluates Saturn's seven-and-a-half-year Sade Sati cycle against the natal Moon sign for the current day. Returns intensity, upcoming cycles, and historical rows.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — confirm Moon sign context. AFTER: asterwise_get_gochar — broader transit canvas if needed.
INPUT CONTRACT: No explicit query date — API pins to current day. BirthData global contract applies.
DO NOT CONFUSE WITH: asterwise_get_gochar — nine-planet daily scan including sade_sati_active flag but less Sade Sati detail than this tool. asterwise_get_transits — ingress/station feed, not Moon-focused Saturn phase model.
Full output and error contract: https://docs.asterwise.com/mcp/tools/check-sade-sati/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing that the API pins to the current day (no query date), that a BirthData global contract applies, and what the output contains (intensity, upcoming cycles, historical rows). It doesn't cover latency or error behavior beyond the external doc link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence summary, then clearly labeled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE WITH sections. Every line carries routing or contract information; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be explained, yet the description still summarizes them. Workflow prerequisites, exclusions, input contract, and a link to the full output/error contract together leave no gap an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents birth fields and response_format. The description's 'INPUT CONTRACT' adds only the meta-point that no explicit query date exists and that a BirthData contract governs the birth object, which is contextual rather than per-parameter syntax. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (evaluates) and resource (Saturn's 7.5-year Sade Sati cycle) with scope (against natal Moon sign, for the current day) and return contents. It also names the exact siblings it differs from, so the agent can distinguish it from get_gochar and get_transits 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow naming asterwise_get_natal_chart and asterwise_get_gochar, plus a DO NOT CONFUSE WITH section that spells out how it differs from two overlapping siblings. This is as close to unambiguous when-to-use guidance as it gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_check_vehicle_numberVehicle Number CheckARead-onlyIdempotentInspect
Strips non-digits from a vehicle registration token, reduces the numeric run to a single number, and returns the same harmony schema as mobile analysis.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — owner baseline. AFTER: None.
INPUT CONTRACT: Letters and separators are ignored; reduction uses numeric digits only. Owner name and birth date are optional and not used.
DO NOT CONFUSE WITH: asterwise_check_mobile_number — phone digit rules (national number, country code left out). asterwise_get_business_name_analysis — evaluates business Expression, not registration digits.
Full output and error contract: https://docs.asterwise.com/mcp/tools/check-vehicle-number/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Not used: the analysis depends only on the digits. Omit it; it is accepted only so older calls keep working. | |
| name | No | Not used: the analysis depends only on the digits. Omit it; it is accepted only so older calls keep working. | |
| vehicle_number | Yes | Vehicle registration number, e.g. 'DL01AB1234'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral detail beyond them: the digit-stripping/reduction algorithm and the input contract that letters and separators are ignored. It does not address failure modes, but points to the docs for the error contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior and then cleanly sectioned into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH, which is easy to scan. The closing documentation URL is useful but slightly padding, keeping it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description only needs to state the shape (same harmony schema as mobile analysis). Combined with the named prerequisite, the disambiguation rules, and the error-contract link, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents vehicle_number, date, name, and response_format. The description's INPUT CONTRACT reiterates that name/date are optional and unused, which matches the schema text rather than adding new meaning, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb chain (strips non-digits, reduces numeric run, returns harmony schema) against a specific resource (vehicle registration token). It explicitly distinguishes itself from asterwise_check_mobile_number and asterwise_get_business_name_analysis, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block names a recommended prerequisite (asterwise_get_numerology_profile) and explicitly states AFTER: None, and the DO NOT CONFUSE WITH section names two concrete alternatives with the distinguishing rule for each. Both when-to-use and when-not are covered explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_draw_tarot_cardsDraw Tarot CardsARead-onlyInspect
Draws N unique random cards from the 78-card deck using cryptographic randomness (Python secrets.SystemRandom). Every call is independent — there is no session state.
WORKFLOW: BEFORE: None — standalone. AFTER: None — interpret drawn cards using their active_meaning and active_keywords fields.
INPUT CONTRACT: count (int 1–78, default 1) — Number of unique cards to draw. Example: 1 (daily pull), 3 (simple reading), 10 (Celtic Cross), 78 (full deck shuffle). Values outside 1–78 are rejected locally with MCP INVALID_PARAMS. allow_reversed (bool, default false) — When true, each drawn card independently has a 50% chance of reversal (cryptographically random, not seeded).
DO NOT CONFUSE WITH: asterwise_get_tarot_card_of_the_day — deterministic daily card, same for all callers. asterwise_get_tarot_three_card_spread — positional read with named positions and meanings. asterwise_get_tarot_celtic_cross — 10-card positional spread.
Full output and error contract: https://docs.asterwise.com/mcp/tools/draw-tarot-cards/
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of cards to draw. | |
| allow_reversed | No | Whether cards may be drawn reversed (upside down). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with them. It adds significant context beyond annotations: cryptographic randomness via Python secrets.SystemRandom, per-call independence with no session state, local rejection of out-of-range counts with MCP INVALID_PARAMS, and a 50% per-card reversal chance that is explicitly 'not seeded.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior in the first sentence, then organized into labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that make it scannable. There is no filler; examples, validation notes, and the docs link all earn their place, and the length is proportionate to the three near-sibling tools it must disambiguate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Between the annotations (safe read operation), the output schema, and the docs link for the full output/error contract, nothing an agent needs to invoke this tool correctly is missing. The reminder to interpret drawn cards via active_meaning and active_keywords fields also closes the loop on how results should be consumed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all three parameters; the description adds strong value with concrete examples (1 daily pull, 3 simple reading, 10 Celtic Cross, 78 full deck), the 1–78 boundary with local validation behavior, and probability mechanics for allow_reversed (50% per card, independent, not seeded). Minor gap: response_format is absent from the INPUT CONTRACT section, though its schema description is thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Draws N unique random cards from the 78-card deck' — and adds scope-defining traits (unique, cryptographic randomness, no session state). The 'DO NOT CONFUSE WITH' block names the three closest tarot siblings and their distinguishing behavior, so an agent can select this tool without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is standalone with no prerequisites or follow-up ('BEFORE: None', 'AFTER: None'). The 'DO NOT CONFUSE WITH' section names asterwise_get_tarot_card_of_the_day, asterwise_get_tarot_three_card_spread, and asterwise_get_tarot_celtic_cross with the precise differences (deterministic vs positional vs random), leaving no ambiguity about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_geocodeGeocode a placeARead-onlyIdempotentInspect
Turns a place name into latitude, longitude and IANA timezone for the other tools, which all take lat, lon and timezone.
WORKFLOW: BEFORE: None. AFTER: any tool that takes lat, lon and timezone — asterwise_get_natal_chart, asterwise_get_panchanga, asterwise_get_muhurta, asterwise_get_festival_calendar and others.
INPUT CONTRACT: query: place name, at least 2 characters (required). limit: 1-10 (default 5). country: optional ISO 3166 alpha-2 code.
DO NOT CONFUSE WITH: None — this is the only place-lookup tool.
Full output and error contract: https://docs.asterwise.com/mcp/tools/geocode/
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return (1-10). | |
| query | Yes | Place name, e.g. 'Pune' or 'Fatehabad, Haryana'. | |
| country | No | Optional ISO 3166 alpha-2 country code to narrow the search, e.g. 'in'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the output is a lat/lon/timezone tuple that other tools require, establishing it as a prerequisite step. It stops short of describing match ambiguity or failure modes, deferring those to an external docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) make it scannable and front-loaded, and it avoids prose padding. The INPUT CONTRACT does duplicate schema details already stated in the parameters, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering safety, and all params documented, the description only needed to add positioning and workflow. It does exactly that, so an agent has everything required to call it correctly and chain its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including defaults, range and enum. The INPUT CONTRACT section restates query length, limit bounds and the country code without adding syntax or format guidance beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: turns a place name into latitude, longitude and IANA timezone. It also states the output's role for downstream tools, which no sibling can claim, and explicitly notes it is the only place-lookup tool in the set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives explicit BEFORE (none) and AFTER (named consumers such as asterwise_get_natal_chart, asterwise_get_panchanga, asterwise_get_muhurta) plus a DO NOT CONFUSE WITH line. An agent knows exactly when to call this and what to do with the result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_angel_numberAngel NumberARead-onlyIdempotentInspect
Lookup the meaning of a specific angel number by its sequence. Supported: 000, 111–999 (single repeating digit), 911, 1010, 1111, 1122, 1212, 1234, 2222–9999 (double repeating digit).
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: number: string — the angel number sequence to look up. Examples: '111', '444', '1111', '911'.
DO NOT CONFUSE WITH: asterwise_get_angel_number_today — today's collective daily angel number. asterwise_get_angel_number_personal — personal angel number from birth date. asterwise_get_number_meaning — Pythagorean numerology meaning for 1–9 and master numbers 11, 22, 33; different tradition.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-angel-number/
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Angel number sequence as seen, e.g. '111' or '1234'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine behavioral context beyond that: the enumeration of valid sequence inputs and the standalone (no side-effect, no chaining) nature. It does not describe the failure mode for unsupported input, deferring that to an external URL, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by clearly labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH). Every line carries information, and the only external pointer is a single trailing URL rather than inlined boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, output-schema-backed lookup tool, nothing an agent needs is missing: valid inputs, sibling disambiguation, workflow context, and format selection. Return values are left to the output schema, correctly avoiding duplication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters documented, response_format has an enum), so the baseline is 3. The description goes beyond the schema by adding a validation contract - the explicit supported-value range - that the schema's brief property description omits, which materially helps an agent avoid invalid calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lookup) and resource (angel number meaning) plus the exact supported sequence set, which lets an agent know the valid domain immediately. It then explicitly blocks confusion with three named sibling tools, each with a one-line distinction, so the tool is unambiguous against alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit BEFORE/AFTER workflow (standalone, no prerequisites or follow-ups) and a dedicated 'DO NOT CONFUSE WITH' section that routes the agent to get_angel_number_today, get_angel_number_personal, or get_number_meaning with the condition that selects each. This is textbook when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_angel_number_personalPersonal Angel NumberARead-onlyIdempotentInspect
Computes a personal angel number from a birth date using the Pythagorean Life Path as the base. Life Path 1-9 maps to the triple sequence (LP 4 → 444). Master numbers 11, 22, 33 map to 1111, 2222, 3333 respectively.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — confirm Life Path before calling. AFTER: None.
INPUT CONTRACT: date: Birth date in YYYY-MM-DD format. Example: '1994-03-31' name (optional): Person's name for personalisation.
DO NOT CONFUSE WITH: asterwise_get_angel_number_today — collective daily number from today's date, not birth date. asterwise_get_numerology_profile — full Pythagorean profile; this tool extracts only the Life Path → angel sequence mapping.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-angel-number-personal/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | No | Person's name, used to personalise the angel number reading. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive. The description adds concrete behavioral detail: the LP-to-sequence mapping rules, master number handling, and scope ('extracts only the Life Path → angel sequence mapping'), plus a docs link for the full output/error contract. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a clear first sentence, then organized into labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE, docs link). Each section earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to explain return values. It covers purpose, mapping, workflow, param semantics, exclusions, and points to a full contract. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so baseline is 3. The description adds an explicit example ('1994-03-31'), marks name as optional, and clarifies that date means 'birth date' (not today's date), which disambiguates from the sibling tool. That extra practical context justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation — 'Computes a personal angel number from a birth date using the Pythagorean Life Path as the base' — and gives the exact mapping logic. The 'DO NOT CONFUSE WITH' section explicitly separates it from asterwise_get_angel_number_today and asterwise_get_numerology_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: recommends calling asterwise_get_numerology_profile first to confirm Life Path, and lists two confusable siblings with conditions (daily vs birth date; full profile vs only Life Path mapping). This leaves no ambiguity about alternative selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_angel_number_todayAngel Number TodayARead-onlyIdempotentInspect
Returns the angel number for today (UTC, or the caller's timezone) or for a given date. All digits of the date are summed and reduced to a single digit (1-9), then the triple sequence of that digit is returned (e.g. digit 9 → angel number 999).
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_angel_number_personal — for a personalised angel number from birth date.
INPUT CONTRACT: date (optional YYYY-MM-DD) or timezone (optional IANA, e.g. Asia/Kolkata); without either, today is the current UTC date. date overrides timezone.
DO NOT CONFUSE WITH: asterwise_get_angel_number — lookup for a specific number sequence by value. asterwise_get_angel_number_personal — personalised number from birth date Life Path.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-angel-number-today/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to compute the angel number for, YYYY-MM-DD. Overrides timezone. Omit for today. | |
| timezone | No | IANA time zone whose current date counts as today, e.g. 'Asia/Kolkata'. Defaults to UTC; ignored when date is given. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral context: the deterministic digit-sum-to-triple algorithm, the date-overrides-timezone precedence rule, and the UTC default. It does not cover rate limits or error behavior, but it defers those to the linked docs, which is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then cleanly sectioned into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH. The section labels are somewhat verbose and the algorithm sentence is dense, but every section carries information an agent needs to route and call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and it covers everything else: purpose, algorithm, input precedence, default behavior, sibling routing, and a link to the full output/error contract. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents date, timezone, and response_format including the 'overrides timezone' precedence. The description's INPUT CONTRACT largely restates this (date overrides timezone; UTC default), adding only the format example (Asia/Kolkata). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the angel number for today ... or for a given date') and even spells out the reduction algorithm so the agent knows exactly what the output represents. The 'DO NOT CONFUSE WITH' block distinguishes it from asterwise_get_angel_number and asterwise_get_angel_number_personal, so the agent can select it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing is provided: WORKFLOW AFTER points to asterwise_get_angel_number_personal, and the DO NOT CONFUSE WITH section names the two nearest alternatives with the exact condition that separates them (today's date vs. specific sequence vs. birth-date personalisation). When-to-use is fully covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_ashtakavargaAshtakavargaARead-onlyIdempotentInspect
Computes full Ashtakavarga bindu matrices, trikona and ekadhipatya reductions, and sarva totals from BirthData for transit support analysis.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — confirm chart before AVK study. AFTER: asterwise_get_gochar — uses AVK scores in transit rows.
INPUT CONTRACT: BirthData only.
DO NOT CONFUSE WITH: asterwise_get_chart_strength — primary payload is Shadbala/Vimshopaka, though it embeds AVK too. asterwise_get_gochar — applies AVK scores to transits rather than exposing raw matrices.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-ashtakavarga/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive behavior, so the description's job is lighter. It adds value by stating the exact computed outputs, clarifying that raw matrices are exposed here rather than applied to transits, and linking to the full output/error contract. Minor operational details like rate limits or auth are absent but not critical for a read-only compute tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with labeled sections—WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH—and the core function is front-loaded in the first sentence. It is longer than minimal, but the length is justified by the complexity of the tool and the need to disambiguate among a large sibling list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex Vedic tool with a nested birth object and an output schema, the description provides the essential workflow, input restriction, sibling disambiguation, and a link to the full contract. Return-value details are not duplicated because an output schema exists, so nothing necessary for correct selection and invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter coverage with detailed descriptions for date, lat, lon, time, ayanamsa, timezone, person_name, and response_format, so the baseline is 3. The description adds only the high-level contract 'BirthData only,' which is useful but does not deepen per-parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a precise verb phrase—'Computes full Ashtakavarga bindu matrices, trikona and ekadhipatya reductions, and sarva totals'—clearly identifying both the resource and the computation. The 'DO NOT CONFUSE WITH' sections explicitly distinguish it from asterwise_get_chart_strength and asterwise_get_gochar, so an agent can disambiguate without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section names a recommended predecessor (asterwise_get_natal_chart), a natural successor (asterwise_get_gochar), and why the successor uses this tool's output. It also identifies the tools most likely to be confused with this one and explains the selection difference, making when-to-use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_ashtottari_dashaAshtottari DashaARead-onlyIdempotentInspect
Computes the Ashtottari Dasha tree (108-year cycle) with configurable depth, levels 1–5. The timeline continues into the next cycle until it reaches at least age 120 (usually 9–11 mahadashas); periods are under data.periods.root with DD/MM/YYYY dates.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — chart context before choosing between Ashtottari and Vimshottari. AFTER: asterwise_get_dasha — optional Vimshottari comparison.
INPUT CONTRACT: levels: same as asterwise_get_dasha (1–5, default 2), enforced locally before the API call. Periods use data.periods.root[], not data.periods[]. Dates in periods are DD/MM/YYYY.
DO NOT CONFUSE WITH: asterwise_get_dasha — standard 120-year Vimshottari with data.periods[], not Ashtottari or data.periods.root[]. asterwise_get_yogini_dasha — 36-year Yogini cycle with yogini names on each row.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-ashtottari-dasha/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| levels | No | Depth of the Ashtottari tree, 1-5: 1 = Mahadasha only, 2 adds Antardasha (default), 3 Pratyantar, 4 Sookshma, 5 Prana. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description adds real behavioral context beyond that: the 108-year cycle continues into the next cycle until age ~120, yields 9-11 mahadashas, and stores periods under data.periods.root with DD/MM/YYYY dates. It does not cover rate limits or error behavior, but it is well above the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core computation, then organizes workflow, input contract, and sibling disambiguation into labeled blocks. Every line is purposeful and skimmable; the trailing docs URL is an appropriate escape hatch rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only computation tool with a full output schema, the description covers purpose, sequencing, alternatives, and even output-path structure. An agent has everything needed to select and invoke it correctly, with a docs link for the exhaustive contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the levels enum (1-5, default 2) already in the schema and adds only a minor note that levels are 'enforced locally before the API call' and matches get_dasha; it adds little meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Computes') and resource ('Ashtottari Dasha tree, 108-year cycle') with scope details (levels 1-5, timeline to age 120). It explicitly distinguishes itself from sibling dasha tools (Vimshottari, Yogini), so an agent can pick it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (natal chart first, optional Vimshottari comparison after) and a dedicated 'DO NOT CONFUSE WITH' section naming the two most likely sibling confusions. This is textbook when-to-use vs alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_ayanamshaAyanamshaARead-onlyIdempotentInspect
Returns ayanamsha values for all four supported systems (Lahiri, Raman, KP, Tropical) for a given date.
WORKFLOW: BEFORE: None — standalone reference. AFTER: None.
INPUT CONTRACT: date (optional): Date in YYYY-MM-DD format. Defaults to today.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — applies Lahiri ayanamsha automatically to natal positions. asterwise_get_western_natal — uses tropical zodiac (ayanamsha = 0).
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-ayanamsha/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to compute the ayanamsha for, YYYY-MM-DD. Defaults to today. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide strong safety cues: readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds useful behavioral context beyond those: it is a standalone reference with no BEFORE/AFTER workflow dependencies, and it defaults the date to today. It also links to the full output and error contract, which covers any remaining behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured and front-loaded: the core behavior appears in the first sentence, followed by compact WORKFLOW, INPUT CONTRACT, and confusion-avoidance sections. Every section earns its place and the whole thing is easy for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool with full schema coverage, an output schema, and rich annotations, the description is complete. It covers date format, default behavior, supported systems, sibling alternatives, and points to the full output/error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both date and response_format fully. The description reiterates the date default but does not add meaningfully beyond the schema. Baseline 3 is appropriate because the schema carries the parameter semantics burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb with a resource: 'Returns ayanamsha values for all four supported systems (Lahiri, Raman, KP, Tropical) for a given date.' It is clearly distinct from sibling tools, and it even names the two most likely confusable alternatives and what they do differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a 'DO NOT CONFUSE WITH' section, naming asterwise_get_natal_chart and asterwise_get_westen_natal and explaining when each should be used instead. This gives concrete routing guidance beyond simply defining the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_balance_numberBalance NumberARead-onlyIdempotentInspect
Calculates the Balance number from the first letter of each name part, using Pythagorean values. A three-part name yields three initials summed and reduced. The Balance number describes how a person handles emotional crises and unresolved inner conflict.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: name — Full legal name as used at birth. The first letter of each space-separated part contributes one value. Example: 'Arjun Mehta' → A(1) + M(4) = 5 Example: 'James Earl Carter' → J(1) + E(5) + C(3) = 9
DO NOT CONFUSE WITH: asterwise_get_expression_number — uses all letters, not just initials. asterwise_get_karmic_lessons — identifies absent digits across all letters.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-balance-number/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description is not obligated to restate it. It does add genuine behavioral context beyond the annotations: the deterministic reduction algorithm, the meaning of the returned number, and a pointer to the full output/error contract. It stops short of disclosing failure modes inline (e.g., what happens with a single-part or empty name), so a 4 rather than a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labelled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) front-load the essential constraint and the examples are concrete. There is minor redundancy between the prose sentence 'A three-part name yields three initials summed and reduced' and the three-part example that follows it, and the 'BEFORE: None / AFTER: None' block is slightly padded, but nothing is wasted enough to drop below 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described here. For a two-parameter, read-only calculation tool, the description supplies the computation method, the input contract with examples, sibling disambiguation, and an external contract link — everything an agent needs to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The INPUT CONTRACT exceeds the schema by adding a worked semantic example for the name parameter ('Arjun Mehta' → A(1) + M(4) = 5, and a three-part case), which disambiguates which letters are actually used. It adds little for response_format beyond what the schema enum already documents, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculates the Balance number from the first letter of each name part') and then adds the method (Pythagorean values, initials summed and reduced) so the agent knows exactly what computation is performed. The explicit DO NOT CONFUSE section names the two nearest siblings and the rule that separates them (all letters vs. initials; absent digits), which no other sibling could claim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block declares 'BEFORE: None — standalone' and 'AFTER: None', removing any sequencing ambiguity. It then explicitly excludes asterwise_get_expression_number and asterwise_get_karmic_lessons with the distinguishing condition for each, so the agent has both when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_biorhythmBiorhythmARead-onlyInspect
Computes physical (23-day), emotional (28-day), and intellectual (33-day) biorhythm cycles for a birth date.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_nakshatra_prediction — for the Vedic personalized daily prediction.
INPUT CONTRACT: birth_date (required): Date of birth in YYYY-MM-DD format. target_date (optional): Date to compute for. Defaults to today. days (optional int 1-90): Number of consecutive days. Default 1.
DO NOT CONFUSE WITH: asterwise_get_nakshatra_prediction — Vedic Tarabala/Chandrabala daily prediction. asterwise_get_panchanga — Vedic daily panchanga elements, not biorhythm cycles.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-biorhythm/
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of consecutive days to include, starting from the target date. | |
| birth_date | Yes | Date of birth, YYYY-MM-DD. | |
| target_date | No | Date to chart the cycles for, YYYY-MM-DD. Defaults to today. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds some behavioral context beyond the annotations by stating it is 'standalone' and has a specific workflow after it, which is not covered by the readOnly or idempotent hints. However, it does not explicitly mention side effects or permissions, though the annotations already cover these (readOnlyHint true, destructiveHint false). Overall, it adds moderate context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) and is not overly long. However, the INPUT CONTRACT section repeats information already present in the schema, introducing slight redundancy. The front-loaded first sentence is effective, and the overall structure is easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (4 parameters, 1 enum, output schema exists), the description covers the core purpose, usage, and differentiators. It points to a URL for the full output and error contract, which addresses potential omissions. It does not describe the output structure in detail, but the link compensates. Overall, it is sufficiently complete for an agent to decide and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of the parameter descriptions, giving a baseline of 3. The description adds the range constraint for 'days' (1-90) and clarifies the default behavior for 'target_date' ('Defaults to today'), which is not fully specified in the schema. This additional context improves understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool computes physical, emotional, and intellectual biorhythm cycles for a birth date. It also explicitly distinguishes itself from related tools via the 'DO NOT CONFUSE WITH' section, naming asterwise_get_nakshatra_prediction and asterwise_get_panchanga. This provides both a specific verb and resource, and clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'BEFORE: None' and 'AFTER: asterwise_get_nakshatra_prediction', indicating where this tool fits in a sequence. It also tells the agent when not to use this tool (i.e., for Vedic daily predictions or panchanga elements), making the selection criteria very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_business_name_analysisBusiness Name AnalysisARead-onlyIdempotentInspect
Reduces a business name to Expression and root digits and returns thematic suitability lists plus a harmony score. Uses the name only; no founder birth date is involved.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_name_correction — if the entity is a person, not a brand.
INPUT CONTRACT: business_name (required): special characters and digits are acceptable; reduction strips non-letters per upstream rules. date: not used; omit it (accepted only so older calls keep working).
DO NOT CONFUSE WITH: asterwise_get_name_correction — personal spelling alternatives, not corporate Expression scoring. asterwise_check_mobile_number — numeric line analysis, not brand letters.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-business-name-analysis/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Not used: the analysis depends only on the business name. Omit it; it is accepted only so older calls keep working. | |
| business_name | Yes | Business or brand name to analyse. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the computation uses the name only and no birth date, the date param is inert, and reduction strips non-letters per upstream rules. It stops short of discussing determinism guarantees or output shape, but the output schema covers the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line summary followed by labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, doc link). Every sentence carries routing or contract information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be restated. Given the tool is a standalone, single-input computation, the description covers purpose, disambiguation, input handling, and workflow transitions, leaving no gap an agent would need filled before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, which sets a baseline of 3, but the description adds meaning the schema lacks — that special characters and digits are acceptable in business_name and that non-letters are stripped during reduction. The date parameter's inert status is clarified in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Reduces a business name to Expression and root digits') and names the actual outputs (thematic suitability lists, harmony score). The DO NOT CONFUSE WITH block explicitly separates it from asterwise_get_name_correction and asterwise_check_mobile_number, so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives explicit before/after conditions ('BEFORE: None — standalone', 'AFTER: get_name_correction — if the entity is a person, not a brand') and the DO NOT CONFUSE WITH block names the two most confusable siblings with the discriminating condition for each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_chaldean_numerologyChaldean NumerologyARead-onlyIdempotentInspect
Reduces a name and birth date through the Chaldean letter-value system and returns name, birth, and combined compound analyses with themes and keywords.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — compare against Pythagorean cores if needed.
INPUT CONTRACT: name and date forwarded as-is; no local validation.
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — Pythagorean Life Path / Expression stack, not Chaldean compounds. asterwise_get_lo_shu_grid — digit placement magic square, not Chaldean name reduction.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-chaldean-numerology/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | Yes | Person's full name as commonly written; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-open-world, so the safety profile is covered. The description adds genuine behavioral context beyond that: the INPUT CONTRACT states name/date are forwarded as-is with no local validation, and it points to the output/error contract URL. It stops short of describing return shape, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then uses labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that each carry routing or contract value rather than filler. Slightly more scaffolding than strictly necessary for a 3-parameter tool, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no prose. Between the purpose line, the explicit sibling routing, and the input contract, an agent has everything required 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents date format, name handling, and the response_format enum. The description adds nothing parameter-specific beyond restating that name and date are the inputs, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reduces), the resources (a name and birth date), the method (Chaldean letter-value system), and the return content (name, birth, combined compound analyses with themes and keywords). It explicitly names the siblings it must not be confused with, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW and DO NOT CONFUSE WITH blocks give explicit when-to-use routing: standalone before-hook, an AFTER handoff to asterwise_get_numerology_profile, and two named alternatives with the exact distinguishing factor for each (Pythagorean stack vs Chaldean compounds, magic-square digit placement vs name reduction).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_char_dashaChar DashaARead-onlyIdempotentInspect
Computes Char Dasha from birth data and returns sign lords as period rulers with ISO-dated Maha and Antar sequences plus karaka mappings.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — contextualises the chart before interpreting sign-based lords. AFTER: asterwise_get_dasha — optional Vimshottari cross-check for the same native.
INPUT CONTRACT: cycles (optional int 1–3, default 1): every further cycle repeats the first cycle's signs, order and years (K.N. Rao). Period start_date and end_date in data.periods[] are YYYY-MM-DD (ISO), unlike asterwise_get_dasha which uses DD/MM/YYYY in its tree. All other parameters follow the BirthData global contract.
DO NOT CONFUSE WITH: asterwise_get_dasha — Vimshottari planet lords with DD/MM/YYYY in periods[], not sign-based Char Dasha. asterwise_get_yogini_dasha — eight Yoginis and data.periods.root[], not classical signs.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-char-dasha/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| cycles | No | Char Dasha cycles to return, 1-3 (default 1). Every further cycle repeats the first cycle's signs, order and years (K.N. Rao). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behaviour, so the safety profile is covered. The description adds value beyond that: it warns that the birth time is mandatory with no sunrise fallback, documents the ISO date convention that differs from the sibling tool, and explains cycle repetition. It does not discuss cost, rate limits, or failure modes beyond the docs link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence summary, then clearly labelled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH sections, so a skimming agent still gets the routing information. Slightly padded by restating the cycles semantics already present in the schema, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-purpose computation tool with a full output schema, the description covers everything the agent needs: inputs, output shape, temporal format, prerequisite tools, disambiguation from siblings, and a link to the full output/error contract. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the cycles parameter's schema text already contains the K.N. Rao repetition rule, so the description largely repeats rather than extends it. The one genuinely additive note is the ISO vs DD/MM/YYYY contrast with get_dasha, which is output-contract rather than parameter guidance. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (computes), a specific resource (Char Dasha from birth data), and names the exact output artefacts (sign lords as period rulers, ISO-dated Maha/Antar sequences, karaka mappings). It explicitly differentiates itself from the two nearest siblings, get_dasha and get_yogini_dasha, by naming their rulers and period formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (natal chart first, Vimshottari cross-check after) plus a DO NOT CONFUSE WITH block naming two alternatives and the distinguishing features of each. An agent has no inference left to do about when to pick this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_chart_strengthChart StrengthARead-onlyIdempotentInspect
Aggregates the chart's strength measures from BirthData: Shadbala, Bhavbala and Vimshopaka (with per-varga contributions). Also returns the sixteen vargas, Ashtakavarga, karaka maps and graha yuddha pairs.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — contextualises houses before reading bala tables. AFTER: asterwise_get_yogas — optional configuration pass after strength review.
INPUT CONTRACT: BirthData only; no extra toggles.
DO NOT CONFUSE WITH: asterwise_get_yogas — boolean yoga catalogue, not numeric bala. asterwise_get_ashtakavarga — standalone AVK when strength bundle is not needed.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-chart-strength/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety and repeatability are covered without prose. The description adds useful non-annotation context: the INPUT CONTRACT states 'BirthData only; no extra toggles', capping the surface an agent must reason about. It stops short of stating auth needs or rate limits, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by clearly labelled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH blocks. No filler; every section carries information an agent needs to route correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only aggregation tool with full annotation coverage, a 100%-documented nested input schema and an output schema that carries the return contract, the description covers everything needed to select and invoke it. The external docs link for 'full output and error contract' is a bonus, not a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the nested birth object and response_format are fully documented in the schema; baseline 3 applies. The description only restates the input contract ('BirthData only') and does not add semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Aggregates') and resource ('the chart's strength measures from BirthData'), then enumerates the concrete outputs: Shadbala, Bhavbala, Vimshopaka, plus vargas, Ashtakavarga, karaka maps and graha yuddha pairs. The 'DO NOT CONFUSE WITH' block contrasts it explicitly against get_yogas ('boolean yoga catalogue, not numeric bala') and get_ashtakavarga, so it is cleanly separable from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit ordering guidance (BEFORE: get_natal_chart to contextualise houses; AFTER: get_yogas as an optional configuration pass) and names alternatives with the condition that selects each ('standalone AVK when strength bundle is not needed'). This is textbook when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_choghadiyaChoghadiyaARead-onlyIdempotentInspect
Splits a solar day into sixteen Choghadiya segments from sunrise/sunset at a location and labels each slot's quality, ruler, and local clock bounds.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_rahu_kaal — optional inauspicious band overlay for the same date.
INPUT CONTRACT: LocationInput enforces YYYY-MM-DD date and lat/lon ranges locally. All parameters are defined in the tool schema.
DO NOT CONFUSE WITH: asterwise_get_hora — twenty-four planetary horas, not sixteen Choghadiya. asterwise_get_muhurta — scored windows across a date range for named activities.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-choghadiya/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, providing the core safety profile. The description adds no side-effect information but does describe the output (quality, ruler, local clock bounds) and the input basis (sunrise/sunset at a location), which gives some behavioral context beyond the annotations. Since annotations cover the main safety aspects and the description adds modest context, a score of 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main description is a single, dense sentence that conveys the core function without fluff. The additional sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) are each short and purposeful, adding necessary guidance without redundancy. The structure is well-organized and every sentence contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, input constraints (via INPUT CONTRACT and schema), output expectations (quality, ruler, clock bounds), workflow (before/after), and alternatives to avoid. It also provides a link to the full output/error contract. For a tool with a nested location parameter, this is comprehensive and leaves little ambiguity for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all fields having descriptions (e.g., lat/lon ranges, date pattern, timezone default, response_format enum). The description text adds context by explaining that the location is used for 'sunrise/sunset' and that output includes 'local clock bounds,' which clarifies the role of timezone and lat/lon. The INPUT CONTRACT section also states that LocationInput enforces date format and lat/lon ranges, reinforcing schema details. This extra context justifies a 4 rather than the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Splits a solar day into sixteen Choghadiya segments from sunrise/sunset at a location and labels each slot's quality, ruler, and local clock bounds.' It clearly identifies the resource (solar day segments) and the action (splits and labels). The 'DO NOT CONFUSE WITH' section explicitly differentiates it from asterwise_get_hora and asterwise_get_muhurta, making it distinct among the many sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'BEFORE: None — this tool is standalone. AFTER: asterwise_get_rahu_kaal — optional inauspicious band overlay for the same date.' It also includes 'DO NOT CONFUSE WITH' warnings that clarify when not to use this tool compared to related ones (hora, muhurta). This gives the agent clear conditions for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_compatibilityAshtakoota CompatibilityARead-onlyIdempotentInspect
Scores North Indian Ashtakoota (36-point Guna Milan) for two charts. Returns the koota breakdown, dosha flags, classical vetoes, a Mangal cross-check and narrative guidance.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart per person — understand charts before interpreting scores. AFTER: asterwise_get_papasamyam — optional malefic balance overlay.
INPUT CONTRACT: Two BirthData objects; omit time when unknown (sunrise chart, birth_time_provided=false); '00:00' is read as real midnight. All scoring is computed upstream from those payloads.
DO NOT CONFUSE WITH: asterwise_get_dashakoot — ten-point South Indian extension, not 36-point Ashtakoota. asterwise_get_porutham — Tamil ten-porutham pass/fail grid, different schema.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-compatibility/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for a single person. | |
| person2 | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description adds real context beyond that: the unknown-birth-time path (sunrise chart, birth_time_provided=false), the meaning of passing '00:00', and the fact that all scoring is computed upstream from the payloads. It stops short of describing pagination, cost, or latency, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then organized into labeled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH blocks. Every line carries decision-relevant information; the closing docs link is a pointer rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be specified, and the description nonetheless summarizes the payload shape. Prerequisites, alternative tools, and the birth-time edge case are all covered, leaving nothing an agent needs to invoke it correctly unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's input-contract notes about omitting time and the '00:00' semantics largely restate what the schema already says about the time field, adding little the agent could not read in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scores), a named resource (North Indian Ashtakoota / 36-point Guna Milan) and its scope (two charts), then enumerates what is returned: koota breakdown, dosha flags, classical vetoes, Mangal cross-check, narrative guidance. It also names the exact siblings it is not (dashakoot, porutham), so an agent can disambiguate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives an explicit BEFORE (asterwise_get_natal_chart, marked RECOMMENDED) and AFTER (asterwise_get_papasamyam, marked optional), and the DO NOT CONFUSE WITH block routes the agent away from two near-name-collision tools with the distinguishing criterion for each. This is a full when/when-not/alternatives contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_crystalCrystal LookupARead-onlyIdempotentInspect
Lookup a specific crystal by slug or name (case-insensitive). Returns full detail including dual Vedic/Western planetary assignments, all healing properties, and any safety cautions.
WORKFLOW: BEFORE: None — standalone or after asterwise_get_gemstone_recommendations. AFTER: None.
INPUT CONTRACT: name: Crystal slug or display name. Examples: 'amethyst', 'blue-sapphire', 'Cat's Eye Chrysoberyl'
DO NOT CONFUSE WITH: asterwise_get_crystals — full 54-crystal catalogue. asterwise_get_crystal_by_planet — all crystals for a Vedic planet. asterwise_get_gemstone_recommendations — natal chart-based gem recommendations (house lordship rules), different from this database.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-crystal/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Crystal slug or display name, e.g. 'amethyst', 'blue-sapphire', 'Cat's Eye Chrysoberyl'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, covering the safety profile. The description adds case-insensitive matching and flags that the payload carries dual planetary assignments, healing properties, and safety cautions, but a docs link is deferred to for the error contract rather than stating it inline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by clearly labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that make scanning easy. The 'BEFORE: None — AFTER: None' line is somewhat formulaic filler, slightly diluting efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be enumerated, yet the description still summarizes the payload and links an error contract, leaving few gaps. Given a 2-parameter read-only tool, this is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (name, response_format) are already documented, and the description's name examples ('amethyst', 'blue-sapphire', "Cat's Eye Chrysoberyl") merely duplicate the schema. Baseline 3 applies since the schema does the heavy lifting and the description adds no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Lookup a specific crystal') with matching rules (slug or name, case-insensitive) and the depth of detail returned. The 'DO NOT CONFUSE WITH' block explicitly separates it from get_crystals (catalogue), get_crystal_by_planet, and get_gemstone_recommendations, so an agent can disambiguate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a workflow slot ('standalone or after asterwise_get_gemstone_recommendations') and names three alternatives with their distinct scopes. It stops short of full when-not guidance (e.g., no explicit trigger distinguishing name lookup from the catalogue, only the scope distinction).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_crystal_by_planetCrystals by PlanetARead-onlyIdempotentInspect
Returns all crystals associated with a specific Vedic planet. Results are sorted with primary Navaratna gems first, then Uparatna substitutes. Only Navaratna and Uparatna Vedic assignments are returned — crystals with no Vedic planetary correspondence are excluded.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — identify the planet needing remediation. AFTER: asterwise_get_gemstone_recommendations — for chart-specific gem safety assessment.
INPUT CONTRACT: planet: One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu.
DO NOT CONFUSE WITH: asterwise_get_gemstone_recommendations — natal chart house-lordship gem recommendation with contraindications; use for actual gem prescription, not just listing. asterwise_get_crystals — all 54 crystals including Western-only ones.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-crystal-by-planet/
| Name | Required | Description | Default |
|---|---|---|---|
| planet | Yes | Planet to find crystals for, e.g. 'Venus' or 'Saturn'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/closed-world safety, so the description adds non-obvious behavior: results are sorted Navaratna-first then Uparatna, and crystals with no Vedic correspondence are excluded. That result-set composition and ordering context is genuinely useful and not derivable from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then cleanly sectioned into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH. Slightly verbose with the docs link, but every block carries routing or behavioral value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary. Between the purpose, workflow, input contract, and sibling disambiguation, nothing an agent needs to select or call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but the INPUT CONTRACT enumerates the exact allowed planet values (Sun through Ketu), adding precision beyond the schema's loose 'e.g. Venus or Saturn' example. It also implicitly constrains the parameter to the nine Vedic planets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all crystals associated with a specific Vedic planet') and immediately scopes the result set (Navaratna/Uparatna only). The DO NOT CONFUSE WITH section explicitly differentiates it from get_crystals and get_gemstone_recommendations, so an agent can route correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (get_natal_chart to identify the planet, then get_gemstone_recommendations for safety assessment) plus named alternatives with the condition that selects each. When-to-use and when-to-use-something-else are both stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_crystal_recommendationsCrystal RecommendationsARead-onlyIdempotentInspect
Recommends crystals based on zodiac sign, chakra, or intention keyword. At least one filter is required. Returns crystals that match the most criteria first.
WORKFLOW: BEFORE: None — standalone for consumer apps. AFTER: asterwise_get_crystal — get full detail on any recommended crystal.
INPUT CONTRACT: At least one of: zodiac_sign, chakra, intention must be provided. zodiac_sign (optional): English zodiac sign, e.g. 'Taurus', 'Scorpio'. chakra (optional): One of Root, Sacral, Solar Plexus, Heart, Throat, Third Eye, Crown. intention (optional): Keyword string, e.g. 'protection', 'abundance', 'love'. limit (optional int, default 5, max 20): Maximum results to return.
DO NOT CONFUSE WITH: asterwise_get_crystal_by_planet — Vedic planet filter only. asterwise_get_gemstone_recommendations — natal chart house-lordship gem prescription with contraindications.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-crystal-recommendations/
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return. | |
| chakra | No | Chakra to focus on, e.g. 'heart' or 'third eye'. | |
| intention | No | Purpose for the recommendation, e.g. 'protection', 'focus', 'love'. | |
| zodiac_sign | No | Zodiac sign, e.g. 'Leo'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly and idempotent hints, so the description does not need to repeat those. It adds behavioral context by stating the sorting logic and offering a response_format parameter, which clarifies output behavior beyond the schema. The output/error contract link provides additional transparency, though no direct side-effect details are needed given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (workflow, input contract, do-not-confuse, output contract). Though somewhat lengthy, every sentence contributes useful information—no fluff. The main recommendation statement is concise, and the additional sections are organized logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides sufficient context for correct invocation: required filters, output format options, and a link to the full output/error contract. Although the actual output schema is not embedded, the description's mention of markdown/json and the contract URL mitigate the gap. It also clarifies relationships with sibling tools, making the tool's role well-defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description enhances this by listing allowed chakra values (Root, Sacral, Solar Plexus, etc.) which are not in the schema enum, and providing concrete examples for intention (protection, abundance, love) and zodiac_sign. It also clarifies the limit default/max, aligning with schema but adding context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Recommends' and the resource 'crystals', with specific criteria (zodiac sign, chakra, intention). The 'DO NOT CONFUSE WITH' section explicitly differentiates from sibling tools like asterwise_get_crystal_by_planet and asterwise_get_gemstone_recommendations, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the requirement 'At least one filter is required' and describes the ordering behavior ('matches the most criteria first'). The workflow mentions 'AFTER: asterwise_get_crystal' for subsequent detail retrieval, and the 'DO NOT CONFUSE WITH' lines provide clear when-to-use guidance against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_crystal_recommendations_natalNatal Crystal RecommendationsARead-onlyIdempotentInspect
Recommends crystals from a Vedic natal chart using house lordship rules for gem selection. This is the only API that derives crystal recommendations from a computed natal chart — not from zodiac sign or chakra preference.
WORKFLOW: BEFORE: None — this tool internally computes the natal chart. No separate natal chart call required. AFTER: asterwise_get_crystal — get full detail (hardness, origins, affirmation, full caution text) on any recommended crystal by slug. AFTER: asterwise_get_remedies — broader classical remedial programme alongside gem recommendations.
INPUT CONTRACT: Standard BirthData (date, time, lat, lon, timezone, ayanamsa). Defaults to Lahiri ayanamsa. time (required): Ascendant (Lagna) is time-sensitive. Inaccurate birth time changes the Lagna → changes all house lords → changes recommendations entirely.
DO NOT CONFUSE WITH: asterwise_get_gemstone_recommendations — also a chart-based gem endpoint with the same contraindication rule, but a role-based prescription (lagna lord, Yogakaraka, 5th/9th lord, Atmakaraka) instead of crystal scoring; returns gem names not crystal database entries; does not include match_score or match_reasons. asterwise_get_crystal_recommendations — recommends crystals by zodiac sign, chakra, or intention keyword (no natal chart computation; Western metaphysical matching, not classical Jyotish). asterwise_get_crystal_by_planet — lists all crystals for a Vedic planet without house context — use this for reference, not prescription.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-crystal-recommendations-natal/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint, so the safety profile is covered. Description adds meaningful behavioral context beyond annotations: internal chart computation (no prerequisite call), the Lahiri default, the time-sensitivity mechanism (Lagna → house lords → full recommendation change), and a caution against guessing time. Slight gap: it defers output/error details to an external docs URL rather than describing them inline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose statement, then clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections. The DO NOT CONFUSE block is dense but each entry earns its place by preventing a distinct misselection. Slightly verbose for the payload size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value explanation is not required. For a read-only chart tool with an output schema, the description covers prerequisites (none internal), timezone/ayanamsa defaults, time-sensitivity risk, and sibling routing — everything an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already documents birth fields, timezone defaults, and the time value's no-fallback rule. The description adds the time-sensitivity rationale (why an accurate time matters) which is useful, but does not add new syntax or constraints beyond the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Recommends crystals from a Vedic natal chart') and immediately differentiates from the sibling asterwise_get_crystal_recommendations by noting it derives from a computed chart rather than sign/chakra. The DO NOT CONFUSE section further disambiguates from three distinct siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow (BEFORE/AFTER), names specific follow-up siblings, and includes a 'DO NOT CONFUSE WITH' section covering asterwise_get_gemstone_recommendations, asterwise_get_crystal_recommendations, and asterwise_get_crystal_by_planet with the condition that separates each. This is explicit when-to-use and when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_crystalsCrystals CatalogueARead-onlyIdempotentInspect
Returns all 54 crystals in the database sorted alphabetically. Each entry includes chakra associations, elemental correspondences, Vedic and Western planetary assignments, physical/emotional/spiritual healing properties, geographic origins, affirmations, and safety cautions.
WORKFLOW: BEFORE: None — standalone catalogue. AFTER: asterwise_get_crystal_by_planet — filter by Vedic planet for remedial use.
INPUT CONTRACT: No required parameters.
DO NOT CONFUSE WITH: asterwise_get_crystal — single crystal detail by name. asterwise_get_crystal_by_planet — filter by Vedic planetary correspondence. asterwise_get_crystal_recommendations — recommendations by zodiac/chakra/intention.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-crystals/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, and openWorld=false, so the safety profile is fully covered by structured data. The description adds the deterministic behavioral traits an agent needs: fixed size (54 entries) and deterministic ordering, which imply stable, repeatable output. It stops short of any rate-limit or failure-mode detail, deferring instead to a docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the payload summary, then clearly sectioned by WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH, which makes it easy to scan. Slightly verbose in the field enumeration and the 'BEFORE: None — standalone catalogue' line carries little weight, but every section is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only catalogue with an output schema, full annotation coverage, and one well-documented parameter needs little more than routing guidance, which this provides. Output values need not be re-explained given the output schema, yet the description still lists them usefully, and the error/output contract is linked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one optional enum parameter (response_format), whose schema description already explains both values. The prose adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns all crystals) plus scope specifics: the exact count (54), the sort order (alphabetical), and a full inventory of the fields each entry carries. It also explicitly names the sibling tools it is not, so an agent can distinguish the full catalogue from the single-crystal and filtered variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW BEFORE/AFTER block gives explicit sequencing, and 'DO NOT CONFUSE WITH' lists three sibling tools with the distinguishing condition for each (single crystal by name, filter by Vedic planet, recommendations by zodiac/chakra/intention). It also states the input contract (no required parameters). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_dashaVimshottari DashaARead-onlyIdempotentInspect
Computes Vimshottari Dasha from birth data and returns hierarchical period trees plus current Maha/Antar interpretation blocks.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — establishes chart and Moon context before interpreting Dasha lords. AFTER: asterwise_get_dasha_transits — correlates active Dasha lords with transits for the same birth data.
INPUT CONTRACT: levels (int, default 2, max 5): tree depth — 1 = Mahadasha only; 2 adds Antardasha; 3 Pratyantar; 4 Sookshma; 5 Prana (much larger payload). from_date / to_date (string, optional — YYYY-MM-DD, UTC, inclusive): return only the periods running in that range, at every level; use them with levels 4-5 to keep the answer small (one year of 5 levels is about 100 KB instead of over 20 MB). data.interpretation still describes today's periods. Response dates in periods[] use DD/MM/YYYY, not ISO. BirthData fields follow the global contract (date YYYY-MM-DD, time HH:MM). Unknown birth time: omit time (a sunrise chart is cast and birth_time_provided=false); never pass time='00:00' for unknown, which is read as midnight.
DO NOT CONFUSE WITH: asterwise_get_char_dasha — classical sign-based periods with ISO dates on periods[], not planet-based Vimshottari. asterwise_get_yogini_dasha — 36-year eight-Yogini cycle with data.periods.root[], not Vimshottari. asterwise_get_ashtottari_dasha — 108-year alternative tree with data.periods.root[] and same levels semantics as this tool.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-dasha/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| levels | No | Depth of the Vimshottari tree, 1-5: 1 = Mahadasha only, 2 adds Antardasha (default), 3 Pratyantar, 4 Sookshma, 5 Prana (much larger payload). | |
| to_date | No | YYYY-MM-DD (UTC, inclusive). Only periods that have started by the end of this day. | |
| from_date | No | YYYY-MM-DD (UTC). Only periods still running on or after this day. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description still adds real operational context: payload magnitudes (about 100 KB vs over 20 MB), the fact that data.interpretation ignores from_date/to_date, and the unknowable-birth-time fallback (sunrise chart, birth_time_provided=false, never pass 00:00). The one gap is that it defers the full error contract to an external URL rather than summarizing it inline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence summary followed by labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE), which makes scanning easy. The levels explanation largely restates the schema enum, a minor redundancy, but the density of the remaining content justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-input, output-schema-bearing computation tool, it covers everything an agent needs: birth data contract, unknown-time edge case, depth/payload tradeoff, date filtering semantics, output date format quirk, and correct sibling routing. Return values need not be documented further because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3; the description earns a point by adding meaning the schema lacks — the per-level names (Maha/Antar/Pratyantar/Sookshma/Prana), the DD/MM/YYYY date format inside periods[] versus ISO elsewhere, and the explicit recommendation to pair date filters with levels 4-5 to bound payload size. It also clarifies the semantic asymmetry of the date filters (periods that started by to_date vs still running after from_date).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Computes Vimshottari Dasha from birth data") plus the exact return shape (hierarchical period trees and current Maha/Antar interpretation blocks). The DO NOT CONFUSE section names the three closest siblings (char, yogini, ashtottari dasha) and the discriminator for each, so the agent can select this tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow sequencing (RECOMMENDED prerequisite asterwise_get_natal_chart, follow-on asterwise_get_dasha_transits) with the reason for each. Exclusions are spelled out by naming rival dasha tools and their distinguishing payload fields rather than leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_dashakootDashakootARead-onlyIdempotentInspect
Computes the ten-koota Dashakoot grid for two charts and converts it to a ten-point score with percentage. Also returns boolean dosha flags and supplementary diagnostics.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart for each native — context before regional scoring. AFTER: asterwise_get_papasamyam — optional malefic differential.
INPUT CONTRACT: Two BirthData objects per global contract.
DO NOT CONFUSE WITH: asterwise_get_compatibility — North Indian 36-point Ashtakoota with different breakdown keys. asterwise_get_porutham — Tamil ten-porutham passed counts, not Dashakoot floats.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-dashakoot/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for a single person. | |
| person2 | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so safety is covered. The description adds genuine value beyond that: it discloses the return payload shape (score, percentage, boolean dosha flags, diagnostics) and the workflow ordering, though error behavior is deferred to an external docs link rather than stated inline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH blocks. Every line adds routing or contract information; nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 spelled out, yet the description still summarizes them. Combined with workflow ordering, sibling disambiguation, and the input contract, an agent has everything needed to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both nested BirthData objects document every field, so the schema carries the load. The description only adds 'Two BirthData objects per global contract,' which does not extend meaning beyond what the schema already says. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Computes the ten-koota Dashakoot grid for two charts'), plus the transformation ('converts it to a ten-point score with percentage') and secondary returns. It explicitly distinguishes itself from two similar-sounding siblings (Ashtakoota 36-point compatibility, Tamil ten-porutham) by naming their differing breakdown keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE (get_natal_chart, marked RECOMMENDED) and AFTER (get_papasamyam, optional) workflow. The DO-NOT-CONFUSE-WITH block names two alternatives and the condition that separates them, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_dasha_transitsDasha TransitsARead-onlyIdempotentInspect
Combines active Vimshottari lords with transits on one date and returns scored correlations plus transit longitudes and houses from Moon and Lagna.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — same birth data should be understood before interpreting houses and lords. AFTER: asterwise_get_gochar — optional broader transit snapshot without dasha scoring.
INPUT CONTRACT: target_date (string, optional — YYYY-MM-DD): date to analyse; defaults to today. target_time (string, optional — HH:MM, default 12:00) and target_timezone (IANA, optional — default Asia/Kolkata) set the instant on that date. All parameters are otherwise defined in the tool schema. BirthData follows the global contract. Birth time is required: this tool has no sunrise fallback. If the user doesn't know it, say so rather than guessing; never pass time='00:00' for unknown.
DO NOT CONFUSE WITH: asterwise_get_gochar — full nine-planet Gochar with AVK and vedha fields, without dasha–transit correlation scores. asterwise_get_transits — ingress and station lists over a chosen range, not today's dasha snapshot. asterwise_get_dasha — full Vimshottari tree without transit overlay.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-dasha-transits/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| target_date | No | Date in YYYY-MM-DD format. | |
| target_time | No | HH:MM on target_date. Defaults to 12:00. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA zone for target_date and target_time. Defaults to Asia/Kolkata. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: birth time is mandatory with no sunrise fallback, and the agent is told to admit ignorance rather than pass '00:00'. It stops short of describing pagination/rate limits or the scoring scale, so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by clearly labelled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH blocks. Every sentence carries routing or constraint value with no filler, and the output-contract link is deferred to the end where it belongs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 5 params, a nested birth object, 100% schema coverage and an output schema, the description supplies everything an agent needs: purpose, prerequisites, defaults, the hard birth-time requirement, and disambiguation from the three nearest siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (including the nested birth object) is documented in-schema, so the baseline is 3. The description restates the target_date/target_time/target_timezone defaults and the no-sunrise-fallback rule, which duplicates rather than extends the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and composite resource: combines active Vimshottari lords with transits for one date, returning scored correlations plus transit longitudes and houses from Moon and Lagna. The 'DO NOT CONFUSE WITH' block explicitly separates it from asterwise_get_gochar, asterwise_get_transits and asterwise_get_dasha, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WORKFLOW section gives a BEFORE prerequisite (get_natal_chart to understand houses/lords) and an AFTER alternative (get_gochar for a broader transit snapshot without dasha scoring). The alternatives block names three siblings with the exact distinguishing trait of each, covering when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_divisional_chartDivisional ChartARead-onlyIdempotentInspect
Computes divisional (varga) charts from BirthData; pass chart_type for one varga, or omit chart_type for all sixteen. Each planet in each varga comes with its dignity there and whether it is vargottama; with a known birth time, each chart also has its own lagna, every planet's whole-sign house from that lagna, and a houses table.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — anchor D1 before reading higher vargas. AFTER: None.
INPUT CONTRACT: chart_type enum is enforced locally. BirthData follows the global contract. Unknown birth time: omit time; lagna, houses and the houses table are then left out (birth_time_provided=false).
DO NOT CONFUSE WITH: asterwise_get_natal_chart — radix chart with houses and drishti, not the varga set. asterwise_get_chart_strength — varga-based strength scores, not placements.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-divisional-chart/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| chart_type | No | Divisional chart to return, D1 to D60. Omit to return all 16 charts. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds real behavioral context beyond that: enum enforcement is local, and with an unknown birth time the lagna, houses, and houses table are omitted with birth_time_provided=false. It does not cover failure modes or rate limits, which is delegated to the docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core sentence, then clearly labeled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE WITH blocks. Every sentence carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only computation tool with a full output schema, the description covers what is computed, the optional-parameter behavior, output contents, degradation without birth time, prerequisites, and sibling disambiguation. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so birth fields, ayanamsa, timezone, and the omission-for-unknown-time semantics are already documented in the schema. The description's 'omit chart_type for all sixteen' and the birth_time_provided note largely restate what the schema says, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Computes divisional (varga) charts from BirthData') and immediately names the two siblings it is not: get_natal_chart and get_chart_strength. An agent can distinguish it from all ~90 siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WORKFLOW block recommends asterwise_get_natal_chart as the D1 anchor beforehand, states AFTER: None, and the DO NOT CONFUSE WITH section routes on the specific conditions (radix chart with houses/drishti vs. varga set; varga-based strength scores vs. placements).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_doshasDoshasARead-onlyIdempotentInspect
Scores thirteen fixed dosha buckets from birth data and returns presence flags, typed detail objects, optional summaries, and remedy lines per dosha.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — chart familiarity before dosha interpretation. AFTER: asterwise_get_remedies — classical remedial suggestions after dosha review.
INPUT CONTRACT: BirthData follows the global contract. Unknown birth time at midnight is accepted silently.
DO NOT CONFUSE WITH: asterwise_get_chart_strength — Shadbala/Vimshopaka power metrics, not dosha booleans. asterwise_get_compatibility — pair scoring including nadi_dosha flags, not the thirteen natal dosha buckets.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-doshas/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful output context (presence flags, typed details, optional summaries, remedy lines) and workflow sequencing. However, its statement that unknown birth time at midnight is accepted silently is ambiguous and appears to conflict with the schema's explicit instruction never to pass '00:00' for unknown time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core purpose, then organized into scannable WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections. No sentence is wasted, and the structure supports rapid agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with an output schema and full annotations, the description is largely complete: it covers purpose, workflow, sibling exclusions, and input contract. The only gap is the potentially misleading midnight-time guidance, which prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters in detail. The description's only parameter-related addition is 'BirthData follows the global contract', which adds no actionable detail, plus the ambiguous/conflicting midnight-time statement. This falls below the baseline because it may mislead rather than clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Scores'), a precise resource ('thirteen fixed dosha buckets'), and the output shape. It explicitly distinguishes itself from asterwise_get_chart_strength and asterwise_get_compatibility, making sibling selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section names recommended predecessor and successor tools. The DO NOT CONFUSE WITH section explicitly names alternatives and the conditions under which they differ, leaving no inference needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_dream_symbolDream SymbolARead-onlyIdempotentInspect
Lookup a specific dream symbol by slug or name (case-insensitive). Returns full dual-tradition interpretation including Jungian archetype, Vedic dream meaning with auspiciousness, context variants, and related symbols.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: name: Symbol slug or display name. Examples: 'snake', 'eagle', 'childhood-home', 'lotus', 'black-dog'
DO NOT CONFUSE WITH: asterwise_get_dream_symbols — full database listing with optional category filter.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-dream-symbol/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Dream symbol slug or display name, e.g. 'snake', 'eagle', 'childhood-home', 'lotus'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description discloses case-insensitive lookup, standalone execution, and provides a link to the full output and error contract. These are behavioral details not covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, full contract link). It is concise, uses short bullet-like sentences, and avoids unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return content (Jungian archetype, Vedic meaning, context variants, related symbols), the input format with examples, the output format options, and points to a full contract link. Combined with the schema and annotations, it gives the agent full context needed to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for both parameters. The description's INPUT CONTRACT section only repeats the name parameter details already present in the schema (e.g., examples). No additional semantic meaning is added beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Lookup a specific dream symbol'), the target resource ('by slug or name (case-insensitive)'), and the output contents ('full dual-tradition interpretation...'). It also names the sibling tool it is not to be confused with, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear 'DO NOT CONFUSE WITH' guidance to distinguish from asterwise_get_dream_symbols (full listing), and includes a WORKFLOW section indicating it is standalone with no prerequisites or follow-ups. This gives explicit when-to-use and when-not-to-use direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_dream_symbolsDream SymbolsARead-onlyIdempotentInspect
Returns dream symbols from the database with dual-tradition interpretation: Jungian/Western psychological analysis and traditional Vedic dream-symbol meaning. 500 symbols across 8 categories. Optionally filter by category.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_dream_symbol — get full detail for a specific symbol.
INPUT CONTRACT: category (optional): One of animals, nature, people, places, objects, actions, body, abstract. Omit for all 500 symbols.
DO NOT CONFUSE WITH: asterwise_get_dream_symbol — single symbol detail by name.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-dream-symbols/
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | One of the 8 categories; omit for all 500 symbols. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, so the safety profile is covered. The description adds useful context: the dual-tradition nature of each symbol, the total corpus size, and the default filter behavior. It stops short of describing pagination or response shape, but with an output schema present that gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then uses labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, docs URL) that each earn their place. No filler sentences and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two optional params, a full output schema, and complete annotations, the description covers everything an agent needs: purpose, corpus scope, category semantics, the alternative tool, and a docs link for the full output/error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, setting a baseline of 3, and the description adds value beyond the schema by enumerating the eight valid categories in the INPUT CONTRACT and clarifying that omission returns all 500 symbols — richer than the schema's terse 'omit for all 500 symbols.' The response_format parameter is left to the schema, which is acceptable at full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns dream symbols from the database') and defines scope precisely: 500 symbols across 8 categories with dual Jungian/Western and Vedic interpretation. It explicitly distinguishes itself from the singular asterwise_get_dream_symbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow block (BEFORE: none — standalone; AFTER: asterwise_get_dream_symbol), an input contract on optional category usage, and a 'DO NOT CONFUSE WITH' clause naming the sibling and its distinct role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_expression_numberExpression NumberARead-onlyIdempotentInspect
Calculates the Expression (Destiny) number from the full name using Pythagorean letter values. Reduces each name part separately before summing (Decoz per-part method), keeping master numbers 11, 22, 33 at every step.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_soul_urge_number — complete the core trinity (Expression, Soul Urge, Personality).
INPUT CONTRACT: name — Full legal name as used at birth. Include all name parts separated by spaces. Example: 'Arjun Mehta', 'Sofia Rossi', 'James Carter' Format: string, any case (uppercase/lowercase both accepted) Constraint: at least one alphabetic character required
DO NOT CONFUSE WITH: asterwise_get_soul_urge_number — vowels only, not all letters. asterwise_get_personality_number — consonants only, not all letters. asterwise_get_numerology_profile — returns Expression plus all other core numbers, pinnacles, challenges, and lucky numbers in one call. asterwise_get_chaldean_numerology — different letter-value system (Chaldean 1–8).
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-expression-number/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is covered. The description adds genuine behavioral context beyond them: the Decoz per-part reduction order and the invariant that master numbers 11/22/33 are preserved at every step. It stops short of describing error responses, deferring those to a docs link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-sentence definition, then labelled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections that an agent can scan. No filler sentences; the docs link replaces what would otherwise be bloated return-value prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be re-explained, and the description correctly omits them. Between the algorithm note, input contract, sibling disambiguation, and docs link, an agent has everything required 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 would be the baseline, but the INPUT CONTRACT adds meaning the schema does not carry: worked examples ('Arjun Mehta', 'Sofia Rossi'), explicit case-insensitivity, and a validation constraint (at least one alphabetic character). The response_format enum is already documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculates) and resource (Expression/Destiny number) plus the algorithm family (Pythagorean letter values) and scope (full name). A 'DO NOT CONFUSE WITH' block names the sibling tools it must be distinguished from, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states WHEN via workflow ('BEFORE: None — standalone', 'AFTER: soul_urge' to complete the core trinity) and the alternatives via the DO NOT CONFUSE block (soul_urge=vowels, personality=consonants, profile=all-in-one, chaldean=different system). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_festival_calendarFestival CalendarARead-onlyIdempotentInspect
Hindu festivals, vrats, sankrantis, eclipses and periods for a year at a location. Each lunar festival is fixed by its lunar month (amanta, with Adhik months found from new moons and sankrantis), its tithi, and the part of the day the tithi must hold (sunrise, forenoon, Madhyahna, Aparahna, Pradosh, Nishita, moonrise), with the classical tie-breaks when a tithi spans two days, Bhadra rules for Holika Dahan and Raksha Bandhan, and the Smarta Ekadashi rule. Checked against published panchang dates (New Delhi).
WORKFLOW: BEFORE: asterwise_geocode — when you only have a place name. AFTER: asterwise_get_panchanga — the day's limbs and timings for a festival date.
INPUT CONTRACT: year (1900-2100), lat, lon, timezone (IANA, default Asia/Kolkata). categories: optional list of festival, vrat, sankranti, eclipse, period; the default is ["festival"] (about 50 named festivals). Add "vrat" for every Ekadashi, Pradosh, Sankashti, Purnima and Amavasya, "period" for Adhik Maas, Pitru Paksha and Chaturmas, "eclipse" for eclipses.
DO NOT CONFUSE WITH: asterwise_get_panchanga_calendar — daily limbs for a month, not festivals. asterwise_get_muhurta — auspicious windows for an activity, not festival dates.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-festival-calendar/
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees, north positive. | |
| lon | Yes | Longitude in decimal degrees, east positive. | |
| year | Yes | Calendar year, e.g. 2026. | |
| timezone | No | IANA timezone of the location. | Asia/Kolkata |
| categories | No | Which entries to return: festival (default, about 50 named festivals), vrat (Ekadashi, Pradosh, Sankashti, Purnima, Amavasya), sankranti, eclipse, period (Adhik Maas, Pitru Paksha, Chaturmas, Navratri, Holashtak, Kharmas). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful methodology — how lunar festivals are fixed by month, tithi and day-part, tie-break rules, Bhadra/Smarta Ekadashi rules — and validation against published panchang dates. However, it does not disclose practical behaviors like response size for a full year or rate limits; solid added context, but not exceptional beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then structured WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE sections. The tithi and Bhadra methodology sentence is dense and somewhat verbose, but it is relevant and does not bury the routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (astronomical festival computation, six parameters, category defaults), and the description covers placement workflow, disambiguation, defaults, category expansion and validation basis. Because an output schema exists, it need not explain return values, so this is complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description earns an extra point by adding meaning the schema does not convey in the same words: the default ['festival'] yields about 50 named festivals, and 'vrat'/'period'/'eclipse' each expand the result set in specific ways. It supports the enum semantics rather than merely repeating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: Hindu festivals, vrats, sankrantis, eclipses and periods for a year at a location. It explicitly names the siblings it is not (get_panchanga_calendar, get_muhurta), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit BEFORE/AFTER workflow (geocode, then panchanga) and a 'DO NOT CONFUSE WITH' section naming alternatives with disambiguating conditions. It also explains exactly when to add each category value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_gemstone_recommendationsGemstone RecommendationsARead-onlyIdempotentInspect
Computes Ratna-style gemstone picks and cautions from the natal chart. Returns the primary and role-based stones, secondary options, contraindications and a safety note.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — confirm chart before wearing advice. AFTER: asterwise_get_remedies — broader remedial programme if needed.
INPUT CONTRACT: BirthData follows the global contract.
DO NOT CONFUSE WITH: asterwise_get_remedies — mantras, fasting, charity rows, not a gem matrix. asterwise_get_lal_kitab_remedies — Lal Kitab actions, not classical Ratna picks.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-gemstone-recommendations/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is covered and the bar is lower. The description still adds value by disclosing that output includes contraindications and a safety note, and that wearing advice presupposes a confirmed chart — meaningful context for a recommendation tool that could be misused.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then clearly labeled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE blocks that are easy to scan. Slightly longer than needed because the docs URL and output listing duplicate coverage available in the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values, yet it summarizes them briefly and adds a route to the full output/error contract. Workflow, prerequisites, sibling disambiguation and data contract are all present for a single-required-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with nested BirthData fields fully documented (including the explicit no-sunrise-fallback rule for 'time'), so the schema carries parameter semantics. The description only adds a pointer that BirthData follows the global contract, which is orientation rather than new per-parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Computes Ratna-style gemstone picks and cautions from the natal chart') and names the returned artifacts. The DO NOT CONFUSE section explicitly separates it from asterwise_get_remedies and asterwise_get_lal_kitab_remedies, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (confirm chart via asterwise_get_natal_chart, follow up with asterwise_get_remedies) plus two named alternatives with the condition that selects each. When-to-use and when-not-to-use are both covered directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_ghat_chakraGhat ChakraARead-onlyIdempotentInspect
Returns the four Ghatak (inauspicious) timing parameters for a native based on their Janma Rasi (natal Moon sign).
WORKFLOW: BEFORE: None — birth data computes everything needed. AFTER: asterwise_get_nakshatra_prediction — for today's personalized daily auspiciousness score.
INPUT CONTRACT: birth — BirthData (date, time, lat, lon, timezone). Moon sign is computed from birth data.
DO NOT CONFUSE WITH: asterwise_get_nakshatra_prediction — personalised daily Tarabala score, not static Ghatak parameters. asterwise_get_panchanga — daily panchanga elements, not Ghat Chakra lookup.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-ghat-chakra/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds real value beyond that: it declares that all inputs derive from birth data with no sunrise fallback and states the computational dependency on the natal Moon sign. It stops short of richer behavioral detail (cost, latency, precision limits) but covers what matters for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH). Every sentence carries routing or input information; nothing is padding, despite the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no prose, and the description supplies the missing pieces: workflow placement, the input contract, disambiguation from siblings, and a docs link for the full output/error contract. Nothing needed to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents birth, response_format and every nested field (including the ayanamsa enum and the warning against guessing birth time). The description only adds that Moon sign is computed from birth data, which is derived behavior rather than new parameter meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns the four Ghatak (inauspicious) timing parameters, scoped to Janma Rasi. It explicitly names and contrasts the sibling tools it could be confused with, so an agent can select it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives explicit BEFORE/AFTER sequencing, and the DO NOT CONFUSE WITH block names two alternatives (get_nakshatra_prediction, get_panchanga) with the exact distinguishing condition for each. Nothing about when to use this vs. those is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_gocharGocharARead-onlyIdempotentInspect
Computes Gochar against the natal Moon and Lagna and returns per-planet transit longitudes, houses, AVK scores, vedha flags, and a roll-up summary.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — anchors what "natal" means for the same birth record. AFTER: asterwise_get_dasha_transits — adds dasha-lord correlation for today.
INPUT CONTRACT: target_date (string, optional — YYYY-MM-DD): date to compute transits for; defaults to today if omitted. BirthData follows the global contract. Birth time is required: this tool has no sunrise fallback. If the user doesn't know it, say so rather than guessing; never pass time='00:00' for unknown.
DO NOT CONFUSE WITH: asterwise_get_transits — ingress and station tables for a chosen date window, not a single-day Gochar snapshot. asterwise_get_dasha_transits — scores how transits meet active dasha lords, not the full nine-planet Gochar row set.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-gochar/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| target_date | No | Date to compute transits for, YYYY-MM-DD (at 12:00 India time). Defaults to today in India (Asia/Kolkata). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real operational context beyond them: no sunrise fallback for missing birth time, an instruction not to guess or pass '00:00', and the fact that target_date is evaluated at 12:00 India time. It stops short of describing error surfaces beyond pointing at an external contract URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then uses labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) so an agent can scan to the relevant section. Dense but every block carries routing or constraint information; the trailing doc link is the only mild padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values, yet it does summarize them. Combined with the input contract, defaults, sibling disambiguation, and workflow ordering, an agent has everything needed to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description goes slightly beyond by framing the input contract (target_date optional and defaulted, birth time mandatory with no fallback path) rather than merely repeating field names. It does not add format or validation detail beyond what the schema already encodes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Computes Gochar against the natal Moon and Lagna') and enumerates the output payload (longitudes, houses, AVK scores, vedha flags, roll-up summary). The DO NOT CONFUSE WITH block explicitly separates it from asterwise_get_transits and asterwise_get_dasha_transits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow chain (natal chart first, dasha transits after) and names both alternatives with the condition that distinguishes them ('ingress and station tables for a chosen date window' vs 'single-day Gochar snapshot'). Prerequisites are also stated: birth time is required and there is no sunrise fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_horaHoraARead-onlyIdempotentInspect
Builds the twenty-four planetary Horas between successive sunrises for a location date and tags each hour with ruler, quality text, and whether it is current.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_choghadiya — alternative same-day slot system.
INPUT CONTRACT: LocationInput date/coordinate rules apply locally (YYYY-MM-DD, bounded lat/lon).
DO NOT CONFUSE WITH: asterwise_get_choghadiya — sixteen Choghadiya segments, not twenty-four Horas. asterwise_get_natal_chart — natal analysis, not hourly muhurta tables.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-hora/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint=true and idempotentHint=true, covering the key behavioral aspects. The description adds context about the output (tags each hour with ruler, quality, and 'current' status) and references a full output/error contract link. This goes slightly beyond the annotations, though it doesn't explicitly mention side effects or permissions (which are covered by the readOnlyHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, full contract link). It is concise yet comprehensive, using bullet-like separations to convey essential information without unnecessary verbosity, especially given the large number of sibling tools it must differentiate from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a relatively simple input structure (one nested location object) and an output schema is present. The description provides enough context to understand the tool's purpose and output, and it includes a link to the full output/error contract. Given the output schema exists, the description adequately covers what an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all properties, including date format, lat/lon ranges, timezone default, and response_format enum. The description only restates the location rules ('date/coordinate rules apply locally') without adding new semantic details beyond the schema, so it does not exceed the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific function: 'Builds the twenty-four planetary Horas between successive sunrises for a location and tags each hour with ruler, quality text, and whether it is current.' It also explicitly differentiates from sibling tools like asterwise_get_choghadiya and asterwise_get_natal_chart, ensuring no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives. It states 'WORKFLOW: BEFORE: None — this tool is standalone' and 'DO NOT CONFUSE WITH' sections that clarify the differences from get_choghadiya and get_natal_chart, giving clear conditions for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_horoscopeMoon Sign HoroscopeARead-onlyIdempotentInspect
Fetches an AI-synthesised Moon-sign horoscope for a chosen horizon and returns structured guidance fields plus metadata about the model and period.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_natal_chart — if the user needs a personalised chart beyond sign-general copy.
INPUT CONTRACT: period is constrained to the tool schema enum (daily, weekly, monthly, yearly). moon_sign accepts Sanskrit (Tula, Vrishchika, Karka, Simha, Kanya, Dhanu, Makara, Kumbha, Meena, Mesha, Vrishabha, Mithuna) or English (Libra, Scorpio, Cancer, Leo, Virgo, Sagittarius, Capricorn, Aquarius, Pisces, Aries, Taurus, Gemini); resolution is upstream. response_format selects JSON vs markdown rendering only.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — full personalised sidereal chart from birth data, not Moon-sign editorial copy. asterwise_get_gochar — nine-planet transit snapshot vs natal chart for today, not AI horoscope prose.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-horoscope/
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes | Horoscope period: daily, weekly, monthly or yearly. | |
| moon_sign | Yes | Vedic moon sign (rashi), e.g. 'Vrishabha' or 'Taurus'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely non-structured context: the content is AI-synthesised, the payload includes model and period metadata, moon_sign resolution happens upstream, and response_format 'selects JSON vs markdown rendering only' — an important clarification that formatting does not alter content. It does not mention latency, rate limits, or failure modes beyond the external docs link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded lead sentence followed by clearly labelled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE sections, which is easy for an agent to parse. Minor waste: the period enum is re-listed verbatim from the schema, and a docs URL is carried in the description rather than a structured field.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't describe return fields, and rich annotations cover the safety profile; what it does provide — sign-name vocabulary, upstream resolution, format-vs-content semantics, sibling disambiguation — is sufficient to call it correctly. The full output and error contract is deferred to an external URL, which leaves error behaviour undocumented in-context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3, but the description adds real meaning: the full accepted Sanskrit and English moon-sign name lists (the schema only shows one example pair) and the note that resolution is upstream, implying the tool will not validate the sign itself. The restatement of the period enum duplicates the schema and earns nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Fetches an AI-synthesised Moon-sign horoscope for a chosen horizon' — and names the return shape (guidance fields plus model/period metadata). It explicitly separates itself from asterwise_get_natal_chart and asterwise_get_gochar, but never distinguishes itself from the close sibling asterwise_get_western_horoscope, nor does it say the horoscope is Vedic/sidereal in the prose (that only appears inside the moon_sign parameter description).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: BEFORE None (standalone), AFTER asterwise_get_natal_chart with the condition 'if the user needs a personalised chart', plus a DO NOT CONFUSE WITH block naming two alternatives and the reason each differs. An agent has enough to choose correctly without opening another schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_karmic_lessonsKarmic LessonsARead-onlyIdempotentInspect
Identifies karmic lessons by scanning all letter values in the full name and finding which digits 1–9 are absent. Each missing digit represents an area where experience is thin and development is needed in this lifetime.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — see karmic lessons alongside all core numbers.
INPUT CONTRACT: name — Full legal name as used at birth. Example: 'Arjun Mehta' — scan all 10 letters for their Pythagorean digit values. Letters present: A=1, R=9, J=1, U=3, N=5, M=4, E=5, H=8, T=2, A=1 Digits present: {1,2,3,4,5,8,9} → Missing: {6,7}
DO NOT CONFUSE WITH: asterwise_get_balance_number — uses only first letters (initials), not all letters. asterwise_get_expression_number — reduces all letters to a single number; does not scan for absent digits.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-karmic-lessons/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint/idempotent/non-destructive, and the description adds real value beyond them: the actual algorithm, a worked example, and an input contract. It doesn't detail error/edge behavior beyond linking to a docs URL, so not a full 5, but the safety profile plus method is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then structured into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH headings. The worked example is long but earns its place by demonstrating the algorithm; only minor trimming is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description still covers purpose, algorithm, workflow ordering, sibling disambiguation, and an error-contract pointer. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds an INPUT CONTRACT section with a concrete worked example ('Arjun Mehta' → letters → missing {6,7}) that makes the 'name' parameter's expected form clearer than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Identifies karmic lessons by scanning all letter values...finding which digits 1–9 are absent') and goes further to explain the mechanism. It actively distinguishes itself from siblings with a 'DO NOT CONFUSE WITH' section naming balance_number and expression_number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow (BEFORE: None — standalone; AFTER: asterwise_get_numerology_profile) and enumerates the sibling tools this should NOT be confused with, along with why. When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_kp_chartKP ChartARead-onlyIdempotentInspect
Builds a KP natal chart with sub-lords on grahas and twelve cusps from BirthData using the KP ayanamsa in the response.
WORKFLOW: BEFORE: RECOMMENDED — cross-check birth record before trusting sub-lords. AFTER: asterwise_get_kp_significators — house-level significator chains.
INPUT CONTRACT: ayanamsa is accepted but ignored (always KP). Birth time is required: this tool has no sunrise fallback. If the user doesn't know it, say so rather than guessing; never pass time='00:00' for unknown.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — classical bundle without KP sub-lords. asterwise_get_kp_ruling_planets — rulers at the moment of judgment (now or a given time), not natal cusps.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-kp-chart/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnly/idempotent safety, but the description adds real behavioral context annotations cannot: ayanamsa is accepted but ignored, no sunrise fallback, and a warning never to pass 00:00 for unknown time. That is the load-bearing disclosure. It doesn't describe the response shape, but an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then labelled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE blocks. Every line earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only chart builder with an output schema and fully documented nested params, the description covers everything an agent needs: how to call it, what it ignores, what to do if birth time is unknown, and where to route before and after.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and nested, so the schema already documents birth fields, enums, defaults and ranges. The description adds one genuine constraint beyond the schema (ayanamsa ignored) plus the birth-time requirement, which the schema itself repeats. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Builds') and resource ('KP natal chart with sub-lords on grahas and twelve cusps') and pins the ayanamsa. It names two siblings it is not (natal_chart, kp_ruling_planets), so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit BEFORE (cross-check birth record) and AFTER (kp_significators) routing, plus a DO NOT CONFUSE block naming the alternative tools and the condition that selects each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_kp_ruling_planetsKP Ruling PlanetsARead-onlyIdempotentInspect
Computes KP ruling planets at a latitude and longitude for the current instant or a given local date and time, with no birth data. Returns the day lord, Moon and Ascendant lord chains, and a deduplicated ruling_planets list.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_kp_chart — if natal confirmation is needed afterwards.
INPUT CONTRACT: lat and lon required. Optional target_date (YYYY-MM-DD), target_time (HH:MM), target_timezone (IANA; defaults to the zone at lat/lon). With neither date nor time the server uses the current instant (KP judges ruling planets at the moment of judgment); time only = that time today; date only = 12:00 local. data.target_utc and data.target_timezone show what was used. target_date must be within 1800-01-01 to 2099-12-31. A time skipped by a daylight-saving change is read with the offset before the change (moved forward by the gap); a time that occurred twice is read as the first occurrence; data.local_time_status is 'nonexistent' / 'ambiguous' / 'ok'.
DO NOT CONFUSE WITH: asterwise_get_kp_chart — needs BirthData and returns full natal KP cusps. asterwise_get_prashna_chart — horary keyword workflow, not ruling-planet snapshot.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-kp-ruling-planets/
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees, north positive (e.g. 13.08). | |
| lon | Yes | Longitude in decimal degrees, east positive (e.g. 80.27). | |
| target_date | No | Local date of the moment to judge, YYYY-MM-DD. Without target_time, 12:00 local is used. Omit both date and time for the current instant. | |
| target_time | No | Local time of the moment to judge, HH:MM (24-hour). Without target_date, that time today. Omit both date and time for the current instant. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA time zone for target_date and target_time, e.g. 'Asia/Kolkata'. Defaults to the zone at lat/lon. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds substantial non-obvious behavior: DST handling for skipped times (moved forward by the gap) and ambiguous times (first occurrence), plus data.local_time_status values. It also discloses the accepted date range (1800–2099) and which fields (target_utc, target_timezone) echo back what was used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then organizes the rest under labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH), which is appropriate for a tool with real edge cases. It is long, but nearly every sentence carries distinct information; minor trimming of the DST detail is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, standalone vs. follow-up routing, the full input contract including defaults and DST edge cases, sibling disambiguation, and a doc link for the full output/error contract. With an output schema present, it does not need to enumerate return fields, and its brief mention of returned values is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents lat/lon, date/time defaults, and timezone. The description nevertheless adds value beyond the schema: the 1800–2099 date-range constraint, the DST resolution rules, and the timezone default derivation from lat/lon. It does not add format/syntax beyond the schema, so it lands just above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (computes), resource (KP ruling planets), and scope (at a lat/lon for the current instant or a given local date/time, with no birth data). It even names the returned components (day lord, Moon/Ascendant lord chains, deduplicated ruling_planets list). The DO NOT CONFUSE WITH block explicitly separates it from kp_chart and prashna_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit workflow routing: 'BEFORE: None — standalone. AFTER: asterwise_get_kp_chart — if natal confirmation is needed.' The DO NOT CONFUSE WITH section names the two nearest alternatives and the distinguishing condition for each (kp_chart needs BirthData; prashna_chart is horary). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_kp_significatorsKP SignificatorsARead-onlyIdempotentInspect
Computes KP significator chains for all houses or one optional house from BirthData and returns house tables plus planet-tier reverse indexes.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_kp_chart — establish cusps before significators. AFTER: None.
INPUT CONTRACT: house_number optional int 1..12; omit for all twelve.
DO NOT CONFUSE WITH: asterwise_get_kp_chart — cusps and sub-lords, not tiered significator unions. asterwise_get_natal_chart — classical drishti matrices differ from KP significator tiers.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-kp-significators/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| house_number | No | House number 1-12. Omit to cover all twelve houses. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: an ordering dependency on asterwise_get_kp_chart, the fact that the tool reads BirthData with no sunrise fallback, and the shape of the result (house tables plus planet-tier reverse indexes). It does not discuss cost, rate limits, or failure modes, which is acceptable given the annotations and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line summary is front-loaded and the labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) make the routing information scannable rather than buried in prose. It is slightly padded by the redundant INPUT CONTRACT line and the external docs URL, but nothing is materially wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, a rich nested birth object, an output schema, and safety annotations, the description covers the remaining gaps an agent needs: when to run it relative to the KP chart tool, and which sibling tools it is not. The only omission is domain context on what a 'significator tier' means, which is reasonable to defer to the linked documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (birth fields, ayanamsa, timezone, house_number, response_format) is documented in the schema itself, including the important 'never pass 00:00 for unknown' warning. The description's INPUT CONTRACT ('house_number optional int 1..12; omit for all twelve') only restates what the schema already says, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Computes KP significator chains') and names the scope ('all houses or one optional house from BirthData'), plus what it returns ('house tables plus planet-tier reverse indexes'). The DO NOT CONFUSE WITH section explicitly separates it from asterwise_get_kp_chart and asterwise_get_natal_chart, so an agent can identify it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives an explicit precondition ('BEFORE: RECOMMENDED — asterwise_get_kp_chart — establish cusps before significators') and states there is no follow-up tool. The DO NOT CONFUSE WITH section names two alternatives and explains the discriminating dimension (cusps/sub-lords vs. tiered significator unions; drishti matrices vs. KP tiers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_lal_kitab_chartLal Kitab ChartARead-onlyIdempotentInspect
Produces a Lal Kitab chart from BirthData following the 1952 Lal Kitab: houses counted from the Vedic lagna, the lagna house read as house 1 (Aries). Returns planets with pakka ghar, uchcha/neecha, fixed or doubtful effect and malefic reasons, the twelve houses, and the nine Lal Kitab debts (rin).
WORKFLOW: BEFORE: None — standalone for Lal Kitab queries. AFTER: asterwise_get_lal_kitab_remedies — remedies for the planets that need them.
INPUT CONTRACT: BirthData global contract. ayanamsa: lahiri (default), raman or kp is used as sent; tropical is refused (INVALID_PARAMS) because Lal Kitab starts from the sidereal Indian chart. Unknown birth time: omit time (a sunrise chart is cast and birth_time_provided=false); houses are then approximate.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — classical radix, not Lal Kitab rules. asterwise_get_lal_kitab_remedies — remedies only, for the planets that need them.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-lal-kitab-chart/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive operation, so the bar is lower; the description goes well beyond them by disclosing that tropical ayanamsa is refused with INVALID_PARAMS, that omitting time yields a sunrise chart with birth_time_provided=false and approximate houses, and that the output enumerates specific derived structures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections; the structure makes scanning fast. It is somewhat long, and the docs URL/last line is minor overhead, but each block carries actionable content rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the description summarizes the returned structures rather than restating them; combined with the ayanamsa constraint, unknown-time fallback, error behavior, and sibling routing, nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: it clarifies that ayanamsa options are used 'as sent' except tropical, which the schema lists as a valid enum value but the tool rejects, and it explains the unknown-birth-time behavior of the time parameter. That is meaningful guidance beyond the field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Produces a Lal Kitab chart from BirthData') and grounds it in a named system ('following the 1952 Lal Kitab: houses counted from the Vedic lagna'). It also enumerates what the chart contains (pakka ghar, uchcha/neecha, twelve houses, nine rin) and explicitly separates itself from asterwise_get_natal_chart, so an agent can pick it correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit BEFORE/AFTER workflow chaining (standalone, then asterwise_get_lal_kitab_remedies for planets needing remedies) and a 'DO NOT CONFUSE WITH' block naming the two nearest siblings with the condition that distinguishes them. Nothing about when-to-use is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_lal_kitab_remediesLal Kitab RemediesARead-onlyIdempotentInspect
Lists Lal Kitab remedies (from the 1952 Lal Kitab) for the planets that need them, plus remedies for any indicated debts (rin).
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_lal_kitab_chart — see the chart and malefic reasons first. AFTER: None.
INPUT CONTRACT: BirthData only. ayanamsa: lahiri (default), raman or kp is used as sent; tropical is refused (INVALID_PARAMS) because Lal Kitab starts from the sidereal Indian chart. Unknown birth time: omit time (a sunrise chart is cast and birth_time_provided=false); houses, and so the remedies, are then approximate.
DO NOT CONFUSE WITH: asterwise_get_remedies — mantra/gem prescriptions, not Lal Kitab remedies. asterwise_get_gemstone_recommendations — classical Ratna focus, not household remedies.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-lal-kitab-remedies/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, and the description goes further with traits the annotations cannot express: tropical ayanamsa is refused with INVALID_PARAMS and why, and unknown birth time yields a sunrise chart with approximate houses and therefore approximate remedies. These are real invocation-shaping behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) keep it scannable and the highest-value constraints are front-loaded. There is mild redundancy where the INPUT CONTRACT restates schema defaults, and the contract URL adds length, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only 2-parameter tool with an output schema and full annotation coverage, the description supplies everything an agent needs: routing, prerequisite, ayanamsa policy, unknown-time degradation, and a pointer to the full output/error contract. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains that ayanamsa is 'used as sent' for lahiri/raman/kp while tropical is rejected, and that omitting time sets birth_time_provided=false. Marginal but genuine value over the already-complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists Lal Kitab remedies from the 1952 Lal Kitab') with scope: planets that need them plus indicated debts (rin). It explicitly distinguishes itself from siblings asterwise_get_remedies and asterwise_get_gemstone_recommendations, so an agent can route without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE workflow ('asterwise_get_lal_kitab_chart — see the chart and malefic reasons first') and a DO NOT CONFUSE section naming two alternatives with the distinguishing trait for each. When-to-use, prerequisites, and exclusions are all covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_lo_shu_gridLo Shu GridARead-onlyIdempotentInspect
Derives a Lo Shu three-by-three frequency grid from birth-date digits and annotates planes, missing or repeated digits, and per-digit traits.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: date string only; validated upstream.
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — letter-based Western numbers, not digit-frequency Lo Shu. asterwise_get_name_correction — spelling harmonics, not birth-date grids.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-lo-shu-grid/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), lowering the bar. The description adds context beyond annotations by declaring the tool standalone (no workflow dependencies) and noting the input is validated upstream. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses clearly labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that each earn their place. Slightly long but efficiently organized with zero filler; the docs link consolidates the full contract rather than inlining it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out. The description covers the input contract, workflow dependencies, sibling disambiguation, and points to a docs URL for the full output/error contract. For a read-only two-parameter tool this is nearly complete, with only the error behavior deferred to the external docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both date (YYYY-MM-DD format) and response_format (markdown/json enum with default) are documented in the schema. The description's INPUT CONTRACT note ('date string only') reinforces but does not add semantic detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (derives), resource (Lo Shu three-by-three frequency grid), input source (birth-date digits), and the analytical outputs (planes, missing/repeated digits, per-digit traits). It also explicitly names two sibling tools it should not be confused with, which sets it apart from the dozens of numerological siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'DO NOT CONFUSE WITH' section explicitly routes the agent to asterwise_get_numerology_profile for letter-based Western numbers and asterwise_get_name_correction for spelling harmonics. The INPUT CONTRACT states the sole accepted input (date string) and that validation is handled upstream, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_lucky_numbersLucky NumbersARead-onlyIdempotentInspect
Fetches condensed lucky-number guidance for a name and birth date including primary and secondary picks, power number, interpretation, and a date_specific flag.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — if deeper context is required.
INPUT CONTRACT: name and date forwarded upstream without local checks.
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — full multi-section profile, not lucky-number-only payload. asterwise_get_number_meaning — dictionary entry for one integer, not personalised lucky sets.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-lucky-numbers/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | Yes | Person's full name as commonly written; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower; the description adds the useful disclosure that name and date are forwarded upstream without local checks (no client-side validation). It does not describe rate limits or error behavior, deferring those to an external doc link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded first sentence carries the entire payload summary, followed by clearly labelled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections. Every line maps to a decision the agent must make; nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Coverage is complete for a read-only, closed-world tool with an output schema: purpose, output fields, workflow ordering, sibling disambiguation, and an input-handling caveat are all present. Remaining detail (error contract) is deliberately delegated to a documentation URL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline would be 3, but the INPUT CONTRACT line adds meaning beyond the schema by stating the parameters are passed through without local validation. It stops short of adding format or edge-case guidance for name/date beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetches condensed lucky-number guidance') and enumerates the payload (primary/secondary picks, power number, interpretation, date_specific flag). It explicitly separates itself from asterwise_get_numerology_profile and asterwise_get_number_meaning, so an agent can identify it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow block says BEFORE: None — standalone, and AFTER: numerology_profile if deeper context is required. The DO NOT CONFUSE WITH section names two siblings and states the distinguishing condition for each, leaving no routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_maturity_numberMaturity NumberARead-onlyIdempotentInspect
Calculates the Maturity number as the sum of Life Path and Expression numbers, reduced to a single digit or master number. Represents the underlying wish or true desire that surfaces from around age 35 and fully emerges by midlife.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — confirm Life Path and Expression before interpreting their sum. AFTER: None.
INPUT CONTRACT: name — Full legal name as used at birth. Example: 'Arjun Mehta' date — Birth date in YYYY-MM-DD format. Example: '1985-11-12'
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — returns maturity_number as part of the full profile. asterwise_get_personal_cycles — temporal cycles that change annually, not a fixed number.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-maturity-number/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real value beyond that: it discloses the deterministic dependency on two other numbers and that the prerequisite profile call is recommended before interpreting the sum. It does not cover error behavior inline, deferring to an external docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the what and the why, then cleanly sectioned into workflow, input contract, and disambiguation — no sentence is filler. The external 'full output and error contract' URL is of limited use to an agent at call time and is the one slightly wasteful element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering the safety profile, and 100% parameter coverage, the description supplies everything else needed: derivation, prerequisites, and sibling disambiguation. Nothing required for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three params are already documented, which sets the baseline at 3. The INPUT CONTRACT restates name and date with an example but omits response_format entirely, and adds no syntax or format meaning beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb (calculates), the exact resource (Maturity number), the derivation formula (Life Path + Expression, reduced to a single digit or master number), and the interpretive meaning. An agent can distinguish it from the ~90 sibling numerology/astrology tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow guidance (BEFORE: recommended asterwise_get_numerology_profile to confirm Life Path and Expression; AFTER: None) plus a DO NOT CONFUSE section naming two siblings and why. It stops short of an explicit 'use this instead of X when you only need the number' statement, leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_muhurtaMuhurtaARead-onlyIdempotentInspect
Finds auspicious time windows for an activity between two dates (up to a year) at a location, with exact ISO start and end times. Activities: marriage, griha_pravesh, business, travel, naming_ceremony, vehicle_purchase, property_purchase, mundan, annaprashan, upanayana, vidyarambha. Applies each activity's nakshatra, tithi and weekday rules, seasonal bans (Chaturmas, Adhik Maas, Pitru Paksha, Kharmas, Holashtak, Guru/Shukra asta, Panchaka), and avoids Rahu Kaal, Yamaganda, Gulika, Durmuhurta, Varjyam and Bhadra; scores 0-100 with reasons, and excluded_minutes explains an empty result.
WORKFLOW: BEFORE: asterwise_geocode — when you only have a place name. AFTER: asterwise_get_panchanga — full timings for a chosen window's day.
INPUT CONTRACT: request.activity (enum above), request.from_date and request.to_date (YYYY-MM-DD, at most 366 days apart), request.lat, request.lon, request.timezone (IANA). Optional: top_n (1-50, default 5), max_windows_per_day (default 1, so results spread across dates), participants (up to two, each with nakshatra and optional moon_rashi, or birth_date, birth_time, birth_lat, birth_lon, birth_timezone).
DO NOT CONFUSE WITH: asterwise_get_choghadiya — the sixteen slots of one day, not a ranked search. asterwise_get_panchanga — one day's limbs and timings.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-muhurta/
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | Muhurta search parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. Beyond that, the description discloses the actual computation behavior: which nakshatra, tithi, weekday, seasonal-ban, and inauspicious-period rules are applied, that results are scored 0-100 with reasons, and that excluded_minutes explains an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite being detailed, the description is well structured with a front-loaded purpose sentence followed by WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections. For a tool with many nested parameters and close siblings, every section adds useful routing or contract information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so the description need not document return values. It still covers scope, activity rules, required and optional inputs, workflow dependencies, sibling distinctions, scoring behavior, and empty-result behavior, making it complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds organizational clarity by separating required fields from optional ones and summarizing the participant alternatives, but it also omits some optional schema fields such as ayanamsa and response_format, and much of its input contract repeats schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a precise verb, resource, scope, and output format: it finds auspicious time windows for a named activity between two dates at a location, returning ISO start/end times. It explicitly lists supported activities and distinguishes itself from the closest siblings with a DO NOT CONFUSE section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section states when to call asterwise_geocode before this tool and asterwise_get_panchanga after it. The DO NOT CONFUSE section names the two most likely alternative tools and explains their different purposes, leaving no ambiguity about when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_nakshatra_detailsNakshatra DetailsARead-onlyIdempotentInspect
Looks up static metadata for one of twenty-seven nakshatras by name and returns interpretive, professional, activity, and body-map reference data.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: None.
INPUT CONTRACT: nakshatra_name is sent as given; the API ignores case, spaces, hyphens and common romanisation differences ('uttarashadha', 'Aswini', 'Moola' and 'Krithika' all match). An unknown name returns 404 with the 27 valid names and, for a near miss, a suggestion.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — computes birth nakshatra from time/place, not encyclopaedic copy. asterwise_get_dasha — uses Moon nakshatra for timing, not this lookup table.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-nakshatra-details/
| Name | Required | Description | Default |
|---|---|---|---|
| nakshatra_name | Yes | Nakshatra name, e.g. 'Rohini' or 'Uttara Phalguni'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, closed-world and non-destructive traits, and the description goes further: it documents input normalization (case, spaces, hyphens, romanisation variants), the exact failure mode (404 listing the 27 valid names), and near-miss suggestions. That is behavioral detail beyond what annotations carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labelled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE sections. No redundant restatement of the name or title, and the docs link is a compact pointer to the full contract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described; the description instead covers the error contract, matching semantics, and routing against siblings. For a two-parameter read-only lookup this is complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum for response_format is self-explanatory, so the baseline would be 3. The description adds real value by explaining the accepted name variants and matching behavior ('Moola', 'Krithika', hyphens/spaces ignored), which the schema's short example does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb ('looks up') and resource ('static metadata for one of twenty-seven nakshatras by name') and enumerates the returned data categories. The DO NOT CONFUSE section distinguishes it explicitly from get_natal_chart and get_dasha, so an agent can differentiate it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly declares the tool is standalone with BEFORE/AFTER None, and names two sibling tools it should not be confused with, including the reason for each. It does not, however, contrast against the closest sibling, get_nakshatra_prediction, which is the more plausible confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_nakshatra_predictionNakshatra PredictionARead-onlyInspect
Personal daily prediction from Tarabala and Chandrabala for the day at the birth place (sunrise to next sunrise).
WORKFLOW: BEFORE: None — birth data computes everything needed. AFTER: asterwise_get_panchanga — the day's full panchanga; asterwise_get_muhurta — Tarabala-aware windows for an activity.
INPUT CONTRACT: birth: BirthData (date, time, lat, lon, timezone). Unknown birth time: omit time; never pass '00:00'. target_date (optional, YYYY-MM-DD): defaults to today at the birth place.
DO NOT CONFUSE WITH: asterwise_get_nakshatra_details — static nakshatra reference, not a personal prediction. asterwise_get_panchanga — daily panchanga (tithi, yoga, karana), not Tarabala.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-nakshatra-prediction/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| target_date | No | Date of the prediction, YYYY-MM-DD. Defaults to today in the birth time zone. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld=false/no-destructive, so the safety profile is covered; the description adds real behavioral context the annotations cannot: the tool needs an exact birth time, has no sunrise fallback, and handles unknown-time edge cases. It also names where the full output/error contract lives, which is useful given a rich output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then uses labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) so an agent can scan to the relevant block. Every sentence carries routing, input, or disambiguation value; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with a nested birth object, full schema coverage, rich annotations, and an output schema, the description supplies exactly the missing layer: when to use it, what to call before/after, how it differs from adjacent tools, and the required-input contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description mostly restates what the schema already says (target_date defaults to today at the birth place, birth = date/time/lat/lon/timezone). It does add one non-schema behavior note about unknown birth time, but that note ('omit time') sits awkwardly against the schema's required list for birth, so it adds ambiguity rather than clean extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+scope: a personal daily prediction derived from Tarabala and Chandrabala, anchored to the birth place and the sunrise-to-sunrise day. The DO NOT CONFUSE WITH block explicitly separates it from asterwise_get_nakshatra_details (static reference) and asterwise_get_panchanga (daily panchanga), so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit BEFORE: None and AFTER: follow-ups (asterwise_get_panchanga, asterwise_get_muhurta) plus a named set of non-alternatives with the reason each is excluded. This is about as close to a routing decision table as a description gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_name_correctionName CorrectionARead-onlyIdempotentInspect
Scores the current spelling of a personal name against the birth-date Life Path and suggests alternate spellings with harmony metrics. Names the best alternative when one scores higher.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — baseline numbers before renaming advice. AFTER: None.
INPUT CONTRACT: name and date strings only; upstream validates.
DO NOT CONFUSE WITH: asterwise_get_business_name_analysis — entity Expression scan, not personal spelling alternatives. asterwise_get_chaldean_numerology — Chaldean compounds, not harmony-scored spelling list.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-name-correction/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | Yes | Person's full name as commonly written; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior, so the bar is lower. The description adds useful context: it specifies the input contract ('name and date strings only; upstream validates') and describes the scoring/selection behavior ('names the best alternative when one scores higher'), though it leaves error details to an external link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses labeled sections for workflow, input contract, and disambiguation. Every section contributes routing value, and there is no redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description provides the remaining needed context: purpose, workflow placement, input expectations, sibling disambiguation, and a link to the full output/error contract. Nothing essential for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description slightly enriches the date parameter by calling it the 'birth-date' used for Life Path, and clarifies that the name is a personal name whose spelling is being evaluated, adding meaning beyond the schema's generic string descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (scores current personal-name spelling, suggests alternate spellings with harmony metrics) and names the discriminating sibling tools that could be confused with it. An agent can identify the tool's scope without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit workflow guidance (BEFORE: RECOMMENDED get_numerology_profile, AFTER: none) and names two sibling alternatives with the conditions that make this tool different. This covers when to use it and when not to confuse it with adjacent tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_natal_chartNatal ChartARead-onlyIdempotentInspect
Computes the full sidereal natal chart from BirthData and returns planet rows, houses, aspects, arudhas, upapada, bhava cusps, and avakhada metadata.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: RECOMMENDED — asterwise_get_yogas — layer classical combinations after the base chart exists.
INPUT CONTRACT: BirthData enforces date YYYY-MM-DD, time HH:MM, lat -90..90, lon -180..180, ayanamsa enum locally (Pydantic). Unknown birth time: omit time (a sunrise chart is cast and birth_time_provided=false); never pass time='00:00' for unknown, which is read as midnight. Lagna-sensitive results (houses, lagna, arudhas) are then approximate.
DO NOT CONFUSE WITH: asterwise_get_divisional_chart — sixteen vargas only, not the primary radix bundle returned here.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-natal-chart/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| include_interpretation | No | Include a written interpretation alongside the chart data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, it discloses the unknown-birth-time behavior (sunrise chart cast, birth_time_provided=false) and the downstream consequence that lagna-sensitive results become approximate. That is genuine behavioral context an agent needs in order to interpret output, not a restatement of the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and well-sectioned (purpose, workflow, input contract, disambiguation), with no filler sentences. It is slightly verbose because the input contract partly restates schema-level validation rules, but each section still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only chart tool with a rich nested schema and an output schema, the description covers the remaining needs: workflow position, sibling disambiguation, edge-case input handling, and a documentation link for the full output/error contract. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents formats, bounds, and the ayanamsa enum, making 3 the baseline. The description adds meaning by warning that time='00:00' is read as midnight and by linking the omitted-time case to approximation of lagna-sensitive values, which the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Computes) and resource (full sidereal natal chart) plus an explicit enumeration of the returned artifacts (planet rows, houses, aspects, arudhas, upapada, bhava cusps, avakhada). It also names the sibling it should not be confused with, so an agent can separate it from the divisional-chart tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit BEFORE/AFTER workflow (standalone, then optionally layer yogas) plus an explicit DO NOT CONFUSE WITH routing to asterwise_get_divisional_chart. This covers when to use it, what precedes/follows, and the alternative, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_number_meaningNumber MeaningARead-onlyIdempotentInspect
Returns dictionary-style numerology copy for a single integer, including interpretation, keywords, and stubbed extended fields.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: number must pass local guard: one of 1-9, 11, 22 or 33; any other value raises MCP INVALID_PARAMS before the HTTP call.
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — computes personal numbers from name and date, not a static dictionary row. asterwise_get_lucky_numbers — personalised lucky list, not reference meanings.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-number-meaning/
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Number to interpret: 1-9, or a master number 11, 22 or 33. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the local guard raises MCP INVALID_PARAMS before any HTTP call, and the output contains 'stubbed extended fields', which warns the agent some returned fields are placeholders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by clearly labeled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH sections; every line carries actionable information. The docs link is the only mildly expendable element and it substitutes for a long error-contract dump.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and it covers the remaining gaps: validation behavior, standalone workflow position, and disambiguation from the two closest siblings. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description nevertheless adds value by spelling out the guard contract for the number parameter and that out-of-range values fail pre-flight rather than at the API. The response_format enum is only documented in the schema, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns dictionary-style numerology copy for a single integer') and enumerates what the payload contains (interpretation, keywords, extended fields). It explicitly names and contrasts two sibling tools, so the agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'DO NOT CONFUSE WITH' block names asterwise_get_numerology_profile and asterwise_get_lucky_numbers and states what each does instead, which is exactly the routing information an agent needs. The WORKFLOW BEFORE/AFTER lines confirm it is standalone with no prerequisite or follow-up step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_numerology_compatibilityNumerology CompatibilityARead-onlyIdempotentInspect
Compares two people on their Pythagorean Life Path numbers, worked out from their birth dates. Returns a score, tier label, narrative, strengths, challenges, and advice.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile per person — sanity-check Life Paths before comparing. AFTER: None.
INPUT CONTRACT: Four strings (two names, two dates) are passed through without local guards. The API requires both names, but they do not change the score: only the birth dates do.
DO NOT CONFUSE WITH: asterwise_get_compatibility — sidereal koota scoring, not numerology integers. asterwise_get_numerology_profile — single-person profile, not dyad scoring.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-numerology-compatibility/
| Name | Required | Description | Default |
|---|---|---|---|
| person1_date | Yes | First person's date of birth, YYYY-MM-DD. | |
| person1_name | Yes | First person's full name. The API requires it, but it does not change the score: compatibility compares the two Life Path numbers from the birth dates. | |
| person2_date | Yes | Second person's date of birth, YYYY-MM-DD. | |
| person2_name | Yes | Second person's full name. The API requires it, but it does not change the score: compatibility compares the two Life Path numbers from the birth dates. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely new behavior: four strings pass through with no local guards, both names are required by the API but do not affect the score, and only birth dates drive the result. It also names the return fields. It stops short of describing rate limits or the error contract itself (deferred to an external doc link).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then scannable WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE blocks. Slightly redundant, since the 'names do not change the score' point appears in both the description and the schema, but every block still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, yet the description still summarizes them. Workflow prerequisites, sibling disambiguation, input caveats, and a link to the full output/error contract make this complete for a 5-parameter read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already documents format (YYYY-MM-DD) and the name-is-ignored caveat, so the description adds little beyond what the schema states. Baseline 3 applies when the schema carries the parameter burden; the INPUT CONTRACT paragraph largely restates the same facts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compares), the exact technique (Pythagorean Life Path from birth dates), and enumerates the return payload (score, tier, narrative, strengths, challenges, advice). It is immediately distinguishable from the many other compatibility siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow blocks give BEFORE (recommended get_numerology_profile per person to sanity-check Life Paths) and AFTER (none), plus a DO NOT CONFUSE WITH section naming two alternatives and the axis on which each differs (sidereal koota vs numerology integers; single-person vs dyad).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_numerology_profileNumerology ProfileARead-onlyIdempotentInspect
Builds a Pythagorean numerology profile from a legal name and birth date and returns core numbers, cycles, lucky digits, and summary copy.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_personal_year — fills Personal Year when needed.
INPUT CONTRACT: name and date strings are forwarded without extra local validation; malformed payloads fail upstream.
DO NOT CONFUSE WITH: asterwise_get_chaldean_numerology — Chaldean letter values and compound structure, not Pythagorean cores. asterwise_get_lucky_numbers — lightweight lucky list without the full profile payload.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-numerology-profile/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | Yes | Person's full name as commonly written; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds a genuinely useful contract detail — inputs are forwarded without local validation and malformed payloads fail upstream — but says nothing about auth requirements, rate limits, or failure modes beyond that. With annotations carrying the safety profile, this is adequate-but-thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that an agent can scan. Every sentence carries routing or contract information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a standalone read-only tool with a full output schema, the description supplies everything needed: inputs, output shape at a high level, workflow placement, sibling disambiguation, and a docs pointer for the full contract. Return-value details are correctly deferred to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema, and an output schema exists. The description only echoes name/date at a high level and never mentions response_format or its enum, adding little beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Builds'), a precise resource ('Pythagorean numerology profile'), its inputs ('legal name and birth date'), and its outputs ('core numbers, cycles, lucky digits, summary copy'). The 'DO NOT CONFUSE WITH' section names the two nearest siblings and how they differ, so an agent can disambiguate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow context ('BEFORE: None — standalone', 'AFTER: asterwise_get_personal_year') plus two named alternatives with the condition that selects them (Chaldean letter values vs. lightweight lucky list). Nothing about when to pick this over a sibling is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_panchangaPanchangaARead-onlyIdempotentInspect
Panchanga for one date at a location: the limbs at sunrise plus every tithi, nakshatra, yoga and karana of the panchanga day (sunrise to next sunrise). Each comes with ISO start and end times and kshaya/vriddhi flags. Also returns sunrise, sunset, moonrise and moonset; Sun and Moon rashi; lunar month (amanta and purnimanta, with Adhik months); Vikram, Shaka and Gujarati samvat; ritu and ayana; and the day's timings (Rahu Kaal, Gulika, Yamaganda, Abhijit, Brahma Muhurta, Durmuhurta, Varjyam, Amrit Kaal, Bhadra with residence, Panchaka, Pradosh, Nishita).
WORKFLOW: BEFORE: asterwise_geocode — when you only have a place name. AFTER: asterwise_get_muhurta — to find auspicious windows across a date range; asterwise_get_festival_calendar — for the festivals and vrats of the year.
INPUT CONTRACT: location.date is YYYY-MM-DD; location.lat, location.lon and location.timezone (IANA) give the place. Dates 1800-2099.
DO NOT CONFUSE WITH: asterwise_get_yogas — natal chart yogas, not the Panchanga Sun–Moon yoga. asterwise_get_panchanga_calendar — one row per day for a whole month. asterwise_get_tamil_panchanga — Tamil month and Rahu Kalam/Yamagandam/Kuligai only.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-panchanga/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety needs no restating. The description adds genuinely extra behavior: the panchanga day is defined as sunrise-to-next-sunrise, each element carries ISO start/end times and kshaya/vriddhi flags, and the supported date range is 1800-2099. It stops short of auth/rate-limit or pagination notes, keeping it at a solid 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and organized into labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, docs link), so it is easy to scan. The long parenthetical enumeration of every timing (Rahu Kaal, Gulika, Yamaganda, Abhijit, Brahma Muhurta, Durmuhurta, Varjyam...) is somewhat verbose given an output schema exists, but it still aids selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter but output-rich tool, the description covers purpose, sibling disambiguation, input constraints, date range, sequencing with geocode/muhurta/festival_calendar, and links to the full output and error contract. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The 'INPUT CONTRACT' restates the date format (YYYY-MM-DD), the IANA timezone requirement and the lat/lon place inputs, which largely duplicates what the nested schema already documents; it adds the supported date range but no new syntax or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Panchanga for one date at a location') followed by an explicit enumeration of the returned limbs (tithi, nakshatra, yoga, karana) and day timings. The 'DO NOT CONFUSE WITH' block distinguishes it from get_yogas, get_panchanga_calendar and get_tamil_panchanga by stating what each of those returns instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow (BEFORE: geocode when only a place name; AFTER: get_muhurta and get_festival_calendar for intervals/yearly needs) plus named alternatives with the condition that selects them. An agent knows both when to use this and when to route elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_panchanga_calendarPanchanga CalendarARead-onlyIdempotentInspect
Panchanga for every day of a month at a location, one entry per day. Each day has its sunrise tithi, vara, nakshatra, yoga, karana and Rahu Kaal, plus sunrise, sunset, moonrise, moonset, paksha, lunar month (amanta and purnimanta, with Adhik months), Bhadra windows, and every tithi, nakshatra, yoga and karana active that day with ISO start and end times.
WORKFLOW: BEFORE: asterwise_geocode — when you only have a place name. AFTER: asterwise_get_panchanga — full timings for one chosen day.
INPUT CONTRACT: calendar.year 1900-2100, calendar.month 1-12, calendar.lat, calendar.lon, calendar.timezone (IANA; default Asia/Kolkata — set it for places outside India).
DO NOT CONFUSE WITH: asterwise_get_panchanga — one day with all timings. asterwise_get_festival_calendar — festivals and vrats rather than daily limbs.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-panchanga-calendar/
| Name | Required | Description | Default |
|---|---|---|---|
| calendar | Yes | Monthly Panchanga calendar parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: per-day entry semantics, Adhik month handling, Bhadra windows, and ISO start/end times for active limbs. It stops short of stating rate limits or auth requirements, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the capability, then cleanly partitioned into WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, and a docs pointer. The dense enumeration of returned fields is information the agent needs for a monthly calendar tool, not padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detailed, yet the description still summarizes them. Workflow ordering, parameter pitfalls, sibling disambiguation, and an error/output contract link are all supplied, so nothing needed to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The INPUT CONTRACT largely restates schema ranges, but the timezone note (IANA, default Asia/Kolkata, must be set for places outside India) flags the single most likely misconfiguration and adds practical meaning the schema default alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb (get Panchanga), resource (calendar), and scope (every day of a month at a location, one entry per day), then enumerates the returned limbs. It explicitly names the siblings it is not (asterwise_get_panchanga, asterwise_get_festival_calendar), so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A labeled WORKFLOW block gives an explicit BEFORE (geocode when only a place name is known) and AFTER (get_panchanga for one chosen day) chain, and the DO NOT CONFUSE WITH block names the two nearest alternatives with the condition that selects each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_papasamyamPapasamyamARead-onlyIdempotentInspect
Scores malefic affliction for each partner from Lagna, Moon and Venus and checks that the bride's score does not exceed the groom's. Points: one per malefic (Sun, Mars, Saturn, Rahu, Ketu) in houses 1, 2, 4, 7, 8, 12, at full value from Lagna, half from Moon, a quarter from Venus.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_compatibility — establish baseline match quality. AFTER: None.
INPUT CONTRACT: Two BirthData objects per global contract.
DO NOT CONFUSE WITH: asterwise_get_doshas — twelve natal dosha buckets for one chart, not pairwise malefic balance. asterwise_get_compatibility — Guna Milan totals and vetoes, not Papa Samyam scoring.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-papasamyam/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for a single person. | |
| person2 | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, closed world), so the description is not carrying that burden. It adds real behavioural substance by disclosing the scoring algorithm and the directional validation rule (bride's score must not exceed groom's), but says nothing about error cases or result shape, delegating those to the linked doc; with an output schema present this gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and computation, then cleanly sectioned into WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH. The point-allocation sentence is information-dense and earns its place, though the block is longer than strictly needed for selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A pairwise, nested-object tool with an output schema and a linked full contract; the description supplies purpose, routing guidance and the scoring semantics. Return values and error handling are correctly left to the output schema and docs, so nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every field (lat/lon/date/time/ayanamsa/timezone/person_name, response_format) is fully documented in the schema itself. The description only says 'Two BirthData objects per global contract', which points elsewhere rather than adding detail, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scores), a precise resource (malefic affliction / Papa Samyam) and the exact computation: per-partner points from Lagna/Moon/Venus, malefics in houses 1,2,4,7,8,12. The 'DO NOT CONFUSE WITH' block explicitly separates it from get_doshas and get_compatibility, so an agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit workflow (BEFORE: asterwise_get_compatibility to establish baseline; AFTER: none), which is stronger than most sibling tools. It also names two near-neighbour tools and states what each does instead, leaving no ambiguity about when to pick this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_personal_cyclesPersonal CyclesARead-onlyIdempotentInspect
Returns the Personal Year, Personal Month, and Personal Day numbers for a given birth date and optional target date. All three cycle numbers are derived from the birth month, birth day, and the target calendar date.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — see personal cycles alongside core numbers.
INPUT CONTRACT: date — Birth date in YYYY-MM-DD format. Example: '1985-11-12' year (optional int) — Target year. Defaults to current calendar year. Example: 2026 month (optional int 1–12) — Target month. Defaults to current month. Example: 5 day (optional int 1–31) — Target day. Personal Day is only returned when day is provided. Defaults to null (Personal Day omitted). Example: 1
DO NOT CONFUSE WITH: asterwise_get_personal_year — returns Personal Year only, no month or day breakdown. asterwise_get_numerology_profile — core name numbers; personal_year field is null there.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-personal-cycles/
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | Target day of the month 1-31. Personal Day is returned only when day is given; omit it to get Personal Year and Personal Month only. | |
| date | Yes | Date in YYYY-MM-DD format. | |
| year | No | Four-digit target year, e.g. 2026. Defaults to the current year (UTC). | |
| month | No | Target month 1-12. Defaults to the current month (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it explains how the three numbers are derived and that Personal Day is conditionally omitted when day is not supplied. It does not cover auth needs, limits, or error behavior (deferred to the docs URL), so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sections are clearly labeled and front-loaded (purpose first, then workflow, contract, disambiguation), which is good for scanning. The per-parameter examples and repeated defaults duplicate schema content, making it slightly longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 5-parameter tool with an output schema present, the description need not explain return values and points to the full output/error contract instead. Workflow position, sibling disambiguation, and input contract are all covered, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The INPUT CONTRACT adds examples, ranges, and the conditional return of Personal Day, but largely restates what the schema already documents. It adds marginal meaning over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb ('Returns') and the exact resources (Personal Year, Personal Month, Personal Day) along with the scope (birth date + optional target date). The 'DO NOT CONFUSE WITH' section explicitly distinguishes it from asterwise_get_personal_year and asterwise_get_numerology_profile, so an agent can route unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block states it is standalone (BEFORE: None) and names the natural follow-up tool (asterwise_get_numerology_profile). The 'DO NOT CONFUSE WITH' block gives explicit when-not conditions with reasons, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_personality_numberPersonality NumberARead-onlyIdempotentInspect
Calculates the Personality number from consonants in the full name. All non-vowels (BCDFGHJKLMNPQRSTVWXYZ) contribute — Y is always a consonant. Reduces each name part separately, preserving master numbers 11, 22, 33.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — see all five core numbers together.
INPUT CONTRACT: name — Full legal name as used at birth. Example: 'Arjun Mehta', 'Sofia Rossi' Y is always a consonant — not treated as a vowel.
DO NOT CONFUSE WITH: asterwise_get_expression_number — all letters (Expression = Soul Urge + Personality). asterwise_get_soul_urge_number — vowels only.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-personality-number/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine beyond-annotation behavior: which letters contribute, that Y is treated as a consonant, that each name part is reduced separately, and that master numbers 11/22/33 are preserved. It omits determinism/edge cases for empty or non-Latin input, so not quite a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded opening sentence states the calculation, then labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) make scanning trivial. Every sentence carries routing or domain information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not describe returns, and it doesn't. Annotations plus description plus a linked full output/error contract cover everything an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters, making 3 the baseline. The description reinforces the name contract with examples and the Y rule, but adds nothing about response_format and little format/syntax detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculates the Personality number from consonants in the full name') and immediately distinguishes itself from the two closest siblings by naming them and the letter sets they use. An agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WORKFLOW (BEFORE: none/standalone; AFTER: numerology profile), a DO NOT CONFUSE WITH block naming both asterwise_get_expression_number and asterwise_get_soul_urge_number with the discriminating rule, and an input contract. When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_personal_yearPersonal YearARead-onlyIdempotentInspect
Looks up the Personal Year theme for the current calendar year from a birth date (its month and day).
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_numerology_profile — see other core numbers first. AFTER: None.
INPUT CONTRACT: Only the birth date is sent; name is optional and not used. The active calendar year is chosen upstream automatically.
DO NOT CONFUSE WITH: asterwise_get_numerology_profile — personal_year field there is null; this endpoint supplies the annual theme. asterwise_get_varshaphal — Vedic solar return, not Pythagorean Personal Year.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-personal-year/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format. | |
| name | No | Not used: the personal year depends only on the birth date. Omit it; it is accepted only so older calls keep working. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, non-open-world), so the bar is lower. The description nonetheless adds real behavior the annotations do not: the calendar year is chosen upstream automatically, name is accepted but ignored, and the sibling's personal_year field is null. It stops short of describing return content, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Effectively front-loaded with the core purpose, then organized into labeled sections that are easy to scan. Slightly padded by the external docs URL and the redundant restatement in the INPUT CONTRACT, but nothing meaningfully wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-param, read-only lookup with an output schema and full annotations, the description supplies everything an agent needs: inputs, upstream year selection, workflow ordering, and deprecation of the name field. Return-value detail is correctly delegated to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a 3 is the baseline. The description exceeds it by clarifying that only the birth date is transmitted, that month and day drive the calculation (year component irrelevant), and that name is a legacy no-op — meaning the schema would not otherwise convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (looks up) and resource (Personal Year theme) with precise scope: derived from the birth date's month and day for the current calendar year. It also names the sibling tool it is not (get_numerology_profile) and a Vedic lookalike (varshaphal), so it is distinguishable without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WORKFLOW BEFORE/AFTER directives plus a DO NOT CONFUSE section that routes the agent away from two named siblings with the specific reason (personal_year field is null there; varshaphal is solar return, not Pythagorean). This is about as complete as when/when-not guidance gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_pitra_doshaPitra DoshaARead-onlyInspect
Detects Pitru Dosha (Pitru Shapa, the father's curse) from the eleven classical combinations of BPHS 83.20–83.30.
WORKFLOW: BEFORE: None — birth data computes everything needed. AFTER: asterwise_get_puja_suggestions — remedial pujas.
INPUT CONTRACT: birth — BirthData (date, time, lat, lon, timezone).
DO NOT CONFUSE WITH: asterwise_get_doshas — returns pitru_dosha as one of thirteen buckets with the same verdict and less detail.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-pitra-dosha/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, non-destructive, closed-world profile, and the description adds real context beyond them: the detection basis (eleven BPHS combinations), the fact that birth data alone computes everything, and the detail-level comparison with the sibling. It stops short of noting edge cases (e.g. what happens with borderline or partial combinations), so not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labelled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) front-load routing information and the purpose sentence comes first. Every line carries a distinct decision-relevant fact with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-input compute tool with an output schema, a documented error/output contract URL, sibling disambiguation, and a next-step pointer, an agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nested BirthData fields, the ayanamsa enum, and response_format are already documented in the schema. The description's INPUT CONTRACT line (birth — BirthData with date, time, lat, lon) restates the schema rather than adding syntax or fallback guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Detects Pitru Dosha (Pitru Shapa, the father's curse)' — and grounds it in eleven classical combinations from BPHS 83.20–83.30. It explicitly distinguishes itself from asterwise_get_doshas, so an agent can route between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives an explicit BEFORE (none, birth data suffices) and AFTER (asterwise_get_puja_suggestions), plus a DO NOT CONFUSE WITH section naming the alternative and the condition that selects it (same verdict, less detail here vs. thirteen buckets there).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_planet_naturePlanet NatureARead-onlyIdempotentInspect
Returns classical graha (planet) properties for all nine planets or a single planet per classical Vedic tradition.
WORKFLOW: BEFORE: None — standalone reference. AFTER: asterwise_get_puja_suggestions — propitiation for a specific graha.
INPUT CONTRACT: planet (optional): One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Omit to get all nine planets.
DO NOT CONFUSE WITH: asterwise_get_puja_suggestions — ritual propitiation per planet, not properties. asterwise_get_rudraksha — bead recommendations per planet, not natal properties.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-planet-nature/
| Name | Required | Description | Default |
|---|---|---|---|
| planet | No | Planet name in English, e.g. 'Jupiter', 'Saturn', 'Rahu'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it is a standalone reference tool, follows classical Vedic tradition, and can return either all planets or one planet; it also links to the full output and error contract. It adds value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into short, labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) with the core purpose front-loaded in the first sentence. Every section earns its place by aiding tool selection or invocation, and the formatting makes scanning easy despite the large sibling list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only reference tool with two optional parameters and an output schema, the description is complete: it states purpose, input contract, workflow context, sibling disambiguation, and points to the full output/error contract via URL. Nothing an agent needs to select or invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds meaning for the 'planet' parameter by enumerating all nine allowed values and explicitly stating that omitting it returns all planets. The 'response_format' parameter is already well-explained by the schema enum, so the description does not need to repeat it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and resource ('classical graha (planet) properties'), and clearly scopes the operation to 'all nine planets or a single planet'. The 'DO NOT CONFUSE WITH' section explicitly distinguishes it from puja suggestions and rudraksha recommendations, making sibling differentiation strong.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section states there is no prerequisite ('BEFORE: None') and names the natural follow-up tool ('AFTER: asterwise_get_puja_suggestions'). The 'DO NOT CONFUSE WITH' block explicitly names alternatives and why they are different, giving clear when-to-use versus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_poruthamPoruthamARead-onlyIdempotentInspect
Runs the Tamil ten-porutham checklist (South Indian rules) for two charts and counts passes out of ten. Also returns Rajju and Vedha condition booleans and per-porutham evidence objects.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart per native. AFTER: asterwise_get_thirumana_porutham — extended twelve-koota read if needed.
INPUT CONTRACT: Two BirthData objects per global contract.
DO NOT CONFUSE WITH: asterwise_get_thirumana_porutham — twelve poruthams including Nadi and Varna, not ten. asterwise_get_dashakoot — South Indian float scoring, not Tamil pass grid.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-porutham/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for a single person. | |
| person2 | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description focuses on what the agent can't get from them: the return contents (pass count, Rajju and Vedha booleans, per-porutham evidence objects) and an external full output/error contract. It stops short of stating anything about error behavior itself, deferring entirely to the docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core operation, then layered labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE, docs link). No filler sentences; every line adds routing or contract information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and the description summarizes the returns (count, booleans, evidence objects), the input contract is stated, sibling distinctions are covered, and error/output specifics are delegated to a documented URL. Complete for a 3-param read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested BirthData properties are thoroughly documented, so the schema carries the burden. The description only adds the pointer that two BirthData objects follow the 'global contract', which is a useful cross-reference but not new per-parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (runs), the exact technique (Tamil ten-porutham checklist, South Indian rules), the inputs (two charts) and the output shape (pass count out of ten). The DO NOT CONFUSE block explicitly separates it from asterwise_get_thirumana_porutham and asterwise_get_dashakoot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit BEFORE/AFTER workflow naming the exact prerequisite tool and the logical follow-up tool, plus exclusion rules for the two nearest siblings. Nothing about selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_prashna_chartPrashna ChartARead-onlyIdempotentInspect
Casts a Prashna chart for the query instant from the supplied date, time, place and a single-topic keyword. Returns houses, Moon diagnostics, a verdict, and cusps.
WORKFLOW: BEFORE: None — standalone for horary. AFTER: None.
INPUT CONTRACT: question must be exactly one of: self, wealth, siblings, property, children, health, marriage, death, travel, career, gains, loss. Full sentences are not validated locally and are rejected upstream → MCP INTERNAL_ERROR at the tool layer. PrashnaInput enforces date/time/lat/lon/ayanamsa patterns locally.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — requires birth data, not query-moment prashna. asterwise_get_kp_chart — natal KP from birth time, not horary keyword mapping.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-prashna-chart/
| Name | Required | Description | Default |
|---|---|---|---|
| prashna | Yes | Prashna (horary) query parameters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, but the description goes well beyond: it discloses the failure mode for an invalid question (rejected upstream → MCP INTERNAL_ERROR at the tool layer) and which fields are validated locally. That error contract is exactly the kind of extra behavioral context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by clearly labeled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE sections — well structured and scannable. Slightly padded by the two "None" lines and a docs URL, but no sentence is misleading and most content earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need only be summarized (they are), and annotations carry the safety profile. Combined with the error contract, sibling routing, and full keyword enum, an agent has everything needed to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for date/time/lat/lon/ayanamsa, but the schema leaves `question` as a bare string (minLength 1). The description supplies the missing closed vocabulary — the exact twelve accepted topic keywords — which is essential to invoke the tool correctly and is nowhere in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Casts") and resource ("Prashna chart") plus its defining scope: the query instant from date/time/place and a single-topic keyword. It also previews the return contents (houses, Moon diagnostics, verdict, cusps) and names the siblings it is not, so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block declares BEFORE/AFTER as None (standalone), and the DO NOT CONFUSE WITH section explicitly routes away from asterwise_get_natal_chart (needs birth data) and asterwise_get_kp_chart (natal KP, not horary keyword). When-to-use and when-not-to-use are both spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_puja_suggestionsPuja SuggestionsARead-onlyIdempotentInspect
Returns puja (ritual worship) recommendations for planetary propitiation per graha.
WORKFLOW: BEFORE: asterwise_get_natal_chart — identify afflicted planets before recommending pujas. AFTER: asterwise_get_rudraksha — complementary bead-based remedy.
INPUT CONTRACT: planet (optional): One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Omit to get all nine planets.
DO NOT CONFUSE WITH: asterwise_get_remedies — personalised remedies from natal chart analysis. asterwise_get_rudraksha — bead recommendations, not puja rituals.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-puja-suggestions/
| Name | Required | Description | Default |
|---|---|---|---|
| planet | No | Planet name in English, e.g. 'Jupiter', 'Saturn', 'Rahu'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, and the description adds useful behavioral context such as omitting planet returns all nine ggrahas and positioning pujas as complementary to rudraksha. The link to the full output/error contract handles the remaining behavioral disclosure without cluttering the text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a crisp purpose sentence and uses labeled short sections such as WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE, so an agent can scan quickly. Every section carries distinct information and there is no filler or repetition of schema/annotation values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an output schema and safety annotations, the description covers workflow context, parameter semantics, sibling disambiguation, and points to the full contract. An agent choosing between this and any of the many siblings has enough context to route correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description still adds a complete enumeration of the nine allowed planet values plus the omit-for-all behavior, which the schema only hints at with examples. The response_format parameter is already fully described in the schema, so no further prose is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'returns puja (ritual worship) recommendations for planetary propitiation per ggraha'. The 'DO NOT CONFUSE' section explicitly separates it from asterwise_get_remedies and asterwise_get_rudraksha, making the purpose unambiguous even among many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
WORKFLOW provides explicit before/after tool relationships: natal chart first, rudraksha after, and the DO NOT CONFUSE section names the closest alternatives. The INPUT CONTRACT also tells the agent when to omit planet versus supply a specific ggraha.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_rahu_kaalRahu KaalARead-onlyIdempotentInspect
Computes Rahu Kaal, Gulika Kaal, and Yamaganda Kaal intervals from diurnal length at a location and marks whether Rahu Kaal is active now in local time.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_choghadiya — broader auspicious/inauspicious grid for the day.
INPUT CONTRACT: LocationInput validates date pattern and coordinates locally.
DO NOT CONFUSE WITH: asterwise_get_choghadiya — full day/night slot tables, not only the three kaal bands. asterwise_get_panchanga — Panchanga limbs, not kaal timers.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-rahu-kaal/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds that it computes and marks based on diurnal length and local time, which is transparent and consistent. No side effects or hidden actions are implied, and with annotations present, this level of disclosure is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main description is one concise sentence that front-loads the core purpose. The additional WORKFLOW and INPUT CONTRACT sections are structured and mostly non-redundant, though the input contract partially repeats schema information. Overall, it is well-organized and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an astrological tool with multiple intervals and disambiguation needs, the description covers the essential information: what it computes, how it uses location and time, and how it differs from closely related tools. It is complete enough for an agent to decide when and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full descriptions for all parameters (100% coverage), so baseline is 3. The description adds context by mentioning 'diurnal length' (implying lat/lon usage) and 'local time' (implying timezone importance), which helps an agent understand parameter relevance beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the exact function: computing Rahu Kaal, Gulika Kaal, and Yamaganda Kaal intervals from diurnal length and marking active status. It explicitly names the three intervals and the 'active now' feature, distinguishing it from the sibling choghadiya tool which covers full day/night slot tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'DO NOT CONFUSE WITH' section explicitly contrasts this tool with asterwise_get_choghadiya and asterwise_get_panchanga, providing clear conditions for when this tool should be used (for the three kaal bands specifically) versus alternatives. This gives direct guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_reference_chartsReference ChartsARead-onlyIdempotentInspect
Published test charts with reference values from an independent source, so anyone can check the maths. They cover the 25 edge cases of the verification harness (clock changes, southern hemisphere, polar night and day, the date line, 45-minute zones, historical offsets, leap day, range limits), a sample of random charts, a Moon-on-a-nakshatra-boundary case and an unknown-birth-time case.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_natal_chart — send an input and compare.
INPUT CONTRACT: No inputs beyond response_format.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — computes a chart; this lists charts to check it against.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-reference-charts/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context beyond that: the charts come from an independent source, are fixed rather than computed, and the harness edge cases they exercise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and uses labelled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE WITH sections that are easy to scan. The long parenthetical list of edge cases is slightly verbose, though it does inform what the returned data contains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-input listing tool with a full output schema and rich annotations, the description covers everything an agent needs: purpose, placement in the workflow, the sibling to compare against, and a link to the full output/error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (response_format) with 100% schema description coverage, so the schema already documents it fully. The 'INPUT CONTRACT: No inputs beyond response_format' line is consistent but adds no meaning beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — published test charts with reference values — and enumerates exactly what they cover. The 'DO NOT CONFUSE WITH' section explicitly separates it from asterwise_get_natal_chart, so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow: standalone with no prerequisites, then a follow-up step of sending an input to asterwise_get_natal_chart to compare. Names the alternative and the condition ('this lists charts to check it against'), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_remediesRemediesARead-onlyIdempotentInspect
Derives classical remedial prescriptions from planetary weakness, dusthana lordship or placement, and combustion. Returns mantra, lifestyle, charity, and dignity tables.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — chart context before choosing remedies. AFTER: asterwise_get_gemstone_recommendations — optional focused gem briefing.
INPUT CONTRACT: BirthData follows the global contract.
DO NOT CONFUSE WITH: asterwise_get_lal_kitab_remedies — household Lal Kitab totkas, not mantra/gem classical rows. asterwise_get_gemstone_recommendations — gemstone roles and contraindications only, not full lifestyle remedies.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-remedies/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds derivation logic, the returned table set, the global BirthData input contract, and a link to the full output/error contract, which is meaningful context beyond the annotations. It stops short of rate limits or auth notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then organizes workflow, input contract, and sibling disambiguation under clear labels. Every section earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 re-explained, and the description instead supplies the routing context, sibling exclusions, and input contract reference an agent needs. Nothing required to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested birth object and response_format enum are fully documented in the schema itself. The description only notes that BirthData follows the global contract, adding no parameter-specific syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Derives) and resource (classical remedial prescriptions) and names the exact derivation basis (planetary weakness, dusthana lordship, combustion) plus the returned tables (mantra, lifestyle, charity, dignity). It explicitly distinguishes itself from the two nearest siblings, so an agent can tell it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit BEFORE/AFTER workflow routing and a DO NOT CONFUSE WITH section naming asterwise_get_lal_kitab_remedies and asterwise_get_gemstone_recommendations with the distinguishing condition for each. Both when-to-use and when-not-to-use are covered, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_rudrakshaRudrakshaARead-onlyIdempotentInspect
Returns Rudraksha bead recommendations per planet.
WORKFLOW: BEFORE: asterwise_get_natal_chart — identify planets needing support. AFTER: None.
INPUT CONTRACT: planet (optional): One of Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu. Omit to get all nine planets.
DO NOT CONFUSE WITH: asterwise_get_gemstone_recommendations — Ratna-style gemstones from natal chart. asterwise_get_puja_suggestions — ritual worship, not bead recommendations.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-rudraksha/
| Name | Required | Description | Default |
|---|---|---|---|
| planet | No | Planet name in English, e.g. 'Jupiter', 'Saturn', 'Rahu'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description need not repeat those. It adds context by specifying the workflow dependency, the behavior when planet is omitted ('Omit to get all nine planets'), and points to a full output/error contract. This exceeds the annotation baseline without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured and front-loaded with a one-sentence purpose. The WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections are scannable and each adds distinct value. There is no filler or redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the read-only idempotent annotations, optional parameters, and available output schema, the description is complete enough for an agent to invoke the tool correctly. It covers prerequisites, parameter values, sibling disambiguation, and points to the full output/error contract. No critical contextual gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further by enumerating the exact allowed planet values (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu) and explaining the omission behavior, which the schema does not fully specify. This adds meaningful guidance beyond the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Returns Rudraksha bead recommendations per planet.' It clearly scopes the tool to per-planet bead recommendations and explicitly contrasts it with gemstone and puja tools in the 'DO NOT CONFUSE WITH' section, making sibling differentiation strong.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section explicitly names the prerequisite tool (asterwise_get_natal_chart) and explains why it should be called first: to identify planets needing support. It also names two similar-sounding tools and clarifies why they are not appropriate, giving the agent explicit selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_soul_urge_numberSoul Urge NumberARead-onlyIdempotentInspect
Calculates the Soul Urge (Heart's Desire) number from vowels in the full name. Only A, E, I, O, U are treated as vowels — Y is always a consonant in this system. Reduces each name part separately before summing, preserving master numbers 11, 22, 33.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_personality_number — complete the name number trinity.
INPUT CONTRACT: name — Full legal name as used at birth. Example: 'Arjun Mehta', 'Sofia Rossi' Y is always treated as a consonant — not a vowel.
DO NOT CONFUSE WITH: asterwise_get_expression_number — all letters, not vowels only. asterwise_get_personality_number — consonants only, not vowels.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-soul-urge-number/
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Full legal name as used at birth, all parts; its letters are converted to numerology values. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral detail beyond that: only A/E/I/O/U count as vowels, Y is a consonant, each name part is reduced separately before summing, and master numbers 11/22/33 are preserved. It doesn't cover failure modes directly, but defers to a documented error contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the calculation, then scoped by labelled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE WITH blocks, which makes it easy to scan. Slight redundancy: the 'Y is always a consonant' rule is stated twice in close succession, and the external docs link is long. Efficient overall, but not maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the description correctly spends its budget on computation semantics, workflow placement and sibling disambiguation instead. For a low-complexity, two-parameter derived-number tool, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents both parameters. The description still adds value with concrete example values ('Arjun Mehta', 'Sofia Rossi') and an explicit caveat that Y must be treated as a consonant when supplying the name, which is a semantic constraint not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculates) and a specific resource (Soul Urge / Heart's Desire number), and immediately pins the distinguishing rule: vowels only, with Y always a consonant. It also explicitly names the sibling tools it must not be confused with, so an agent can separate it from asterwise_get_expression_number and asterwise_get_personality_number 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: BEFORE is None (standalone), AFTER is asterwise_get_personality_number 'to complete the name number trinity'. The DO NOT CONFUSE WITH block names two alternatives and states the exact rule that selects each (all letters vs. consonants only). This is when-to-use and when-not-to-use guidance in full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_special_ascendantsSpecial AscendantsARead-onlyIdempotentInspect
Calls atmakaraka and ishta-devata endpoints sequentially and merges their payloads into top-level atmakaraka and ishta_devata objects for one BirthData.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — understand chart basics before devotional pointers. AFTER: None.
INPUT CONTRACT: Wrapper returns { atmakaraka: , ishta_devata: } — not a flat data.* root; consumers must read nested .data fields inside each branch per upstream shape.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — general chart; does not compute ishta devata workflow. asterwise_get_char_dasha — timing system using karakas, not deity discovery.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-special-ascendants/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds genuinely useful context beyond that: it discloses the sequential two-endpoint composition and warns that the return is a wrapper with nested branches, not a flat data.* root. It stops short of describing failure modes if one upstream call fails, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then cleanly sectioned into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH. Slightly verbose with the doc link and the dict-typing shorthand, but every section earns its place for a composite tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not explain return values, yet it still clarifies the wrapper shape consumers must navigate. Combined with workflow ordering and sibling disambiguation, an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a careful note that time is required with no sunrise fallback. The description adds nothing parameter-specific beyond 'one BirthData', so the schema is doing all the work and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific composite behavior: it calls the atmakaraka and ishta-devata endpoints sequentially and merges them into top-level objects for one BirthData. This is a precise verb+resource statement that an agent can distinguish from every sibling, including the near-neighbors it explicitly names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit WHEN context (BEFORE: RECOMMENDED asterwise_get_natal_chart; AFTER: None) and a DO NOT CONFUSE WITH section that names two alternatives and states why each is different (general chart, karaka-based timing). This is about as complete as routing guidance gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tamil_panchangaTamil PanchangaARead-onlyIdempotentInspect
Tamil Panchanga for a date and location: Rahu Kalam, Yamagandam, Kuligai (Gulika), Nalla Neram and the Tamil solar month. Nalla Neram is the daytime windows free of those periods; the month comes from the Sun's sidereal sign at sunrise.
WORKFLOW: BEFORE: asterwise_geocode — when you only have a place name. AFTER: asterwise_get_panchanga — the day's limbs and other timings.
INPUT CONTRACT: date (YYYY-MM-DD), lat, lon, timezone (IANA, default Asia/Kolkata).
DO NOT CONFUSE WITH: asterwise_get_rahu_kaal — the same three periods without the Tamil month or Nalla Neram. asterwise_get_panchanga — the full panchanga day.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tamil-panchanga/
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees, north positive. | |
| lon | Yes | Longitude in decimal degrees, east positive. | |
| date | Yes | Date for the Tamil panchanga, YYYY-MM-DD. | |
| timezone | No | IANA timezone of the location. | Asia/Kolkata |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context by defining Nalla Neram (daytime windows free of the three periods) and the derivation of the Tamil month from the Sun's sidereal sign at sunrise, plus a link to the full output/error contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and return set, then cleanly sectioned into workflow, input contract, and disambiguation. Slightly repetitive across the return enumeration and the disambiguation lines, but every block earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained; the description instead supplies the workflow routing, input contract, and sibling disambiguation an agent needs. For a 5-param read-only tool, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including formats and defaults. The 'INPUT CONTRACT' line restates date format, lat/lon, and the IANA timezone default rather than adding syntax or edge-case meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and enumerates exactly what it returns (Rahu Kalam, Yamagandam, Kuligai, Nalla Neram, Tamil solar month). The 'DO NOT CONFUSE WITH' block names the sibling tools it overlaps with, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE (geocode when only a place name) and AFTER (get_panchanga for the day's limbs), plus a disambiguation section contrasting it against rahu_kaal and panchanga with the condition that selects each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarabalaTarabala and ChandrabalaARead-onlyIdempotentInspect
Tarabala and Chandrabala for any date, with the Moon's star and sign change times. For 1 to 31 civil days, every Moon nakshatra and Moon sign with exact start and end (local and UTC), the tara counted from the birth nakshatra with its name and verdict, and the Moon's house from the natal Moon with the chandrabala verdict (Muhurta Chintamani).
WORKFLOW: BEFORE: asterwise_get_natal_chart — the birth Moon's star. AFTER: asterwise_get_vedic_daily_factors — every other factor of the day.
INPUT CONTRACT: birth — BirthData. target_date (optional YYYY-MM-DD) — first day; defaults to today in the birth timezone. days (1-31, default 1). target_timezone (optional IANA) — defines the civil days; defaults to the birth timezone.
DO NOT CONFUSE WITH: asterwise_get_nakshatra_prediction — a one-day prediction, not timed spans. asterwise_get_gochar — all planets from the Moon, not the Moon's own tara.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarabala/
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of civil days, 1 to 31. | |
| birth | Yes | Birth data for a single person. | |
| target_date | No | First day, YYYY-MM-DD. Defaults to today in the birth timezone. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA timezone that defines the days. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior: exact start/end times in local and UTC, day-count bounds, timezone-driven civil-day definition, default source timezone, and the interpretive system used (Muhurta Chintamani). It omits error handling, but defers to a documentation link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that are scannable. Slightly dense and verbose given the schema already carries parameter detail, but every section has a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, sequencing, parameter contract, and sibling disambiguation, and an output schema exists so return values need not be explained. Only gap is behavior on failure/limits, which is punted to an external URL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The INPUT CONTRACT mostly restates schema facts (defaults, ranges, IANA format) rather than adding new semantics; the only mild value-add is clarifying that target_timezone defines the civil days.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: computes Tarabala and Chandrabala for any date, plus the Moon's star/sign change times for 1-31 civil days. It enumerates the outputs (nakshatra spans, tara from birth star, Moon house with chandrabala verdict) and cites the source text, so it is unmistakable against siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow (BEFORE: get_natal_chart for the birth Moon star; AFTER: get_vedic_daily_factors) plus a DO NOT CONFUSE WITH block naming two alternatives and the distinguishing criterion for each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_cardTarot Card LookupARead-onlyIdempotentInspect
Returns full structured data for a single card identified by its slug ID. Useful for card detail pages, single-card lookups, and displaying a specific card after the user selects one by name.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: card_id — Slug identifier for the card. Must be exact. Major Arcana examples: 'the-fool', 'the-magician', 'the-high-priestess', 'the-empress', 'the-emperor', 'the-hierophant', 'the-lovers', 'the-chariot', 'strength', 'the-hermit', 'wheel-of-fortune', 'justice', 'the-hanged-man', 'death', 'temperance', 'the-devil', 'the-tower', 'the-star', 'the-moon', 'the-sun', 'judgement', 'the-world' Minor Arcana pattern: '{rank}-of-{suit}' Examples: 'ace-of-wands', 'two-of-cups', 'ten-of-swords', 'page-of-pentacles', 'knight-of-wands', 'queen-of-cups', 'king-of-swords'
DO NOT CONFUSE WITH: asterwise_get_tarot_cards — returns all 78 cards in one call. asterwise_draw_tarot_cards — random draw, not a specific card.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-card/
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | Tarot card identifier in kebab-case, e.g. 'the-fool' or 'ace-of-wands'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate those. It adds valuable context such as the exact-slug requirement, the output/error contract link, and the distinction from bulk/random card tools. This is appropriate given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear sections: summary, workflow, input contract, disambiguation, and docs link. The major arcana list is long but genuinely useful for exact-slug lookup. The workflow section is arguably unnecessary because it just says 'None', but overall the description remains well-organized and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two parameters, one required, full schema coverage, an output schema, and annotations covering safety/idempotency, the description covers the remaining needs: valid values, disambiguation from siblings, and a reference to the full output/error contract. Nothing important is missing for an agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is already strong. The description adds value beyond the schema by providing an extended list of valid Major Arcana slugs, a clear Minor Arcana pattern, and explicit 'must be exact' guidance. This helps an agent construct valid card_id values without trial and error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns full structured data for a single card identified by slug ID, which is a specific verb-resource pairing. It also explicitly distinguishes itself from siblings like asterwise_get_tarot_cards and asterwise_draw_tarot_cards, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases (card detail pages, single-card lookups, post-selection display) and explicitly names alternatives not to confuse it with, including when to use those alternatives. This is explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_card_of_the_dayTarot Card of the DayARead-onlyIdempotentInspect
Returns a deterministic daily tarot card seeded by SHA-256 hash of the date string. The same card is returned for all callers on the same date — this is intentional. The daily card is not a reading for an individual but a collective daily energy.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_tarot_three_card_spread — for deeper daily reading context.
INPUT CONTRACT: date (optional string YYYY-MM-DD) — Date to get the card for. Defaults to today's date in UTC, or in timezone. Overrides timezone. Example: '2026-05-01' allow_reversed (optional bool) — Default: false. When true: reversed state is also deterministic (seeded by date+'_rev'). When false: card is always upright regardless of date. timezone (optional, IANA or ±HH:MM, e.g. 'Asia/Kolkata') — zone whose current date is today. Default: UTC.
DO NOT CONFUSE WITH: asterwise_draw_tarot_cards — random draw, different every call. asterwise_get_tarot_three_card_spread — positional reading with question context.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-card-of-the-day/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to get the card for, YYYY-MM-DD. Defaults to today's date in UTC, or in timezone. Overrides timezone. | |
| timezone | No | IANA time zone (or ±HH:MM) whose current date counts as today, e.g. 'Asia/Kolkata'. Defaults to UTC; ignored when date is given. | |
| allow_reversed | No | Whether cards may be drawn reversed (upside down). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world. The description adds genuinely non-obvious behavior: determinism via SHA-256, the intentional shared-card-across-callers design, the collective-vs-individual framing, and the allow_reversed seeding quirk (date+'_rev'). Return-format details are deferred to an external doc link rather than described inline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) and front-loaded with the core definition. Slightly verbose in places (redundant restatement of timezone behavior between date and timezone lines; external doc link is not self-contained) but nearly all content carries signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param read-only tool with full schema coverage and an output schema, the description covers purpose, routing, determinism semantics, and parameter precedence. The main gap is that output/error contract is externalized to a URL, which an agent cannot resolve inline, but the output schema mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description still adds value beyond schema: the date-vs-timezone precedence (date overrides timezone), the reversed-state seeding logic when allow_reversed is true vs. false, and an example date string. The response_format param is only documented in the schema, not the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (daily tarot card) with precise mechanics (SHA-256 seeded by date, deterministic, same for all callers). Explicitly distinguishes it from asterwise_draw_tarot_cards (random) and the three-card spread in a dedicated DO NOT CONFUSE section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit WORKFLOW block (BEFORE: none, standalone; AFTER: three-card spread for deeper context) and a DO NOT CONFUSE WITH section naming the two closest siblings and how they differ. When-to-use is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_cardsTarot Cards CatalogueARead-onlyIdempotentInspect
Returns the complete 78-card Rider-Waite-Smith deck with full metadata. Each card includes id (slug), name, arcana_type (major/minor), suit, number, element, astrology_correspondence, upright and reversed meanings, keywords for both orientations, yes/no polarity, and visual description.
WORKFLOW: BEFORE: None — standalone catalogue endpoint. AFTER: asterwise_draw_tarot_cards or asterwise_get_tarot_three_card_spread — use card data from this endpoint to build enriched display layers.
INPUT CONTRACT: response_format (optional): markdown (default) | json, as on every Asterwise tool. No other parameters.
DO NOT CONFUSE WITH: asterwise_get_tarot_major_arcana — returns only the 22 Major Arcana subset. asterwise_get_tarot_suit — returns only the 14 cards of a single suit. asterwise_draw_tarot_cards — returns a random draw, not the catalogue.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-cards/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful context beyond that: it is a standalone endpoint, returns the complete deck rather than a subset, and is meant to feed 'enriched display layers' in downstream tarot draw/spread tools. It also links to a full output and error contract, so the agent has a clear behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured with clear headings and the core purpose is front-loaded in the first sentence. The WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections each serve a distinct purpose, though the 'BEFORE: None' line is slightly filler and the total length is a bit longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: one optional enum parameter, an output schema, and no required inputs. The description covers what it returns, the metadata fields, workflow context, sibling disambiguation, and a link to the full contract. Nothing an agent needs to select and invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, response_format, is fully documented with enum values, a default, and an explanatory description. The description's INPUT CONTRACT merely summarizes the schema and confirms there are no other parameters, adding no new semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Returns the complete 78-card Rider-Waite-Smith deck with full metadata,' and enumerates the fields included. It also explicitly contrasts itself with three sibling tools in the 'DO NOT CONFUSE WITH' section, making it easy to distinguish from major_arcana, suit, and draw.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section states there are no prerequisites and recommends using this tool before asterwise_draw_tarot_cards or asterwise_get_tarot_three_card_spread to build enriched display layers. The 'DO NOT CONFUSE WITH' section gives explicit conditions for when to use alternatives: major_arcana for 22 cards, suit for 14 cards, draw for random selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_celtic_crossTarot Celtic CrossARead-onlyInspect
Ten-card Celtic Cross spread — traditional ten-position tarot layout. Draws 10 unique cards using cryptographic randomness and assigns each to one of the 10 classical Celtic Cross positions.
WORKFLOW: BEFORE: None — standalone reading, or follow asterwise_get_tarot_three_card_spread when a more detailed examination of the same question is needed. AFTER: None.
INPUT CONTRACT: allow_reversed (bool, default false) — Each card independently has 50% reversal chance. question (optional string, max 500 chars) — The question or situation being examined. Example: 'Should I accept the job offer in London?'
DO NOT CONFUSE WITH: asterwise_get_tarot_three_card_spread — 3 positions only; use for simpler questions. asterwise_draw_tarot_cards — free draw with no positional meaning. asterwise_get_tarot_yes_no — binary answer, not positional analysis.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-celtic-cross/
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | The question being asked; it shapes the reading's interpretation. | |
| allow_reversed | No | Whether cards may be drawn reversed (upside down). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses key behavioral traits: unique non-repeating cards, cryptographic randomness, and the independent 50% reversal chance when allowed. This explains the non-idempotent nature and adds context the annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and organized with clear labels (WORKFLOW, BEFORE, AFTER, INPUT CONTRACT). Every section adds decision-relevant information and avoids filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tarot tool with an output schema and contract link, the description covers the spread layout, card uniqueness, randomness, reversal behavior, input constraints, and relation to sibling tools. No critical calling information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters, but the description adds meaningful detail: 'allow_reversed' has an explicit 50% reversal rule, 'question' has a 500-character limit and an example, and the output/error contract is linked. 'response_format' is less described in prose but is fully covered by the schema enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific tool ('Ten-card Celtic Cross spread') and states exactly what it does: draws 10 unique cards using cryptographic randomness and assigns them to the 10 classical positions. It also names sibling tools it should not be confused with, so an agent can select it correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section explicitly says when to use this tool standalone and when to follow the three-card spread, and the 'DO NOT CONFUSE WITH' section lists three alternatives with their distinguishing use cases. This gives an agent explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_major_arcanaTarot Major ArcanaARead-onlyIdempotentInspect
Returns all 22 Major Arcana cards (The Fool through The World) as a structured array. Major Arcana represent universal archetypes and major life themes.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_draw_tarot_cards — draw from this subset by filtering by arcana_type.
INPUT CONTRACT: response_format (optional): markdown (default) | json.
DO NOT CONFUSE WITH: asterwise_get_tarot_cards — full 78-card deck including Minor Arcana. asterwise_get_tarot_suit — 14 Minor Arcana cards by suit.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-major-arcana/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: the result is a structured array of exactly 22 cards, response_format switches between markdown and json, and a full output/error contract is linked. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description leads with the core purpose, then uses compact labeled sections for workflow, input contract, disambiguation, and documentation. This is easy for an agent to scan. It is slightly longer than the single-parameter tool strictly requires, but every section contributes useful selection or invocation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one optional parameter, full parameter schema, rich annotations, and an output schema available, the description covers what the tool returns, how output format is controlled, how it fits in a workflow, and how it differs from siblings. No meaningful gap remains for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, response_format, has an enum, a default, and a descriptive explanation in the schema. The description's INPUT CONTRACT section largely restates this information and adds no new parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Returns all 22 Major Arcana cards (The Fool through The World) as a structured array.' It precisely defines scope and distinguishes itself from related tarot tools in the 'DO NOT CONFUSE WITH' section, naming asterwise_get_tarot_cards and asterwise_get_tarot_suit with their differing scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section states that the tool is standalone ('BEFORE: None') and suggests a downstream use via asterwise_draw_tarot_cards. The DO NOT CONFUSE section identifies alternatives and their scopes, but it does not state an explicit conditional such as 'Use this when you need all Major Arcana cards and nothing else.' Context is clear, but the decision rule is not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_suitTarot SuitARead-onlyIdempotentInspect
Returns all 14 cards in a given Minor Arcana suit as a structured array.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: suit — One of exactly: 'wands', 'cups', 'swords', 'pentacles'. Case-insensitive. Any other value is rejected locally with MCP INVALID_PARAMS.
DO NOT CONFUSE WITH: asterwise_get_tarot_major_arcana — 22 Major Arcana, not suit-based. asterwise_get_tarot_cards — full 78-card catalogue.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-suit/
| Name | Required | Description | Default |
|---|---|---|---|
| suit | Yes | Minor arcana suit: wands, cups, swords or pentacles. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail beyond those: case-insensitive suit matching, local rejection of invalid values with MCP INVALID_PARAMS, and the structured array return shape. It does not mention auth or rate limits, but the existing annotations lower the burden and the description provides valuable validation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with front-loaded purpose, followed by workflow, input contract, sibling disambiguation, and documentation link. Every section earns its place and there is no filler or tautological repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, full schema coverage, and thorough annotations, the description is complete. It covers validation behavior, output shape, sibling differentiation, and points to a full docs URL for output and error contracts, leaving no critical gap for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value for the suit parameter by enumerating the exact allowed values ('wands', 'cups', 'swords', 'pentacles'), specifying case-insensitivity, and clarifying the local rejection behavior — all beyond what the schema field description provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Returns all 14 cards in a given Minor Arcana suit as a structured array.' It clearly scopes the tool to Minor Arcana suits and disambiguates it from the Major Arcana and full-catalogue siblings, so an agent can identify the tool's purpose precisely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'DO NOT CONFUSE WITH' section explicitly names asterwise_get_tarot_major_arcana and asterwise_get_tarot_cards and gives the distinguishing criteria (22 Major Arcana vs suit-based; 78-card catalogue). The WORKFLOW section states the tool is standalone, leaving no ambiguity about prerequisites or follow-up calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_three_card_spreadTarot Three Card SpreadARead-onlyInspect
Past / Present / Future spread. Draws 3 unique cards using cryptographic randomness and assigns each to a named positional slot with an interpretive context.
WORKFLOW: BEFORE: None — standalone reading. AFTER: asterwise_get_tarot_celtic_cross — for deeper 10-position analysis of same question.
INPUT CONTRACT: allow_reversed (bool, default false) — Each card independently has 50% reversal chance. question (optional string, max 500 chars) — The question being asked. Setting a question is strongly recommended for coherent readings. Example: 'What should I focus on in my career this month?' The question is echoed in the response but does not affect card selection.
DO NOT CONFUSE WITH: asterwise_draw_tarot_cards — free draw with no positional meaning. asterwise_get_tarot_celtic_cross — 10-card spread with comprehensive positional coverage. asterwise_get_tarot_yes_no — single-card binary answer, no positional structure.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-three-card-spread/
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | The question being asked; it shapes the reading's interpretation. | |
| allow_reversed | No | Whether cards may be drawn reversed (upside down). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes that cards are drawn with cryptographic randomness and that the question does not affect card selection, adding transparency beyond the readOnlyHint annotation. It doesn't mention any potential side effects, but the annotations already cover safety, and the extra details are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with separate sections for workflow, input, and disambiguation. While slightly verbose due to repeating disambiguation details, the information is organized and easy to scan, with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all necessary aspects for a user to call the tool correctly: what it does, how to use it, and output options. Since an output schema exists, the lack of return-value details is acceptable. The mention of response_format and the question's non-influence on selection round out the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description elaborates on each parameter's meaning (question shapes interpretation, allow_reversed controls reversed cards, response_format controls output type) and even provides an example and a note about the question being echoed. This goes beyond the schema's basic definitions, enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool draws 3 unique cards for a Past/Present/Future spread, assigning each to a named positional slot. It explicitly distinguishes from sibling tools like draw_tarot_cards (free draw) and celtic_cross (deeper analysis), making its specific purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a 'DO NOT CONFUSE WITH' section that contrasts this tool with two directly related siblings, and the 'AFTER' note suggests using the celtic cross for deeper analysis of the same question. This gives clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_tarot_yes_noTarot Yes NoARead-onlyInspect
Draws one card and returns a yes, no, or maybe answer with confidence level. The answer is derived from the card's built-in yes_no polarity and its orientation.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_tarot_three_card_spread — for more context when the yes/no answer is 'maybe' or the situation needs elaboration.
INPUT CONTRACT: allow_reversed (bool, default true) — Recommended to keep true for nuanced answers. Set false only if you want strictly yes/no with no maybe results from reversal. question (optional string, max 500 chars) — The yes/no question being asked. Example: 'Should I accept this job offer?' Example: 'Will the project launch on time?'
DO NOT CONFUSE WITH: asterwise_get_tarot_three_card_spread — positional reading, not binary answer. asterwise_draw_tarot_cards — free draw without answer logic.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-tarot-yes-no/
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | The yes/no question being asked. | |
| allow_reversed | No | Whether cards may be drawn reversed (upside down). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations provide readOnlyHint=true, idempotentHint=false, and destructiveHint=false, and the description does not contradict these or claim any side effects. The description does not add extra context about safety, auth, or rate limits, but given the annotations already cover the core behavioral aspects, the description is sufficient and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) but contains some redundancy, as the INPUT CONTRACT repeats parameter details already present in the schema. However, it remains concise overall and does not include extraneous information, making it easy for an agent to parse the essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's purpose, usage, and distinctiveness from siblings, and the schema provides parameter details and output format options. Although the description does not specify the exact structure of the 'markdown' vs 'json' response, the schema's response_format enum and the mention of 'confidence level' give sufficient context for an agent to understand the expected output. Overall, the tool is well-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description elaborates on both key parameters: allow_reversed is explained in the INPUT CONTRACT with the note that setting it to false ensures strictly yes/no answers without 'maybe' from reversal, and question includes an example ('Should I accept this job offer?'). Combined with 100% schema coverage for all three parameters (including response_format), the semantic meaning of each parameter is fully conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Draws one card and returns a yes, no, or maybe answer with confidence level' and explicitly distinguishes it from siblings in the 'DO NOT CONFUSE WITH' section, noting that the three-card spread is a positional reading (not binary) and draw_tarot_cards is a free draw without answer logic. This fully clarifies the tool's purpose and its unique role among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section clearly indicates this tool is standalone ('BEFORE: None') and recommends following up with asterwise_get_tarot_three_card_spread when the answer is 'maybe' or more context is needed. The 'DO NOT CONFUSE WITH' section additionally tells the agent when not to use this tool, providing clear usage guidance relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_thirumana_poruthamThirumana PoruthamARead-onlyIdempotentInspect
Evaluates twelve Tamil Thirumana poruthams for two charts, tracks veto severity for Rajju, and returns an expanded breakdown map with tradition metadata.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_porutham — quick ten-koota pass before twelve-koota depth. AFTER: None.
INPUT CONTRACT: Two BirthData objects per global contract.
DO NOT CONFUSE WITH: asterwise_get_porutham — ten poruthams only, no Nadi/Varna keys. asterwise_get_compatibility — North Indian 36-point schema, not Tamil porutham map.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-thirumana-porutham/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for a single person. | |
| person2 | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral detail by mentioning Rajju veto severity tracking and the expanded breakdown map with tradition metadata, though exact result keys and error cases are only pointed to via the contract URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH, and contract sections. It is slightly verbose and repeats some schema content, but every section serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the annotations cover safety, the description is complete: it provides workflow, disambiguation from relevant siblings, input requirements, output format, and a link to the full error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions, so the baseline is 3. The description only restates the input contract and does not add significant meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Evaluates'), names the exact resource (twelve Tamil Thirumana poruthams for two charts), and immediately distinguishes it from the ten-porutham and North Indian compatibility tools in the DO NOT CONFUSE section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit workflow guidance (run asterwise_get_porutham first as a quick pass), states the input contract (two BirthData objects), and names the alternatives to avoid. It also indicates output format and points to the full output/error contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_transitsTransitsARead-onlyIdempotentInspect
Lists sign ingresses and retrograde/direct stations for all planets between two dates and returns chronological astronomical events. No birth data is needed.
WORKFLOW: BEFORE: None — no birth data or natal chart is needed. AFTER: asterwise_get_gochar — optional snapshot of transits against a natal chart.
INPUT CONTRACT: from_date and to_date are strings in the format expected by the upstream API (typically YYYY-MM-DD). Range cap (3 years, 1095 days), date order, and validity are enforced upstream, not locally. birth is not needed; older clients may still send it, and its ayanamsa is used only when ayanamsa is not given. ayanamsa picks the zodiac: 'lahiri' (default), 'raman', 'kp' are sidereal; 'tropical' gives Western sign changes (Sun into Aries at the March equinox, Moon sign changes every ~2.5 days). Station moments do not depend on it, only their longitude.
DO NOT CONFUSE WITH: asterwise_get_gochar — single-day transit snapshot with houses from Moon/Lagna, not ingress/station lists. asterwise_get_dasha_transits — dasha lord vs transit scoring for today only.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-transits/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | No | Not needed. Accepted so older clients keep working; only its ayanamsa is read, when ayanamsa is not given. | |
| to_date | Yes | End of the window to list ingress and station events, YYYY-MM-DD. | |
| ayanamsa | No | Zodiac: lahiri (default), raman or kp sidereal; tropical for Western sign changes. | |
| from_date | Yes | Start of the window to list ingress and station events, YYYY-MM-DD. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds non-obvious operational context beyond them: the 3-year/1095-day cap, date ordering and validity being enforced upstream rather than locally, and that station moments are ayanamsa-independent while longitudes are not. It also explains the legacy 'birth' parameter's silent partial use, which is exactly the kind of behavior an agent could otherwise trip over.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE blocks that make skimming easy. There is minor redundancy — 'no birth data is needed' appears in the opening line and again in the workflow — and the external docs link carries some weight that could have been inlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't enumerate return fields, and it still characterizes the result as chronological ingress/station events. Date-format expectations, the range cap, the ayanamsa effect, and sibling routing cover everything an agent needs before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter list is already documented; the description nonetheless adds upstream-only constraints (range cap, date order, validity) and clarifies that birth is optional and only its ayanamsa is read, and how tropical vs sidereal changes the sign-change output. It slightly restates the schema's ayanamsa enum explanation, keeping it off a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — lists sign ingresses and retrograde/direct stations for all planets within a date window — and specifies the output shape (chronological astronomical events). It also explicitly distinguishes the tool from asterwise_get_gochar and asterwise_get_dasha_transits, so an agent can pick it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (no birth data required; optional follow-up with get_gochar) plus a dedicated 'DO NOT CONFUSE WITH' section naming the two nearest alternatives and their differing semantics (single-day snapshot with houses; dasha-lord scoring for today). When-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_varshaphalVarshaphalARead-onlyIdempotentInspect
Computes the annual Tajika-style solar return for a four-digit civil year and returns Muntha, Pancha Adhikari metrics, Tajika aspects, and varshaphal positions. The Tajika year lord (Varsheshwara) is data.varsha_pati.planet; data.year_lord is the weekday (vara) lord at the return, kept under its old name.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — baseline radix before annual overlay. AFTER: None.
INPUT CONTRACT: year is a plain int sent as target_year upstream; callers must supply the true Gregorian return year, not age.
DO NOT CONFUSE WITH: asterwise_get_dasha — multi-decade Vimshottari, not one solar return. asterwise_get_transits — ingress/station timeline, not annual Tajika chart.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-varshaphal/
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Varshaphal year, four digits, e.g. 2026: the solar return nearest the birthday in that year (in UTC it can fall a day either side, or on 31 Dec for a 1 Jan birthday). Must not be before the birth year. | |
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile needs no restating. The description adds genuinely non-obvious behavior: the Tajika year lord lives at data.varsha_pati.planet while data.year_lord is actually the weekday (vara) lord kept under a legacy name, which prevents a real misread. It stops short of disclosing cost, computation time, or failure modes for a bad year, hence 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-sentence definition, then labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that are scannable rather than prose-heavy. Every line carries routing or contract information; even "AFTER: None" closes an otherwise open loop cheaply.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value enumeration is optional yet the description still names the two fields most likely to be misread. With 100% parameter coverage, full annotations, and explicit sibling exclusions and workflow ordering, an agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds information the schema cannot: the caller-facing argument is transmitted upstream as target_year, and year must be the true Gregorian return year rather than an age. That is real disambiguation beyond the schema's own "Must not be before the birth year" constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Computes the annual Tajika-style solar return for a four-digit civil year") and enumerates the returned artifacts: Muntha, Pancha Adhikari metrics, Tajika aspects, and varshaphal positions. The sibling-block later names the tools it is not, so an agent can place it in the catalog 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow, flagging asterwise_get_natal_chart as a recommended baseline radix and stating AFTER: None. The DO NOT CONFUSE section names two siblings (dasha, transits) and gives the discriminating condition for each (multi-decade Vimshottari vs one solar return; ingress/station timeline vs annual Tajika chart).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_varshaphal_harsha_balaVarshaphal Harsha BalaARead-onlyIdempotentInspect
Computes Harsha Bala (positional happiness score) for all 7 classical planets in a Varshaphal solar return chart. Maximum 20 per planet (4 components × 5 points each).
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_varshaphal — identify the Year Lord (Varsha Pati) before interpreting Harsha Bala. The Year Lord's Harsha Bala is the most actionable number in this response. AFTER: asterwise_get_varshaphal_saham — use Harsha Bala to assess whether each Saham lord can deliver its theme with ease or difficulty.
INPUT CONTRACT: Same as asterwise_get_varshaphal — BirthData plus year. year (required int): The Gregorian civil year of the solar return, sent upstream as target_year. Not age. time (required): Solar return ascendant and house positions are time-sensitive.
DO NOT CONFUSE WITH: asterwise_get_varshaphal — returns Pancha Vargeeya Bala (mathematical strength out of 80) for the Pancha Adhikaris; Harsha Bala (positional happiness out of 20) is a completely different measurement returned by this tool. asterwise_get_varshaphal_saham — derives sensitive zodiac points; this tool scores planet positional comfort. asterwise_get_chart_strength — Shadbala for the natal chart, not Tajika Harsha Bala for the solar return.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-varshaphal-harsha-bala/
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Varshaphal year, four digits, e.g. 2026: the solar return nearest the birthday in that year (in UTC it can fall a day either side, or on 31 Dec for a 1 Jan birthday). Must not be before the birth year. | |
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety profile is covered. The description adds useful behavior beyond that: the 20-point scale (4 components x 5 points), that time is required because solar-return ascendant/houses are time-sensitive, and that the Year Lord's score is 'the most actionable number.' It does not discuss rate limits or error behavior, but links to a contract doc for those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then organized under WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH headers. Slightly long and the 'Full output and error contract' link is peripheral, but every section carries distinct routing or disambiguation value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a specialized Varshaphal tool with an output schema and full annotations, the description covers purpose, prerequisites, downstream usage, input contract, and sibling disambiguation. Nothing an agent needs to select or call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents 'year' in detail (four digits, solar return nearest birthday, must not precede birth year). The description adds only marginal semantics ('sent upstream as target_year', 'Not age') and restates that time is required. With the schema doing the heavy lifting, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Computes Harsha Bala (positional happiness score) for all 7 classical planets in a Varshaphal solar return chart,' and explicitly distinguishes itself from asterwise_get_varshaphal (Pancha Vargeeya Bala out of 80) and asterwise_get_chart_strength (natal Shadbala). An agent can identify the tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit BEFORE (RECOMMENDED) and AFTER workflow steps naming the exact sibling tools, plus a 'DO NOT CONFUSE WITH' section giving the condition that selects each alternative. This is about as complete as routing guidance gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_varshaphal_sahamVarshaphal SahamARead-onlyIdempotentInspect
Computes all 10 Tajika Saham (sensitive points) for a Varshaphal solar return chart. Sahams are the Tajika equivalent of Arabic Parts — mathematically derived zodiac points that focus the annual horoscope on specific life themes.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_varshaphal — understand the base solar return chart (Varsha Pati, Muntha, Varsha Ascendant) before interpreting Saham lords. The Saham is meaningless without knowing which house it occupies from the Varsha Ascendant. AFTER: asterwise_get_varshaphal_harsha_bala — assess the Saham lord's positional happiness score to determine ease or difficulty of manifestation.
INPUT CONTRACT: Same as asterwise_get_varshaphal — BirthData plus year. year (required int): The Gregorian calendar year of the solar return, sent upstream as target_year. Not age — the civil year (e.g. 2026). Feeding age instead of year silently produces the wrong return. time (required): Solar return Ascendant is time-sensitive. Accurate birth time is required for reliable Saham interpretation.
DO NOT CONFUSE WITH: asterwise_get_varshaphal — returns the full base solar return chart including Muntha, Varsha Pati, and planet positions; Saham points are not included there. asterwise_get_varshaphal_harsha_bala — scores planet positional happiness; this tool computes zodiac points, not planet positions. asterwise_get_gemstone_recommendations — birthchart gemstone recommendations, unrelated to Tajika Saham.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-varshaphal-saham/
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Varshaphal year, four digits, e.g. 2026: the solar return nearest the birthday in that year (in UTC it can fall a day either side, or on 31 Dec for a 1 Jan birthday). Must not be before the birth year. | |
| birth | Yes | Birth data for tools that need the exact birth time (no sunrise fallback). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/non-destructive/idempotent, so safety is covered. The description adds meaningful behavioral context: time-sensitivity of the solar return ascendant and the silent-wrong-return failure mode when age is passed instead of year. Return-format details are partly delegated to the docs link and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) and front-loaded purpose. Slightly long and a docs URL for the output contract adds bulk, but nothing is egregiously wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested birth data, time-sensitive annual chart, domain-specific Sahams) and the presence of an output schema, the description covers initiation, prerequisites, sibling differentiation, and known pitfalls. Everything an agent needs to call it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so baseline is 3; the description goes further by restating the year contract (civil Gregorian year, not age) and the time requirement in the INPUT CONTRACT, reinforcing the most error-prone parameters. It does add value beyond the schema for the year/time semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: computes all 10 Tajika Saham for a Varshaphal solar return chart. Adds an analytic gloss (Tajika equivalent of Arabic Parts) that clarifies the niche resource. Explicitly distinguishes the cluster of Varshaphal-related tools in the DO NOT CONFUSE section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow with BEFORE (get_varshaphal, with rationale) and AFTER (harsha_bala) steps, plus named alternatives with what they don't contain. This is textbook when-to-use and alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_vedic_daily_factorsVedic Daily FactorsARead-onlyIdempotentInspect
Every classical factor for one person on one day, in one shape, with no weighting. Each factor carries its raw value and range, its frame (from the Moon, from the Lagna, a natal planet, none), the verdict its own rule gives or null, the rule's source, signification ids, the time it holds and whether it depends on the birth time.
WORKFLOW: BEFORE: asterwise_get_natal_chart. AFTER: asterwise_get_vedic_events — the same over a range, as a timeline.
INPUT CONTRACT: birth — BirthData. target_date (optional YYYY-MM-DD; defaults to today in the birth timezone). target_time (optional HH:MM; defaults to 12:00) — the local time in target_timezone the day's sky is read. target_timezone (optional IANA; defaults to the birth timezone).
DO NOT CONFUSE WITH: asterwise_get_gochar — the transit section only, with interpretations. asterwise_get_horoscope — AI-written text, not factors.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-vedic-daily-factors/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| target_date | No | Day to read, YYYY-MM-DD. Defaults to today in the birth timezone. | |
| target_time | No | Local time HH:MM (24-hour) in target_timezone on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA timezone of the day. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, but the description adds real behavioral content beyond them: results are unweighted raw factors, verdicts may be null, each factor is time-bound and may or may not depend on the birth time, and computation is anchored to a specific local time of day. Error contract is deferred to an external docs URL rather than described, which keeps this from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core statement, then cleanly sectioned into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH. Slightly redundant since the INPUT CONTRACT largely duplicates schema descriptions already visible to the agent, but every section is labelled and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description still sketches factor shape usefully. With a prerequisite workflow, default resolution rules, sibling exclusions, and a pointer to the full error contract, an agent has everything needed to call this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The INPUT CONTRACT restates what the schema already declares (birth required; target_date defaults to today in birth timezone; target_time defaults to 12:00; target_timezone defaults to the birth timezone) without adding meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource and its scope precisely: 'every classical factor for one person on one day, in one shape, with no weighting', then enumerates what each factor carries (raw value, range, frame, verdict, source, signification ids, validity period, birth-time dependency). It is explicitly distinguished from the nearest siblings (gochar = transit section only with interpretations; horoscope = AI-written text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite (BEFORE: get_natal_chart), an explicit follow-on (AFTER: get_vedic_events for a range as a timeline), and a 'DO NOT CONFUSE WITH' block naming two alternatives with the reason each differs. Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_vedic_eventsVedic Events (date range)ARead-onlyIdempotentInspect
One timeline of everything that happens to a chart over 1 to 31 days, each event with its exact time. Sidereal sign ingresses with the new sign's house from the natal Moon, stations, Moon nakshatra changes with Tarabala, Moon sign changes with Chandrabala, exact degree conjunctions with natal planets, eclipses with their contacts, Purnima and Amavasya (exact full and new Moon, with the tithi's start and end), and Vimshottari dasha changes (to the day). Each event carries the verdict its own rule gives, or null.
WORKFLOW: BEFORE: asterwise_get_natal_chart. AFTER: asterwise_get_vedic_daily_factors — the full picture of one of the days.
INPUT CONTRACT: birth — BirthData. from_date (optional YYYY-MM-DD; defaults to today). days (1-31, default 7). target_timezone (optional IANA; defaults to the birth timezone).
DO NOT CONFUSE WITH: asterwise_get_transits — ingresses and stations for everyone, nothing personal. asterwise_get_dasha — the whole dasha tree.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-vedic-events/
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of civil days, 1 to 31 (7 for a week, 30 for a month). | |
| birth | Yes | Birth data for a single person. | |
| from_date | No | First day, YYYY-MM-DD. Defaults to today in the birth timezone. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA timezone for the days and local times. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description adds real behavioral context – the event taxonomy, per-event verdicts (or null), and the ordering/scope constraints – but doesn't discuss rate limits, output size, or pagination beyond the 31-day cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the what/scope, then a tight event enumeration, then workflow, input contract, and disambiguation labels. Every sentence earns its place; nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex multi-event timeline tool with a nested birth object and output schema, the description is complete: scope, event taxonomy, workflow position, disambiguation, input contract, and a docs link for the full contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented with defaults, formats, and constraints. The description's INPUT CONTRACT restates defaults already in the schema (from_date defaults today, days 1-31 default 7, target_timezone defaults to birth tz) but adds no syntax or format detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (timeline of everything happening to a chart) with explicit scope (1-31 days, exact times), and enumerates the event types. Clearly distinguishes itself from siblings in the DO NOT CONFUSE WITH section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow (BEFORE: get_natal_chart, AFTER: get_vedic_daily_factors) and names the two most confusable siblings (get_transits, get_dasha) with the reason each differs. This is the model for usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_vedic_significationsVedic Significations (BPHS)ARead-onlyIdempotentInspect
What each house and planet signifies in Brihat Parashara Hora Shastra, as a fixed list with stable ids. Houses from chapter 11, verses 2-13; planets from chapter 3, verses 12-13 and the karaka verses of chapters 8 and 14.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_vedic_daily_factors — factors cite these ids.
INPUT CONTRACT: No inputs beyond response_format.
DO NOT CONFUSE WITH: asterwise_get_western_significations — Lilly's list for the Western track. asterwise_get_planet_nature — a planet's nature in one chart.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-vedic-significations/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the remaining burden is light. The description adds genuinely useful behavior: the list is fixed with stable ids, and downstream tools reference those ids, which is non-obvious and important for chaining. It does not discuss pagination or size of the payload, a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH). Every line carries information; nothing is padding despite the structured formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. For a zero-required-input reference lookup, the description covers provenance, id stability, workflow placement, and sibling disambiguation — everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (response_format) and schema description coverage is 100%, so the schema already documents the enum and default fully. The description adds only 'No inputs beyond response_format', which is a restatement rather than new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns what each house and planet signifies in a named classical text (BPHS), as a fixed list with stable ids. It also cites the exact source chapters/verses, which pins down the content precisely and separates it from the sibling western significations list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow framing (BEFORE: none, standalone; AFTER: asterwise_get_vedic_daily_factors, which cites these ids) tells the agent where this fits. The DO NOT CONFUSE WITH block names two alternatives and gives the distinguishing reason for each, so selection vs. siblings is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_aspectsWestern AspectsARead-onlyIdempotentInspect
Calculates all active aspects between a supplied set of planetary longitudes. Accepts a dictionary of body name to tropical ecliptic longitude and returns every aspect within standard natal orbs.
WORKFLOW: BEFORE: None — standalone; or use asterwise_get_western_natal to get positions first. AFTER: None.
INPUT CONTRACT: positions — dict mapping planet/body name (string) to tropical longitude (float 0–360). Must contain at least 2 entries. Example: {'Sun': 229.6, 'Moon': 221.8, 'Mars': 189.6, 'Jupiter': 309.6} Names can be any string — the tool does not enforce planet names.
DO NOT CONFUSE WITH: asterwise_get_western_natal — computes both positions and aspects from birth data. asterwise_get_western_synastry — inter-chart aspects between two people.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-aspects/
| Name | Required | Description | Default |
|---|---|---|---|
| positions | Yes | Planet positions to compare: a mapping of planet name to ecliptic longitude in degrees (0-360). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the annotations by specifying 'standard natal orbs' and the input format (tropical longitude). Since annotations already indicate read-only, idempotent, and non-destructive behavior, the description does not contradict them and provides a useful default behavior detail, though it could mention potential orb variations or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) and front-loads the core purpose in the first sentence. While it is slightly verbose due to the embedded workflow and contract text, the structure makes it easy to navigate and not overly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description includes workflow context, input contract details, links to full documentation, and differentiates from sibling tools. It does not provide an explicit output schema, but the response_format parameter and phrase 'returns every aspect' give sufficient indication of the result. The link to docs fills any remaining gaps, making it complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, but the description text adds meaningful constraints not present in the schema: positions must contain at least 2 entries, gives an explicit example, and clarifies the coordinate type (tropical longitude). This goes beyond the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates all active aspects from supplied planetary longitudes, with explicit input and output. It also explicitly distinguishes itself from similar tools (asterwise_get_western_natal and asterwise_get_western_synastry) in the 'DO NOT CONFUSE WITH' section, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance via the WORKFLOW section, stating it can be used standalone or after obtaining positions from asterwise_get_western_natal. It also directly names the alternatives to avoid confusion, giving clear when-to-use and when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_compatibilityWestern CompatibilityARead-onlyIdempotentInspect
Overall compatibility score (0–100) between two natal charts. Scores element affinity, synastry aspects between personal planets (Sun, Moon, Venus, Mars), and Sun/Moon/rising sign comparisons.
WORKFLOW: BEFORE: asterwise_get_western_natal per person optional. AFTER: asterwise_get_western_synastry — drill into raw aspects if score needs detail.
INPUT CONTRACT: person1, person2 — WesternBirthData each.
DO NOT CONFUSE WITH: asterwise_get_western_synastry — raw aspects, no score. asterwise_get_western_zodiac_compatibility — sign-only, no birth data.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-compatibility/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| person2 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/destructive hints, so the bar is lower. The description adds useful context by mentioning the output score range, the workflow, and a link to the full output/error contract, which goes beyond the bare annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses clear sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) and each sentence serves a purpose. It is a bit verbose with all-caps labels but remains well-structured and easy to scan. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested objects, two persons, many sibling tools), the description provides enough context to select and invoke the tool correctly. It includes a link to the full output/error contract, clarifying what to expect, and it differentiates from the most similar alternatives. A full inline output schema would make it perfect, but the URL suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for every parameter, including nested objects, enums, and defaults. The description itself adds no extra semantic information about parameters; it merely repeats 'person1, person2 — WesternBirthData' which is already in the schema. Hence baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly that it computes a compatibility score (0–100) between two natal charts, and lists the specific components (element affinity, synastry aspects, sign comparisons). It explicitly distinguishes itself from two sibling tools (synastry and zodiac compatibility) which is crucial for disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit workflow guidance: optional prior call to western_natal, and a follow-up call to western_synastry when more raw aspect detail is needed. Also explicitly states when NOT to use this tool (for raw aspects or sign-only compatibility) by naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_compositeWestern CompositeARead-onlyIdempotentInspect
Midpoint composite chart for two people. Each composite planet is the midpoint of the two natal positions. Returns composite planets with dignities and internal aspects.
WORKFLOW: BEFORE: asterwise_get_western_synastry — examine inter-chart aspects before composite. AFTER: None.
INPUT CONTRACT: person1, person2 — WesternBirthData each. house_system ignored.
DO NOT CONFUSE WITH: asterwise_get_western_synastry — two charts, inter-chart aspects vs composite (one midpoint chart). asterwise_get_western_compatibility — numeric score vs structural composite chart.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-composite/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| person2 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds that house_system is ignored and that the response contains composite planets with dignities and aspects, going beyond the annotations. However, it does not detail error behavior, though it links to a full output and error contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE, and contract link sections. Every sentence provides useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested parameter objects and output schema, the description is complete enough for an agent to invoke the tool correctly. It specifies prerequisites, differentiates from closely related tools, notes ignored parameters, and points to the full output and error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with detailed descriptions for person1, person2, and response_format. The description adds valuable caveats such as 'house_system ignored' and clarifies that each person uses WesternBirthData, supplementing the schema meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning a midpoint composite chart for two people, with composite planets, dignities, and aspects. It explicitly differentiates this from synastry and numeric compatibility tools in the DO NOT CONFUSE section, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section gives explicit guidance to examine inter-chart aspects via asterwise_get_western_synastry before the composite. The INPUT CONTRACT and DO NOT CONFUSE sections clarify when this tool is appropriate versus synastry or compatibility tools, providing strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_daily_factorsWestern Daily FactorsARead-onlyIdempotentInspect
Every Western factor for one person on one day, in one shape, with no weighting. Each factor carries its raw value and range, its frame, the verdict Lilly's rules give, the rule's source, signification ids, the time it holds and whether it depends on the birth time.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: asterwise_get_western_events — the same over a range, as a timeline.
INPUT CONTRACT: birth — WesternBirthData (house_system used for natal_house). target_date (optional YYYY-MM-DD; defaults to today in the birth timezone). target_time (optional HH:MM; defaults to 12:00) — the local time in target_timezone the day's sky is read. target_timezone (optional IANA).
DO NOT CONFUSE WITH: asterwise_get_western_transits_daily — the aspects only, with no rules. asterwise_get_western_horoscope — AI-written sun-sign text.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-daily-factors/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| target_date | No | Day to read, YYYY-MM-DD. Defaults to today in the birth timezone. | |
| target_time | No | Local time HH:MM (24-hour) in target_timezone on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA timezone of the day. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, non-destructive, and closed-world. The description adds substantial behavioral context beyond that: no weighting, each factor's raw value and range, frame, Lilly rule verdict and source, signification ids, holding time, and birth-time dependence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then organized into workflow, input contract, and sibling disambiguation. The sections are dense but each one carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex astrology tool with nested birth data and multiple optional timing parameters, the description covers purpose, output shape, prerequisites, follow-up tools, sibling exclusions, and input defaults. An output schema and full annotations also exist, so no critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful semantics, especially that birth.house_system is used for natal_house and how target_time and target_timezone define the local sky-reading moment, though it does not add much beyond the schema for every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific scope: every Western factor for one person on one day, with no weighting. It also distinguishes the tool from siblings through dedicated workflow and 'DO NOT CONFUSE WITH' sections, so an agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is explicit: run asterwise_get_western_natal before this tool, use asterwise_get_western_events afterward for ranges, and avoid asterwise_get_western_transits_daily and asterwise_get_western_horoscope. These are concrete when-to-use and when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_dayWestern Day ViewARead-onlyIdempotentInspect
One calendar day at a place, Western style: planetary hours, void-of-course Moon periods, Moon sign changes and the Moon phase. The day runs from local midnight to midnight; every planetary hour that falls in it is listed with the void-of-course periods that overlap it.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_daily_factors — the personal picture for the same day.
INPUT CONTRACT: location — LocationInput (date YYYY-MM-DD, lat, lon, timezone, response_format).
DO NOT CONFUSE WITH: asterwise_get_panchanga — the Vedic day with tithi, nakshatra and the Vedic windows.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-day/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds the local-midnight-to-midnight day boundary and the fact that each planetary hour is listed together with overlapping void-of-course periods, but it says nothing about pagination, size limits, or error behavior beyond the external docs link. Useful scope context, but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded: a one-sentence purpose, then labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH blocks that are easy to scan. Slightly over-formatted, and the input contract line duplicates structured schema data rather than adding to it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, and annotations carry the safety profile; the description supplies scope, workflow positioning, and the key sibling disambiguation plus a docs link for the full contract. The only gap is that it does not clarify why an agent should use this aggregate day view instead of the overlapping planetary-hours or void-of-course siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested location object (date, lat, lon, timezone, response_format) is already documented in structured form. The description's "INPUT CONTRACT" line merely restates those same fields without adding format rules, defaults, or constraints beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifies the exact scope ("One calendar day at a place, Western style") and enumerates the concrete contents returned: planetary hours, void-of-course Moon periods, Moon sign changes, and Moon phase. It also names a specific sibling it must not be confused with (asterwise_get_panchanga), so an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is standalone ("BEFORE: None") and names the natural follow-up tool (asterwise_get_western_daily_factors) for the personal picture on the same day. It lacks guidance on when to prefer this composite day view over the narrower siblings like get_western_planetary_hours or get_western_void_of_course_moon, which is a real usage gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_eclipsesEclipsesARead-onlyIdempotentInspect
Solar and lunar eclipses in a date range, past or future, up to 10 years. Each gives the type, time of greatest eclipse, start and end (UTC) and the eclipse degree in the tropical zodiac. With birth data, each eclipse also lists the natal planets and angles within 3° of the eclipse degree by conjunction or opposition.
WORKFLOW: BEFORE: None — standalone; add birth for personal contacts. AFTER: asterwise_get_western_transits_monthly — transits around an eclipse date.
INPUT CONTRACT: from_date, to_date (string YYYY-MM-DD, UTC, inclusive) — at most 10 years apart. birth (optional WesternBirthData) — adds natal_contacts; house_system sets the Ascendant/MC computation.
DO NOT CONFUSE WITH: asterwise_get_western_moon_phase — ordinary new and full moons, not eclipses. asterwise_get_western_moon_calendar — monthly phase table.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-eclipses/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | No | Optional birth data. When given, each eclipse lists the natal planets and angles within 3° of the eclipse degree. | |
| to_date | Yes | End of the date range, YYYY-MM-DD (inclusive). | |
| from_date | Yes | Start of the date range, YYYY-MM-DD (inclusive). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses the 10-year range cap, inclusive UTC dates, the 3° orb and conjunction/opposition rule used for natal contacts, and the effect of house_system on Ascendant/MC computation. These are concrete behavioral traits not present in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core sentence followed by labeled WORKFLOW, INPUT CONTRACT and DO NOT CONFUSE WITH blocks. Every line carries actionable information; only the trailing docs URL is non-substantive but it is a pointer to a fuller contract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Result fields, range limits, optional birth semantics, and sibling disambiguation are all covered, so an agent can call this correctly without opening the output schema or the external docs. Nothing material is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds constraints not encoded in the schema — notably that from_date/to_date must be at most 10 years apart and are inclusive UTC — and clarifies that birth adds natal_contacts and that house_system drives Ascendant/MC.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (solar and lunar eclipses) with a scope (date range, past or future, up to 10 years) and enumerates the returned fields (type, time of greatest eclipse, start/end, eclipse degree, natal contacts). It explicitly differentiates itself from the nearest siblings moon_phase and moon_calendar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Workflow is stated as BEFORE/AFTER with a named follow-up tool, and a DO NOT CONFUSE WITH block names two sibling tools and explains how they differ. The optional birth-data path is framed as a conditional add-on, so an agent knows exactly when to include it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_eventsWestern Events (date range)ARead-onlyIdempotentInspect
One timeline of everything that happens to a chart over 1 to 31 days, each event with its exact time. It holds the exact major aspects from the transiting planets to the natal planets and angles with Lilly's verdicts, tropical sign ingresses and stations, Moon sign changes, void-of-course periods, New and Full Moons and quarters, eclipses with their contacts, and the profection year turning on the birthday.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: asterwise_get_western_daily_factors — the full picture of one of the days.
INPUT CONTRACT: birth — WesternBirthData. from_date (optional YYYY-MM-DD; defaults to today). days (1-31, default 7). target_timezone (optional IANA).
DO NOT CONFUSE WITH: asterwise_get_western_transits_monthly — day snapshots, not a timeline of exact moments.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-events/
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of civil days, 1 to 31 (7 for a week, 30 for a month). | |
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| from_date | No | First day, YYYY-MM-DD. Defaults to today in the birth timezone. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| target_timezone | No | IANA timezone for the days and local times. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safety traits (readOnly, idempotent, non-destructive, closed world), so the description's job is to add operational context. It does so richly: it details the exact event taxonomy returned, notes each event carries an exact time, constrains the date range to 1–31 days, and links to a full output/error contract. Little behavioral information is missing for an agent deciding how to use it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then cleanly separated into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections. Every sentence contributes either scope, usage routing, or parameter clarification, and the URL is terse. It is long but earns its length given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description only needs to cover selection, scoping, and workflow. It does all three completely: it distinguishes the tool from related siblings, states the date-range constraint, and provides before/after workflow steps. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter's meaning, format, and default. The description largely repeats that information ('from_date ... defaults to today', 'days 1-31 default 7') without adding syntax, constraints, or interaction rules beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource—a timeline of astrological events for a chart over 1–31 days—and enumerates the exact event types it returns (aspects, ingresses, stations, Moon changes, eclipses, profections). It distinguishes itself from siblings by explicitly naming what it is not ('timeline of exact moments' vs. day snapshots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit workflow guidance with a BEFORE tool (asterwise_get_western_natal) and an AFTER tool (asterwise_get_western_daily_factors), plus a 'DO NOT CONFUSE WITH' section that names the closest alternative (asterwise_get_western_transits_monthly) and explains the difference. This removes guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_horaryWestern Horary ChartARead-onlyIdempotentInspect
The chart of a question's moment with the facts Lilly's horary method reads, each rule named. It gives the house rulers, the significators (lord of the 1st and the Moon for the querent, lord of the quesited house), their aspects with Lilly's orbs and whether an applying aspect perfects before a sign change, the Moon's last and next aspects and void-of-course state, combustion, and the considerations before judgement. The yes or no is left to the reader.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_significations — what the quesited house and its ruler stand for.
INPUT CONTRACT: date (YYYY-MM-DD) and time (HH:MM) the question was asked, local. latitude, longitude, timezone (IANA) of the place. quesited_house (optional 1-12): the house of the matter (7 partner, 10 job, 2 money …). house_system (placidus|koch|equal|whole_sign).
DO NOT CONFUSE WITH: asterwise_get_prashna_chart — the Vedic question chart. asterwise_get_western_natal — a birth chart.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-horary/
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date the question was asked, YYYY-MM-DD (local). | |
| time | Yes | Time the question was asked, HH:MM (24-hour, local). | |
| latitude | Yes | Latitude of the place in decimal degrees. | |
| timezone | Yes | IANA timezone of the place, e.g. Europe/London. | |
| longitude | Yes | Longitude of the place in decimal degrees. | |
| house_system | No | placidus (default), koch, equal or whole_sign. | placidus |
| quesited_house | No | House of the matter asked about (7 partner, 10 job, 2 money …). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds real behavioral context beyond that: the computation set (aspects with Lilly's orbs, applying-perfects-before-sign-change, void-of-course, combustion, considerations before judgement) and, importantly, that the yes/no verdict is deliberately withheld. It does not cover failure modes beyond pointing at an external error-contract URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, then cleanly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE blocks. The opening sentence is dense but the enumeration of computed facts is long; a small amount could be trimmed since the output schema covers return values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 8-parameter chart tool, the description covers scope, contents, sequencing, disambiguation, and input semantics, and the output schema exists so return values need not be spelled out. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents every parameter including the quesited_house examples and house_system enum. The description's INPUT CONTRACT largely restates these fields without adding syntax or format meaning beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('chart of a question's moment') and scopes the method (Lilly's horary) plus the exact contents returned. The DO NOT CONFUSE section explicitly distinguishes it from asterwise_get_prashna_chart (Vedic question chart) and asterwise_get_western_natal (birth chart), so an agent can select it without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives explicit BEFORE (standalone) and AFTER (asterwise_get_western_significations) routing, and the DO NOT CONFUSE block names alternatives. It stops short of stating the triggering scenario (e.g. 'use when the querent asks a yes/no question arising at a specific moment'), leaving the when-to-use condition largely implied by the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_horoscopeWestern HoroscopeARead-onlyIdempotentInspect
Fetches an AI-synthesised Western sun-sign horoscope for a chosen horizon and returns structured guidance fields plus metadata about the model and period.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_western_natal — if the user needs a personalised tropical chart beyond sign-general copy.
INPUT CONTRACT: period is constrained to the tool schema enum (daily, weekly, monthly, yearly). sun_sign accepts English zodiac names only (Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces). No Sanskrit aliases — this is Western astrology. response_format selects JSON vs markdown rendering only.
DO NOT CONFUSE WITH: asterwise_get_horoscope — Vedic Moon-sign horoscope using sidereal zodiac, not Western tropical sun-sign. asterwise_get_western_natal — full personalised tropical chart from birth data, not sign-general editorial copy.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-horoscope/
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes | Horoscope period: daily, weekly, monthly or yearly. | |
| sun_sign | Yes | Western sun sign, e.g. 'Aries'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description reveals that content is AI-synthesised, that response_format only changes rendering, and that results include model/period metadata. It also points to a full output and error contract URL, so the tool's behavioral and error profile is well disclosed with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than minimal but earns its length: core function is front-loaded and the WORKFLOW/INPUT CONTRACT/DO NOT CONFUSE sections are scannable. Some redundancy exists ('chosen horizon' vs. the period parameter), but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, well-annotated tool with an output schema, the description covers workflow, input constraints, output highlights, sibling confusion, and directs to a full error/output contract. An agent has everything needed to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is a 3. The description adds useful constraints beyond the schema: sun_sign must be English zodiac names only, no Sanskrit aliases, and response_format affects rendering only. This clarifies ambiguity without compensating for missing schema docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names the exact resource ('Western sun-sign horoscope'), the action ('Fetches'), and the output shape (structured guidance fields plus metadata). It also calls out the Western/tropical distinction, so it is clearly separable from the many sibling astrology tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW section states the tool is standalone and names asterwise_get_western_natal as the AFTER option when a personalised chart is needed. DO NOT CONFUSE WITH explicitly contrasts asterwise_get_horoscope (Vedic Moon-sign) and asterwise_get_western_natal, giving an agent clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_lunar_returnWestern Lunar ReturnARead-onlyIdempotentInspect
Western lunar return chart: the next moment after a given date that the Moon returns to its natal tropical longitude (approximately every 27.3 days). Builds a complete Western natal chart for that moment at the birth location.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: None.
INPUT CONTRACT: birth — WesternBirthData. after_date (optional YYYY-MM-DD) — find next return after this date. Defaults to today.
DO NOT CONFUSE WITH: asterwise_get_western_solar_return — annual Sun return vs lunar_return (monthly Moon return).
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-lunar-return/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| after_date | No | Find the first lunar return after this date, YYYY-MM-DD. Defaults to today (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds useful behavioral context beyond that: the ~27.3-day recurrence period, that the chart is cast at the birth location, and that after_date defaults to today (UTC). It doesn't contradict any annotation; it just doesn't add depth on error or edge-case behavior, which the docs link defers to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core concept, then cleanly labeled WORKFLOW / INPUT CONTRACT / DO NOT CONFUSE WITH sections. Every sentence earns its place — the definition, the recurrence period, the placement location, and the disambiguation all carry distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the description covers everything else an agent needs: purpose, prerequisite tool, input contract, default behavior, and sibling disambiguation. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents birth, after_date, and response_format, including defaults and formats. The description's INPUT CONTRACT section largely restates what the schema says ('after_date (optional YYYY-MM-DD)... Defaults to today') without adding syntax or semantics beyond it. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and defines the concept precisely: 'the next moment after a given date that the Moon returns to its natal tropical longitude (~every 27.3 days)', then what it builds (a complete Western natal chart for that moment at the birth location). It explicitly distinguishes itself from the solar-return sibling, so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit WORKFLOW block ('BEFORE: asterwise_get_western_natal; AFTER: None') and a DO NOT CONFUSE WITH clause naming asterwise_get_western_solar_return with the distinguishing rule (annual Sun return vs monthly Moon return). Both when-to-use and the alternative are stated, not inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_moon_calendarWestern Moon CalendarARead-onlyIdempotentInspect
Returns lunar phase data for every day in a calendar month as a structured array. Each element is a complete daily phase object identical to asterwise_get_western_moon_phase.
WORKFLOW: BEFORE: None — standalone. AFTER: None.
INPUT CONTRACT: year (optional int, 1-3000) — Target year. Defaults to the current year (UTC). Example: 2026 month (optional int 1–12) — Target month. Defaults to the current month (UTC). Example: 5 (May) Values outside 1–12 are rejected locally with MCP INVALID_PARAMS.
DO NOT CONFUSE WITH: asterwise_get_western_moon_phase — single-day phase only.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-moon-calendar/
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Four-digit year, 1-3000. Defaults to the current year (UTC). | |
| month | No | Month number 1-12. Defaults to the current month (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely new behavior: out-of-range month values are rejected locally with MCP INVALID_PARAMS, and defaults resolve against UTC. It stops short of documenting output shape or rate limits, but a link to the full output/error contract partially compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH blocks — easy to scan. Minor redundancy: the year range and defaults appear in both the description and the schema, and the BEFORE/AFTER block is nearly empty, though it does assert standalone use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, and the description still points to a full output/error contract. Combined with param defaults, validation behavior, and sibling routing, nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value beyond the schema: concrete example values (2026, 5 for May) and the fact that month values outside 1–12 fail locally with MCP INVALID_PARAMS. That validation semantics is not expressed in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a precise verb and resource with scope: lunar phase data for every day in a calendar month, returned as a structured array. It also equates the element shape to a named sibling, so an agent immediately knows what it produces and how it differs from the single-day tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing is provided: 'DO NOT CONFUSE WITH: asterwise_get_western_moon_phase — single-day phase only' names the alternative and the condition that selects it. The WORKFLOW block (BEFORE/AFTER: None — standalone) further clarifies it needs no prior tool call or follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_moon_phaseWestern Moon PhaseARead-onlyIdempotentInspect
Calculates the tropical lunar phase for any date using Swiss Ephemeris. Returns the phase name, phase angle, illumination percentage, Moon age in days, and the next major phase transition.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_moon_calendar — get the full month's phase data.
INPUT CONTRACT: date (optional string YYYY-MM-DD, years 1-3000) — Date to compute phase for. Defaults to today (UTC). An invalid or out-of-range date → 422 validation_error, surfaces as MCP INTERNAL_ERROR with the API message. Example: '2026-05-01'
DO NOT CONFUSE WITH: asterwise_get_western_moon_calendar — full monthly day-by-day phase table. asterwise_get_panchanga — Vedic tithi system (lunar day based on 12° arc increments).
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-moon-phase/
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date for the moon phase, YYYY-MM-DD (years 1-3000). Defaults to today (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes further by disclosing the error contract: an invalid or out-of-range date yields 422 validation_error that surfaces as MCP INTERNAL_ERROR. It also states the default (today UTC) and supported year range, which is real behavioral context. It does not discuss rate limits or latency, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) are front-loaded and scannable, and the key disambiguation is stated before the trailing docs URL. It is slightly longer than strictly necessary — the enumerated return fields partly duplicate the output schema — but little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter lookup with an output schema, the description covers everything the agent needs: defaults, valid range, failure mode and how the failure is surfaced, plus routing to the follow-up tool. Return-value detail is correctly delegated to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters, including the enum for response_format. The description restates the date format, range and default and adds only a sample value ('2026-05-01'); it says nothing about response_format. Baseline 3 is appropriate when the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Calculates the tropical lunar phase for any date') and names the engine (Swiss Ephemeris). It also enumerates the returned values, so an agent knows exactly what artifact it gets, and the DO NOT CONFUSE section distinguishes it from the two nearest siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block states explicitly that no prior tool is needed and routes the agent onward to asterwise_get_western_moon_calendar. The DO NOT CONFUSE WITH block names two alternatives and gives the discriminating condition for each (monthly day-by-day table vs. Vedic tithi based on 12° arcs).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_natalWestern Natal ChartARead-onlyIdempotentInspect
Calculate a complete Western natal chart using the tropical zodiac and Swiss Ephemeris. Returns 10 planet positions with Placidus (or chosen) house placements, sign-level dignities plus Lilly essential-dignity scores, all active aspects, and element/modality/hemisphere balance statistics.
WORKFLOW: BEFORE: None — this tool is standalone. AFTER: asterwise_get_western_transits_daily — layer current transits over this natal chart. AFTER: asterwise_get_western_synastry — compare this chart against a partner's chart. AFTER: asterwise_get_western_solar_return — annual return chart for the current year.
INPUT CONTRACT: birth.date — YYYY-MM-DD. Example: '1985-11-12' birth.time — HH:MM (24-hour local time). Example: '06:45' birth.lat — Decimal degrees, north positive. Example: 19.076 (Mumbai) birth.lon — Decimal degrees, east positive. Example: 72.8777 (Mumbai) birth.timezone — IANA timezone string. Example: 'Asia/Kolkata', 'America/New_York', 'Europe/Rome', 'UTC'. Default: UTC. IMPORTANT: Timezone defaults to UTC — always supply the correct local timezone for accurate house cusps. An incorrect timezone shifts the Ascendant. birth.house_system — 'placidus' (default, most common), 'koch', 'equal', 'whole_sign'. Placidus is standard for most Western traditions. Whole sign is traditional/Hellenistic. NOTE: house_system is accepted here but silently ignored by return, synastry, composite, and progression endpoints — those always use the birth location coordinates without house-system selection. ayanamsa — always tropical regardless of any value supplied; field is not present.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — Vedic sidereal chart using Lahiri ayanamsa; different zodiac, different house system, different planet set (9 grahas vs 10 tropical planets). asterwise_get_western_aspects — takes raw longitudes as input; use when you already have positions and don't need full chart computation.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-natal/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description goes further by enumerating what is computed (10 planets, Placidus houses, Lilly dignity scores, aspects, balance stats) and by warning that timezone defaults to UTC and that an incorrect value shifts the Ascendant, plus that house_system is silently ignored on downstream endpoints. That last point is real behavioral disclosure; only return/pagination detail is absent, and an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every block (purpose, WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) is separately headed and front-loaded, with the core purpose in the first sentence. Slightly verbose in the parameter examples, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a computation tool with nested birth objects and an output schema, the definition covers inputs, defaults, footguns, output contents, and sibling routing. An agent has everything needed to call it correctly on the first attempt without consulting the external doc link.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: the timezone default being a correctness hazard ('An incorrect timezone shifts the Ascendant'), the guidance that Placidus is standard while whole sign is Hellenistic, and the note that ayanamsa is not present because the chart is always tropical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ('Calculate a complete Western natal chart') plus the underlying method (tropical zodiac, Swiss Ephemeris). The DO NOT CONFUSE WITH block explicitly distinguishes it from asterwise_get_natal_chart (Vedic sidereal) and asterwise_get_western_aspects (raw longitudes), so an agent can disambiguate without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WORKFLOW block gives explicit before/after routing to transits_daily, synastry, and solar_return, and the DO NOT CONFUSE WITH section names the conditions under which each alternative should be used instead. Both when-to-use and when-to-use-something-else are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_planetary_hoursPlanetary HoursARead-onlyIdempotentInspect
The 24 planetary hours for a date and place, with the planet ruling each hour and local plus UTC start and end times. Day (sunrise to sunset) and night (sunset to next sunrise) are each split into 12 equal parts; the first hour after sunrise belongs to the weekday's planet and the rest follow the Chaldean order (Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon).
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_void_of_course_moon — avoid void-of-course windows.
INPUT CONTRACT: location — LocationInput (date YYYY-MM-DD, lat, lon, timezone, response_format).
DO NOT CONFUSE WITH: asterwise_get_hora — the Vedic version with Sanskrit framing and activity notes. asterwise_get_choghadiya — 8 Vedic day/night parts, not 12.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-planetary-hours/
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | For tools that need location but not birth time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds useful algorithmic context about how the 24 planetary hours are derived and links to a full output and error contract, though it does not discuss auth or rate limits because none are relevant for this public read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then organized into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections. Every sentence carries distinct information, and the external documentation link is appropriately placed at the end for deeper contracts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description covers what is computed, when to use it, what input structure is expected, and how it differs from sibling tools. An agent has everything needed to select and invoke it correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested location schema already documents date, lat, lon, timezone, and response_format. The description reinforces the input contract by listing the same fields and the YYYY-MM-DD date format, but adds no meaningful syntax or constraint beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('The 24 planetary hours for a date and place') and explains the calculation in enough detail to distinguish it from generic time tools. It explicitly names the sibling tools it must not be confused with, asterwise_get_hora and asterwise_get_choghadiya, and gives their differentiating features.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a WORKFLOW section stating the tool is standalone and should be followed by asterwise_get_western_void_of_course_moon. The DO NOT CONFUSE WITH section names two alternatives and explains the exact difference, leaving no inference required about when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_planetary_returnWestern Planetary ReturnARead-onlyIdempotentInspect
Next return chart for any planet after a given date. Finds the exact moment the specified planet returns to its natal tropical longitude and builds a complete Western natal chart for that moment at the birth location.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: None.
INPUT CONTRACT: birth — WesternBirthData. planet — one of Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. after_date (optional YYYY-MM-DD) — defaults to today.
DO NOT CONFUSE WITH: asterwise_get_western_solar_return — Sun-only shortcut. asterwise_get_western_lunar_return — Moon-only shortcut.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-planetary-return/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| planet | Yes | Planet whose return to compute, e.g. 'Jupiter' or 'Saturn'. | |
| after_date | No | Find the first return after this date, YYYY-MM-DD. Defaults to today (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description still adds real behavioral context: what the tool computes (exact return moment to natal tropical longitude), that it builds a complete chart at the birth location, and default handling for after_date, plus a pointer to the full output/error contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then organized into discrete useful blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH). Every section carries non-redundant information; there is no filler to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with a nested birth object, an output schema, and full annotations, everything an agent needs is present: prerequisite tool, valid planet values, date default, and sibling disambiguation. Return values are appropriately delegated to the output schema and docs link.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the full valid planet set (Sun through Pluto), whereas the schema only shows 'Jupiter'/'Saturn' examples, and it restates the after_date default. This compensates for the missing planet enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb, resource and scope: 'Next return chart for any planet after a given date,' and elaborates that it finds the moment the planet returns to its natal tropical longitude and builds a full chart. It is immediately distinguishable from its solar- and lunar-return siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prerequisites are given (BEFORE: asterwise_get_western_natal), and the DO NOT CONFUSE WITH block names the two alternatives and states exactly how they differ (Sun-only, Moon-only shortcuts), effectively routing the agent to the right tool without opening schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_profectionsAnnual ProfectionsARead-onlyIdempotentInspect
Annual profections for a birth chart and a date: the activated whole-sign house, its sign and the lord of the year. Also gives where the year lord sits natally and the next twelve profection years. Rule: the Ascendant sign is the 1st house at age 0 and the activated sign moves one sign forward every birthday, so at age N the house is (N mod 12) + 1.
WORKFLOW: BEFORE: asterwise_get_western_natal — see the Ascendant and the year lord's placement. AFTER: asterwise_get_western_transits_monthly — transits to the year lord.
INPUT CONTRACT: birth — WesternBirthData (date, time, lat, lon, timezone, house_system). time is required. target_date (optional YYYY-MM-DD) — date to profect to; defaults to today (UTC).
DO NOT CONFUSE WITH: asterwise_get_dasha — Vedic Vimshottari periods, a different time-lord system. asterwise_get_western_solar_return — the chart of the birthday moment, not the year lord.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-profections/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| target_date | No | Date in YYYY-MM-DD format. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior. The description adds the profection calculation rule, required birth time, default target_date as today (UTC), output scope up to twelve profection years, and a pointer to the full error contract. It stops short of operational details like rate limits or auth, so 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then uses clear WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections. Every sentence adds routing or usage value; the rule formula is compact and explains the output logic without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not detail return values, yet it still covers the key outputs and the input contract. Combined with workflow, sibling disambiguation, and an error-contract link, it is complete enough for an agent to invoke correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a meaningful semantic detail not in the schema: target_date defaults to today (UTC) rather than null. It also reiterates required birth time, but most parameter format details remain in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Annual profections for a birth chart and a date') and enumerates the outputs: activated whole-sign house, its sign, lord of the year, natal placement of the year lord, and next twelve profection years. It also names sibling tools it is not, clearly distinguishing it from dasha and solar return.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives BEFORE (asterwise_get_western_natal) and AFTER (asterwise_get_western_transits_monthly) workflow steps, and a DO NOT CONFUSE WITH section naming two alternatives with reasons. The input contract adds when the birth time is required and how target_date defaults.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_secondary_progressionsWestern Secondary ProgressionsARead-onlyIdempotentInspect
Secondary progressed chart using the day-for-a-year method. Each day after birth symbolises one year of life (1 ephemeris day = 1 tropical year = 365.2421904 days). Returns all 10 progressed planet positions, progressed Ascendant and MC, and the solar arc.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: asterwise_get_western_solar_arc — compare uniform arc vs individual motion.
INPUT CONTRACT: birth — WesternBirthData. target_date (optional YYYY-MM-DD) — the date to progress to. Defaults to today.
DO NOT CONFUSE WITH: asterwise_get_western_solar_arc — all planets move by one uniform arc. asterwise_get_western_transits_daily — real-time sky, not symbolic progression.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-secondary-progressions/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| target_date | No | Date to progress the chart to, YYYY-MM-DD. Defaults to today (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context beyond that: the symbolic day-for-a-year computation method, the returned chart points, and the workflow relationship to natal and solar arc tools. It does not cover auth, rate limits, or error behavior, deferring those to the docs link, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core method and output, then organized into WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections. Every sentence carries routing or contract information, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested birth object, the presence of an output schema, and the rich annotations, the description supplies the missing conceptual context: what the progression means, how it differs from solar arc and transits, and the workflow order. It also links to the full output and error contract, so an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents birth, target_date, and response_format. The description repeats the target_date format and default but adds no syntax or meaning beyond what the schema provides, which is the baseline expectation for fully covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it computes a secondary progressed chart using the day-for-a-year method, and it specifies the exact outputs (10 progressed planets, progressed Ascendant and MC, and solar arc). It also explicitly distinguishes itself from the two closest siblings, solar arc and daily transits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit workflow with BEFORE: asterwise_get_western_natal and AFTER: asterwise_get_western_solar_arc. The DO NOT CONFUSE WITH section names the alternative tools and explains the conceptual difference, so an agent can route correctly without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_significationsWestern Significations (Lilly)ARead-onlyIdempotentInspect
What each house and planet signifies in William Lilly's Christian Astrology (1647), as a fixed list with stable ids: the twelve houses (pp. 50-56) and the seven planets (pp. 57-83: kinds of people, professions, manners when well and ill dignified).
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_daily_factors — factors cite these ids.
INPUT CONTRACT: No inputs beyond response_format.
DO NOT CONFUSE WITH: asterwise_get_vedic_significations — the BPHS list for the Vedic track.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-significations/
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real context beyond that: the content is a fixed list with stable ids (relevant for downstream referencing), exact coverage by page range, and it is stateless with no inputs. It does not discuss rate limits or error behavior in-line, deferring to the docs URL, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the substantive scope first, then labeled blocks (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that are fast to scan. The trailing docs URL is mildly redundant given an output schema exists, but the whole description is dense and nearly waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, read-only reference lookup with an output schema, everything an agent needs is present: content scope, stable-id behavior, downstream relationship, and sibling disambiguation. No gaps that would cause a wrong tool selection or misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single response_format enum is fully documented in the schema, so the baseline is 3. The description's 'INPUT CONTRACT: No inputs beyond response_format' restates the schema rather than adding meaning such as when json is preferable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('what each house and planet signifies') and pins the exact source and scope (William Lilly's Christian Astrology 1647, twelve houses pp. 50-56, seven planets pp. 57-83). It distinguishes itself from the closest sibling by naming asterwise_get_vedic_significations as the Vedic-track alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow block states there is no BEFORE dependency (standalone) and identifies the downstream consumer, asterwise_get_western_daily_factors, whose factors cite these ids. A dedicated 'DO NOT CONFUSE WITH' line names the alternative tool, giving both when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_solar_arcWestern Solar ArcARead-onlyIdempotentInspect
Western Solar Arc Directions for a target date: the solar arc (progressed Sun minus natal Sun) is added to every natal planet and angle. It is approximately 1° per year; unlike secondary progressions, all planets advance at the same rate.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: None.
INPUT CONTRACT: birth — WesternBirthData. target_date (optional YYYY-MM-DD) — defaults to today.
DO NOT CONFUSE WITH: asterwise_get_western_secondary_progressions — each planet moves at its own rate. asterwise_get_western_transits_daily — real-time transits, not arc directions.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-solar-arc/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| target_date | No | Date to direct the chart to, YYYY-MM-DD. Defaults to today (UTC). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent read. Beyond that, the description adds domain behavior (~1° per year, uniform advancement across all planets) and notes target_date defaults to today, which helps the agent reason about output. It stops short of describing output structure, though the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core definition followed by labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections. Every line is scannable and none is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety, a rich nested input schema, and an output schema existent (so returns need not be described), the description supplies the remaining needs: prerequisite ordering, sibling disambiguation, and a docs link for the full output/error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and nested birth fields are fully documented, so the schema carries the parameter burden. The description only restates the target_date default, adding no date handling detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific technique (solar arc directions) and precisely defines it: 'the solar arc (progressed Sun minus natal Sun) is added to every natal planet and angle.' It also contrasts the mechanics with sibling approaches ('all planets advance at the same rate'), making it unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WORKFLOW block names the prerequisite (asterwise_get_western_natal) and notes no follow-up step, and the DO NOT CONFUSE WITH section names two specific alternatives with the distinguishing criterion for each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_solar_returnWestern Solar ReturnARead-onlyIdempotentInspect
Western solar return chart for a given year, cast for the exact moment the Sun returns to its natal tropical longitude. The chart is a complete Western natal chart for that moment at the birth location. Provide the year as an integer (e.g. 2026).
WORKFLOW: BEFORE: asterwise_get_western_natal — understand natal chart before reading return. AFTER: None.
INPUT CONTRACT: birth — WesternBirthData. house_system ignored (chart uses return computation defaults). year (int) — calendar year of the return (e.g. 2026), not age.
DO NOT CONFUSE WITH: asterwise_get_western_lunar_return — Moon return, ~monthly. asterwise_get_varshaphal — Vedic Tajika solar return — different system.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-solar-return/
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Four-digit calendar year, e.g. 2026. | |
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and non-open-world, so the safety profile is covered. The description adds genuinely new behavioral context: the chart is cast at the birth location, uses return-computation defaults, and that house_system is ignored. It stops short of describing output/error behavior, deferring to an external URL rather than summarizing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core definition, then organized into labelled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE WITH sections that each carry distinct information. Slightly verbose ('AFTER: None', trailing doc URL) but nothing is filler at the level of the whole.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. Combined with the natal-first workflow and the sibling disambiguation, an agent has everything needed to invoke this correctly for a 3-param, nested-object tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it clarifies that house_system is ignored despite appearing as a settable enum param, and that 'year' is the calendar year of the return, not the person's age. These disambiguations prevent plausible misuse of the two optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Western solar return chart for a given year') and pins the exact astronomical definition ('the exact moment the Sun returns to its natal tropical longitude'). It explicitly distinguishes itself from asterwise_get_western_lunar_return and asterwise_get_varshaphal, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit WORKFLOW block (BEFORE: get_western_natal; AFTER: None) and a DO NOT CONFUSE WITH section naming the two nearest alternatives and why they differ (Moon return ~monthly; Vedic Tajika system). This is exactly the when-to-use/when-not guidance the dimension rewards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_synastryWestern SynastryARead-onlyIdempotentInspect
Aspect grid between two natal charts using the tropical zodiac. Returns all inter-chart aspects using standard inter-chart orbs. Useful for relationship compatibility analysis.
WORKFLOW: BEFORE: asterwise_get_western_natal per person — understand charts individually first. AFTER: asterwise_get_western_composite — midpoint chart for the relationship itself.
INPUT CONTRACT: person1, person2 — each WesternBirthData (date, time, lat, lon, timezone). house_system ignored for synastry payload.
DO NOT CONFUSE WITH: asterwise_get_western_composite — one merged midpoint chart vs synastry (two charts overlaid). asterwise_get_western_compatibility — numeric 0–100 score vs raw aspects.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-synastry/
| Name | Required | Description | Default |
|---|---|---|---|
| person1 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| person2 | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations cover read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral details beyond annotations, including that standard inter-chart orbs are used, house_system is ignored for synastry, and response_format controls output. It does not mention rate limits or error cases, but those are not required given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using short labeled sections for workflow, input contract, and disambiguation. The DO NOT CONFUSE section is especially efficient at preventing misuse. The full output contract link is a reasonable addition rather than unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides sufficient context for agent selection and invocation, including output format, ignored parameters, and relationship to sibling tools. Since the context indicates an output schema exists and a full output/error contract link is provided, the description does not need to enumerate all return fields or error codes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for all parameters. The description adds important semantic details such as 'house_system ignored for synastry payload' and explains that person1 and person2 are WesternBirthData objects, which helps agents understand which nested fields are relevant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes an aspect grid between two natal charts using the tropical zodiac and returns inter-chart aspects. The 'DO NOT CONFUSE WITH' section explicitly distinguishes it from composite charts and numeric compatibility scores, so an agent can select the correct tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context for when to use the tool, such as 'Useful for relationship compatibility analysis', and provides a WORKFLOW section telling agents to fetch individual natal charts first and use composite charts afterward. It also clarifies that it returns raw aspects unlike the numeric compatibility tool, though it does not explicitly state 'use this instead of X when Y'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_transits_dailyWestern Daily TransitsARead-onlyIdempotentInspect
Current sky positions vs natal chart for a single day. Returns all 10 planets with tropical longitudes and active aspects to natal positions using transit orbs: major 3°, sextile 2°, minor 1°. Provide start_date for a specific day; defaults to today.
WORKFLOW: BEFORE: asterwise_get_western_natal — establish natal chart first. AFTER: asterwise_get_western_transits_weekly — for week view.
INPUT CONTRACT: birth — WesternBirthData (date, time, lat, lon, timezone, house_system). house_system picks the natal houses used for natal_house (default placidus). start_date (optional YYYY-MM-DD) — defaults to today. snapshot_time (optional HH:MM) and snapshot_timezone (IANA) read each day's sky at the user's own clock time instead of 12:00 UTC; data.snapshot_utc says which instant was used.
DO NOT CONFUSE WITH: asterwise_get_western_transits_weekly — 7 days vs 1 day. asterwise_get_western_transits_monthly — 30-day window vs single day.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-transits-daily/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| start_date | No | Day to compute transits for, YYYY-MM-DD. Defaults to today (UTC). | |
| snapshot_time | No | Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| snapshot_timezone | No | IANA timezone for snapshot_time. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real substance on top: the orb thresholds used (major 3°, sextile 2°, minor 1°), the default snapshot instant (12:00 UTC), and how snapshot_time/snapshot_timezone override it. It stops short of describing error or empty-result behavior, deferring that to the docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sectioned and front-loaded: the core sentence comes first, then workflow, then contract, then disambiguation. It runs somewhat long, with the DO NOT CONFUSE block partly repeating what the AFTER line already implies, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complex nested birth object, four optional parameters, and an output schema are all handled: parameters are covered, the output contract is delegated via URL, and the dependency on a prior natal chart is called out. An agent has everything needed to call it correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns more by explaining interaction effects the schema cannot, e.g. that house_system selects the natal houses used for natal_house and that snapshot_timezone defaults to the birth timezone. It also documents that start_date defaults to today.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (current sky positions vs natal chart for a single day) and immediately scopes it to 10 planets with tropical longitudes and transit orbs. The explicit contrast with the weekly and monthly siblings makes it unambiguous which tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit BEFORE/AFTER workflow (natal chart first, weekly view next) and a DO NOT CONFUSE section naming both alternatives with the discriminating dimension (1 day vs 7 days vs 30 days). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_transits_monthlyWestern Monthly TransitsARead-onlyIdempotentInspect
30-day transit window vs natal chart. Returns day-by-day transit snapshots plus peak aspects (active 10+ days in the window). Use start_date to set the month start; defaults to today.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: None.
INPUT CONTRACT: birth — WesternBirthData. house_system picks the natal houses used for natal_house on each transiting planet (default placidus). start_date (optional YYYY-MM-DD) — month start; defaults to today. snapshot_time (optional HH:MM) and snapshot_timezone (IANA) read each day's sky at that local clock time instead of 12:00 UTC.
DO NOT CONFUSE WITH: asterwise_get_western_transits_daily — 1 day. asterwise_get_western_transits_weekly — 7 days.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-transits-monthly/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| start_date | No | First day of the 30-day window, YYYY-MM-DD. Defaults to today (UTC). | |
| snapshot_time | No | Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| snapshot_timezone | No | IANA timezone for snapshot_time. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real substance on top: what the output contains (per-day snapshots plus aspects active 10+ days), how each day's sky is sampled (snapshot_time in snapshot_timezone instead of 12:00 UTC), and that house_system propagates into natal_house on transiting planets. No permissions or rate-limit notes, but for a read-only computation tool that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE) make it scannable and the scope statement is front-loaded. Minor redundancy: the start_date default-to-today rule is stated in both the opening paragraph and the input contract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the prerequisite tool, sibling disambiguation, defaults for every optional parameter with a tool-specific semantic gloss, and points to the full output/error contract, with a structured output schema already present. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns an increment by explaining a downstream effect the schema does not — house_system determines which natal house each transiting planet is placed in, and snapshot_timezone falls back to the birth timezone. start_date/snapshot_time semantics largely restate the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific scope statement: '30-day transit window vs natal chart', and names the return contents ('day-by-day transit snapshots plus peak aspects'). The DO NOT CONFUSE section explicitly contrasts it with the daily (1 day) and weekly (7 days) siblings, so an agent can select it without opening another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit prerequisite ('BEFORE: asterwise_get_western_natal') and explicit exclusions with the exact conditions that select the alternatives (daily = 1 day, weekly = 7 days). When-to-use and when-not-to-use are both stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_transits_weeklyWestern Weekly TransitsARead-onlyIdempotentInspect
7-day transit window vs natal chart. Returns day-by-day transit snapshots plus peak aspects (active 4+ days in the window). Use start_date to set the week start; defaults to today.
WORKFLOW: BEFORE: asterwise_get_western_natal. AFTER: asterwise_get_western_transits_monthly — for full month.
INPUT CONTRACT: birth — WesternBirthData. house_system picks the natal houses used for natal_house on each transiting planet (default placidus). start_date (optional YYYY-MM-DD) — week start; defaults to today. snapshot_time (optional HH:MM) and snapshot_timezone (IANA) read each day's sky at that local clock time instead of 12:00 UTC.
DO NOT CONFUSE WITH: asterwise_get_western_transits_daily — single day. asterwise_get_western_transits_monthly — 30 days vs 7.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-transits-weekly/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for Western astrology tools (tropical zodiac). | |
| start_date | No | First day of the 7-day window, YYYY-MM-DD. Defaults to today (UTC). | |
| snapshot_time | No | Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
| snapshot_timezone | No | IANA timezone for snapshot_time. Defaults to the birth timezone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the definition of 'peak aspects' (active 4+ days), the default week start of today, and how snapshot_time/snapshot_timezone resolve the daily sky-reading clock. It defers error behavior to a docs link, which is acceptable but a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence summary followed by clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE sections — easy to scan. A few schema details (YYYY-MM-DD, defaults) are restated, so it is slightly redundant rather than maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation. The description supplies everything else an agent needs: workflow prerequisites, alternative disambiguation, the input contract including house-system and snapshot-time interactions, and a link to the full output/error contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still adds meaning beyond the schema: that house_system controls the natal houses used for natal_house on each transiting planet, and that snapshot_time/snapshot_timezone re-read each day's sky at a chosen local clock time rather than the default 12:00 UTC. It does not cover response_format or person_name, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (7-day transit window vs natal chart) plus the exact payload shape: day-by-day snapshots plus peak aspects defined as active 4+ days. This cleanly distinguishes it from the daily and monthly siblings without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow ordering (BEFORE natal, AFTER monthly) and an explicit 'DO NOT CONFUSE WITH' block naming both alternatives with their differing windows (single day vs 7 vs 30 days). No inference required to pick the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_void_of_course_moonVoid-of-Course MoonARead-onlyIdempotentInspect
Lists void-of-course Moon periods in a date range (UTC), each with start, end, duration, the Moon's sign, the next sign and the last exact aspect. Rule: traditional — the Moon is void from its last exact Ptolemaic aspect (conjunction, sextile, square, trine, opposition) to the Sun, Mercury, Venus, Mars, Jupiter or Saturn until it enters the next sign (Lilly, Christian Astrology 1647, p. 112). Outer planets are not counted.
WORKFLOW: BEFORE: None — standalone. AFTER: asterwise_get_western_planetary_hours — pick an hour inside a non-void window.
INPUT CONTRACT: from_date (string YYYY-MM-DD, UTC) — first day of the range. to_date (string YYYY-MM-DD, UTC, inclusive) — last day; at most 92 days after from_date.
DO NOT CONFUSE WITH: asterwise_get_western_moon_phase — phase (new/full), not void periods. asterwise_get_transits — sign ingresses for all planets, no aspects.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-void-of-course-moon/
| Name | Required | Description | Default |
|---|---|---|---|
| to_date | Yes | End of the date range, YYYY-MM-DD (inclusive). | |
| from_date | Yes | Start of the date range, YYYY-MM-DD (inclusive). | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive profile, so the safety burden is lifted. The description adds real behavioral context beyond that: the 92-day maximum range, UTC interpretation, and the exact astrological rule governing inclusions. It does not describe output shape, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then cleanly sectioned into workflow, input contract, and disambiguation. Every block earns its place, though the trailing external docs link is a mild dependency and the Lilly citation is slightly ornamental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations covering safety, a full output schema, and a 100%-covered input schema, the description supplies everything else an agent needs: what the tool computes, the rule behind it, range limits, and sibling disambiguation. Nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by disclosing the 92-day upper bound on to_date and its inclusive semantics, constraints the schema does not state. It does not explain response_format, but that parameter is self-describing with an enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists void-of-course Moon periods in a date range') and immediately defines the term with the precise traditional rule, so an agent knows exactly what constitutes a void period. It also names the sibling tools it is not (moon phase, transits), removing ambiguity in a crowded namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit WORKFLOW block (standalone BEFORE; chain into get_western_planetary_hours to pick an hour inside a non-void window) and a DO NOT CONFUSE WITH section naming two siblings and why each differs. This is exactly the routing information an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_western_zodiac_compatibilityWestern Zodiac CompatibilityARead-onlyIdempotentInspect
Sign-to-sign compatibility without birth data. Based on element and modality affinity. Fast — no ephemeris calculation required.
WORKFLOW: BEFORE: None — no birth data needed. AFTER: asterwise_get_western_compatibility — when full charts are available.
INPUT CONTRACT: sign1, sign2 — English zodiac names (Aries … Pisces).
DO NOT CONFUSE WITH: asterwise_get_western_compatibility — requires full birth data, more accurate. asterwise_get_western_synastry — aspect geometry between two full charts.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-western-zodiac-compatibility/
| Name | Required | Description | Default |
|---|---|---|---|
| sign1 | Yes | First zodiac sign, e.g. 'Aries'. | |
| sign2 | Yes | Second zodiac sign, e.g. 'Libra'. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful context beyond that: no ephemeris calculation, fast execution, basis in element/modality affinity, and a link to the full output/error contract. It would only reach 5 by describing error cases inline rather than referencing a docs URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and uses clear labeled sections (WORKFLOW, INPUT CONTRACT, DO NOT CONFUSE WITH) that make scanning easy. Every section earns its place; no filler or tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety/idempotency, the description supplies the missing behavioral and routing context: prerequisites, alternatives, underlying logic, and a pointer to the full contract. Nothing an agent needs to select and call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the schema already documents sign1, sign2, and response_format with examples and defaults. The description's INPUT CONTRACT mostly restates parameter names without adding semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource ('sign-to-sign compatibility') and methodology ('element and modality affinity'), and immediately distinguishes it from similar-sounding siblings. It names exactly what this tool is not: asterwise_get_western_compatibility and asterwise_get_western_synastry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WORKFLOW and DO NOT CONFUSE sections tell the agent when to use this tool vs alternatives: no birth data needed, use asterwise_get_western_compatibility when full charts are available, and use synastry for aspect geometry. This is textbook-level routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_yogasYogasARead-onlyIdempotentInspect
Evaluates the natal chart for named classical yogas. Each hit returns its category, formation text, the classical texts it is drawn from (classical_sources), a modern summary, and keywords.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — same birth tuple should be understood before interpreting yoga names. AFTER: asterwise_get_doshas — complementary affliction scan on the same chart.
INPUT CONTRACT: BirthData follows the global contract. Unknown birth time: omit time (a sunrise chart is cast and birth_time_provided=false); never pass time='00:00' for unknown, which is read as midnight. House-based yogas are then approximate.
DO NOT CONFUSE WITH: asterwise_get_natal_chart — supplies graha_drishti and base chart rows, not the yoga catalogue. asterwise_get_panchanga — Panchanga yoga (Sun+Moon sum) is unrelated to these natal yogas.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-yogas/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds value by disclosing that unknown birth time triggers a sunrise chart with birth_time_provided=false and makes house-based yogas approximate — a real behavioral caveat. No return shape or error details, but those are covered by the output schema and the linked contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labeled WORKFLOW, INPUT CONTRACT, and DO NOT CONFUSE blocks — easy to scan. Slightly verbose with a docs URL at the end, but every section carries actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (so return values need not be explained) and annotations cover safety, the description still covers purpose, ordering relative to siblings, the unknown-time caveat, and disambiguation — nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are fully documented in the schema. The INPUT CONTRACT paragraph adds a non-obvious usage rule (never pass 00:00 for unknown time) that goes beyond the schema's own field description, giving this a bump above the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Evaluates') plus resource ('natal chart for named classical yogas') and even describes the return payload per hit. It explicitly distinguishes itself from asterwise_get_natal_chart and asterwise_get_panchanga in a dedicated DO NOT CONFUSE section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow: BEFORE asterwise_get_natal_chart, AFTER asterwise_get_doshas, plus named alternatives with the reason each is different. This is as close to when/when-not guidance as it gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
asterwise_get_yogini_dashaYogini DashaARead-onlyIdempotentInspect
Computes the eight-Yogini, 36-year Yogini Dasha cycle with two-level period trees and DD/MM/YYYY boundaries from birth data.
WORKFLOW: BEFORE: RECOMMENDED — asterwise_get_natal_chart — establishes birth context for interpreting Yogini lords. AFTER: asterwise_get_dasha — optional Vimshottari comparison for the same native.
INPUT CONTRACT: Tree lives at data.periods.root[] — agents must not expect a top-level data.periods array. Calendar strings in periods use DD/MM/YYYY. BirthData follows the global contract.
DO NOT CONFUSE WITH: asterwise_get_dasha — Vimshottari planet periods with data.periods[] and optional levels 1–5, not Yogini names. asterwise_get_ashtottari_dasha — 108-year system with data.periods.root[] but planet-based rows, not Yoginis.
Full output and error contract: https://docs.asterwise.com/mcp/tools/get-yogini-dasha/
| Name | Required | Description | Default |
|---|---|---|---|
| birth | Yes | Birth data for a single person. | |
| response_format | No | Output format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload. | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the call read-only, idempotent, and non-destructive, so the description only needs to clarify what the computation returns. It does so by noting the period-tree location (data.periods.root[]), output date format, and a link to the full output/error contract, with no contradicting side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into focused sections (main computation, workflow, input contract, and do-not-confuse) and all sentences carry useful information. It is slightly longer than necessary but remains scannable and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the key output shape (two-level tree, data.periods.root[], DD/MM/YYYY strings) and provides a link to the full contract, which is sufficient when combined with the detailed input schema and presence of an output schema. It does not need to enumerate every return field because the full contract is referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides complete descriptions for the birth object, coordinates, date/time, ayanamsa, timezone, and response_format, so the description adds little parameter-level guidance. The 'BirthData follows the global contract' note is generic but not misleading; output-related notes do not improve parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states that this tool computes the eight-Yogini, 36-year Yogini Dasha cycle and describes the two-level period-tree output and DD/MM/YYYY boundary format. It also explicitly distinguishes itself from the Vimshottari and Ashtottari dasha siblings, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete workflow guidance ('BEFORE: recommended asterwise_get_natal_chart', 'AFTER: optional asterwise_get_dasha') and explicitly warns against confusing this tool with asterwise_get_dasha (Vimshottari) and asterwise_get_ashtottari_dasha (108-year system). This tells an agent when to use this tool and which sibling to choose otherwise.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
asterwise_get_dasha2 fields changed- added
Input schema / properties / from_dateAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "YYYY-MM-DD (UTC). Only periods still running on or after this day." +} - added
Input schema / properties / to_dateAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "YYYY-MM-DD (UTC, inclusive). Only periods that have started by the end of this day." +}
2 tool updates
- Changed
asterwise_get_vedic_daily_factors2 fields changed- changed
Input schema / properties / target_time / anyOfPrevious value: -[ - { - "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / target_time / descriptionPrevious value: -"Local time HH:MM (24-hour) on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it."New value: +"Local time HH:MM (24-hour) in target_timezone on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it."
- Changed
asterwise_get_western_daily_factors2 fields changed- changed
Input schema / properties / target_time / anyOfPrevious value: -[ - { - "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$", + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / target_time / descriptionPrevious value: -"Local time HH:MM (24-hour) on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it."New value: +"Local time HH:MM (24-hour) in target_timezone on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it."
2 tool updates
- Changed
asterwise_get_vedic_daily_factors1 field changed- added
Input schema / properties / target_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local time HH:MM (24-hour) on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it." +}
- Changed
asterwise_get_western_daily_factors1 field changed- added
Input schema / properties / target_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local time HH:MM (24-hour) on the day at which the sky is read. Defaults to 12:00. Pass the user's own time so the Moon is where the user sees it." +}
4 tool updates
- Changed
asterwise_get_transits9 fields changed- added
Input schema / properties / ayanamsaAdded value: +{ + "anyOf": [ + { + "enum": [ + "lahiri", + "raman", + "kp", + "tropical" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Zodiac: lahiri (default), raman or kp sidereal; tropical for Western sign changes." +} - removed
Input schema / properties / birth / additionalPropertiesRemoved value: -false - added
Input schema / properties / birth / anyOfAdded value: +[ + { + "additionalProperties": false, + "description": "Birth data for a single person.", + "properties": { + "ayanamsa": { + "default": "lahiri", + "description": "Ayanamsa system for sidereal calculations. 'lahiri' (default, recommended for Vedic), 'kp' (Krishnamurti Paddhati), 'raman', 'tropical' (Western)", + "enum": [ + "lahiri", + "kp", + "raman", + "tropical" + ], + "type": "string" + }, + "date": { + "description": "Birth date YYYY-MM-DD.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "lat": { + "description": "Latitude in decimal degrees, north positive (Mumbai 19.076).", + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "lon": { + "description": "Longitude in decimal degrees, east positive (Mumbai 72.8777).", + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "person_name": { + "default": "Chart", + "description": "Person's name, used in labels only.", + "type": "string" + }, + "time": { + "anyOf": [ + { + "pattern": "^\\d{2}:\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Birth time HH:MM (24h), e.g. '06:45'. Omit if unknown (a sunrise chart is used and birth_time_provided=false); never pass '00:00' for unknown." + }, + "timezone": { + "default": "Asia/Kolkata", + "description": "IANA timezone of the birth place, e.g. 'Asia/Kolkata', 'America/New_York', 'Europe/London'. Default: Asia/Kolkata", + "type": "string" + } + }, + "required": [ + "date", + "lat", + "lon" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / birth / defaultAdded value: +null - changed
Input schema / properties / birth / descriptionPrevious value: -"Birth data for a single person."New value: +"Not needed. Accepted so older clients keep working; only its ayanamsa is read, when ayanamsa is not given." - removed
Input schema / properties / birth / propertiesRemoved value: -{ - "ayanamsa": { - "default": "lahiri", - "description": "Ayanamsa system for sidereal calculations. 'lahiri' (default, recommended for Vedic), 'kp' (Krishnamurti Paddhati), 'raman', 'tropical' (Western)", - "enum": [ - "lahiri", - "kp", - "raman", - "tropical" - ], - "type": "string" - }, - "date": { - "description": "Birth date YYYY-MM-DD.", - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "lat": { - "description": "Latitude in decimal degrees, north positive (Mumbai 19.076).", - "maximum": 90, - "minimum": -90, - "type": "number" - }, - "lon": { - "description": "Longitude in decimal degrees, east positive (Mumbai 72.8777).", - "maximum": 180, - "minimum": -180, - "type": "number" - }, - "person_name": { - "default": "Chart", - "description": "Person's name, used in labels only.", - "type": "string" - }, - "time": { - "anyOf": [ - { - "pattern": "^\\d{2}:\\d{2}$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Birth time HH:MM (24h), e.g. '06:45'. Omit if unknown (a sunrise chart is used and birth_time_provided=false); never pass '00:00' for unknown." - }, - "timezone": { - "default": "Asia/Kolkata", - "description": "IANA timezone of the birth place, e.g. 'Asia/Kolkata', 'America/New_York', 'Europe/London'. Default: Asia/Kolkata", - "type": "string" - } -} - removed
Input schema / properties / birth / requiredRemoved value: -[ - "date", - "lat", - "lon" -] - removed
Input schema / properties / birth / typeRemoved value: -"object" - changed
Input schema / requiredPrevious value: -[ - "birth", - "from_date", - "to_date" -]New value: +[ + "from_date", + "to_date" +]
- Changed
asterwise_get_western_transits_daily2 fields changed- added
Input schema / properties / snapshot_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{2}:\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC." +} - added
Input schema / properties / snapshot_timezoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "IANA timezone for snapshot_time. Defaults to the birth timezone." +}
- Changed
asterwise_get_western_transits_monthly2 fields changed- added
Input schema / properties / snapshot_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{2}:\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC." +} - added
Input schema / properties / snapshot_timezoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "IANA timezone for snapshot_time. Defaults to the birth timezone." +}
- Changed
asterwise_get_western_transits_weekly2 fields changed- added
Input schema / properties / snapshot_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{2}:\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Local clock time HH:MM at which each day's sky is read. Default 12:00 UTC." +} - added
Input schema / properties / snapshot_timezoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "IANA timezone for snapshot_time. Defaults to the birth timezone." +}
6 tool updates
- Changed
asterwise_get_balance_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
- Changed
asterwise_get_expression_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
- Changed
asterwise_get_karmic_lessons1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
- Changed
asterwise_get_maturity_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
- Changed
asterwise_get_personality_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
- Changed
asterwise_get_soul_urge_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; its letters are converted to numerology values."New value: +"Full legal name as used at birth, all parts; its letters are converted to numerology values."
10 tool updates
- Added
asterwise_get_reference_charts - Added
asterwise_get_tarabala - Added
asterwise_get_vedic_daily_factors - Added
asterwise_get_vedic_events - Added
asterwise_get_vedic_significations - Added
asterwise_get_western_daily_factors - Added
asterwise_get_western_day - Added
asterwise_get_western_events - Added
asterwise_get_western_horary - Added
asterwise_get_western_significations
4 tool updates
- Added
asterwise_get_western_eclipses - Added
asterwise_get_western_planetary_hours - Added
asterwise_get_western_profections - Added
asterwise_get_western_void_of_course_moon
1 tool update
- Changed
asterwise_get_dasha_transits3 fields changed- added
Input schema / properties / target_dateAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Date in YYYY-MM-DD format." +} - added
Input schema / properties / target_timeAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{2}:\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "HH:MM on target_date. Defaults to 12:00." +} - added
Input schema / properties / target_timezoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "IANA zone for target_date and target_time. Defaults to Asia/Kolkata." +}
22 tool updates
- Changed
asterwise_get_balance_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_chaldean_numerology1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_expression_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_gochar1 field changed- changed
Input schema / properties / target_date / descriptionPrevious value: -"Date in YYYY-MM-DD format. Defaults to today when omitted."New value: +"Date to compute transits for, YYYY-MM-DD (at 12:00 India time). Defaults to today in India (Asia/Kolkata)."
- Changed
asterwise_get_karmic_lessons1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_lucky_numbers1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_maturity_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_nakshatra_prediction1 field changed- changed
Input schema / properties / target_date / descriptionPrevious value: -"Date in YYYY-MM-DD format. Defaults to today when omitted."New value: +"Date of the prediction, YYYY-MM-DD. Defaults to today in the birth time zone."
- Changed
asterwise_get_name_correction1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_numerology_compatibility2 fields changed- changed
Input schema / properties / person1_name / descriptionPrevious value: -"First person's full name."New value: +"First person's full name. The API requires it, but it does not change the score: compatibility compares the two Life Path numbers from the birth dates." - changed
Input schema / properties / person2_name / descriptionPrevious value: -"Second person's full name."New value: +"Second person's full name. The API requires it, but it does not change the score: compatibility compares the two Life Path numbers from the birth dates."
- Changed
asterwise_get_numerology_profile1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_personal_cycles3 fields changed- changed
Input schema / properties / day / descriptionPrevious value: -"Day of the month 1-31. Defaults to today when omitted."New value: +"Target day of the month 1-31. Personal Day is returned only when day is given; omit it to get Personal Year and Personal Month only." - changed
Input schema / properties / month / descriptionPrevious value: -"Month number 1-12. Defaults to the current month when omitted."New value: +"Target month 1-12. Defaults to the current month (UTC)." - changed
Input schema / properties / year / descriptionPrevious value: -"Four-digit calendar year, e.g. 2026. Defaults to the current year when omitted."New value: +"Four-digit target year, e.g. 2026. Defaults to the current year (UTC)."
- Changed
asterwise_get_personal_year1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Not used: the personal year depends only on the birth date. Omit it; it is accepted only so older calls keep working."
- Changed
asterwise_get_personality_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_soul_urge_number1 field changed- changed
Input schema / properties / name / descriptionPrevious value: -"Person's full name as commonly written; letters are converted to numerology values."New value: +"Person's full name as commonly written; its letters are converted to numerology values."
- Changed
asterwise_get_western_lunar_return1 field changed- changed
Input schema / properties / after_date / descriptionPrevious value: -"Find the first occurrence after this date, YYYY-MM-DD. Defaults to today when omitted."New value: +"Find the first lunar return after this date, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_planetary_return1 field changed- changed
Input schema / properties / after_date / descriptionPrevious value: -"Find the first occurrence after this date, YYYY-MM-DD. Defaults to today when omitted."New value: +"Find the first return after this date, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_secondary_progressions1 field changed- changed
Input schema / properties / target_date / descriptionPrevious value: -"Date in YYYY-MM-DD format. Defaults to today when omitted."New value: +"Date to progress the chart to, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_solar_arc1 field changed- changed
Input schema / properties / target_date / descriptionPrevious value: -"Date in YYYY-MM-DD format. Defaults to today when omitted."New value: +"Date to direct the chart to, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_transits_daily1 field changed- changed
Input schema / properties / start_date / descriptionPrevious value: -"Start of the window, YYYY-MM-DD. Defaults to today when omitted."New value: +"Day to compute transits for, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_transits_monthly1 field changed- changed
Input schema / properties / start_date / descriptionPrevious value: -"Start of the window, YYYY-MM-DD. Defaults to today when omitted."New value: +"First day of the 30-day window, YYYY-MM-DD. Defaults to today (UTC)."
- Changed
asterwise_get_western_transits_weekly1 field changed- changed
Input schema / properties / start_date / descriptionPrevious value: -"Start of the window, YYYY-MM-DD. Defaults to today when omitted."New value: +"First day of the 7-day window, YYYY-MM-DD. Defaults to today (UTC)."
1 tool update
- Changed
asterwise_get_dream_symbols2 fields changed- changed
Input schema / properties / category / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "animals", + "nature", + "people", + "places", + "objects", + "actions", + "body", + "abstract" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / category / descriptionPrevious value: -"Symbol category to filter by, e.g. 'animals' or 'water'. Omit for all."New value: +"One of the 8 categories; omit for all 500 symbols."
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityCmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.