AstroWay Vedic astrology
Server Details
Vargas, dashas, panchang, shadbala, yogas, doshas, jaimini and the rest of the Jyotish suite.
- Status
- Healthy
- Uptime
- 97.7% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 193 tools
Many tools overlap: multiple Manglik/dosha detectors across KP/Parashara/Lal Kitab and compatibility, composite 'full' endpoints duplicate individual routes, and dasha tools differ only by level/system; aliases (vd_*, vyp_*) further blur selection. An agent can distinguish some by system prefix but boundaries are frequently unclear.
Names are overwhelmingly snake_case with astroway_ prefix and predictable group_action patterns; deviations like astroway_vd_*, astroway_vyp_*, astroway_mcp_* are minor but show inconsistent shortening. Overall readable and consistent enough for a large set.
193 tools far exceeds any reasonable agent tool surface; while the astrology domain is broad, the number is extreme and will overwhelm model context and tool selection. Needs grouping/composite reduction.
Broad coverage of Vedic astrology (vargas, dashas, yogas, doshas, panchang, muhurat, KP/Jaimini/Lal Kitab, shadbala, compatibility) but several endpoints are partial (Lal Kitab planet-house-effect placeholders, deferred Jaimini yogas, unimplemented Shadbala methods), so not fully complete.
Available Tools
193 toolsastroway_account_statusAccount StatusARead-onlyIdempotentInspect
Check current API key status: tier, credit balance, rate limits, monthly cycle reset. Run this BEFORE invoking expensive endpoints (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm the user has budget. Returns plain-text human-readable summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds that it returns a 'plain-text human-readable summary' and clarifies the budget-checking purpose, providing useful context 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?
Three efficient sentences: purpose, usage guidance, and return format. Front-loaded with key information, no wasted words.
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?
Despite lacking an output schema, the description specifies the return format (plain-text human-readable summary). For a simple status check tool, this is complete and 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?
Tool has zero parameters, so schema coverage is 100%. Description does not need to explain parameters, and it adds value by hinting at the output format.
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 clearly states the verb 'Check' and the resource 'API key status' with specific attributes (tier, credit balance, rate limits, monthly cycle reset). It distinguishes itself from the many sibling astrology calculation 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?
Explicitly instructs to run this tool BEFORE invoking expensive endpoints, providing credit thresholds (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm budget.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_agent_toolsAgent tool definitionsARead-onlyIdempotentInspect
Tool definitions for an agent framework, generated from the live OpenAPI document, so the schema a model fills is the schema the endpoint validates. format=openai (default) returns { type, function } objects you can spread straight into a chat completion; format=anthropic returns { name, description, input_schema }. The objects carry nothing of ours: how to call each tool lives in a separate executors map keyed by tool name, because an unexpected key inside a vendor tool object is a 400 at their end.
[Group: Agent Platform] [Endpoint: GET /v1/agent/tools] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text filter applied within the selection, matched against path, summary, description and group. | |
| limit | No | How many tools to return. The ceiling is the OpenAI limit of 128 functions per request; models degrade well before it. Anything left out is counted in `totalMatched`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| format | No | Which vendor contract the tool objects follow. `openai` returns `{ type, function }`, `anthropic` returns `{ name, description, input_schema }`. | openai |
| select | No | What to hand over: `starter` (the curated set, the default), `all`, `group:<tag>` such as `group:Vedic`, or `paths:/chart,/synastry` for an explicit list. An unknown path is named in `notes` rather than dropped. | starter |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| notes | No | |
| tools | No | |
| format | No | |
| select | No | |
| executors | No | |
| truncated | No | |
| totalMatched | No | |
| totalAvailable | No |
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 adds genuine behavioral context beyond them: executors are kept out of the vendor objects because an unexpected key causes a 400 on the vendor side, and cost is flagged as not in the public credit manifest. That is real operational value.
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?
Roughly three sentences, front-loaded with the purpose before the format and executor caveats. It is dense but each sentence carries information, though the format explanation partially duplicates the schema's own enum description.
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 full annotation coverage, the description need not explain return values, and it appropriately focuses on the vendor-shape contract and the executors/400 gotcha. It is nearly complete, with the only gap being sibling disambiguation rather than missing operational detail.
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 in depth (limit ceiling rationale, select values, precision semantics). The description only restates format and its default, adding no parameter meaning the schema lacks. 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?
The description clearly states what the tool returns: tool definitions for an agent framework, generated from the live OpenAPI document. It is specific about the resource and the vendor-shape variants (openai vs anthropic objects). However, it never distinguishes this from the near-identical sibling astroway_mcp_tools_list, which an agent would plausibly confuse it with.
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?
There is no explicit when-to-use, when-not-to-use, or alternative-naming guidance. The mention that openai objects 'spread straight into a chat completion' implies a use case, but the agent is left to infer when this endpoint is preferable to astroway_mcp_tools_list or the MCP tool-call streaming siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cost_estimateCost EstimateARead-onlyIdempotentInspect
Estimate the credit cost of one or more endpoints WITHOUT invoking them. Returns total + per-endpoint breakdown with tier annotations. Useful when planning multi-step workflows: estimate first, ask user confirmation, then invoke. Cache TTL 5 min.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoints | Yes | Endpoint paths to estimate, e.g. ["/chart", "/synastry", "/reports/natal"]. Leading slash optional. |
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 bar is low; the description still adds real value by clarifying that endpoints are NOT invoked and that results are cached with a 5-minute TTL. It also discloses the return shape (total + per-endpoint breakdown with tier annotations), which is meaningful since no 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?
Three tight sentences, front-loaded with the core capability and the non-invocation guarantee, followed by workflow guidance and the cache note. 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?
Despite having no output schema, the description explains the return value, and the invocation-free and cache behaviors are covered. For a one-parameter, read-only estimator this is fully 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 description coverage is 100% and the single 'endpoints' parameter is fully documented with examples and the leading-slash rule in the schema. The description only restates 'one or more endpoints' without adding format or constraint detail 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?
States a specific verb and resource ('Estimate the credit cost of one or more endpoints') and immediately pins the scope with 'WITHOUT invoking them', which no sibling tool does. An agent can distinguish this from the many invocation/report siblings at a glance.
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 guidance: 'estimate first, ask user confirmation, then invoke' for multi-step planning. This is clear when-to-use context, though it names no alternative tool or when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_agent_debateMCP Agent DebateCRead-onlyIdempotentInspect
2 personas debate a topic, multi-round transcript.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/agent-debate] [Required: topic, agentA, agentB] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| topic | Yes | ||
| agentA | Yes | ||
| agentB | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| rounds | No | ||
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transcript | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely useful operational context — cost (100 credits, Tier 4), the required-parameter set, and the endpoint. It stays silent on runtime behavior an agent might care about, such as whether the multi-round debate is long-running, streamed, or bounded in output size. The POST endpoint is not a contradiction of readOnlyHint, but it is worth noting.
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?
Tight and well front-loaded: the core operation comes first, then compact bracketed metadata. Every line carries information (endpoint, required fields, cost) rather than filler. Its brevity is a virtue, though it edges into under-specification.
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. But for an 8-parameter tool with a nested chart object, aless-than-40% coverage, and a cost of 100 credits, the description leaves critical gaps — most importantly the semantics of agentA/agentB and the effect of rounds/language.
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 only 38%, so the description carries a heavier burden, and it does not meet it. It restates the three required parameters that the schema already marks as required, but never explains what agentA/agentB actually are (persona strings? model IDs?) or what topic expects. Optional params like rounds, language, and fields get no mention.
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?
Uses a specific verb-and-resource phrasing: '2 personas debate a topic, multi-round transcript.' An agent can grasp the operation immediately. However it does not differentiate itself from close siblings such as astroway_mcp_multi_agent_coordinate, astroway_mcp_ai_chat, or astroway_mcp_ai_comparison_coach, which plausibly overlap.
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?
There is no when-to-use guidance and no named alternative. The bracketed metadata lists required fields and cost but never says when this debate tool is preferable to multi-agent coordination or AI chat. The [Group: MCP Advanced] tag is organizational, not decision-supporting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_agent_pool_statusMCP Agent Pool StatusCRead-onlyIdempotentInspect
8 personas with specialties.
[Group: MCP Advanced] [Endpoint: GET /v1/mcp/agent-pool-status] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| count | No | |
| personas | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint false. The description adds useful behavioral context in the form of the cost (10 credits, Tier 1) and HTTP method (GET), but does not describe what the status output contains or any auth/rate-limit 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 text is short but poorly structured: a vague fragment followed by bracketed metadata lines. It is under-specified rather than concise, and the opening line does not front-load 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?
Although an output schema exists and annotations cover the safety profile, the description still leaves the agent without a clear statement of what the tool does or when to call it. For a status endpoint in a large sibling set, this is a significant omission.
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 two optional parameters (fields, precision) are fully documented in the schema itself. The description adds no parameter meaning 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?
The description gives only a fragment, '8 personas with specialties,' which hints at pool composition but never states that this tool returns agent pool status or what that status contains. It lacks a clear verb and resource, and does not distinguish itself from siblings like astroway_mcp_multi_agent_coordinate or astroway_agent_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?
There is no guidance on when to use this tool, when not to use it, or which sibling tool is the alternative. The description contains only metadata tags, not usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_chatChart-grounded AI chatARead-onlyInspect
Chat answered from the positions we computed for this birth moment, not from the model's memory of a sun sign. Carries up to 10 turns of history, replies in 21 languages, and takes four voices through persona. Send your own provider key and the turn costs 5 credits instead of the endpoint price.
[Group: AI & MCP] [Endpoint: POST /v1/ai/chat] [Required: message] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| history | No | ||
| message | Yes | ||
| persona | No | astrologer | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| reply | No | |
| tokens | No | |
| persona | No | |
| language | No | |
| disclaimer | No | |
| duration_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, open-world behavior, so the bar is lower; the description still adds real behavioral facts beyond them — a 10-turn history ceiling, 21 output languages, four selectable voices via persona, and a concrete pricing rule (5 credits with your own provider key vs. the endpoint price). It stops short of stating auth requirements or what happens when the history limit is exceeded. 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?
Three tight sentences: the differentiator first, capabilities second, pricing last, followed by a compact metadata block (group, endpoint, required param, tier cost). Every clause carries new information and nothing is repeated from 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?
With an output schema present the description needn't explain return values, and annotations cover the safety profile, so what remains — what the tool is for, its capability envelope, and its cost model — is covered. The main gap is that nothing tells an agent when this endpoint should be picked over the other AI/agent 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?
Top-level schema description coverage is only 43% (chart, fields and precision documented; message, persona, language and history not), so the description must compensate and partially does — it explains persona (four voices), history (~10 turns) and language (21 options). It says nothing about chart, fields compact-mode paths, or precision, though the nested chart schema does carry unusually rich self-documentation for those.
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 — an AI chat answered from computed natal-chart positions rather than the model's prior knowledge of a sun sign — and quantifies scope (10 turns, 21 languages, 4 personas). It clearly implies a different product from sibling AI utilities such as astroway_mcp_ai_explain_aspect or astroway_mcp_ai_comparison_coach, but never names them, so the differentiation is by tone rather than explicit contrast.
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 context is implied rather than stated: the credit-price note ('send your own provider key and the turn costs 5 credits instead of the endpoint price') hints this is a paid, higher-tier call, and 'chart-grounded' hints the input needs birth data. There is no explicit when-to-use-it, when-not-to, or routing rule against the other chat/agent endpoints in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_comparison_coachComparison CoachBRead-onlyInspect
Coach two charts on relationship dynamics.
[Group: AI & MCP] [Endpoint: POST /v1/ai/comparison-coach] [Required: chart1, chart2, question] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coaching | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful operational context (the 100-credit Tier 4 cost and the POST endpoint), but says nothing about the fact that an LLM-backed coach may return non-deterministic prose, what latency to expect, or what deprecates the idempotentHint=false signal.
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 four lines are tight and the purpose sentence is front-loaded ahead of the bracketed metadata block. Nothing is padded, though the metadata lines are boilerplate rather than definitional 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?
An output schema exists, so return values need not be explained, and the cost/endpoint block is present. But for a six-parameter AI tool embedded among dozens of similar compatibility siblings, the description lacks any hint of what the coaching output contains or what makes a good 'question', leaving the agent to guess at scope.
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 67% and the nested chart objects carry extensive inline documentation (formats, rejected short names, timezone semantics, houseSystem letters), so the schema does the heavy lifting. The description only restates the required parameters (chart1, chart2, question), adding no meaning for question, language, fields or precision. 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?
The description names a specific verb (coach), the resources (two charts) and the domain (relationship dynamics), so the agent knows this produces interpretive guidance rather than raw chart data. It does not, however, distinguish itself from the many sibling compatibility tools (ashtakoot, dashakoota, compatibility_full) or from astroway_mcp_ai_chat, so sibling differentiation is left to inference.
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?
There is no when-to-use or when-not-to-use guidance, and no alternative is named. A reader cannot tell whether to reach for this AI coach versus the deterministic Vedic compatibility endpoints or multi_chart_context. The only constraints given are required parameters and cost, which are not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_explain_aspectExplain AspectBRead-onlyInspect
Detailed explanation of an aspect between two planets.
[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-aspect] [Required: planet1, planet2, aspectType] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| planet1 | Yes | ||
| planet2 | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered without the description. The description does add genuinely useful operational context not present in the annotations: the credit cost (100 credits, Tier 4) and the endpoint. However it never explains why a read-only operation is flagged non-idempotent (repeated calls likely yield differently worded narrative), which is the one behavioral trait an agent would most want here.
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 purpose sentence is front-loaded and the payload is small. The '[Required: planet1, planet2, aspectType]' line duplicates the schema's required array, but the cost and endpoint lines justify their space.
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. But for a 7-parameter tool with a nested chart object and LLM-backed generation, the description omits the valid domain for planet1/planet2, any usage guidance versus explain_transit, and any hint about generation latency or variable 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?
The description lists the three required parameters, but schema coverage is only 43% and planet1/planet2 carry no description, no enum and no example anywhere in the schema, so the agent must guess the accepted form (planet names such as 'Mars'?). The description does not compensate for that gap, which is the weakest part of the definition.
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 specific verb and resource: 'explanation of an aspect between two planets.' An agent can tell it apart from the sibling astroway_mcp_ai_explain_transit by the resource alone, but the description never makes that contrast explicit nor states what kind of explanation is produced.
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?
There is no when-to-use guidance, no prerequisites, and no mention of the sibling explain_transit as an alternative. The only contextual cues are bracketed metadata (endpoint, required fields, credit cost), which tell the agent what it costs but not when it should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_explain_transitExplain TransitBRead-onlyInspect
Explain a current transit hitting your natal chart.
[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-transit] [Required: chart, transitDate, transitPlanet, natalPlanet, aspectType] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes | ||
| natalPlanet | Yes | ||
| transitDate | Yes | ||
| transitPlanet | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds the cost (100 credits, Tier 4) and the endpoint, which annotations do not provide. It does not explain why idempotentHint is false for a read-only call, nor what the AI explanation entails.
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 short and front-loads the purpose before the bracketed metadata. The bracketed group/endpoint/required/cost lines are slightly noisy but each carries compact information, so there is little waste.
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. But for a 5-required-parameter tool with a near-twin sibling, the description omits the disambiguation, parameter usage, and cost implications an agent needs before committing. It is minimally adequate rather than complete.
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 only 38%, so the description should compensate, but it merely restates the five required parameter names that the schema already marks required and says nothing about what transitPlanet, natalPlanet, aspectType accept or how the optional fields/precision/language parameters behave. It adds no meaning 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: 'Explain a current transit hitting your natal chart.' An agent can grasp the purpose immediately. However, it never distinguishes itself from the close sibling astroway_mcp_ai_explain_aspect, leaving the borderline case ambiguous.
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?
There is no when-to-use guidance, no exclusions, and no comparison to the near-identical sibling astroway_mcp_ai_explain_aspect. The '[Required: ...]' and '[Cost: ...]' lines are metadata, not routing guidance. The agent gets no help deciding between this and other AI tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_multi_agent_coordinateMCP Multi-Agent CoordinateCRead-onlyIdempotentInspect
Run N personas in parallel + LLM synthesis.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/multi-agent-coordinate] [Required: question, agents] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| agents | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| synthesis | No | |
| individual | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description usefully adds the cost (100 credits, Tier 4) and the endpoint/group, but says nothing about latency, response shape of the synthesis, or how many personas are permitted (schema caps at 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 operative sentence, followed by compact bracketed metadata; there is no filler prose. The brevity is close to under-specification rather than pure conciseness, keeping it out of the top band.
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 cost is disclosed. However, for a tool whose whole contract is choosing personas and a question, the description never explains what the agents array should contain, leaving the most decision-relevant input undocumented across both description and 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 only 50% and the description adds no meaning beyond listing the two required names. Critically, the 'agents' array is the defining parameter and neither the schema nor the description explains what identifiers it accepts, and 'question' semantics are equally unexplained.
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 (Run), resource (N personas) and mechanism (parallel + LLM synthesis), which is more informative than a tautology. It does not name or distinguish itself from the obvious sibling astroway_mcp_agent_debate, so the agent must infer the difference between coordinated parallel personas and a debate.
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?
No when-to-use guidance, no prerequisites, and no alternatives are named despite several closely related siblings (agent_debate, multi_chart_context, ai_chat). The '[Required: question, agents]' line just restates the schema's required array rather than telling the agent 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.
astroway_mcp_multi_chart_contextMCP Multi-Chart ContextCRead-onlyInspect
Compact context for MCP agents working across multiple charts.
[Group: AI & MCP] [Endpoint: POST /v1/mcp/multi-chart-context] [Required: charts] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| charts | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| intent | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| intent | No | |
| summaries | No | |
| chartCount | No | |
| contextHash | No | |
| summaryString | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful non-annotation behavior: a 10-credit (Tier 1) cost and the POST endpoint. It says nothing about what the operation returns or how it behaves across the 1-6 chart array, so it earns only partial credit.
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?
It is short and front-loads the one-sentence purpose, with well-organized bracketed metadata. But that metadata is machine-oriented boilerplate (group/endpoint/required) and the prose line is largely redundant with the title, so the brevity reflects under-specification as much as discipline.
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, but for a tool taking up to six nested chart objects with four intent modes and compact-mode fields/precision, the description is far too thin. It gives an agent no way to know what a "compatibility" vs "forecast" run produces or why to pick it over the many neighbouring multi-chart tools.
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 only parameter content is "[Required: charts]", which merely repeats the schema's required array, adding zero meaning. The description says nothing about `fields`, `precision`, or the four `intent` modes — the latter has no schema description at all despite being the main selector. At 50% schema coverage this is a real gap it fails to fill.
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?
"Compact context for MCP agents working across multiple charts" largely restates the name/title (multi-chart context) without naming an action or an output. The word "context" is undefined — it never says whether this computes cross-chart aspects, comparison summaries, or group forecasts. Only the bare notion "multiple charts" distinguishes it from the many single-chart 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?
There is no when-to-use guidance at all: no trigger conditions, no prerequisites, and no routing against the large sibling set (e.g. astroway_mcp_multi_agent_coordinate or astroway_mcp_ai_comparison_coach). The `intent` enum (compatibility/family/group/forecast) suggests several distinct use cases, but the description never explains when to choose which.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_rag_searchMCP RAG SearchCRead-onlyIdempotentInspect
Keyword-tag scoring over chart chunks.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/rag-search] [Required: query, chart] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | ||
| chart | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| query | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | |
| total | No | |
| tokens | No | |
| matches | No | |
| results | No |
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 genuinely useful context the annotations do not: the endpoint, the 10-credit Tier 1 cost, and the group. It does not disclose result ordering, chunk granularity, or hit limits, so it stops short of rich behavioral 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?
Four short, front-loaded lines with no prose padding; the core purpose statement leads. The "Required" line is redundant with the schema, which is the only real waste.
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 taking a deeply nested chart object plus three tuning parameters, the description is thin: no sense of ranking/scoring semantics, no indication of what the chunks are drawn from, and no guidance on choosing topK. An output schema exists so return format need not be explained, but the retrieval behavior itself is left entirely 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 description coverage is a middling 60%. The description adds no parameter meaning at all — it only echoes the two required names already enforced by the schema — and says nothing about topK's default/range, the fields compact projection, or precision, the parameter most likely to be misused.
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 the mechanism (keyword-tag scoring) and the corpus (chart chunks), which goes beyond simply restating the tool name. However, it never says what the tool returns or what a "chunk" is, so an agent cannot tell whether this is a document retriever over interpretive text or a query over computed chart data.
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 only usage-adjacent line is "[Required: query, chart]", which merely restates the schema's required list. There is no statement of when to reach for this tool rather than a direct retrieval sibling (e.g. astroway_mcp_multi_chart_context), and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_streamingMCP Streaming ChatBRead-onlyInspect
Server-Sent Events streaming chat completion with optional chart context.
[Group: AI & MCP] [Endpoint: POST /v1/mcp/streaming] [Required: message] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| message | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds genuinely non-derivable behavior: the response is delivered as an SSE stream rather than one payload, crediting at 100 credits (Tier 4), and the concrete endpoint. It omits auth requirements and why idempotentHint=false, which keeps it out of 5 territory.
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?
Short and front-loaded: the core capability leads, with bracketed metadata (group, endpoint, required param, cost) following compactly. Every line carries information, though the template-style [Group:]/[Endpoint:] format is more machine header than 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?
For a streaming tool with no output schema and a nested chart parameter, the definition covers the essential facts (SSE transport, required message, optional chart, cost). It does not describe what the stream emits or how chart context influences the completion, leaving gaps an agent would notice mid-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 60%, with the nested chart object heavily documented in the schema itself (timezone, houseSystem letters, lat/lon full names, ayanamsa). The description adds only 'optional chart context', which restates the schema's required list. Baseline 3 is appropriate when the schema does most of the work.
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+mechanism: 'Server-Sent Events streaming chat completion with optional chart context.' An agent can tell this is a streaming chat tool rather than a static computation. It does not explicitly name or contrast with the closest sibling astroway_mcp_ai_chat, so it stops short of a 5.
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?
No when-to-use or when-not-to-use guidance. Nothing tells the agent to prefer this over astroway_mcp_ai_chat (non-streaming chat) or astroway_mcp_tool_call_stream; the streaming qualifier implies a context but the choice is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_tool_call_streamMCP Tool-Call StreamCRead-onlyIdempotentInspect
SSE-stream of a tool call envelope.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/tool-call-stream] [Required: tool] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| tool | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
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 two genuinely useful behavioral facts annotations cannot express: delivery is server-sent events rather than a single response, and the call costs 10 credits (Tier 1). It still omits stream termination, error-over-stream behavior, and whether partial results can be replayed.
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?
Very short and front-loaded: one sentence of purpose followed by structured metadata brackets. Nothing is wasted, though the single sentence is so compressed that the core mechanics of the tool are never actually spelled out.
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 5-parameter tool with a nested free-form args object, a free-text tool selector, compact-mode options, and no output schema, this is under-specified. An agent cannot tell what the stream emits, how to consume it, or what valid values for tool are (presumably must match astroway_mcp_tools_list entries), all of which are load-bearing here.
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 only 40% across 5 parameters, and the description adds nothing beyond confirming that tool is required. args (arbitrary nested object forwarded to the target tool), language, and the compact-mode interplay of fields/precision are left entirely to the schema; the description should explain that args are passed through verbatim to the named tool.
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?
"SSE-stream of a tool call envelope" names a delivery mechanism and an artifact, so the agent knows this is a streaming wrapper that executes a named tool. However, "tool call envelope" is opaque jargon and the definition never states the key fact that this proxies/executes another MCP tool by name, nor how it differs from the sibling astroway_mcp_streaming or astroway_mcp_tools_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?
The only usage cue is the bracketed "[Required: tool]" — there is no when-to-use, no when-not-to-use, and no routing to an alternative despite multiple plausible siblings (astroway_mcp_streaming, astroway_mcp_tools_list, astroway_agent_tools). The agent must guess whether streaming is preferred over a plain call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_tools_listMCP Tools ListCRead-onlyInspect
Auto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec).
[Group: AI & MCP] [Endpoint: GET /v1/mcp/tools-list] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| spec | No | |
| notes | No | |
| tools | No | |
| server | No | |
| toolCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations do not: the concrete GET endpoint and a cost caveat that this scope is not in the public credit manifest. It does not explain response size or pagination for a manifest that presumably enumerates all tools.
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 single purpose sentence is front-loaded and the metadata tags are compact, but the bracketed group/endpoint/cost lines are boilerplate scaffolding rather than description content. Nothing is wasted, yet very little informational payload is delivered.
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, but for a meta-tool that enumerates the entire tool surface, the description never explains the scenario in which an agent would reach for it instead of directly invoking a domain tool. Given the enormous sibling set, this leaves a real 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 `fields` and `precision` are already documented in the schema with examples and constraints. The description contributes no additional parameter meaning; the 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?
"Auto-generated tool manifest for MCP clients" largely restates the name 'MCP Tools List' without a distinct verb or an explanation of what the response actually contains. It gives an endpoint and spec version but no functional description that would distinguish its purpose from any other listing endpoint.
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?
There is no statement of when an agent should call this tool, what problem it solves, or how it relates to the ~190 sibling tools. The only contextual cues are the bracketed [Group]/[Endpoint]/[Cost] metadata tags, which are not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vd_shodashottari_pratyantarDashas: Shodashottari PratyantardashaBRead-onlyIdempotentInspect
Shodashottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/pratyantar] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_dashas_shodashottari_pratyantar.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
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 invocation context — cost (20 credits, Tier 2) and the POST endpoint — but says nothing about auth needs, rate limits, or payload size, so it only partially extends beyond the structured data.
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?
Single compact sentence plus bracketed metadata, front-loaded with the operation. Every element carries information; the structure is scannable. Slight redundancy in the alias note, which restates the tool's own identity.
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 birth-data body is thoroughly explained in-schema. What is missing is anything about what the cascade output means or how this depth relates to the surrounding dasha levels, which matters for a domain-specific calculation 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 the three parameters (body, fields, precision) are each documented in-schema with detailed descriptions. The description adds nothing about parameters, so the baseline 3 for high-coverage schemas 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 resource (Shodashottari Pratyantardasha) and its depth structure ('3-level cascade (MD → AD → 8 PDs)'), which helps distinguish it from the antar/prana/sookshma variants in the sibling list. It stops short of explicitly naming which sibling to prefer at a given depth, but the cascade description is concrete enough to place it.
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?
There is no when-to-use guidance, no prerequisites, and no stated alternatives. The only routing hint is the note that it is an alias for `astroway_vedic_dashas_shodashottari_pratyantar`, which is a duplicate, not an alternative — an agent still cannot tell why it should pick this over shodashottari_antar or _sookshma.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_ashtakavargaAshtakavargaBRead-onlyIdempotentInspect
Calculate the Ashtakavarga benefic point table for a Vedic chart: individual bindus for each planet in each sign and the total Sarvashtakavarga.
[Group: Vedic] [Endpoint: POST /v1/ashtakavarga] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sarva | No | |
| planets | No | |
| sarvaTotal | No |
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's genuine added value is the cost disclosure (50 credits, Tier 3) and the endpoint/method, which tell the agent this is a paid computation. It adds nothing about precision, computation assumptions, or response shape, so it is adequate but not rich.
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 purpose sentence is front-loaded and wastes no words, and the bracketed metadata block (group, endpoint, required, cost) is skimmable and easy to parse. The only redundancy is repeating the required-parameter list that the schema already enforces.
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 safety profile is carried by annotations. However, for a 15-parameter paid computation with 33% schema coverage, the description omits any guidance on ayanamsa/zodiac selection and when to prefer this over sibling strength tools, leaving real decision gaps.
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 only 33% across 15 parameters, so the description is expected to compensate, and it does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks as required, giving no meaning to ayanamsa, zodiacType, houseSystem, timezone, fields, or precision. Since Ashtakavarga is a sidereal technique, silence on zodiacType/ayanamsa is a real gap.
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 verb (Calculate) and resource (Ashtakavarga benefic point table), then goes further to enumerate the output content: per-planet bindus per sign plus the total Sarvashtakavarga. It is unmistakable against the vast Vedic sibling list since no other tool computes Ashtakavarga. It stops short of explicitly contrasting with related strength tools like shadbala, so it is not a full 5.
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?
There is no when-to-use guidance, no statement of prerequisites (e.g., that the technique is inherently sidereal), and no naming of alternatives among the shadbala/varga siblings. The bracket block lists required inputs and cost but never says under what circumstances an agent should reach for this tool over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_bhavabalaBhava Bala: house strengthARead-onlyIdempotentInspect
Strength of the twelve houses per BPHS Adhyaya 27: Bhavadhipati Bala (the Shadbala of the house lord), Bhava Digbala (the four rasi classes, each strong in one direction), and Bhava Drishti Bala (net benefic minus malefic aspect on the bhava). Components returned separately, plus rank, strongest and weakest house.
[Group: Vedic] [Endpoint: POST /v1/vedic/bhavabala] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| houses | No | |
| weakest | No | |
| strongest | No |
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 covered. The description adds the cost tier (20 credits), the endpoint, and the return structure, but says nothing about auth requirements, rate limits, or how the components relate to each other. Adequate but limited added 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 main sentence is dense with domain jargon but front-loads the essential meaning, and the bracketed meta block (group, endpoint, required, cost) is cleanly structured. Slightly heavy on untranslated Sanskrit term names, 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 the description need not detail return values, and it helpfully sketches them anyway. However, for a 15-parameter tool with low schema coverage and no usage guidance, the absence of any parameter or configuration guidance leaves a real 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 only 33% across 15 parameters, so the description carries the burden of compensating and does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks required, and never explains the semantics of ayanamsa, houseSystem, zodiacType, or the compact-mode fields/precision options.
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 computed resource (strength of the twelve houses) and enumerates its three constituents: Bhavadhipati Bala, Bhava Digbala, and Bhava Drishti Bala. It clearly separates itself from the sibling shadbala tools, which compute planetary rather than house strength, and states the classical source (BPHS Adhyaya 27).
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 only implied by the content: an agent can infer this is for house-strength analysis rather than planetary (shadbala_*) or transit (ashtakavarga) strength. There is no explicit when-to-use statement, no prerequisites, and no naming of an alternative tool to prefer in adjacent cases, despite a very large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_ashtakootCompatibility: Ashtakoot Guna Milan (8-fold 36-point)ARead-onlyIdempotentInspect
Canonical 8-Kuta matchmaking out of 36 points: Varna(1) + Vashya(2) + Tara(3) + Yoni(4) + Graha-Maitri(5) + Gana(6) + Bhakoot(7) + Nadi(8). Threshold 18+ traditionally acceptable; 24+ good; 32+ excellent. Returns per-Kuta scores + Bhakoot/Nadi dosha flags + threshold verdict.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/ashtakoot] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| boy | No | |
| max | No | |
| girl | No | |
| total | No | |
| doshas | No | |
| method | No | |
| points | No | |
| school | No | |
| threshold | No | |
| recommendation | No |
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 low. The description adds genuine context beyond them: the cost tier (50 credits, Tier 3) and the shape of the verdict output including Bhakoot/Nadi dosha flags. It does not mention auth requirements or latency, but for a pure read-only computation this is solid.
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 defining content (8-Kuta breakdown, thresholds, return shape) before the bracketed metadata, so an agent gets the essentials in the first sentence. The Kuta enumeration is dense but each item earns its place as a scope definition; the [Required] line is mildly redundant with 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?
With a full output schema, rich annotations, and 100% parameter description coverage in the schema, the description need not explain returns or chart construction. It supplies the domain framing (what the 36-point scale means, what the dosha flags are) that lets an agent report results sensibly. Only the absence of sibling routing keeps it from being fully complete.
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, including the compact-mode `fields` and `precision` options and the rich chart object semantics. The description only restates the two required params (chart1, chart2), adding nothing the schema does not already carry. 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?
The description names the specific resource and scope precisely: the canonical 8-Kuta / 36-point matchmaking, enumerating all eight Kutas with their weights (Varna 1 through Nadi 8). That enumeration uniquely identifies it against siblings like astroway_vedic_compatibility_dashakoota (10-Kuta) or _full, even though no sibling is named outright. Clear and specific, but it stops short of explicit sibling routing.
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 threshold bands (18+ acceptable, 24+ good, 32+ excellent) are interpretation guidance for reading the result, not invocation guidance. There is no statement of when to choose this over the other four compatibility endpoints (bhrigu_match, dashakoota, full, mangal_match) or any prerequisite for calling it. Usage is implied by the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_bhrigu_matchCompatibility: Bhrigu-match (7H placement)ARead-onlyIdempotentInspect
Bhrigu Sanhita-style structured 7th-house planetary placement summary for both partners. Counts benefic/malefic planets in each partner's 7H from Lagna and labels status {beneficial|challenging|neutral}. NOT a numerical match score.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/bhrigu-match] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| summary | No | |
| partner1 | No | |
| partner2 | No | |
| disclaimer | No |
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 genuinely useful non-schema context: the endpoint path, the two required chart inputs, and the 50-credit Tier 3 cost, which matters for a paid call. No auth or rate-limit detail, but nothing misleading.
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 differentiator in the first sentence and the computation in the second; the bracketed metadata block is terse and each token (endpoint, required, cost) carries information. Slightly redundant with the schema on 'Required: chart1, chart2', but no wasted 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 described, and the description covers what is computed, the required inputs and the cost. Given the crowded compatibility sibling set, the one gap is guidance on when this beats compatibility_full; otherwise it is complete for a read-only, idempotent computation 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 the nested chart object is thoroughly documented in the schema itself (date/time formats, timezone semantics, houseSystem letters). The description only restates the two required parameter names, adding no syntax or format meaning beyond structured fields. 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 computation ('counts benefic/malefic planets in each partner's 7H from Lagna') and the exact output vocabulary ({beneficial|challenging|neutral}). The closing line 'NOT a numerical match score' actively separates it from the several score-based compatibility siblings (ashtakoot, dashakoota). An agent can tell what this returns 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 negative disambiguation ('NOT a numerical match score') gives implied usage — pick this for qualitative 7H placement rather than point totals — but no alternative is named. With five compatibility siblings (ashtakoot, dashakoota, full, mangal_match, manglik_check) an explicit 'use X when Y' would be needed for a 4 or 5. Guidance is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_dashakootaCompatibility: Dashakoota (10-fold 39-point)ARead-onlyIdempotentInspect
Extended matchmaking adding Mahendra(2) + Vedha(1) on top of Ashtakoot 36 = 39 max. Mahendra: birth-star count 4/7/10/13/16/19/22/25 → 2pt; else 0. Vedha: 13 canonical mutually-obstructing nakshatra pairs → 0pt blocked, 1pt clear.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/dashakoota] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| boy | No | |
| max | No | |
| girl | No | |
| total | No | |
| vedha | No | |
| doshas | No | |
| method | No | |
| points | No | |
| school | No | |
| mahendra | No | |
| threshold | No | |
| dashakootaMax | No | |
| recommendation | No | |
| dashakootaTotal | No |
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, and the description adds real operational context: cost (50 credits, Tier 3), endpoint, and the required chart pair. It also makes the scoring deterministic and auditable (specific nakshatra counts and 13 obstructing pairs), which helps an agent reason about the result rather than treat it as a black box.
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 purpose and the additive scoring relationship are front-loaded in the first clause, followed by the two rule definitions and a compact metadata block. It is dense but every line carries information; no filler 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?
For a two-chart calculation with rich annotations and an output schema, coverage is mostly adequate. The notable gap is chart ordering: Mahendra counting is directional (counted from one nakshatra to the other), yet the description never says whether chart1 is the reference and how that affects the 2-point award, nor how to read the 39-point total.
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 nested chart object is documented in unusual depth (timezone handling, field-name rejections, house-system letters), so the schema carries parameter semantics. The description only restates that chart1 and chart2 are required and adds nothing about parameter meaning 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 description names a specific domain resource and computation: an extended matchmaking score that adds Mahendra (2) and Vedha (1) to the Ashtakoot 36 for a 39-point maximum. That implicitly separates it from astroway_vedic_compatibility_ashtakoot, though it never names the sibling or the fuller compatibility_full variant directly.
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 only implied: by framing itself as 'extended ... on top of Ashtakoot 36', it signals when an agent would prefer it over the plain Ashtakoot tool. There is no explicit when-to-use/when-not statement, no mention of compatibility_full, and no prerequisite or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_fullCompatibility: Parashara full reportARead-onlyIdempotentInspect
Combined matchmaking response: Ashtakoot total + threshold + Manglik check for both partners + per-Kuta sub-scores + recommendation in one call.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/full] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| points | No | |
| school | No | |
| manglik | No | |
| ashtakoot | No | |
| recommendation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description only needs to add context beyond that. It discloses the real behavioral cost driver — 50 credits, Tier 3 — and the fact that the response is a single aggregated call, which is genuinely useful for planning. No contradiction with the read-only 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 response contents are front-loaded in a single dense sentence, followed by four compact metadata tags (group, endpoint, required, cost). Every element earns its place; there is no padding. Minor: the bracketed tag block is functional rather than prose, but it stays 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 not be explained, and required inputs plus cost are stated. For a tool sitting in a dense cluster of six compatibility siblings, the one remaining gap is explicit routing — the description does not say which sibling to pick instead when a user wants only Ashtakoot or a non-Parashara system.
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 nested chart1/chart2 objects are documented in rich detail (date/time formats, timezone vs timezoneOffset, houseSystem letters). The description only repeats "Required: chart1, chart2," adding nothing about the four top-level parameters (fields, precision) or the nested chart fields. Baseline 3 is correct 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 (combined matchmaking response) and enumerates exactly what it returns: Ashtakoot total, threshold, Manglik check for both partners, per-Kuta sub-scores, and a recommendation. This positions it as the superset of the sibling compatibility tools. It stops short of explicitly naming which siblings it subsumes (compatibility_ashtakoot, compatibility_manglik_check), so differentiation is implied rather than stated.
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?
"in one call" strongly implies this is the aggregation shortcut versus calling the individual Kuta/Manglik endpoints, which is usable guidance. However, it never states when NOT to use it — e.g. versus astroway_vedic_compatibility_dashakoota or bhrigu_match, which are different matching systems, not subsets. No explicit alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_mangal_matchCompatibility: Mangal-match (Manglik between partners)ARead-onlyIdempotentInspect
Compares Manglik status of both partners and applies BPHS A.39 cancellation rule: if both partners are Manglik, the dosha is mutually cancelled. Returns verdict {compatible|cancelled|incompatible}.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/mangal-match] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| verdict | No | |
| partner1 | No | |
| partner2 | No | |
| explanation | No | |
| mangalSchool | No |
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 non-obvious context: the BPHS A.39 cancellation logic that governs the result and the 50-credit Tier 3 cost, which is materially useful for planning.
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 purpose and decision logic in the first sentence, with operational metadata (group, endpoint, required params, cost) tucked into bracketed lines. Efficient, though the metadata block is boilerplate rather than narrative.
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 is not obliged to explain the full return shape, and it still names the verdict enum. Cost, required inputs and the interpretive rule are all present; only the sibling differentiation is missing for a tool family with several overlapping compatibility endpoints.
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 nested chart objects are thoroughly documented (timezone, houseSystem, coordinate requirements), so the description only needs to confirm the two required inputs. It lists 'chart1, chart2' but adds no semantics beyond the schema; 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 and resource: 'Compares Manglik status of both partners' and names the governing rule (BPHS A.39 mutual cancellation) plus the verdict space. That is enough to distinguish it in substance from the sibling astroway_vedic_compatibility_manglik_check, though the description never actually names that sibling to make the split explicit.
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?
There is no when-to-use or when-not-to-use guidance. The closest sibling, astroway_vedic_compatibility_manglik_check (single-chart Manglik check), is not mentioned, so an agent must infer from 'both partners' that this is the pairwise variant rather than the single-chart one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_manglik_checkCompatibility: Manglik check (single chart)ARead-onlyIdempotentInspect
Detects Manglik status for a single chart with school selection (strict/north/south, default south). Same canon as /vedic/doshas/parashara/mangal; surfaced here in compatibility context for matchmaking flows.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/manglik-check] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| details | No | |
| manglik | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| mangalSchool | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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 value beyond them by disclosing cost (20 credits, Tier 2), the endpoint, and the required inputs, plus the equivalence to the parashara mangal endpoint. It does not describe depth of the returned interpretation, but that is minor given the 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?
Two dense sentences front-loaded with the core purpose, followed by compact metadata tags for group, endpoint, required fields and cost. Nothing is wasted, though the bracket metadata could be trimmed if the schema already carries the required 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 15-parameter tool the description covers only a fraction of the surface, but annotations cover safety, an output schema covers returns, and the metadata block supplies endpoint, cost and required fields. An agent could call it correctly for the common case but would be under-informed about the many optional chart-configuration parameters.
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 only 33% across 15 parameters, so the description is expected to compensate, yet it documents only the 'school' option (strict/north/south, default south) and the required date/time/lat/long. Notably that 'school' parameter does not appear in the supplied input schema, which could confuse mapping, and the remaining parameters (city, name, cosmogram, zodiacType, houseSystem, etc.) are left to their own names.
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 Manglik status for a single chart') and explicitly delimits itself to a single chart, which separates it from the sibling astroway_vedic_compatibility_mangal_match (a two-chart match). It also ties itself to the same canon as astroway_vedic_doshas_parashara_mangal so the agent knows the underlying calculation.
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 clear context: use in matchmaking/compatibility flows, single chart, with school selection. It does not explicitly say when to prefer this over astroway_vedic_doshas_parashara_mangal or the mangal_match sibling, so there is no exclusion guidance, but the intended context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_antarDashas: Ashtottari AntardashaBRead-onlyIdempotentInspect
Ashtottari Antardasha: 8 sub-periods of the running MD at targetDate (default today UTC). Sub-period of planet Q within MD of P: years = (P.years × Q.years) / 108.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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 value beyond that: the default targetDate of today UTC, the exact arithmetic used to derive the sub-periods, and the 20-credit Tier 2 cost, which an agent needs for budgeting. It does not describe pagination or return shape, but an output schema exists so that is not required.
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 identity of the dasha level, then the qualifying detail (default date) and the formula; the group/endpoint/cost block is compact metadata. No filler sentences, though the alphabetical formula is slightly dense for a description opener.
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?
What the tool returns is covered by the output schema, and cost, endpoint and default date are given, so an agent has enough to invoke it. What is missing is the routing context across the unusually deep dasha family (maha/antar/pratyantar/sookshma/prana for ten different systems) — the description gives no help choosing this level or this system over the ~50 sibling dashas.
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 nested birth-data fields are heavily documented in the schema, so the schema is doing the heavy lifting. The description only adds the default behaviour of targetDate; it says nothing about targetTime, targetTzOffset, fields or precision. 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?
Names a specific dashas level and resource: Ashtottari Antardasha, defined as the 8 sub-periods of the running Mahadasha at a target date. The formula (P.years × Q.years / 108) pins down exactly which level of the dasha hierarchy this computes, which is more than a generic restatement. It stops short of explicitly naming sibling levels (pratyantar/sookshma/prana) to disambiguate the hierarchy, so it is clear but not fully sibling-differentiated.
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?
There is no statement of when to choose this level over maha, pratyantar, sookshma or prana. The only usage-adjacent detail is that targetDate defaults to today UTC. The agent must infer from the name which dasha depth it needs, with no alternatives or exclusions offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_mahaDashas: Ashtottari MahadashaARead-onlyIdempotentInspect
108-year Ashtottari Dasha (Ardradi tradition). 8 planets (Sun/Moon/Mars/Mercury/Saturn/Jupiter/Rahu/Venus) with periods 6/15/8/17/10/19/12/21 (total 108y), Ketu excluded. Mapping is block-based (4-3-4-3-3-3-4-3 nakshatras anchored at Ardra). Returns applicability flag per BPHS 46.23 (day Krishna OR night Shukla).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the description's job is to add domain behavior — and it does: Ketu exclusion, the block-based nakshatra anchoring at Ardra, and the BPHS 46.23 applicability condition (day Krishna OR night Shukla). The credit cost (20, Tier 2) adds practical context, though nothing is said about performance or time range of returned periods.
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 essential identification (108-year Ashtottari, Ardradi) and compressed into a few dense but information-bearing sentences. The period and nakshatra enumerations are verbose yet directly relevant to the calculation, so 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?
An output schema exists, so return-value documentation is not required, and the description still notes the applicability flag it emits. Combined with annotations covering safety, the remaining gap is purely the absence of usage/routing guidance among dashed 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 birth-data fields, timezone rules, ayanamsa and compact-mode fields are all documented in the schema itself. The description adds no parameter-level meaning beyond that, which is the expected baseline 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 calculation: Ashtottari Mahadasha under the Ardradi tradition, with planetary periods and nakshatra mapping enumerated. An agent understands what is being computed. It does not, however, distinguish itself from the ashtottari_antar/pratyantar/sookshma/prana siblings that share the same scheme at sub-period levels.
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?
No when-to-use guidance and no mention of the four sibling tools at deeper dasha levels (antar, pratyantar, sookshma, prana) that an agent must choose between. The only implicit cue is 'maha' in the name, which is not explained in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_pranaDashas: Ashtottari PranadashaBRead-onlyIdempotentInspect
Ashtottari Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 genuinely useful operational facts – group, endpoint, and the 20-credit Tier 2 cost – but says nothing about output depth, computation cost implications, or failure modes beyond what the schema conveys.
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?
Three short lines, front-loaded with the identifying clause and followed by metadata; nothing is padded or redundant. It is arguably too sparse rather than too long, but every line 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, and the input schema is exhaustive. Still, for a tool sitting among dozens of near-identical dasha endpoints, the description fails to explain what this level yields or why it would be chosen, leaving a routing gap the structured fields cannot close.
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 body (birth data, target date/time/tz), fields and precision parameters are already fully documented in the schema. The description adds nothing about parameter meaning or interaction. Baseline 3 is appropriate when the schema does all the work.
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 the specific dasha system (Ashtottari Pranadasha) and its position in the hierarchy ('5-level cascade, finest grain'), which distinguishes it from the coarser ashtottari_sookshma/pratyantar/antar/maha siblings. However, it has no verb at all (compute/return) and assumes the agent already knows what a pranadasha is. Clear but not fully self-contained.
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?
There is no guidance on when to select this tool versus the four other Ashtottari levels or the many other dasha systems. 'Finest grain' hints at granularity but never states a condition for choosing prana over sookshma or pratyantar, and no prerequisites (birth data requirement) are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_pratyantarDashas: Ashtottari PratyantardashaBRead-onlyIdempotentInspect
Ashtottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds the cost (20 credits, Tier 2), which is a genuinely useful behavioral signal for invocation budgeting, plus the endpoint and group tags. It says nothing further about computation semantics or limits, so it is useful but not rich.
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?
Extremely compact and front-loaded: the level/cascade statement comes first, then the metadata tags. Every element carries information and there is no padding. The bracketed Group/Endpoint/Cost lines are metadata rather than prose, which slightly dilutes the description proper.
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, but this tool lives in a dense family of identical-looking dasha endpoints where routing is the hard part, and the description does nothing to resolve that ambiguity. For a Tier-2, 20-credit call the definition gives no selection criteria, which is a real 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% and the body schema itself is exhaustively documented (coordinate forms, timezone vs timezoneOffset precedence, houseSystem letters, ayanamsa rules). The description contributes no parameter meaning beyond that, so the baseline 3 for fully covered schemas 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 resource and scope: 'Ashtottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs)', which tells the agent both the dasha system and the exact depth of the level being computed. The naming and the '8 PDs' detail distinguish it from the maha/antar/prana/sookshma siblings in the same family. It stops short of explicitly naming those siblings, so it is clear but not fully self-routing.
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?
There is no when-to-use guidance and no exclusions. With ~70 near-identical dasha siblings (ashtottari_antar, ashtottari_prana, ashtottari_sookshma, plus every other system at every level), the description never says which level to pick or what input conditions select this tool. The cascade notation implies what is produced but gives no decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_sookshmaDashas: Ashtottari SookshmadashaCRead-onlyIdempotentInspect
Ashtottari Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful operational facts — the POST endpoint and a 20-credit Tier 2 cost — but says nothing about output shape, latency, or pagination/limits on the cascade depth.
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?
Very short and front-loaded: the subject comes first, followed by bracketed metadata lines. There is no filler, though '4-level cascade' is too compressed to carry real meaning.
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 annotations cover safety. But for a tool with a required multi-field birth-data body sitting among ~10 near-identical Ashtottari and other dasha-level siblings, the description supplies no disambiguation, no usage context, and no explanation of what the sookshma cascade yields.
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 nested birth-data object, fields, and precision parameters are thoroughly documented in the schema itself. The description adds no parameter meaning beyond that, which is the expected baseline 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?
Names a specific dasha system and level (Ashtottari Sookshmadasha) and hints at depth with '4-level cascade'. However, it never explains what a sookshma-level dasha is or how it differs from the many sibling levels (maha, antar, pratyantar, prana), so an agent must infer the distinction from the name alone.
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?
No guidance on when to request this depth versus ashtottari_maha/antar/pratyantar/prana, and no prerequisites or exclusions. The metadata lines give group/endpoint/cost but nothing about selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_antarDashas: Chara AntardashaARead-onlyIdempotentInspect
Chara Antardasha: 12 sub-periods of the running Mahadasha at targetDate (default today UTC). Equal-share subdivision: each antar = parent_years / 12. Order: parent's NEXT sign first (in parent direction), parent sign LAST (per K.N. Rao).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, read-only, closed-world call, so safety need not be repeated. The description adds real domain behavior beyond that: the equal-share subdivision rule (parent_years / 12), the ordering convention (parent's next sign first, parent sign last, attributed to K.N. Rao), the default target date, and the credit cost.
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 identity of the tool is front-loaded in the first clause, followed by the arithmetic rule and the ordering rule, each earning its place. The bracketed Group/Endpoint/Cost block is boilerplate but short and useful for routing and cost awareness.
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 explained, and the description covers computation method, ordering, timing default and cost. Minor gaps remain: it does not state which sign the parent mahadasha sequence starts from, nor that the parent Chara mahadasha must be resolved first.
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 body fields are already documented and the baseline is 3. The description adds one genuinely new parameter fact: `targetDate` defaults to today UTC, which the schema does not state. It adds nothing further about targetTime or targetTzOffset, which the schema leaves thin.
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 dasha level and resource ('Chara Antardasha: 12 sub-periods of the running Mahadasha'), so the agent knows exactly what is being computed. It does not, however, distinguish this level from the sibling levels chara_pratyantar, chara_prana and chara_sookshma, leaving the agent to rely on the tool name to know which sub-division depth it gets.
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 implied by the level named (fetch antardashas for a Chara mahadasha) and by the `targetDate` framing, but there is no explicit when-to-use statement and no mention of the alternative dasha-level tools or the sibling dasha systems. Nothing tells the agent when antar is the right depth versus pratyantar or sookshma.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_mahaDashas: Chara MahadashaBRead-onlyIdempotentInspect
Chara Dasha (Jaimini rasi-dasha: Mahadasha lord = sign, not planet). 12 Mahadashas of variable duration starting at lagna sign. Direction = forward for movable+dual signs (Aries/Cancer/Libra/Capricorn/Gemini/Virgo/Sagittarius/Pisces); reverse for fixed (Taurus/Leo/Scorpio/Aquarius). Per-sign duration = inclusive count from sign to its lord (in direction) minus 1; lord-in-own-sign → 12 years. Co-lord rule for Scorpio (Mars+Ketu) and Aquarius (Saturn+Rahu): pick the OTHER if exactly one is in the sign, else higher absolute longitude. Default variant = K.N.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No |
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 then adds genuine algorithmic transparency beyond annotations: duration-direction rules by sign type, the inclusive-count-minus-one timing formula, the own-sign = 12 years case, and the co-lord tie-break for Scorpio and Aquarius. It omits operational context such as the 20-credit Tier 2 cost, but the computational behavior disclosed is unusually rich.
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?
It is front-loaded with what the tool computes, but a large share of the text is implementation minutiae — the per-sign duration formula and the Scorpio/Aquarius co-lord tie-break — that helps confirm output semantics but not selection or invocation. For a tool whose schema already covers inputs, this is heavier than needed.
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 is complete enough for the agent to understand what the tool computes and how the periods are derived. Its remaining gap is relational: it does not place itself in the 70-plus sibling dasha hierarchy or explain when the positional 'Maha' level is the right depth.
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 birth-data fields, timezone handling, fields and precision are already documented in the schema. The description adds no parameter-level meaning — it never mentions the body fields, the compact-mode fields/precision controls, or the targetDate/targetTime fields present in the schema. Baseline 3 applies when the schema carries the load.
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+resource: computing Chara Dasha Mahadashas (Jaimini rasi-dasha, lord = sign rather than planet), and it pins the level with '12 Mahadashas of variable duration starting at lagna sign.' It never explicitly distinguishes itself from the sibling Chara sub-period tools (antar/pratyantar/sookshma/prana), so the agent must infer level from the name alone.
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?
No when-to-use guidance is given: nothing says when Chara Dasha is preferred over Vimshottari, Yogini, Ashtottari or the other dasha systems in the sibling list, and no alternative is named. The 'Default variant = K.N.' note implies a selectable variant but doesn't tell the agent what the options are or when they matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_pranaDashas: Chara PranadashaBRead-onlyIdempotentInspect
Chara Pranadasha: 5-level cascade (finest grain). Minute-scale duration at full depth.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
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 useful non-schema context — the endpoint and the 20-credit Tier 2 cost — but says nothing about auth requirements, rate limits, or how the 5-level cascade is returned.
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?
Three tight fragments with the domain-defining qualifier ('finest grain') front-loaded, followed by machine-readable group/endpoint/cost metadata. Every element earns its place, though the telegraphic style sacrifices some explanatory value for brevity.
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 input schema is fully documented, so return values and parameters need not be restated. The description supplies the one thing structured data cannot — the domain placement of 'prana' within the Chara level hierarchy and its minute-scale resolution — but omits selection guidance against the four sibling levels, which is the main remaining 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 the body fields (date, time, latitude, longitude, timezone handling, fields, precision) are already fully documented in the schema, and the description adds no parameter meaning beyond that. Baseline 3 is appropriate when the schema carries the entire parameter 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 names the specific system and level ('Chara Pranadasha') and, critically, places it as the 'finest grain' of a '5-level cascade', which is exactly the distinction an agent needs against siblings like chara_maha, chara_antar, chara_pratyantar and chara_sookshma. It stops short of stating the compute/return verb explicitly, but the resource and its position in the family are 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?
There is no explicit when-to-use or when-not-to-use guidance and no routing to alternatives such as chara_sookshma when a coarser grain suffices. 'Finest grain' and 'minute-scale duration' imply the deepest-resolution use case, but the agent must infer that selecting this tool versus the four shallower Chara levels depends on desired time resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_pratyantarDashas: Chara PratyantardashaARead-onlyIdempotentInspect
Chara Pratyantardasha: 3-level cascade (MD → AD → 12 PDs). Recursive equal-share subdivision; same direction at every depth.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
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 adds genuinely new behavioral context: the cost ('20 credits, Tier 2'), the endpoint, and the recursion rule ('equal-share subdivision; same direction at every depth'), which tells the agent how the periods are derived.
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 semantics in the first clause, then structured metadata lines. No filler sentences; every element 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 no explanation, and the algorithm/cost metadata is present. The gap is decision support: for a tool surrounded by ~80 Vedic siblings at four different dasha depths, the absence of any routing guidance leaves the agent to infer selection from the name alone.
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 data, fields and precision thoroughly. The description supplies no additional parameter meaning, 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 computation: 'Chara Pratyantardasha: 3-level cascade (MD → AD → 12 PDs)', which pins down the dasha level and its subdivision structure. It distinguishes itself from the maha/antar/prana/sookshma variants only implicitly via the level name; there is no explicit routing statement, but the resource is 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?
No when-to-use, when-not-to-use, or sibling routing. Given siblings like chara_antar, chara_prana and chara_sookshma sit at adjacent levels, the description should say which level the agent wants, but it does not. Only the implicit '12 PDs' wording hints at scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_sookshmaDashas: Chara SookshmadashaCRead-onlyIdempotentInspect
Chara Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
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 covered. The description adds genuinely useful non-annotation context — the endpoint, the Vedic group, and the cost (20 credits, Tier 2) — but says nothing about output shape or what the cascade contains. With annotations carrying the safety burden, a 3 is fair.
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?
Very short and front-loaded, but the content is metadata tags (group, endpoint, cost) rather than explanatory prose. Nothing is padded, yet little of it earns its place beyond the cost line.
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 niche Vedic dasha endpoint surrounded by dozens of near-identical siblings, the description does not explain what Chara Dasha is, what the 4-level cascade returns, or how it relates to the other levels. An output schema exists so return values needn't be described, but the tool-selection context is essentially 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% and the body schema is exhaustively documented (timezone handling, houseSystem letters, ayanamsa, target date fields), so the schema does all parameter work. The description adds nothing beyond the schema, which yields 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 largely restates the title/name; its only added content is '4-level cascade', which hints at the depth of the dasha subdivision but never states a verb, what is computed, or what distinguishes it from the sibling chara_maha/antar/pratyantar/prana tools. An agent cannot tell which cascade level this is without decoding the naming convention.
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?
There is no guidance on when to use this tool versus the ~60 sibling dasha tools, including the four other Chara levels (maha, antar, pratyantar, prana). No conditions, no prerequisites, no alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_antarDashas: Kalachakra AntardashaARead-onlyIdempotentInspect
Kalachakra Antardasha: 9 sub-periods of the running MD at targetDate (default today UTC). Same chakra-row at every depth; sub-period of sign Q within MD of P: years = (P.years × Q.years) / paramayu.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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 value beyond that: cost (20 credits, Tier 2), the endpoint, the default-to-today behavior, and the period-length formula. Cost and default semantics are things annotations cannot express.
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?
Two dense sentences plus metadata tags; the resource and depth are front-loaded and nothing is wasted. The formula is arguably jargon but it earns its place by clarifying the antardasha computation.
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 values need no explanation. The description supplies cost, endpoint, default date behavior, and result count (9 sub-periods). The only gap is an explicit pointer to the sibling depth levels for choosing 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 schema already documents the nested birth body, fields, and precision parameters. The description only adds the `targetDate` default (today UTC) and the internal formula, so the baseline 3 is appropriate rather than a higher score.
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: 'Kalachakra Antardasha: 9 sub-periods of the running MD at targetDate'. The depth level (sub-periods of the running MD) implicitly distinguishes it from the maha/pratyantar/prana/sookshma siblings, though it never names them. Clear but not explicitly differentiated 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?
Implies usage via 'at `targetDate` (default today UTC)', giving a default when the agent omits the date. But there is no explicit guidance on when to choose antardasha over the neighbouring depth levels (maha, pratyantar, prana, sookshma), which is the key decision an agent faces with ~70 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_mahaDashas: Kalachakra MahadashaARead-onlyIdempotentInspect
Kalachakra Dasha (rasi-dasha: Mahadasha lords are signs, not planets). 8 chakra-rows (Savya×4 + Apasavya×4); direction determined by nakshatra group (Aswini/Bharani/Krittika = Savya; Rohini/Mrigasira/Ardra = Apasavya). Total cycle (paramayu) varies per natal pada: 100/85/83/86 years. Returns the 9 Mahadashas of the running cycle from birth; first MD truncated by elapsed pada-fraction.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
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, and the description adds real domain behavior: Savya/Apasavya direction from nakshatra group, paramayu varying 100/85/83/86 years per pada, and truncation of the first Mahadasha by the elapsed pada fraction. These are non-obvious traits an agent could not derive 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 defining clause, then the mechanics, then the return shape, in one tight paragraph with no filler. Slightly dense/run-on with parenthetical jargon, but every sentence carries 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?
With an output schema present, the description needn't enumerate return fields, but it still states what is returned (9 Mahadashas of the running cycle, first truncated). For a read-only Tier-2 computation tool this is close to complete; only explicit sibling routing 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 nested birth-data schema already documents date/time/latitude/longitude, timezone handling, and the fields precision compact-mode parameter. The description adds no parameter-level 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/resource and scope: 'Kalachakra Dasha ... Returns the 9 Mahadashas of the running cycle from birth'. It also disambiguates from the sibling Kalachakra tools (antar/pratyantar/prana/sookshma) by naming the Mahadasha level and from other dasha systems by defining the rasi-dasha rule that lords are signs, not planets.
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 implies the use case (getting Mahadasha-level Kalachakra periods) but never says when to prefer this tool over astroway_vedic_dashas_kalachakra_antar or the other dasha families, nor does it state prerequisites beyond the birth data. Usage is inferable from the name and content, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_pranaDashas: Kalachakra PranadashaARead-onlyIdempotentInspect
Kalachakra Pranadasha: 5-level cascade (finest grain, minutes-scale at full depth).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 adds genuinely useful behavioral context absent from annotations: cost (20 credits, Tier 2), the POST endpoint, and the tool group. It does not describe response shape, but an output schema exists to carry 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 essential depth characterization, followed by compact structured metadata lines for group, endpoint, and cost. No filler sentences; the only mild redundancy is restating the tool name in the opening line.
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 rich input schema, an output schema, and full annotation coverage, the definition supplies what the structured fields cannot: cost tier and endpoint. The remaining gap is domain guidance on what distinguishes prana-level output from the other Kalachakra depths, which would help an agent choose 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 the body schema already documents birth data, timezone handling, and the fields/precision compact-mode parameters in detail. The description adds no parameter meaning beyond the schema, 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 names the specific dasha system (Kalachakra), the level (Pranadasha), and characterizes its depth as a '5-level cascade (finest grain, minutes-scale at full depth).' That lets an agent place it against sibling levels like kalachakra_sookshma or kalachakra_maha, though it never names those siblings directly.
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 only implied: 'finest grain, minutes-scale at full depth' suggests reaching for this when minute-level timing is needed, but there is no explicit when-to-use statement and no routing to the coarser kalachakra levels (maha/antar/pratyantar/sookshma) that share this family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_pratyantarDashas: Kalachakra PratyantardashaBRead-onlyIdempotentInspect
Kalachakra Pratyantardasha: 3-level cascade (MD → AD → 9 PDs). Recursion preserves the natal chakra-row and paramayu.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
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 behavioral context beyond them — the recursion preserves the natal chakra-row and paramayu, and the call costs 20 credits (Tier 2) — but says nothing about how many periods are returned, whether the whole lifetime is enumerated, or whether a target date filters the output.
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?
Two front-loaded sentences plus a compact metadata block; every element is load-bearing and nothing is padded. It is arguably too terse for the domain, but there is no wasted wording.
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 nested in a family of ~60 dasha endpoints, the level definition and recursion note are the essential differentiators and the output schema covers return values. However, nothing explains what paramayu means to a caller, how this level relates to the antar/prana/sookshma siblings, or what the target-date fields do, leaving gaps an agent must guess at.
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 carries the parameter semantics (birth data, ayanamsa, timezone handling, compact-mode fields/precision) and the description adds nothing to them, which sets the baseline at 3. Notably the description does not touch the targetDate/targetTime window at all, but with full schema coverage that omission is not penalized heavily.
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 the specific dasha level (Kalachakra Pratyantardasha) and defines its depth as a 3-level cascade MD → AD → 9 PDs, which implicitly separates it from the kalachakra_antar (MD→AD) and kalachakra_prana (deeper) siblings. It stops short of explicitly naming or contrasting those siblings, so an agent must infer the ordering from the shared naming convention.
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?
No when-to-use, when-not-to-use, or alternative routing is given. The cascade notation hints at the level of granularity but never states a condition such as 'use when the question concerns sub-sub-periods rather than Mahadasha-level timing', and no prerequisites (e.g. that a target date drives the period list) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_sookshmaDashas: Kalachakra SookshmadashaBRead-onlyIdempotentInspect
Kalachakra Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 covered. The description adds genuinely useful non-schema facts: the endpoint and a 20-credit Tier 2 cost, which matters for budgeting. It says nothing about the computed output's nature or depth, so it is adequate rather than rich.
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?
Four short lines, front-loaded with the technique name and the cascade depth, then bracketed metadata. Nothing is padded, though the body is closer to a label than a description.
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 schema carries the full input contract. However, for a niche nested dasha in a family of roughly sixty dasha siblings, an agent gets no help on what '4-level cascade' yields or how sookshma differs in granularity, leaving the routing decision underspecified.
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 birth-data block documents date/time/latitude/longitude, timezone handling, ayanamsa and houseSystem in detail, plus the fields and precision compaction params. The description adds no parameter meaning at all, so the baseline 3 for a fully documented schema 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?
Names the specific technique (Kalachakra Sookshmadasha) and its shape (4-level cascade), which distinguishes it from the Kalachakra maha/antar/pratyantar/prana siblings and from other dasha families. It stops short of an explicit verb or of stating what the tool returns, so it is clear but not fully self-routing.
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?
There is no statement of when to pick sookshma over prana or pratyantar, no prerequisites, and no named alternative. The agent must infer the usage tier purely from the name suffix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_antarDashas: Shatabdika AntardashaARead-onlyIdempotentInspect
Shatabdika Antardasha: 7 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 100).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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 genuinely new behavioral facts: the recursive proportional split formula (parent_years × sub_planet_period / 100), the cost (20 credits, Tier 2) and the endpoint. It stops short of describing failure modes when no MD is running at targetDate.
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?
Two short sentences plus bracketed metadata lines; the definition and formula come first, routing/cost metadata after. Nothing is padded, though the formula sentence is of marginal use to an agent selecting 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?
An output schema exists so return values need no explanation, and annotations cover the safety profile. Cost, endpoint and level semantics are present; the remaining gap is disambiguation from the four sibling Shatabdika levels and the other dasha systems sharing this naming pattern.
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 birth-data body, fields and precision are already documented. The description does add meaning for targetDate, which is otherwise an undocumented pattern-only property, by stating it selects the running mahadasha — but it says nothing about targetTime or targetTzOffset.
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: the Shatabdika antardasha sub-periods of the currently running mahadasha, plus the count (7) and the selecting input (targetDate). This implicitly separates it from the _maha level and from deeper levels, though it never names pratyantar/prana/sookshma siblings explicitly.
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 only usage signal is 'at targetDate', which implies a date is required but gives no guidance on when to pick this level over _maha, _pratyantar, _prana or _sookshma, nor on the prerequisite that a running mahadasha must exist. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_mahaDashas: Shatabdika MahadashaBRead-onlyIdempotentInspect
Shatabdika Dasha: 100-year nakshatra dasha cycle (BPHS Adhyaya 46 group). 7 planets (no shadow planets), seed nakshatra = Revati (27). Sequence: Sun(5)→Moon(5)→Venus(10)→Mercury(10)→Jupiter(20)→Mars(20)→Saturn(30). Distribution: 6 planets get 4 nakshatras each, Saturn gets 3. Standard nakshatra-fraction × period balance rule. Algorithm port of PyJHora sataatbika.py.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
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 usefully adds the credit cost (Tier 2, 20 credits), the deterministic algorithm source (PyJHora sataatbika.py port) and structural rules of the cycle, but says nothing about what the response looks like or lineage of the returned periods.
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 in the first clause, followed by compact supporting detail (planet sequence, distribution) and metadata tags. The planet/period chain is dense but each element carries real information; there is little waste.
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 values need not be described, and parameters are fully documented in the schema. The description covers the algorithm and cost adequately; its only real gap is not stating that this is the mahadasha (top) level of the hierarchy relative to its 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 schema already documents the birth-data body, fields compact mode and precision. The description adds no parameter-level meaning at all, 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 subject: the Shatabdika 100-year nakshatra dasha cycle, with planet sequence, seed nakshatra and distribution rule. It clearly identifies the dasha system, but never explicitly says this tool returns the mahadasha-level periods (as opposed to the antar/pratyantar/prana/sookshma siblings in the same family), so sibling differentiation is left implicit in the name.
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?
No guidance on when to call this versus the four other shatabdika sibling tools (antar, pratyantar, prana, sookshma), nor any statement of prerequisites such as needing birth data. The reader is left to infer the level of the dasha hierarchy from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_pranaDashas: Shatabdika PranadashaBRead-onlyIdempotentInspect
Shatabdika Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 usefully adds the endpoint and the 20-credit Tier-2 cost, but discloses nothing about the volume/shape of a 5-level cascade or any auth requirement.
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?
Two compact lines with the operative fact ('5-level cascade, finest grain') front-loaded, followed by structured metadata lines for group, endpoint and cost. No filler, though the bracketed metadata is boilerplate rather than task 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?
An output schema exists, so return values need no explanation, and cost/endpoint are supplied. However, for a tool sitting inside a family of five near-identical Shatabdika variants, the definition never explains what the prana level is for or when it beats the sookshma/pratyantar alternatives.
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 body schema carries extensive field-level documentation (timezone semantics, rejected short forms, houseSystem letters). The description adds nothing beyond that, so 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 the specific resource (Shatabdika Pranadasha) and adds structural meaning with '5-level cascade (finest grain)', which tells the agent this returns deeply nested dasha periods. It does not explicitly name the neighboring levels (maha/antar/pratyantar/sookshma) to contrast against, but the resource is 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?
There is no when-to-use guidance, no statement of what distinguishes the prana level from the five sibling Shatabdika tools, and no prerequisites. Only the cost tier is given, which is operational rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_pratyantarDashas: Shatabdika PratyantardashaBRead-onlyIdempotentInspect
Shatabdika Pratyantardasha: 3-level cascade (MD → AD → 7 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructiveness, so the safety profile is covered. The description adds genuinely useful non-annotation context — the endpoint and the 20-credit Tier 2 cost — but says nothing about execution behavior, response size, or any limits, which is acceptable given the 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?
Very terse: one substance line plus bracketed metadata for group, endpoint and cost. Front-loaded and free of filler, though the metadata lines are boilerplate rather than task-relevant 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?
The rich schema, output schema and annotations carry most of the burden, so the thin description is tolerable. Still, for a domain-specific tool sitting among ~10 near-identical dasha variants, the description never explains what Shatabdika Pratyantardasha is or when it beats its Antar/Prana/Sookshma siblings — the main gap an agent would hit.
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 body, fields and precision parameters are each thoroughly documented in the schema (including birth-data field constraints and compact-mode semantics). The description adds no parameter detail, so the baseline of 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?
The description identifies the specific dasha system (Shatabdika), the level (Pratyantardasha), and adds the cascade shape (MD → AD → 7 PDs), so an agent knows this returns the third-level breakdown. It does not, however, distinguish this level from the sibling shatabdika_maha/antar/prana/sookshma tools sharing the same 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?
There is no when-to-use guidance, no prerequisites, and no naming of alternatives. The agent is left to infer from the level suffix alone which of the five Shatabdika depth tools to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_sookshmaDashas: Shatabdika SookshmadashaCRead-onlyIdempotentInspect
Shatabdika Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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, covering safety and idempotency. The description adds nothing beyond the name: it does not mention cost (20 credits is listed but that's metadata, not behavioral), expected runtime, auth requirements, or any side effects. No contradiction, but minimal added value.
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 extremely short (four lines) and front-loads the tool name, but includes bracketed metadata that is redundant with sibling tools. It is concise but lacks substantive content, making it feel under-specified rather than 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?
Given the complexity of Vedic dasha calculations and the presence of many similar sibling tools, the description is inadequate. It does not explain the cascade levels, what 'sookshma' means in this context, or how it differs from prana/pratyantar/antar levels. An output schema exists, so return values need not be described, but the description still leaves major gaps for correct tool selection.
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 fully documents parameters like date, time, latitude, longitude, timezone, and the targetDate/targetTime extension. The description provides no parameter information; baseline 3 is appropriate when schema does all the work.
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 the tool's function ('Shatabdika Sookshmadasha: 4-level cascade'), which conveys that it computes the sookshma (4th) level of the Shatabdika dasha system. However, it does not differentiate from siblings like astroway_vedic_dashas_shatabdika_prana or astroway_vedic_dashas_shatabdika_pratyantar, which are also sub-levels of the same system. A user must already know the hierarchy to pick the right one.
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?
There is no guidance on when to use this tool versus its many siblings (other dasha systems or other levels of the same system). The only contextual hint is '4-level cascade', which lightly implies it's the deepest level but doesn't state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_antarDashas: Shodashottari AntardashaBRead-onlyIdempotentInspect
Shodashottari Antardasha: 8 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 116).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral content beyond them: the returned count (8 sub-periods), the recursive proportional split formula (parent_years × sub_planet_period / 116), and the billing tier (20 credits, Tier 2). It does not disclose failure modes, such as what happens when targetDate falls outside the running MD.
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 tool's identity and behavior in two compact sentences, with endpoint/group/cost metadata clearly bracketed below. No filler. The formula parenthetical is terse but functional rather than verbose.
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 nested input schema is richly documented, so return values and parameters are covered elsewhere. What is missing is the disambiguation context an agent needs to pick this tool over its numerous dasha siblings; for a leaf computation tool it is adequate but not self-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 description coverage is 100% and the nested body schema already documents every field in detail, so the baseline is 3. The description only lightly reinforces `targetDate` as the anchor for the running MD and adds nothing about `fields` or `precision` 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?
Names the specific resource (Shodashottari Antardasha) and scopes it concretely: '8 sub-periods of the running MD at targetDate.' An agent knows it returns a computed period set, not a chart or a lookup. However, it never distinguishes itself from the near-identical siblings (pratyantar, prana, sookshma, maha), so the agent must supply the domain knowledge of what an 'antar' level is.
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?
There is no when-to-use, when-not-to-use, or alternatives statement. In a family of 60+ dashas tools split by both system (ashtottari, chara, vimshottari, yogini...) and depth (maha/antar/pratyantar/prana/sookshma), the absence of any routing guidance is a real gap. The agent has to infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_mahaDashas: Shodashottari MahadashaARead-onlyIdempotentInspect
Shodashottari Dasha: 116-year nakshatra dasha cycle (BPHS Adhyaya 46 group). 8 planets (Rahu excluded, Ketu included), seed nakshatra = Pushya (8). Sequence: Sun(11)→Mars(12)→Jupiter(13)→Saturn(14)→Ketu(15)→Moon(16)→Mercury(17)→Venus(18). Distribution: 3 planets get 4 nakshatras, 5 get 3. Per AmatyaKaraka tradition: applicable when lagna in Chandra hora during Krishna paksha OR Surya hora during Shukla paksha (informational; dasha is computed regardless). Algorithm port of PyJHora shodasottari.py.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
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 context beyond them: the 20-credit Tier 2 cost, the deterministic algorithm provenance (PyJHora shodasottari.py port), and the caveat that the applicability condition does not gate computation. This is notably richer than typical sibling stubs.
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 (cycle length, planet set, seed nakshatra) before finer structural detail, and every sentence carries technical content. The parenthetical citations (BPHS Adhyaya 46) and algorithm-source note are dense but not 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?
Given a rich input schema and an existing output schema, the description covers the domain semantics (structure, sequence, distribution, applicability) thoroughly enough to call the tool correctly. The one gap is that it doesn't orient the agent within the maha/antar/pratyantar/prana/sookshma family.
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 nested body schema richly documents date/time/latitude/longitude/timezone/ayanamsa/houseSystem along with the fields and precision compact-mode params. The description adds no parameter detail, so the 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?
Names a specific verb+resource (Shodashottari Dasha computation) and defines the system precisely: 116-year cycle, planet set, seed nakshatra, and sequence. However, it never explicitly distinguishes the Maha level from the sibling shodashottari_antar/pratyantar/prana/sookshma tools, leaving the level differentiation to the tool name and title.
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 domain-level applicability rule (AmatyaKaraka tradition: lagna in Chandra hora during Krishna paksha, or Surya hora during Shukla paksha) but labels it 'informational' since the dasha is computed regardless. No explicit guidance on when to prefer this over other dasha systems or the sub-period siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_pranaDashas: Shodashottari PranadashaCRead-onlyIdempotentInspect
Shodashottari Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 fully covered. The description adds two pieces of context beyond that — the 20-credit Tier 2 cost and the output granularity ('5-level cascade, finest grain') — which is useful but thin, with no note on volume/size of the cascade output.
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?
It is very short and front-loads the system and level name before the bracketed metadata. Nothing is padded, though the bracket block is largely structured metadata (endpoint, cost) that could be considered 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 and 100% schema coverage, the return-value burden is off the description's shoulders. Still, for a specialized Vedic dasha tool with body target-date fields, it omits what a '5-level cascade' actually contains and when the targetDate parameters matter, so it is only adequately complete.
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 detailed nested body description and clear field/precision explanations, so the schema carries the parameter burden. The description itself adds nothing about parameters (e.g. how targetDate/targetTime interact with the birth date), 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 names the specific dasha system (Shodashottari) and level (Pranadasha) and hints at depth with '5-level cascade (finest grain)', so the resource is identifiable. However, it uses no verb at all — it never says the tool computes/returns dasha periods — and it does not explicitly distinguish itself from the many sibling levels (maha/antar/pratyantar/sookshma), leaving the agent to infer the ordering.
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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives, despite dozens of closely related dasha tools in the sibling list. The only routing help is implicit ('finest grain'), which is weak given how easily this could be confused with the sookshma or pratyantar variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_pratyantarDashas: Shodashottari PratyantardashaBRead-onlyIdempotentInspect
Shodashottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
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 fully covered. The description adds the cost tier (20 credits, Tier 2) and the endpoint, which are genuinely useful beyond the annotations, but it says nothing about output shape, computation limits, or failure modes.
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?
Extremely tight: one identifying line plus structured [Group]/[Endpoint]/[Cost] tags, with the core concept front-loaded. Nothing is wasted, though a single clause on scope (level depth vs. sibling tools) would have cost nothing and added clarity.
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 annotations plus the 100%-covered schema carry most of the burden. What remains missing is routing guidance among the ~45 dasha-family siblings, which is the main decision an agent faces with 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?
Schema description coverage is 100%, including a rich nested description of the birth-data body, ayanamsa handling, timezone semantics and compact-mode fields/precision. The description adds no parameter meaning of its own, so the baseline of 3 for a fully documented schema 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?
The description names the specific dasha system (Shodashottari) and, via the parenthetical '3-level cascade (MD → AD → 8 PDs)', makes the depth of calculation concrete. That implicitly separates it from the maha/antar/prana/sookshma siblings, but no sibling is named outright, so it falls short of a 5.
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?
There is no when-to-use statement, no prerequisite (e.g. requires birth data), and no pointer to the adjacent maha/antar/prana/sookshma tools for other dasha depths. The agent must infer applicability purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_sookshmaDashas: Shodashottari SookshmadashaCRead-onlyIdempotentInspect
Shodashottari Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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, closed-world call, so the safety profile is covered. The description does add genuinely useful operational context the annotations lack: the endpoint and the cost (20 credits, Tier 2). It still says nothing about what the cascade contains or any limits, so it is adequate but not rich.
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 content is front-loaded and free of filler, and the metadata block is scannable. But it is under-specified rather than truly concise: three short lines carry only a name fragment, an endpoint, and a price, with the substantive explanation of the operation absent.
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 plus the rich nested schema cover inputs and safety. The remaining gap is any statement of what the '4-level cascade' computation actually yields or how it differs from the sibling levels, leaving the definition minimally complete.
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 nested birth-data schema is extensively documented (timezone handling, houseSystem letters, fields/precision compact mode). The description adds no parameter meaning of its own, 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?
The description names the resource (Shodashottari Sookshmadasha) and adds the fragment '4-level cascade,' which hints at the depth of sub-division relative to siblings like maha/antar/pratyantar. However, it does not state a verb or explain what is computed, and it largely echoes the title. It is enough to guess the domain but not to confidently distinguish it from its sibling dasha-level 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?
There is no guidance on when to use this tool versus the other ~60 dasha and Vedic siblings (e.g. shodashottari_pratyantar or vimshottari_sookshma). No prerequisites, no exclusions, no alternatives are named. The agent is left to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_antarDashas: Shoola AntardashaBRead-onlyIdempotentInspect
Shoola Antardasha: sub-periods of running MD at targetDate per chosen antardasaSeedOption.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No |
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 fully covered by structured data. The description adds genuinely useful non-annotation context: the endpoint and the 20-credit Tier 2 cost. It does not, however, explain the meaning of antardasaSeedOption values 1/2/3, which is real behavioral information the agent needs.
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?
One front-loaded sentence carries the payload, followed by clearly bracketed metadata lines (group, endpoint, cost). Nothing is padded. It is slightly too terse for a tool with a cryptic seeded parameter, but structurally it is clean.
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 annotations cover safety, so the return format need not be described. What is missing is domain context: what 'running MD' means operationally, how targetDate/targetTime interact with the natal data, and what the antardasaSeedOption constants select. For a niche dasha tool with a non-obvious seed parameter, the description is adequate but leaves a real 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 reported at 100%, and the nested body description is unusually thorough (rejected short forms, timezone handling, houseSystem letters). Against that baseline a 3 is correct: the description names targetDate and antardasaSeedOption but adds no semantics beyond what the schema already carries, and the seed option's three constants remain unexplained.
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 gives a specific verb-and-resource: it returns the antardasha sub-periods of the running mahadasha at targetDate. This is far more informative than a tautology, and an agent familiar with the dasha hierarchy can place it. However, it never names or distinguishes itself from its direct siblings (shoola_maha, shoola_pratyantar, shoola_sookshma, shoola_prana), so sibling differentiation is left entirely to the tool name.
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?
There is no when-to-use guidance, no prerequisites, and no routing to alternatives such as shoola_maha (for the mahadasha level itself) or the deeper pratyantar/sookshma variants. The only usage cue is implicit in the name 'antar'. Cost tier is mentioned but that is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_mahaDashas: Shoola MahadashaARead-onlyIdempotentInspect
Shoola Dasha: Jaimini "Trident" rasi-dasha. Seed = stronger_rasi(asc, asc+6) by default (houseIndex=1; can be 1..12 to shift the lagna anchor). MD = 12 signs forward, 9 years each. Sub-period antara-seed option=2 by default (stronger_rasi of parent vs parent+6); option 1 = sign of lord(parent), option 3 = sign of lord(stronger). Children: equal 12-fold split, forward from antara seed.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No |
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 value beyond them by disclosing the credit cost (20 credits, Tier 2) and the default computational branches, which materially affect what comes back. It still says nothing about response size or pagination.
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 identity of the dasha before the algorithm, and the appended group/endpoint/cost block is a tight metadata footer. The notation (`stronger_rasi(asc, asc+6)`) is dense and never defined, which costs a little readability but not 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 not be explained, and the algorithm and defaults are well covered. However the targetDate/targetTime/targetTzOffset inputs are never mentioned in the schema properties or the description, so an agent cannot tell whether they trigger a 'current period at this date' computation or are ignored.
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 genuinely adds meaning the schema cannot: the schema only shows `antardasaSeedOption` as const 1/2/3, while the description defines option 1 = sign of lord(parent), option 2 = stronger_rasi of parent vs parent+6, option 3 = sign of lord(stronger). It likewise explains that `houseIndex` shifts the lagna anchor rather than merely ranging 1..12.
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 resource and scope: Shoola Dasha as a Jaimini 'Trident' rasi-dasha, and 'MD' plus '12 signs forward, 9 years each' pins it to the mahadasha level. It is clear enough to separate this from the other 50+ dasha tools, though it never explicitly contrasts itself with its own shoola_antar/pratyantar/sookshma siblings or states the output shape in task terms.
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?
There is no when-to-use guidance and no routing to alternatives. The defaults discussed (`houseIndex=1`, `option=2`) are parameter behaviour, not selection criteria, so an agent must infer from the tool name alone whether to call this versus shoola_antar or shoola_pratyantar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_pranaDashas: Shoola PranadashaBRead-onlyIdempotentInspect
Shoola Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
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 useful operational context not in the annotations: the HTTP endpoint and the cost (20 credits, Tier 2). It does not explain what a 'cascade' returns or how the five levels nest, which is the main behavioral unknown.
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?
Extremely tight and front-loaded: purpose first, then group, endpoint and cost in bracketed metadata that an agent can parse quickly. It errs toward under-specification rather than verbosity, but nothing present 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 not be described, and annotations cover safety. Still, for a 3-parameter paid dasha endpoint inside a family of five near-identical siblings, the description leaves the agent without usage guidance or level-selection logic, which is a real 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%, with the body/natal-chart object, fields and precision all documented in the schema itself (including the timezone, lat/lon and houseSystem caveats). The description contributes nothing further about parameters, so the baseline 3 for schema-carried semantics 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?
Names the specific dasha system and level ('Shoola Pranadasha') and adds the scope qualifier '5-level cascade (finest grain)', which helps position it against the shoola_maha/antar/pratyantar/sookshma siblings. However, it is a bare noun phrase with no verb, so the agent must infer that it computes/returns periods rather than, say, lists definitions.
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?
No when-to-use guidance, no prerequisites (e.g. that birth data with date/time/coordinates is required), and no explicit routing against the four other Shoola levels. 'Finest grain' implies a timing-resolution intent but never states the condition that should select this tool over shoola_sookshma or shoola_maha.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_pratyantarDashas: Shoola PratyantardashaCRead-onlyIdempotentInspect
Shoola Pratyantardasha: 3-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
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 a genuinely useful behavioral fact not present in annotations: cost of 20 credits (Tier 2). It does not describe response shape, pagination, or computational limits, but with annotations carrying safety this earns a 3.
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 short and front-loaded, with no rambling. However, the first line merely repeats the title and the bracketed Group/Endpoint lines are largely redundant with the tool name, so the brevity reflects missing substance rather than disciplined editing.
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 domain-specific tool with a dense nested schema (birth data plus target date/time/house/seed options) and numerous near-identical dasha siblings, the description provides no interpretive help at all. An output schema exists, so return values need not be explained, but the absence of any explanation of the dasha level or how to choose it leaves the definition incomplete.
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 itself documents body, fields, and precision in detail. The description adds nothing about parameters — no mention of birth data, targetDate, houseIndex, or the antardasaSeedOption seed. Baseline 3 applies 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's core is 'Shoola Pratyantardasha: 3-level cascade', which essentially restates the tool name and title rather than stating what the tool produces. The '3-level cascade' phrase hints at output depth, but it does not explain the level hierarchy in a way that lets an agent distinguish this from siblings such as shoola_maha, shoola_antar, or shoola_prana.
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?
There is no statement of when to use this tool versus the many sibling dasha levels (maha/antar/pratyantar/prana/sookshma) or versus other dasha systems (vimshottari, yogini, chara, etc.). The only context is 'Group: Vedic' and the endpoint path, which is routing metadata rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_sookshmaDashas: Shoola SookshmadashaCRead-onlyIdempotentInspect
Shoola Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
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 real context — endpoint path and the 20-credit Tier 2 cost — which is useful for a metered API call, but it says nothing about output shape or any rate/limit behavior beyond cost.
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?
It is short and free of padding, but the first line is largely a restatement of the name/title, and the bracketed metadata tags are machine-oriented rather than agent-facing prose. No waste, but also almost no substance.
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 nested birth-data body, an output schema, and a dense family of near-identical dasha siblings, this description is incomplete: it does not say what a sookshma-level Shoola dasha is, how deep the cascade goes in the response, or when this level is preferred over maha/antar/pratyantar/prana.
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 rich notes on timezone, timezoneOffset, coordinates and compact-mode fields/precision, so the schema carries parameter semantics fully. The description adds no parameter information, which is the correct baseline of 3 when the schema already does the work.
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 essentially restates the tool name and title ('Shoola Sookshmadasha'), adding only '4-level cascade'. It never states what the tool returns (Shoola dasha periods at the 4th/sookshma level) or how it differs from the sibling Shoola maha/antar/pratyantar/prana 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?
There is no guidance on when to use this tool versus the many sibling dasha tools, no prerequisites, and no exclusions. An agent has nothing to route on besides the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_antarDashas: Sthira AntardashaBRead-onlyIdempotentInspect
Sthira Antardasha: equal-split sub-periods of running MD at targetDate.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No |
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 covered. The description adds one genuine behavioral fact — the sub-periods are an 'equal split' of the running mahadasha (distinctive to Sthira dasha versus proportional systems) — plus the credit cost (20 credits, Tier 2). It says nothing about edge cases such as what happens when targetDate falls outside the running MD, or output shape. Useful but thin beyond 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?
One front-loaded sentence, with group/endpoint/cost metadata clearly separated. Nothing is padded. The [Endpoint: POST ...] line adds little for an agent choosing a tool, keeping this just 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 no explanation, and annotations cover the read-only safety profile. What is missing is domain context: 'MD' is undefined and the five-level dasha nesting (Maha > Antar > Pratyantar > Sookshma > Prana) that distinguishes this tool from its identical-looking siblings is never stated. Adequate for an expert, thin for a general agent navigating this large tool family.
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 body (date, time, latitude, longitude, timezone, ayanamsa, houseSystem, etc.) and the compact-mode fields/precision parameters are all documented in the schema itself. The description only pins down targetDate by name and does not explain targetTime/targetTzOffset or how the target date interacts with the birth data. Baseline 3 applies 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?
The description names a specific resource and scope ('Sthira Antardasha: equal-split sub-periods of running MD at targetDate'), which tells the agent this returns the Antar (second) level of the Sthira dasha tree rather than the Maha or Pratyantar levels. The abbreviation 'MD' is left undefined and no sibling is named explicitly, so the differentiation from sthira_maha/sthira_pratyantar relies on the agent parsing the name. Clear but not self-explanatory.
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?
There is no when-to-use statement, no exclusion of alternatives, and no prerequisites. With roughly thirty near-identical dashas siblings in the same namespace (Vimshottari, Yogini, Chara, Shoola, etc., each with maha/antar/pratyantar/sookshma/prana levels), the agent gets no guidance on how to choose this one over the others. The single sentence states content, not usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_mahaDashas: Sthira MahadashaARead-onlyIdempotentInspect
Sthira Dasha: Jaimini fixed rasi-dasha. Seed = sign of Brahma planet (PyJHora house.brahma: stronger of asc vs 7th → top-2 lords of 6/8/12 from stronger rasi → strongest by 6 Jaimini rasi-rules). MD walks 12 signs forward; per-sign duration 7y movable / 8y fixed / 9y dual. Sub-periods: equal 12-fold split, forward from parent. Year basis 365.256364d (sidereal year, PyJHora canon).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds real behavioral substance beyond that: the seed derivation (Brahma planet via house.brahma), the per-sign durations (7y movable / 8y fixed / 9y dual), the equal 12-fold sub-split, the 365.256364d sidereal year basis, and the 20-credit cost.
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 a single dense, front-loaded paragraph that leads with the system identity, then the algorithm, then the metadata block. Every clause carries domain information, though the jargon density (house.brahma, Jaimini rasi-rules) is heavy for a general reader.
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 explained, and annotations cover the safety profile; the description supplies the algorithmic grounding an astrologer would need to interpret the periods. It falls short only on selection guidance relative to the many sibling dasha tools.
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% (birth-data block, fields, precision all documented in the schema), so the schema does the heavy lifting and the baseline is 3. The description adds no parameter-level meaning — nothing about which inputs affect the Brahma-planet seed or the targetDate/targetTime 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 description names the specific system (Sthira Dasha, the Jaimini fixed rasi-dasha) and describes the output as a Mahadasha sequence that 'walks 12 signs forward', which is a concrete verb+resource. It does not, however, explicitly distinguish this tool from its sthira_antar/pratyantar/sookshma siblings — it even mentions sub-periods, which belong to the deeper-level tools, creating slight ambiguity about scope.
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?
There is no statement of when to choose this tool over the other dasha systems (vimshottari, chara, yogini, etc.) or over the other Sthira levels. No prerequisites or exclusions are given; the only routing signal is the tool name and the bracketed group/endpoint metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_pranaDashas: Sthira PranadashaBRead-onlyIdempotentInspect
Sthira Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
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 fully covered structurally. The description contributes real additional signal: the endpoint and a concrete cost (20 credits, Tier 2), which matters for an agent budgeting calls. It does not add anything about result shape or latency, but with annotations carrying the behavioral burden a 3 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?
Three compact lines, front-loaded with the identity of the dasha and its grain, followed by terse bracketed metadata. Every element earns its place with no prose padding, though the metadata block is more catalog-style than explanatory.
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 input schema is exhaustive. The gap is routing context: as one of ~60 near-identical dasha tools, the description does not tell an agent how to pick this level over its siblings, leaving completeness at minimum-viable.
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 nested body schema richly documents date/time/latitude/longitude, ayanamsa, timezone, houseSystem, plus fields/precision. The description adds nothing about parameters, so baseline 3 applies since the schema does all the work.
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 (Sthira Pranadasha) and qualifies it as a '5-level cascade (finest grain)', which distinguishes it from the coarser sthira_maha/antar/pratyantar/sookshma siblings. However, the verb is implicit (compute/list) and it leans on the reader knowing the dasha-level hierarchy rather than spelling out that this returns the finest sub-period subdivision.
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?
No statement of when to use this level versus the adjacent sthira levels or the many parallel dasha systems (vimshottari, ashtottari, yogini, etc.). The '(finest grain)' hint implies a use case but no explicit when/when-not or alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_pratyantarDashas: Sthira PratyantardashaCRead-onlyIdempotentInspect
Sthira Pratyantardasha: 3-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered without the description. The description does add cost ('20 credits, Tier 2') and the concrete endpoint, which are genuinely useful and not present in structured fields, but it says nothing about what the cascade returns or any compute/rate behavior.
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?
Four short lines, front-loaded with the technique name and then metadata. Nothing is padded, and the reader reaches the endpoint and cost immediately.
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 input schema is rich, but for an agent choosing among dozens of near-identical dasha endpoints the description never explains what a '3-level cascade' produces or why this depth is chosen. The technique-specific context that would justify selecting it 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 nested birth-data schema documents date/time/latitude/longitude, timezone handling, houseSystem letters and the ayanamsa enum in detail, so the schema carries the full burden. The description adds no parameter meaning at all, which is the baseline 3 case.
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 restates the tool name ('Sthira Pratyantardasha: 3-level cascade') without a specific verb or resource explanation, and gives no way to tell it apart from the sibling levels sthira_maha, sthira_antar, sthira_prana and sthira_sookshma. '3-level cascade' hints at the depth layer but is not defined anywhere.
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?
There is no statement of when to use this tool, what condition selects it over the other Sthira or Vimshottari dasha depths, or what prerequisites it has. The only routing signal is the surrounding '[Group: Vedic]' tag, which is taxonomy, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_sookshmaDashas: Sthira SookshmadashaCRead-onlyIdempotentInspect
Sthira Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
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 two genuinely useful pieces beyond that: the credit cost (20, Tier 2) and the backing endpoint. It still says nothing about compute weight or what the cascade returns, but with rich annotations and an output schema the bar is lower.
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?
Four short lines, front-loaded with the purpose, with no filler sentences. The bracket lines are terse and scannable, though they are largely boilerplate rather than substance, which keeps this just 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?
Annotations, a full input schema and an output schema mean return values and safety need not be explained, and cost/endpoint are covered. What is missing is the one thing this description uniquely must supply: how Sookshma differs from the other four Sthira levels and from the ~30 sibling dasha tools. Without it, an agent in this namespace cannot select 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?
All 3 top-level parameters (body, fields, precision) carry full schema descriptions, including detailed birth-data rules, the fields dotted-path compact mode and precision rounding. The description adds nothing about parameters, but the baseline is 3 when schema coverage is 100% and the schema does the work.
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 the dasha system and level and adds that it is a '4-level cascade', which hints at the depth of sub-period breakdown. However, it never explains what Sthira Sookshmadasha means relative to its near-identical siblings (sthira_maha, sthira_antar, sthira_pratyantar, sthira_prana), so an agent cannot distinguish this from four other Sthira tools. Vague rather than misleading.
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?
There is no when-to-use statement, no prerequisites, and no mention of alternatives such as the coarser Sthira levels. The bracketed lines give group, endpoint and cost, which is operational metadata, not usage guidance. The agent is left to infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_antarDashas: Tribhagi AntardashaARead-onlyIdempotentInspect
Tribhagi Antardasha: 9 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 40).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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 and the bar is lower. The description adds the cost (20 credits, Tier 2), the POST endpoint, and the arithmetic used to derive each sub-period — real added context, though the group/endpoint lines are boilerplate. It does not state response volume (9 periods) mapping to output, 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 with the tool's identity and scope in one sentence, followed by a compact formula and the standard metadata block. No filler prose; the only mild excess is the metadata block that repeats across the whole tool family.
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 the rich body schema covers inputs including timezone and ayanamsa handling. What remains thin is routing: no explicit contrast among the five Tribhagi levels (maha/antar/pratyantar/prana/sookshma) that share nearly identical names in the sibling list.
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 body (birth data, timezone semantics, house system letters, offsets) is already fully documented in the schema and the nested body description. The description only references `targetDate`, which the schema already defines with its pattern, adding no new syntax or semantics; 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: it computes the Tribhagi Antardasha, defined as the 9 sub-periods of the running Mahadasha at targetDate, plus the proportional-split formula. This implicitly separates it from tribhagi_maha (the parent level) and the deeper tribhagi_pratyantar/prana/sookshma levels, but it never names those siblings or the hierarchy explicitly, so an agent must infer the distinctness.
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 implied by the definition — you call it when you want the second-level (antardasha) division of the current Mahadasha at a given target date. There is no explicit statement of when to prefer this over the sibling tribhagi levels or the other dasha systems (vimshottari, yogini, etc.), and no prerequisites beyond the schema-required birth data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_mahaDashas: Tribhagi MahadashaARead-onlyIdempotentInspect
Tribhagi Dasha: 1/3-scale variant of Vimshottari (40-year cycle). Same 9-planet sequence (Ketu→Venus→Sun→Moon→Mars→Rahu→Jupiter→Saturn→Mercury) and same nakshatra-mapping rule, all periods × (1/3): Ketu 7/3, Venus 20/3, Sun 2, Moon 10/3, etc. Useful when finer-grain timing is needed within a Vimshottari-equivalent span. Returns the running cycle of 9 mahadashas from the chart's initial-balance-adjusted birth time.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
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 behavioral value beyond that: it says what is returned (the running cycle of 9 mahadashas), that timing is anchored to the initial-balance-adjusted birth time, and the 20-credit Tier 2 cost. Rate limits and pagination behavior are not mentioned.
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 definition, then the calculation rule, then the use case, then the return shape. The period list ("Ketu 7/3, Venus 20/3, Sun 2, Moon 10/3, etc.") is informative but trails into an incomplete enumeration that a table or single multiplier statement would have covered more cleanly.
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 explanation, and the description still adds the semantic anchor (initial-balance-adjusted birth time). The only real gap is the absence of any hint that full birth data (date, time, coordinates, timezone) is required, though the phrase "chart's... birth time" implies 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 description coverage is 100%, with the nested birth-data object, timezone/ayanamsa rules, and compact-mode fields and precision all documented in the schema itself. The description contributes nothing about parameters, so the baseline 3 applies rather than a penalty or a bonus.
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 (returns the mahadasha cycle) and pins the variant precisely: a 1/3-scale Vimshottari with the same 9-planet sequence and nakshatra rule, distinguishing it from astroway_vedic_dashas_vimshottari_maha without naming it. The 40-year cycle and the explicit period arithmetic make the tool's identity unmistakable among the many dasha 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 a clear positive condition: "Useful when finer-grain timing is needed within a Vimshottari-equivalent span." It does not state when NOT to use it or point at the alternative sibling (e.g. standard Vimshottari for conventional periods, or tribhagi_antar for sub-levels), so an agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_pranaDashas: Tribhagi PranadashaCRead-onlyIdempotentInspect
Tribhagi Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 usefully adds cost (20 credits, Tier 2) and the endpoint path, but says nothing about the operation's output shape or timing beyond 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?
Extremely compact and front-loaded: one identifying line followed by three bracketed metadata tags. Nothing is wasted, though the bracket tags read as mechanical metadata rather than 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?
An output schema exists, so return values need not be described, and the input schema is rich. Still, for a dasha endpoint sitting among five identically named tribhagi levels, the description does not clearly establish where 'prana' sits relative to sookshma/pratyantar, leaving selection partly 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 description coverage is 100% — every parameter (body, fields, precision) is documented in the schema itself, including birth-data constraints and compact mode. The description adds no parameter meaning on top of that, 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?
It names the specific dasha system and level (Tribhagi Pranadasha) and adds that it is the '5-level cascade (finest grain)', which hints at its place among the tribhagi siblings. However there is no verb and no explicit statement of what is computed or returned, so it largely restates the title plus a level qualifier.
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?
There is no when-to-use guidance, no mention of required birth data, and no routing to alternatives such as tribhagi_sookshma or tribhagi_pratyantar. The parenthetical 'finest grain' only weakly implies you pick this for maximum detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_pratyantarDashas: Tribhagi PratyantardashaARead-onlyIdempotentInspect
Tribhagi Pratyantardasha: 3-level cascade (MD → AD → 9 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
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 two genuinely useful operational facts beyond that: the endpoint (POST /v1/vedic/dashas/tribhagi/pratyantar) and the cost (20 credits, Tier 2), which agents need for budgeting. It stops short of explaining what the cascade output contains, but the output schema handles 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?
One content sentence plus three bracketed metadata lines; the dasha identity is front-loaded and nothing is padded. The '(MD → AD → 9 PDs)' fragment is terse to the point of being cryptic, which slightly undercuts the otherwise efficient structure.
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, an output schema, and annotations covering the safety profile, an agent has nearly everything needed to invoke this correctly; the credit cost even closes the budgeting gap. The only real hole is disambiguation from the near-identical tribhagi_antar/prana/sookshma 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% — the body, timezone/timezoneOffset, ayanamsa, houseSystem, fields and precision are all thoroughly documented in the schema itself, including rejection rules and defaults. The description adds no parameter meaning at all, 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?
Names a specific dasha system (Tribhagi) and a specific depth level (Pratyantardasha), and the '3-level cascade (MD → AD → 9 PDs)' phrasing hints at where it sits in the hierarchy. However, it never contrasts itself with the crowded sibling set — tribhagi_antar (shallow), tribhagi_prana/sookshma (deeper), or the vimshottari/yogini pratyantar tools — so the agent must infer the distinction.
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?
There is no when-to-use guidance, no statement of prerequisites (birth data is required but that is only implied by the schema), and no routing to alternatives such as tribhagi_antar or tribhagi_prana when a different depth is wanted. The group and endpoint metadata are taxonomy, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_sookshmaDashas: Tribhagi SookshmadashaCRead-onlyIdempotentInspect
Tribhagi Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
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 new behavioral information in the form of cost (20 credits, Tier 2) and the endpoint, which is useful for call planning, but it says nothing about what the 4-level cascade returns or how large the payload is.
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 text is short and the metadata is cleanly bracketed, so there is no filler, but it is under-specified rather than truly concise: the single content clause ("4-level cascade") is not enough to orient the agent. Brevity here reflects missing content, not economy.
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 rich body schema covers inputs, leaving the definition only marginally incomplete. However, for a specialised dasha computation sitting among ~140 astrology siblings, the failure to state what distinguishes sookshma from the other Tribhagi levels leaves the agent without enough to select it confidently.
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 body schema is unusually thorough (rejecting short forms, timezone/timezoneOffset precedence, houseSystem letter semantics), so the structured fields carry the full parameter burden. The description adds nothing about body, fields, or precision, which is the baseline-3 outcome when the schema does all the work.
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 body is essentially the title restated: "Tribhagi Sookshmadasha" plus a fragment, "4-level cascade," that hints at depth but names no verb and no resource action. It never says what the tool actually produces (a dasha timeline computed from birth data), and it gives no way to tell it apart from astroway_vedic_dashas_tribhagi_maha/antar/pratyantar/prana, which share an almost identical name.
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?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative tool. In a sibling set of five near-identical Tribhagi depth levels plus dozens of other dasha systems, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_antarDashas: Vimshottari AntardashaARead-onlyIdempotentInspect
Antardasha (sub-period) within the running Mahadasha. Identifies which MD is active at targetDate (default today UTC), then returns the 9 ADs covering that MD. Sub-period of planet Q within MD of P: years = (P.years × Q.years) / 120.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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 behavioral context — the default targetDate is today UTC, the result is exactly 9 ADs, and the cost line flags 20 credits (Tier 2) — but says nothing about output shape or temporal bounds.
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?
Three tight sentences, purpose first, formula last, followed by compact group/endpoint/cost metadata. Every line carries information; the formula is marginally decorative for tool selection but justifies the AD length semantics.
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 formatting need not be explained, and the input schema is unusually rich. The description supplies the one thing the schema omits (targetDate default) and the computation semantics, leaving only sibling routing as 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 coverage is 100% and the birth-data sub-schema is exhaustively documented, so the baseline is 3. The description earns an extra point by supplying the targetDate default ('today UTC'), which the schema itself does not declare.
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, well-defined output: it identifies the active Mahadasha at targetDate and returns the 9 Antardashas covering it, plus the AD-length formula. The term 'Antardasha (sub-period)' is defined inline, which separates it from the maha/pratyantar/prana/sookshma siblings by level. It does not, however, name any sibling explicitly for contrast.
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 implied by the period hierarchy (you want the second-level breakdown inside the running MD) and the description clarifies the default target date, but it never states when to choose this over vimshottari_maha, vimshottari_pratyantar, or the parallel Ashtottari/Yogini/Chara families.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_mahaDashas: Vimshottari MahadashaARead-onlyIdempotentInspect
Canonical Vimshottari Mahadasha sequence: 9 planets (Ketu/Venus/Sun/Moon/Mars/Rahu/Jupiter/Saturn/Mercury), 120-year total cycle, starts from the lord of Moon's nakshatra at birth. First period is truncated by elapsed fraction within Moon's nakshatra.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive call, so the safety profile is covered. The description adds genuine domain context the annotations cannot: the fixed 9-lord ordering, the 120-year cycle length, the nakshatra-lord starting rule, and the truncation of the first period. The stated 20-credit (Tier 2) cost is also operationally useful.
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?
Two dense sentences front-load the definition, followed by compact group/endpoint/cost metadata. Little waste, though the planetary list and the truncation rule could be trimmed without losing meaning.
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 output schema covers return values and the schema covers all parameters, so the description only needs to orient the agent. It does so adequately for the computational definition, but is silent on the one thing a sibling-heavy namespace demands: which dasha depth to request and why.
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 nested birth-data object plus the fields/precision compact-mode parameters are thoroughly documented in the schema itself. The description adds no parameter-level meaning (e.g. how ayanamsa or houseSystem interact with dasha computation), 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?
States precisely what is computed: the top-level Vimshottari Mahadasha sequence, with its 9 lords, 120-year cycle, starting rule and truncation of the first period. It never names its closest siblings (astroway_vedic_dashas_vimshottari_antar/pratyantar/prana/sookshma), so an agent must infer that this is the major-period level rather than a sub-period level from the word 'Mahadasha' alone.
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?
No when-to-use guidance, no prerequisites (birth date/time/coordinates are required but never mentioned), and no routing to the antar/pratyantar/prana/sookshma siblings that compute deeper levels of the same system. The agent gets domain vocabulary but no decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_pranaDashas: Vimshottari PranadashaBRead-onlyIdempotentInspect
Pranadasha (5th-level Dasha, the finest grain). 5-level cascade. Each Prana sub-period is typically a few hours to a few days.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
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. The description adds genuinely new behavior: the cost (20 credits, Tier 2), the group, and the HTTP endpoint. It still does not disclose auth requirements, rate limits, or the cost of failure, so it is useful but not rich.
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?
Three short sentences, front-loaded with the most distinguishing fact (5th-level, finest grain), followed by compact bracketed metadata. No sentence is wasted, though the '[Group/Endpoint/Cost]' tags are boilerplate rather than explanation.
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 schema is thorough on inputs. What is missing for a 3-parameter analytical endpoint in a family of ~60 near-identical dasha siblings is any routing context (when to pick prana over sookshma or pratyantar) and any hint that birth data plus an optional target date/time drive the calculation.
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 birth-data schema plus its embedded description already document date/time/latitude/longitude, timezone semantics, houseSystem, and the compact-mode fields/precision parameters. The tool description adds nothing beyond that, which is the correct baseline of 3 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 names the specific technique (Vimshottari Pranadasha), places it precisely in the dasha hierarchy ('5th-level Dasha, the finest grain', '5-level cascade'), and states the resulting period size. That differentiates it from its many vimshottari siblings (maha/antar/pratyantar/sookshma). It never states an explicit verb or that it computes the dasha from birth data, so it stops just short of a 5.
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?
There is no when-to-use or when-not-to-use guidance and no sibling is named as an alternative. 'Finest grain' plus the few-hours-to-few-days duration implicitly signals that this is for very narrow timing questions, but the agent must infer that and infer that coarser levels exist as options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_pratyantarDashas: Vimshottari PratyantardashaARead-onlyIdempotentInspect
Pratyantardasha (sub-sub-period) within the running Antardasha. 3-level cascade: find current MD → AD → return 9 PDs of that AD.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower. The description still adds real value: it discloses the computed behavior (three-level cascade) and the cardinality of the result (9 PDs of the AD), plus cost (20 credits, Tier 2), none of which is 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?
Two front-loaded sentences that state definition and computation, followed by compact metadata (group, endpoint, cost). No filler; the hierarchy explanation earns its place. Very slightly terse on routing, 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?
With an output schema present, return-shape detail is not required, and the description still summarizes the result (9 PDs) and the computation path. Combined with 100%-covered input schema and full annotations, an agent has 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?
Schema coverage is 100%, and the body schema carries extensive field-level documentation (birth data, timezone handling, ayanamsa, compact-mode fields/precision). The description adds nothing about the three parameters, which is acceptable when the schema does the work. 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 names a specific verb+resource ('Pratyantardasha (sub-sub-period)') and pins its position in the dasha hierarchy with the cascade 'find current MD → AD → return 9 PDs of that AD'. That level specification distinguishes it from the vimshottari_antar, prana and sookshma siblings. It stops short of naming any sibling explicitly, so it lands just below the top band.
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?
'3-level cascade: find current MD → AD → return 9 PDs of that AD' conveys implied context (you want the PD sub-level within an already-running AD), but never states when to pick this over vimshottari_antar or vimshottari_prana, nor any prerequisite about knowing the current AD. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_sookshmaDashas: Vimshottari SookshmadashaBRead-onlyIdempotentInspect
Sookshma (4th-level Dasha) within the running Pratyantardasha. 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
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 value beyond annotations by disclosing the endpoint and a concrete cost (20 credits, Tier 2), which an agent needs for budgeting. It does not describe the cascade output structure, 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?
Extremely short and front-loaded: the core meaning comes first, then bracketed metadata lines. Every sentence earns its place, though the metadata lines are boilerplate rather than explanatory.
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 input schema is thorough. However, for a specialist Vedic computation in a large sibling family, the description gives no indication of what the Sookshma cascade produces or how it relates to the other dasha levels, leaving an agent to infer from the title alone.
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 fully documents body, fields, and precision with rich prose (timezone handling, houseSystem letters, compact mode). The description adds nothing about parameters, 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-resource: computing the Sookshma (4th-level) Dasha within the running Pratyantardasha, plus '4-level cascade'. This distinguishes it from the maha/antar/pratyantar/prana siblings by level. It doesn't name an alternative sibling tool explicitly, but the level naming is unambiguous for an agent scanning the dasha family.
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?
There is no explicit when-to-use guidance, no exclusions, and no reference to alternative dasha-level tools. The agent must infer from the word 'Sookshma' and the tool name that this is the 4th-level drill-down. Implied usage only, no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_antarDashas: Yogini AntardashaARead-onlyIdempotentInspect
Yogini Antardasha: 8 sub-periods of the running MD at targetDate (default today UTC). Sub-period of yogini Q within MD of P: years = (P.years × Q.years) / 36.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
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, closed-world call, so the safety burden is largely covered. The description adds non-obvious behavior beyond that: the default of 'today UTC' for targetDate and the cost (20 credits, Tier 2), which help an agent plan calls. It does not discuss response size or limits, but with an output schema present that 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?
The core sentence is front-loaded and dense with meaning; the formula earns its place by disambiguating what a 'sub-period' means here. The bracketed group/endpoint/cost lines add noise but carry operationally useful tier pricing.
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 input schema describing all nested birth-data fields, and an output schema handling the return shape, the description only needs to establish scope and defaults — which it does, plus cost tier. Minor gap: no indication of the level relative to sibling dasha depths.
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 the parameters in detail; baseline is 3. The description only adds the targetDate default (today UTC), which is genuinely extra information, but the P.years/Q.years references in the formula are dasha concepts, not 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 the specific resource (Yogini Antardasha) and scope (8 sub-periods of the running MD at targetDate), and even gives the computation formula, so an agent knows this returns the second dasha level. It does not explicitly contrast itself with the sibling levels yogini_pratyantar/prana/sookshma, leaving the hierarchy depth to be inferred from the 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?
The formula and 'sub-periods of the running MD' imply when the tool applies, and the default targetDate is stated, but there is no explicit guidance on when to pick this depth versus the maha/pratyantar/prana siblings, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_mahaDashas: Yogini MahadashaARead-onlyIdempotentInspect
36-year Yogini Dasha. 8 yoginis (Mangala/Pingala/Dhanya/Bhramari/Bhadrika/Ulka/Siddha/Sankata) ruled by Moon/Sun/Jupiter/Mars/Mercury/Saturn/Venus/Rahu with periods 1/2/3/4/5/6/7/8 (total 36). Starts from yogini-of-Moon-nakshatra at birth, first MD truncated by elapsed nakshatra fraction.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
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 context beyond that: the computational rule (starts from the yogini of the Moon's nakshatra at birth, first MD truncated by elapsed nakshatra fraction) and the cost tier (20 credits, Tier 2). It does not describe the shape or length of the returned dasha list, though that is partly the output schema's job.
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 (36-year Yogini Dasha) before the supporting detail, and the two prose sentences each carry information. The yogini-name enumeration is dense but is genuinely needed to interpret the output; the bracketed group/endpoint/cost tags are compact metadata 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?
With a rich input schema and an output schema present, the description only needs to establish what is being computed and how — which it does thoroughly, including the truncation rule for the first period. The one notable gap is level disambiguation within the large dasha family, which the agent must infer from the 'Maha' token alone.
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 very detailed body/birth-data description, so the schema already carries all parameter meaning. The description adds nothing about parameters, which is acceptable but earns only 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 names the specific artifact computed (the 36-year Yogini Mahadasha) and even enumerates the eight yoginis, their ruling planets, and their period lengths, so an agent knows exactly what it gets back. It does not, however, distinguish this from the sibling levels astroway_vedic_dashas_yogini_antar/pratyantar/prana/sookshma, which share the same system name.
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?
There is no when-to-use or when-not-to-use guidance. Given that five yogini-dasha siblings exist (maha/antar/pratyantar/prana/sookshma) plus several other dasha systems (vimshottari, ashtottari, chara), the description never says why an agent should pick the Maha (top) level instead of a sub-period level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_pranaDashas: Yogini PranadashaCRead-onlyIdempotentInspect
Yogini Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is fully covered. The description adds genuinely useful operational context the annotations do not carry — the endpoint and the 20-credit (Tier 2) cost — but says nothing about the shape or volume of the 5-level cascade output.
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?
Extremely compact: one content sentence plus bracketed metadata for group, endpoint and cost. Front-loaded and free of filler, though the single content sentence is arguably too terse for the domain it describes.
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 nested input schema is richly documented. What is missing is the domain context an agent needs to pick this tool over its many siblings: what distinguishes prana from sookshma, and what the cascade actually returns.
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 body/fields/precision are already documented in detail (including timezone, ayanamsa and houseSystem caveats). The description adds no parameter-level meaning 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?
The description identifies the specific resource (Yogini Pranadasha, the deepest level of the Yogini dasha cycle) via the name and '5-level cascade (finest grain)'. However, 'finest grain' is jargon that only helps an agent who already knows the maha > antar > pratyantar > sookshma > prana hierarchy; it does not explicitly distinguish this from astroway_vedic_dashas_yogini_sookshma or the other 60+ dasha 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?
There is no when-to-use guidance at all: no statement of what a prana-level dasha is for versus the coarser sookshma/pratyantar levels, no prerequisites, and no alternatives named despite a very dense sibling set of dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_pratyantarDashas: Yogini PratyantardashaBRead-onlyIdempotentInspect
Yogini Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnly, idempotent and non-destructive behavior, so safety and side-effect questions are answered structurally. The description adds cost (20 credits, Tier 2), endpoint and group, which is useful operational context; it says nothing about whether targetDate/targetTzOffset are needed for finer PD resolution or how the cascade is returned. A 3 reflects a modest but real addition on top 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?
One sentence of substance followed by three bracketed metadata lines — front-loaded, no filler, nothing redundant. The bracketed format is slightly mechanical but each line (group, endpoint, cost) carries unique operational 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 values need not be explained, and the parameter schema is exhaustive. But for a large family of near-identical dasha tools, the description is thin on the one thing that matters — level selection relative to yogini_maha/antar/prana/sookshma — and never mentions the optional targetDate/targetTzOffset fields present in 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%, and the nested birth-data schema is extremely detailed (rejected short forms, timezone semantics, house letter case-sensitivity), so the schema carries the parameter burden. The description adds nothing about body, fields or precision, 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 names the specific calculation ('Yogini Pratyantardasha') and clarifies its position in the hierarchy with the '3-level cascade (MD → AD → 8 PDs)' notation, which is real information not obvious from the name alone. It does not, however, explicitly distinguish itself from the closely named siblings yogini_maha, yogini_antar, yogini_prana and yogini_sookshma, leaving an agent to infer the level from the name.
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?
There is no when-to-use guidance, no prerequisites, and no mention of the four sibling Yogini levels (maha/antar/prana/sookshma) or the parallel pratyantar tools in other dasha systems. The group/endpoint/cost lines are metadata, not usage guidance, so the agent gets no help choosing this tool over its near-identical siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_sookshmaDashas: Yogini SookshmadashaCRead-onlyIdempotentInspect
Yogini Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the safety profile is covered. The description usefully adds the billing profile (20 credits, Tier 2) and the exact endpoint, which are behaviorally relevant, but says nothing about the cascade semantics, computation time, or what the nested dasha levels contain.
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 text is very short and front-loads the tool identifier, with cost and endpoint on separate bracketed lines that are easy to scan. No sentence is padded, though the opening phrase duplicates the title rather than adding 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 input schema is rich and an output schema exists, so return values and parameter mechanics need not be explained. What is missing is the domain layer: what a Yogini sookshma period is, how it relates to the coarser Yogini levels, and why an agent would call this one. For a specialized dasha tool in a dense sibling cluster, that gap is significant.
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 nested body documents date/time/latitude/longitude, timezone handling, ayanamsa, and the compact-mode fields/precision params in detail. The description contributes nothing beyond the schema, 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 is essentially the tool title restated ("Yogini Sookshmadasha: 4-level cascade") with no verb and no statement of what the tool returns or computes. "4-level cascade" adds a sliver of meaning, but it does not distinguish this tool from the five sibling Yogini levels (maha, antar, pratyantar, prana, sookshma) or from the other dasha systems. An agent reading only this text cannot tell what it produces.
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?
There is no when-to-use guidance, no exclusions, and no mention of alternatives. Given ~10 dasha families and five Yogini depths in the sibling list, the absence of any routing hint (e.g. 'use sookshma for the finest sub-period within a pratyantar') leaves selection to guesswork. The metadata lines give cost/endpoint but no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_fullDoshas: KP full summaryARead-onlyIdempotentInspect
Composite KP dosha summary: manglik + kalasarpa + pitra + kemadruma + Sade-Sati pointer. (Sade Sati requires an explicit targetDate; call /sade-sati separately.)
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pitra | No | |
| school | No | |
| manglik | No | |
| kalasarpa | No | |
| kemadruma | No | |
| lagnaSign | No | |
| disclaimer | No | |
| sadeSatiNote | No |
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 operationally relevant context annotations cannot express: the 20-credit Tier 2 cost, the POST endpoint, and the required parameter set — useful for an agent budgeting calls. It says nothing about 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: the composite contents come first, then the Sade-Sati caveat, then compact bracketed metadata (group, endpoint, required, cost). No filler sentences; the metadata block is scannable rather than 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?
For a 15-parameter tool at 33% schema coverage, the description covers only the required set and cost. With an output schema present it need not explain returns, but it leaves ayanamsa defaults, timezone handling, and the compact-mode parameters undocumented here.
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 only 33% across 15 parameters, so the description needs to compensate and does not. It merely restates the four required params already declared in the schema's required list, adding no meaning for city, name, fields, precision, houseSystem, zodiacType, or the ayanamsa/ayanamsaId pair.
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 the specific composite output — manglik + kalasarpa + pitra + kemadruma + Sade-Sati pointer — which tells the agent exactly which dosha results are bundled and distinguishes it from the sibling single-dosha tools (kp_manglik, kp_kalasarpa, etc.). The exclusion of Sade Sati is stated outright.
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 routes the agent away from this tool for Sade Sati ('requires an explicit targetDate; call /sade-sati separately'), which is a concrete when-not-to-use instruction. It does not explicitly say to prefer this over the individual kp_* dosha calls, but the 'composite/full' framing makes that implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_kalasarpaDoshas: KP KalasarpaBRead-onlyIdempotentInspect
Kalasarpa dosha with KP Rahu sub-lord chain attached.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/kalasarpa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| partial | No | |
| present | No | |
| subType | No | |
| severity | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpRahuChain | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds genuinely useful operational facts — the POST endpoint and the 20-credit Tier 2 cost — which an agent needs for budgeting and routing, but says nothing about latency, the output content, or the KP-specific semantics of the sub-lord chain.
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 compact bracketed metadata. Every line earns its place; the only weakness is that the metadata blocks replace rather than supplement real semantic 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?
An output schema exists, so return values need not be explained, and the required inputs and cost are stated. However, for a 15-parameter Vijay/Vedic calculation with three enums and a small coverage footprint, the description leaves the agent without guidance on the sidereal school, house system, or house/zodiac options that materially change the result.
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 only 33% across 15 parameters, so the description would need to compensate, yet it only restates the four required fields (date, time, latitude, longitude) that the schema already marks required. Eleven optional parameters, including ayanamsa, zodiacType, houseSystem, cosmogram, and timezoneOffset, get no mention here.
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 verb-less but resource-specific output: the Kalasarpa dosha computed with the KP Rahu sub-lord chain. That distinguishes it from sibling dosha tools like kp_kemadruma, kp_manglik, and lal_kitab_kalsarpa, though it does not explicitly say 'computes' or name the lineage difference versus parashara_kaal_sarp.
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?
No guidance on when to choose this over kp_full, lal_kitab_kalsarpa, or parashara_kaal_sarp is given. The only context is endpoint/cost metadata, which tells an agent nothing about selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_kemadrumaDoshas: KP KemadrumaARead-onlyIdempotentInspect
Kemadruma yoga: no planet (excl. Sun, Rahu, Ketu) in 2nd or 12th from Moon. Moon-isolation flag, emotional/financial volatility indicator. KP Moon sub-lord chain attached.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/kemadruma] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| moonSign | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpMoonChain | No |
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 adds genuinely useful operational context beyond that: the cost (20 credits, Tier 2), the endpoint, and the fact that a KP Moon sub-lord chain is attached to the result. It does not describe error or edge-case behavior, hence 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?
The definition is front-loaded with the yoga's defining condition, followed by compact bracketed metadata (group, endpoint, required, cost). Every element carries information and there is no filler, though the [Required] line duplicates the schema's required array.
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 annotations carry the safety profile. For a single-dosha detector the description supplies the condition, the flag meaning, the cost and the endpoint, which is enough for correct invocation; the main gap is that no alternative/aggregate sibling is named.
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 only 33% (low), so the description is expected to compensate, but it does no more than restate the four required parameters already declared in the schema. It adds no meaning for ayanamsa, zodiacType, houseSystem, timezone, precision, fields, or the remaining optional inputs, leaving half the surface undocumented 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?
The description states a precise computed condition (no planet excluding Sun/Rahu/Ketu in 2nd or 12th from Moon) and labels the output as a Moon-isolation flag with an emotional/financial volatility indicator. That is a specific verb+resource that an agent can match to the request 'check Kemadruma'. It does not explicitly distinguish itself from the aggregate sibling astroway_vedic_doshas_kp_full, which is the only reason it is not a 5.
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 implied by the yoga definition rather than stated: an agent can infer it should call this when a user asks specifically about Kemadruma, but there is no explicit 'use X instead of Y' or exclusion against the kp_full aggregate sibling. No prerequisites or when-not conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_manglikDoshas: KP ManglikBRead-onlyIdempotentInspect
Manglik dosha with KP sub-lord precision attached. Sub-lord chain of Mars added for transit-trigger analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/manglik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| kpSubLord | No | |
| lagnaSign | No | |
| disclaimer | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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 safety is covered. The description adds genuinely useful operational context the annotations do not carry: the POST endpoint, the cost (20 credits, Tier 2), and the required inputs. It says nothing about what the response contains, 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?
The substantive sentence is front-loaded and the bracketed metadata block is compact and scannable. Every line carries information; nothing is padded.
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 values need not be explained. However, for a 15-parameter tool with 33% schema coverage and a crowded Manglik/dosha sibling set, the description omits how this KP variant differs in practice from the other Manglik tools and provides no parameter guidance beyond the required list.
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 only 33%, so the description should compensate, and it does not. It merely repeats the four required parameters (date, time, latitude, longitude) that are already enumerated in the schema's required array, adding no format, default, or interaction detail for the 11 other 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 names the specific artifact (Manglik dosha) and its differentiator (KP sub-lord precision, Mars sub-lord chain), which distinguishes it from siblings like astroway_vedic_doshas_parashara_mangal and astroway_vedic_compatibility_manglik_check. It lacks an explicit verb (it never says 'computes' or 'returns'), but the resource and scope are 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 phrase 'for transit-trigger analysis' hints at one use case, but there is no when-to-use guidance, no exclusions, and no routing to the many competing Manglik tools (parashara, lal_kitab, compatibility_manglik_check). An agent must guess which Manglik variant fits its request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_pitraDoshas: KP PitraBRead-onlyIdempotentInspect
Pitra dosha (Sun affliction) with KP Sun sub-lord chain.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/pitra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpSunChain | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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 useful non-annotation context — endpoint, group, and a 20-credit Tier 2 cost — but says nothing about what the analysis returns or any computational caveats.
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?
One content sentence plus a compact bracketed metadata block, front-loaded with the purpose. Nothing is wasted, though the bracket lines are boilerplate rather than tool-specific insight.
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 cost/endpoint are supplied. But for a 15-parameter, niche KP endpoint, the description leaves the meaning of the 'KP Sun sub-lord chain' result and its relationship to the other KP dosha endpoints unexplained.
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 only 33% across 15 parameters, so the description must compensate and does not. It merely repeats the four required fields already marked required in the schema and adds no meaning for ayanamsa, houseSystem, zodiacType, cosmogram, city, or name.
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 subject (Pitra dosha / Sun affliction) and method (KP Sun sub-lord chain), which distinguishes it from the Parashara and Lal Kitab Pitra siblings by school. It does not explicitly name those siblings, so the differentiation is implied by the 'KP' qualifier rather than stated.
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?
No guidance on when to use this versus astroway_vedic_doshas_kp_full or the other KP dosha tools (kalasarpa, kemadruma, manglik, sade_sati), nor versus the Parashara/Lal Kitab Pitra variants. The only routing aid is the required-parameter list, which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_sade_satiDoshas: KP Sade SatiARead-onlyIdempotentInspect
Sade Sati state at targetDate: Saturn transit through 12th/1st/2nd from natal Moon (7.5y total). Returns the active phase with KP Saturn sub-lord chain.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/sade-sati] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the target date for the Sade Sati phase. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| phase | No | |
| school | No | |
| present | No | |
| moonSign | No | |
| lagnaSign | No | |
| disclaimer | No | |
| transitDate | No | |
| kpSaturnChain | No | |
| transitSaturnSign | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe, read-only, idempotent profile, so the description's main added value is the cost disclosure (20 credits, Tier 2) and the endpoint, plus the fact that the result is the active phase plus a KP sub-lord chain. That credit cost is genuinely useful behavioural context beyond 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?
Two tight sentences lead with the core purpose and return, followed by compact metadata tags. Nothing is wasted, though the tag lines are bookkeeping rather than description 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?
With a full output schema and complete parameter documentation, the description needs only to orient the agent, which it does. Its only shortfall is not distinguishing this dosha endpoint from the broader kp_full aggregation option.
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 body/timezone/houseSystem semantics are thoroughly documented in the schema itself. The description only names `targetDate` in passing without adding format or constraint detail, so the 3 baseline 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 the specific resource (Sade Sati state) and the computation basis (Saturn transit through 12th/1st/2nd from natal Moon over 7.5y), plus what is returned (active phase with KP Saturn sub-lord chain). This clearly separates it from the sibling dosha tools like kp_kalasarpa, kp_kemadruma and kp_manglik, which address entirely different afflictions.
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 implies the tool is used when a Sade Sati assessment for a given date is wanted, and the targetDate framing makes that inference easy, but it never states prerequisites or points to alternatives such as kp_full for a combined dosha read. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_fullDoshas: Lal Kitab full summaryBRead-onlyIdempotentInspect
Composite Lal Kitab dosha summary: manglik + kalsarpa + pitra + shrapit + 6 Rin + kismat score.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rins | No | |
| pitra | No | |
| kismat | No | |
| school | No | |
| manglik | No | |
| shrapit | No | |
| kalsarpa | No | |
| lagnaSign | No | |
| disclaimer | No |
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 non-structural context: a 20-credit Tier 2 cost and the endpoint plus the four required inputs, which helps an agent budget and pre-validate before calling. It does not describe computation behavior, but with an output schema present that 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?
The composite contents are front-loaded in a single dense sentence, and the bracketed metadata lines are terse and skimmable. Nothing is padded, though the bracketed block is boilerplate rather than prose that adds interpretation.
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 15-parameter Vedic computation the description is only minimally sufficient: it fixes the required inputs and cost but leaves the agent guessing about which ayanamsa/house-system defaults are assumed and what the composite output contains. The output schema covers return values, which keeps this from being inadequate.
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 only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It lists the four required parameters but says nothing about the consequential optional ones (ayanamsa, houseSystem, zodiacType, timezone, fields, precision) that materially change the result.
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 resource (Lal Kitab dosha summary) and enumerates its exact contents: manglik, kalsarpa, pitra, shrapit, 6 Rin, and kismat score. This is clearly distinguishable from the single-dosha siblings, but it never explicitly says it is the composite counterpart to astroway_vedic_doshas_lal_kitab_manglik/_kalsarpa/etc.
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?
No when-to-use guidance is given. The presence of five sibling single-dosha Lal Kitab tools makes an obvious routing question ('use this for a complete screen, or a single-dosha tool for one specific dosha?') that the description never answers. Cost and required-parameter notes are metadata, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_kalsarpaDoshas: Lal Kitab KalsarpaBRead-onlyIdempotentInspect
Kalsarpa dosha (Rahu-Ketu encirclement) with Lal Kitab remedies.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/kalsarpa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| present | No |
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 new behavioural context: the endpoint, the four required inputs, and a billing trait (20 credits, Tier 2) that appears nowhere in the schema or annotations. It stops short of noting auth requirements or response shape, but against the annotation baseline this is a solid contribution.
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 in one line, followed by compact tagged metadata blocks; nothing is padded. The '[Required: ...]' line partially duplicates the schema's required array, but it is cheap and readable rather than verbose.
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 cost/required-parameter facts are present. However, for a 15-parameter astrological computation tool with low schema coverage and several near-identical sibling dosha endpoints, the description lacks the differentiation and optional-parameter context an agent needs to call the right 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 only 33% across 15 parameters, so the description is expected to compensate, and it does not. It merely restates the four required parameters already enumerated in the schema's `required` array, and says nothing about the eleven optional parameters (ayanamsa, houseSystem, fields, precision, timezone handling) that drive the actual output.
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 computed resource – Kalsarpa dosha under the Lal Kitab system – and glosses it as 'Rahu-Ketu encirclement', so the agent knows what is being analysed. The 'Lal Kitab' qualifier does separate it from the KP (astroway_vedic_doshas_kp_kalasarpa) and Parashara (astroway_vedic_doshas_parashara_kaal_sarp) variants, but the description never names those alternatives explicitly.
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?
No when-to-use or when-not-to-use guidance is given, and no alternative is named. The agent is left to infer that this is the Lal Kitab flavour versus the KP or Parashara Kalsarpa siblings with near-identical scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_manglikDoshas: Lal Kitab ManglikARead-onlyIdempotentInspect
Manglik dosha per Lal Kitab: Mars in 1/4/7/8/12 with LK-specific cancellation (Mars in Aries/Scorpio/Gemini cancels).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/manglik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mars | No | |
| dosha | No | |
| remedy | No | |
| school | No | |
| present | No | |
| lagnaSign | No | |
| disclaimer | No | |
| cancellation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds a genuine behavioral trait beyond them: the cost (20 credits, Tier 2) and the concrete endpoint, which is useful resource-consumption context for an agent budgeting calls.
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 operative rule ('Mars in 1/4/7/8/12 with LK-specific cancellation') and follows with a compact bracketed metadata block. Every element is short and scannable, though the endpoint line is somewhat redundant with the name.
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 output schema exists, so return values needn't be explained, and the core dosha rule is given. However, for a 15-parameter astronomy calculation the description omits any guidance on the ayanamsa/timezone defaults that materially affect a Lal Kitab result, leaving gaps an agent cannot resolve from the description alone.
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 only 33% and 15 parameters exist, so the description carries a compensation burden it does not meet. It merely restates the four required params (already in the schema's required list) and adds nothing about ayanamsa, houseSystem, timezone, or the compact-mode fields/precision options for a Lal Kitab chart.
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 (compute Manglik dosha) scoped to the Lal Kitab school, and even spells out the criterion (Mars in 1/4/7/8/12) and cancellation rule. The 'Lal Kitab' framing cleanly separates it from astroway_vedic_doshas_kp_manglik and astroway_vedic_doshas_parashara_mangal, so an agent can pick 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?
Usage is only implied via the school name and the stated rule; there is no explicit 'use this when you want the Lal Kitab interpretation rather than KP/Parashara' and no exclusions. An agent can infer intent but is given no direct routing guidance relative to the several manglik siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_pitraDoshas: Lal Kitab PitraCRead-onlyIdempotentInspect
Pitri Rin (paternal-debt dosha) per Lal Kitab patterns. Triggers + remedy.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/pitra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| school | No | |
| present | No | |
| triggers | No | |
| lagnaSign | No | |
| disclaimer | No |
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 genuinely adds non-annotation context: the endpoint, the required inputs and a 20-credit Tier 2 cost, which matters for an agent budgeting calls. It does not describe result depth or failure modes, so it stays at a moderate score.
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 two-sentence core followed by a tight bracketed metadata block; nothing is padded. The brevity is appropriate, though the metadata block is doing work the prose should arguably do.
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 15-parameter tool with low schema coverage, the description omits selection guidance against three competing Pitra/Pitru siblings and explains none of the optional parameters. An output schema exists so return values need not be covered, but the input-side and routing gaps leave it under-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?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It merely restates the four required fields already marked required in the schema and adds no semantics for city, name, cosmogram, zodiacType, houseSystem or ayanamsaId.
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 the specific dosha (Pitri Rin / paternal-debt) and the interpretive school (Lal Kitab), plus states the deliverable (triggers + remedy). This meaningfully separates it from sibling pitfalls like astroway_vedic_doshas_parashara_pitru and astroway_vedic_doshas_kp_pitra. It lacks an explicit verb ('compute'/'analyse'), so it's clear but marginally less crisp than a 5.
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?
There is no when-to-use guidance and no named alternative, despite a dense sibling set of Pitra/Pitru tools across KP, Parashara and Lal Kitab schools. The only guidance is the required-parameter list and cost, which is operational rather than selection-oriented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_rinDoshas: Lal Kitab Rin (6 ancestral debts)ARead-onlyIdempotentInspect
Aggregate of all 6 Rin (Pitri/Stree/Kanya/Atma/Rishi/Daiva) with active count. Same engine as /lal-kitab/debts but framed as dosha.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/rin] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rins | No | |
| dosha | No | |
| school | No | |
| lagnaSign | No | |
| disclaimer | No | |
| activeCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (20 credits, Tier 2) and the equivalence caveat against the debt endpoint. Auth requirements and rate-limit behavior are not addressed, but the cost disclosure is real added value.
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 sentence, then a compact bracketed metadata block for group, endpoint, required params and cost. No filler, and the most decision-relevant facts come first. The endpoint path is slightly redundant but costs little.
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 structure need not be explained. Required inputs, cost, engine equivalence and the six debt types are all present, and annotations cover safety. Missing only a note on what the "active count" means or auth/prerequisite conditions, which is minor for a read-only chart 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?
The [Required: date, time, latitude, longitude] line only restates the schema's required array, adding no new meaning. There are 10 undocumented parameters, but the genuinely tricky ones (timezone, timezoneOffset, fields, precision, ayanamsa) do carry schema descriptions, so the effective gap left to the description is modest.
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 ("Aggregate") and resource (all 6 Rin ancestral debts), enumerating the six types, and explicitly distinguishes itself from the sibling astroway_vedic_lal_kitab_debts by noting it is the same engine "but framed as dosha." An agent can separate it from the debt 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?
The "same engine as /lal-kitab/debts but framed as dosha" clause gives clear context for choosing between the two near-identical tools, and the required-parameter line signals the inputs needed. It stops short of an explicit when-to-use/when-not rule, but the framing cue is sufficient to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_shrapitDoshas: Lal Kitab ShrapitCRead-onlyIdempotentInspect
Shrapit dosha (ancestral curse) per LK: Saturn conjunct Rahu/Ketu. Specific remedies provided.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/shrapit] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| details | No | |
| present | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful non-annotation context: the credit cost (20, Tier 2), the endpoint, and that remedies are returned. It does not mention auth needs or pagination.
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 dosha definition and remedy note, followed by bracketed operational metadata. Efficient and scannable, though the bracketed block is somewhat 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?
An output schema exists, so return values need not be described, but for a 15-parameter tool with low schema coverage the description leaves most parameter semantics (ayanamsa, house system, timezone handling, precision) unexplained. It is not sufficient for correct invocation without reading the schema closely.
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 15 parameters and only 33% schema description coverage, the description must carry weight, but it merely restates the four required fields already listed in the schema. It says nothing about the interplay of timezone vs timezoneOffset, ayanamsa selection, or the compact-mode fields 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?
States a specific resource (Shrapit dosha) and even the defining condition (Saturn conjunct Rahu/Ketu), which is unusually concrete. However, it does not explicitly differentiate itself from the many near-identical siblings (lal_kitab_pitra, lal_kitab_rin, parashara_shrapit); the 'per LK' tag is the only routing signal.
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?
No guidance on when to choose this tool over the other Lal Kitab or Parashara dosha tools, and no prerequisites or exclusions. The [Required] and [Cost] lines are operational facts, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_fullDoshas: Parashara full reportARead-onlyIdempotentInspect
Combined Parashara dosha report: runs all 6 detectors (Mangal/Kaal Sarp/Pitru/Shrapit/Grahan/Guru-Chandal).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pitru | No | |
| grahan | No | |
| mangal | No | |
| school | No | |
| shrapit | No | |
| kaalSarp | No | |
| lagnaSign | No | |
| guruChandal | No |
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 structurally. The description adds real but limited behavior context, namely the cost (20 credits, Tier 2) and the aggregation scope; it says nothing about output size, latency, or how the six sub-reports are combined.
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 core purpose sentence is front-loaded and wastes no words; the bracketed metadata block (group, endpoint, required, cost) is compact and scannable. Slightly machine-formatted, but nothing is padded.
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 not required, and the safety annotations cover the mutation profile. However, with 15 parameters at 33% schema coverage and no guidance on combined vs. single-dosha invocation, the definition leaves meaningful gaps for a Tier 2-cost, 15-parameter call.
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 only 33% across 15 parameters, so the description needs to compensate, yet it merely restates the required set (date, time, latitude, longitude) which the schema's 'required' array already declares. Optional parameters such as city, name, cosmogram and zodiacType carry no meaning in either the description or 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 specific deliverable (combined Parashara dosha report) and enumerates the six detectors it runs (Mangal/Kaal Sarp/Pitru/Shrapit/Grahan/Guru-Chandal), which map one-to-one onto the sibling tools astroway_vedic_doshas_parashara_*." An agent can tell this aggregates those 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?
Usage is only implied: because it runs 'all 6 detectors', it is the batch alternative to the six single-dosha siblings, but the description never says 'use this instead of calling the six individually' or when a single-dosha call is preferable. No prerequisites or exclusions are given beyond the required-parameter note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_grahanDoshas: Grahan (eclipse-like)BRead-onlyIdempotentInspect
Grahan Dosha: Sun + Rahu/Ketu or Moon + Rahu/Ketu conjunct (eclipse-mimicking position). Up to 4 sub-patterns possible (Surya-Rahu / Surya-Ketu / Chandra-Rahu / Chandra-Ketu).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/grahan] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds genuinely useful behavior the annotations lack: the credit cost (20 credits, Tier 2) and the endpoint. It does not discuss determinism, rate limits, or what a partial/undefined result means, so it remains a moderate improvement rather than rich 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?
The definitional sentence is front-loaded and dense, and the bracketed metadata is compact and scannable. Nothing is padded, though the metadata block partly duplicates structured fields rather than earning its place as 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 no prose, and cost/endpoint/required inputs are present. However, for a 15-parameter tool with low schema coverage, the description omits any guidance on the optional configuration parameters and offers no usage context, leaving it minimally viable rather than complete.
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 only 33%, and the description only restates the four required parameters that the schema already marks as required — adding no meaning for date/time formats, timezone behavior, ayanamsa selection, or compact-mode `fields`. With a 15-parameter surface and low coverage, the description fails to compensate for the schema's gaps.
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 the specific dosha and spells out the exact astrological configuration that triggers it (Sun/Moon conjunct Rahu/Ketu), plus the four sub-patterns. An agent can tell it apart from the sibling Parashara dosha tools (mangal, pitru, kaal_sarp, guru_chandal). The verb is implicit ('analyze/detect') rather than stated, which keeps it just short of a 5.
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?
There is no explicit when-to-use guidance, no mention of alternatives among the many Parashara dosha siblings, and no prerequisites. The bracketed [Required]/[Cost] block is metadata already available in the schema, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_guru_chandalDoshas: Guru-ChandalBRead-onlyIdempotentInspect
Guru-Chandal Dosha: Jupiter + Rahu or Jupiter + Ketu conjunct. Wisdom-confusion affliction.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/guru-chandal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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 usefully adds cost metadata (20 credits, Tier 2) and the endpoint, but says nothing about output shape, whether the dosha is reported as present/absent with strength, or any latency/rate limits.
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?
Very compact and front-loaded: the dosha definition comes first, followed by clearly labeled bracketed metadata blocks. The format repeats the tool name already in the title, but no sentence 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 not be explained, and the schema covers the geocoding/timing inputs. However, for a Vedic-only calculation nothing warns that sidereal zodiac and an appropriate ayanamsa are expected defaults, which is a meaningful gap 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 only 33% across 15 parameters, so the description is expected to compensate but lists only the four required fields. Material inputs such as zodiacType, houseSystem, ayanamsa selection, and timezone are not addressed in the description even though they change the result.
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 dosha and defines its astronomical condition (Jupiter conjunct Rahu or Ketu), which clearly separates it from sibling dosha tools like parashara_pitru or parashara_mangal. The actual action, evaluating a chart for the presence of this dosha, is implied rather than stated with an explicit verb, so it falls short of a 5.
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?
There is no guidance on when to use this narrow dosha tool versus parashara_full or the sibling dosha endpoints. Only a bare [Required: date, time, latitude, longitude] list hints at the birth-chart input context; no inclusions, exclusions, or alternatives are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_kaal_sarpDoshas: Kaal SarpBRead-onlyIdempotentInspect
Kaal Sarp Dosha: all 7 classical grahas on one side of the Rahu-Ketu axis. Returns 12 sub-types by Rahu house position (Anant=1H, Kulik=2H, Vasuki=3H, Shankhpal=4H, Padma=5H, Mahapadma=6H, Takshak=7H, Karkotak=8H, Shankhachud=9H, Ghatak=10H, Vishdhar=11H, Sheshnag=12H). Also partial: true flag when 6 of 7 grahas on one side.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/kaal-sarp] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| partial | No | |
| present | No | |
| subType | No | |
| severity | No | |
| affectedHouses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive, closed-world profile, so the safety bar is low. The description adds genuinely useful non-schema context: the computation rule, the sub-type taxonomy, the `partial: true` edge case, plus the endpoint, required inputs, and credit cost. It does not cover auth, rate limits, or pagination, but those are minor here.
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 dosha definition is front-loaded, followed by the output taxonomy. The 12-entry house mapping is verbose but informative and earns its space. The bracketed metadata lines are compact and skimmable.
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?
Because an output schema exists, return values need not be spelled out, and the description nevertheless covers them. However, for a 15-parameter tool at 33% schema coverage, the description leaves too many optional inputs unexplained, which is the main completeness gap. The core domain behavior is adequately conveyed.
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 only 33% across 15 parameters, so the description needs to compensate and does not. It restates the four required inputs but adds no meaning for the 11 optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.), several of which are undocumented in both the schema and 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?
The description precisely defines the resource: it states the exact condition computed (all 7 classical grahas on one side of the Rahu-Ketu axis) and enumerates the 12 sub-type outputs by Rahu house position. This goes well beyond the title. It does not, however, distinguish itself from the sibling kp_kalasarpa and lal_kitab_kalsarpa variants, which compute the same dosha from different systems, so the 'Parashara' differentiation is left implicit in the name.
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?
There is no explicit when-to-use guidance, no statement of prerequisites, and no direction toward the KP or Lal Kitab Kalasarpa siblings. The definition of the dosha implies the context, but an agent receives no routing advice for choosing among the many dosha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_mangalDoshas: Mangal (Mars affliction)ARead-onlyIdempotentInspect
Mangal Dosha detection with school selection (school body param: strict BPHS verse 1/4/7/8/12 from Lagna only; north 1/2/4/7/8/12 from Lagna+Moon; south 1/2/4/7/8/12 from Lagna+Moon+Venus, default). Canonical sign-based cancellations applied: Mars in own (Aries/Scorpio) or exalted (Capricorn) sign cancels; per-house cancellations (house 2: Gemini/Virgo; house 4: Taurus/Libra; house 12: Taurus/Libra/Gemini/Virgo).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/mangal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| mangalSchool | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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, and the description still adds substantive domain behavior: the exact house rules per school and the canonical sign- and house-based cancellations that affect the result. This tells the agent how the verdict is derived, not just what is returned.
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 in the first clause, followed by the school modes and then cancellations. The parentheticals are dense but every clause carries domain meaning; nothing is padded.
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 explained, and annotations cover the safety profile. The description supplies the missing domain semantics (school definitions and cancellation logic) needed to interpret the result, though the schema/description mismatch on the `school` param leaves a small 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 only 33% and the schema does not even contain the `school` property the description centers on, so the description carries real weight by documenting the three school modes and their default. However, the many other configuration params (ayanamsa, timezone, houseSystem, zodiacType, etc.) are left entirely to the schema, so compensation is partial.
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 verb+resource (Mangal Dosha detection) and scopes it to the Parashara school via the `school` parameter, which distinguishes it in spirit from the KP and Lal Kitab manglik siblings. It does not explicitly name those siblings, so an agent must infer the school boundary rather than being told.
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 text explains how to configure the `school` parameter but never states when to choose this tool over astroway_vedic_doshas_kp_manglik, lal_kitab_manglik, or compatibility_mangal_match. There is no when-to-use or when-not-to-use guidance for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_pitruDoshas: Pitru (ancestral)BRead-onlyIdempotentInspect
Pitru Dosha: Sun + Rahu or Sun + Saturn conjunct, plus Sun in 9th house as auxiliary marker. Note: BPHS lists 14 patterns of Pitru Dosha; this endpoint detects 3 most-cited conjunction patterns. Full canonical detection (9th-lord placement, malefic in 9H) is not done yet.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/pitru] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
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 adds genuinely useful behavioral context: it detects only 3 of the 14 BPHS patterns and explicitly states what full canonical detection is missing. Cost (20 credits) is also 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?
The detection rule is front-loaded, followed by a clearly labeled limitation note and structured metadata block. No filler, though the [Group/Endpoint/Required/Cost] block partially duplicates schema and annotation data.
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 adequately conveys what the tool computes and its known limitations. It is complete enough to invoke correctly, with the only real gap being guidance relative to the sibling dosha tools.
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 only 33% across 15 parameters. The description merely restates the four required fields already declared in the schema and adds no syntax, format, or meaning for the remaining 11 parameters, so it fails to compensate for the coverage gap.
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 is detected (Sun+Rahu or Sun+Saturn conjunction, plus Sun in 9th house as auxiliary), giving a concrete rule set rather than a tautology. It is specific about scope but never names the sibling variants (kp_pitra, lal_kitab_pitra, parashara_full) it must be distinguished from.
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?
There is no when-to-use guidance and no mention of alternatives, despite ~5 Pitru Dosha siblings and a parashara_full aggregate. The limitation note implies this is a partial check, but it never tells the agent when to prefer this endpoint over the fuller or alternate-system variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_shrapitDoshas: Shrapit (curse)BRead-onlyIdempotentInspect
Shrapit Dosha: Saturn + Rahu conjunct in any sign. Signifies inherited curse/blockage in life.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/shrapit] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add operational context. It does disclose the cost (20 credits, Tier 2) and the endpoint, which are genuinely useful for an agent budgeting calls, but says nothing about failure modes, data requirements, or interpretation limits.
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 dosha definition and its astrological condition, then a compact bracketed metadata block for group, endpoint, required inputs and cost. Every line is short and scannable with no filler 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-value explanation is not required, and the required inputs plus cost are covered. What is missing is the routing context an agent needs in a catalogue of ~160 sibling tools: why choose this Parashara Shrapit endpoint over the KP, Lal Kitab, or full-dosha variants.
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 only 33% (10 of 15 params undocumented, including date, time, latitude, longitude, city, name, zodiacType, houseSystem, ayanamsaId, cosmogram). The description merely restates the required set that the schema's 'required' array already lists, so it does not compensate for the uncovered optional parameters an agent must reason about (e.g. ayanamsaId, zodiacType, houseSystem).
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 dosha and gives its astronomical definition (Saturn + Rahu conjunct in any sign), so an agent knows exactly which condition this tool evaluates. It stops short of differentiating itself from the closely named siblings (astroway_vedic_doshas_kp_shrapit, astroway_vedic_doshas_lal_kitab_shrapit, astroway_vedic_doshas_parashara_full), leaving the 'Parashara' scope to be inferred from the name.
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?
There is no when-to-use guidance at all: nothing says when to call this single-dosha endpoint versus astroway_vedic_doshas_parashara_full, or how it relates to the KP and Lal Kitab Shrapit variants. The only context given is group/endpoint/cost metadata, which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_gemstonesGemstone (ratna) recommendationBRead-onlyIdempotentInspect
Which of the nine gems to wear, from the sidereal lagna. Two schools are implemented: lagna-lord (default) prescribes the gems of the 1st, 9th and 5th lords as the life, lucky and benefic stones; functional-benefic classifies every graha by the houses it owns from the lagna, prescribes only for functional benefics led by the yogakaraka, and names the functional malefics as gems to avoid.
[Group: Vedic] [Endpoint: POST /v1/vedic/gemstones] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a gemstone recommendation. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude. Coordinates do NOT default to 0 here as they do on other chart endpoints: the whole answer is derived from the lagna, so an omitted pair is a 400 rather than a confident set of gems for 0N 0E. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| avoid | No | |
| lagna | No | |
| school | No | |
| ayanamsa | No | |
| cautions | No | |
| condition | No | |
| nodesNote | No | |
| disclaimer | No | |
| schoolNote | No | |
| recommended | No | |
| conditionNote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds useful behavioral context — that each school withholds different gems and orders results differently, and that malefics are surfaced as gems to avoid — but says nothing about response shape, credits consumed (20) or error behavior in the description text itself.
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?
Two front-loaded sentences with no filler: the deliverable comes first, then the school mechanics. Dense Vedic terminology is justified by the domain, though the school sentence is long and could be split for scanability.
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 a fully-described input schema, the description need not document returns or parameters. It adequately covers purpose and mode selection; the one real gap is disambiguation from astroway_vedic_gemstones_navaratna and the omission of the coordinate-non-defaulting caveat that the schema carries.
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 beyond it by explaining what lagna-lord prescribes (1st/9th/5th lords as life/lucky/benefic stones) and what functional-benefic does (classification by owned houses, yogakaraka-led, malefics flagged as avoid), giving an agent a reason to pick a school rather than just an enum label.
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 deliverable — which of the nine gems to wear — and grounds it in the sidereal lagna, then distinguishes two implementation schools by name. It does not, however, distinguish this tool from the sibling astroway_vedic_gemstones_navaratna, which an agent must resolve to choose 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 description never says when to pick this tool over the navaratna sibling or other Vedic endpoints, nor does it state prerequisites (e.g. that coordinates are mandatory and non-defaulting). It explains the two schools' logic but leaves tool selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_argala_analysisJaimini: Argala / Virodhargala scanARead-onlyIdempotentInspect
Full Argala (intervention) + Virodhargala (counter-intervention) scan across all 12 houses. Argala from 2/4/11 (primary), 5 (secondary), 8 (special); Virodhargala from 12/10/3 (primary), 9 (secondary), 6 (special). Net influence and dominant-over metric per house.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/argala-analysis] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| houses | No | |
| method | No | |
| weakestArgala | No | |
| strongestArgala | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds real value beyond that: the cost (20 credits, Tier 2), the POST endpoint, the required inputs, and the shape of the result ('net influence and dominant-over metric per house').
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 core sentence is front-loaded and dense with useful domain detail, and the bracketed metadata block efficiently conveys endpoint, required params, and cost. It is slightly redundant in re-listing required parameters already present in 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?
An output schema exists, so return-value documentation is not the description's burden. For a domain-complex Vedic technique, the description adequately explains what is computed and what it costs; the main gap is parameter-level guidance, which is partially offset by schema descriptions for the non-core fields.
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 only 33%, and the description contributes nothing to the 15 parameters beyond restating which four are required — which the schema already enforces. No guidance is added for ayanamsa, zodiacType, houseSystem, or the compact-mode fields, so the description does not compensate for the coverage gap.
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 the exact technique (Jaimini Argala/Virodhargala), the verb-like scope (full scan across all 12 houses), and the precise contributing houses (2/4/11 primary, 5 secondary, 8 special for Argala; 12/10/3, 9, 6 for Virodhargala). This distinguishes it cleanly from sibling Jaimini tools like jaimini_aspects, jaimini_drishti_rasi, and jaimini_karakas.
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 implied by the domain-specific technique name, but there is no explicit statement of when to choose this over jaimini_aspects, jaimini_drishti_rasi, or the Jaimini yoga tools. No prerequisites or exclusions are given, leaving the agent to infer the selection context from the technique label alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_aspectsJaimini: Aspects (Rasi + Graha drishti)ARead-onlyIdempotentInspect
Combined Jaimini aspects: rasi drishti (12-rasi sign-aspect table per modality rules) + graha drishti (per-planet Parashari aspects). Convenience aggregate of /drishti-rasi and /drishti-graha.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/aspects] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| rasiDrishti | No | |
| grahaDrishti | No |
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 meaningful extra context the annotations lack: a cost of 20 credits (Tier 2) and the aggregate nature of the call, letting the agent weigh it against calling the two components.
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?
Two sentences plus a compact metadata block (Group/Endpoint/Required/Cost), all front-loaded with the core purpose first. Every line carries signal, though the bracketed metadata is structural rather than explanatory.
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 supplies endpoint, cost tier, and required inputs. The main shortfall is the sparse parameter documentation, but for a read-only aggregate whose output schema is defined, this is largely adequate.
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 only describes 33% of 15 parameters, so the description carries a heavier burden but adds almost nothing. It restates the four required params already marked required in the schema and offers no meaning for the many undocumented fields (city, name, cosmogram, date/time formats, houseSystem).
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 (combined Jaimini aspects) and precisely decomposes it into rasi drishti and graha drishti. It explicitly distinguishes itself from the sibling tools astroway_vedic_jaimini_drishti_rasi and astroway_vedic_jaimini_drishti_graha by naming itself a 'convenience aggregate' of them.
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 phrase 'Convenience aggregate of /drishti-rasi and /drishti-graha' tells the agent when to pick this tool: when both aspect tables are wanted in one call. It implies the components can be called separately if only one is needed, but does not state that exclusion explicitly, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_atmakaraka_rotationJaimini: Atmakaraka rotation (timeline)BRead-onlyIdempotentInspect
Naisargika 1°/year symbolic progression of sidereal longitudes; scans for moments when the rank-1 chara karaka (Atmakaraka) changes. Returns timeline of soul-significator transitions with age-of-event + before/after planets + life-event hints. Default span 84 years; capped at 120.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/atmakaraka-rotation] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| events | No | |
| method | No | |
| yearsScanned | No | |
| birthAtmakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuine context beyond that: the default 84-year span, the 120-year hard cap, the tier-2 cost of 20 credits, and what the timeline contains (age-of-event plus before/after planets and life-event hints). These are real behavioral constraints an agent needs before calling.
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?
Three front-loaded sentences state mechanism, return content, and span limits, followed by a compact bracketed metadata block for group/endpoint/required/cost. Little waste; the return-content sentence partially overlaps the output schema but is brief.
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 spelled out, and annotations carry the safety profile. However, for a 15-parameter tool with only 33% schema coverage, the description leaves the optional-parameter surface essentially unaddressed, which is a meaningful gap even if not fatal.
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 only 33% across 15 parameters, so the description is expected to compensate for undocumented params. Instead it only repeats the four required fields (date, time, latitude, longitude), which the schema already marks as required, and says nothing about ayanamsa, houseSystem, zodiacType, fields, precision, or the timezone family 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?
The description gives a specific verb+resource: it performs the Naisargika 1°/year symbolic progression and scans for moments when the rank-1 chara karaka (Atmakaraka) changes, returning a transition timeline. This is clearly distinguished from static Jaimini siblings like chara_karakas or atmakaraka_navamsa by its temporal/rotation framing. It stops short of explicitly naming a sibling to route against, so 4 rather than 5.
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?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The only constraints given ('default span 84 years; capped at 120') are behavioral limits, not routing guidance. An agent must infer applicability from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_chara_karakasJaimini: Chara Karakas (detailed)BRead-onlyIdempotentInspect
Detailed chara karaka ranking with Atmakaraka/Darakaraka highlighted. Same algorithm as /karakas but focused output for AK/DK-driven analyses.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/chara-karakas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| ranking | No | |
| atmakaraka | No | |
| darakaraka | No |
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 usefully adds the cost (20 credits, Tier 2), the POST endpoint, and the required inputs, but says nothing about output shape, computation caveats, or what 'Atmakaraka/Darakaraka highlighted' changes in the payload. Adds some value beyond annotations, not rich 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?
Front-loaded with the purpose and the sibling comparison in the first sentence, then tight metadata lines for group, endpoint, required params, and cost. No filler prose; the only slight cost is the redundant restatement of required parameters already in 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?
An output schema exists and annotations carry the safety profile, so the description does not need to explain returns. It is adequate but thin for a 15-parameter, credit-charged calculation tool: it omits how ayanamsa/house-system choices affect the karaka ranking and never spells out what the 'focused' output contains.
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?
15 parameters with only 33% schema description coverage, so the description should compensate for undocumented params (houseSystem, zodiacType, ayanamsaId, cosmogram, city, name). Instead it only restates the four required fields, which the schema already declares, adding zero meaning for the remaining eleven.
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 ('detailed chara karaka ranking') and names the sibling it overlaps with ('/karakas', i.e. astroway_vedic_jaimini_karakas), asserting it returns a focused AK/DK view instead. The only weakness is that 'focused output' is never concretely described, so the exact delta from /karakas is left to inference.
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 phrase 'focused output for AK/DK-driven analyses' implies when this tool is preferred, but there is no explicit when-to-use statement or when-NOT-to-use condition (e.g. 'use /karakas for the full ranked table of all karakas'). The guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_dasha_summaryJaimini: Running Dasha SummaryARead-onlyIdempotentInspect
Convenience aggregate: returns the running Mahadasha for Chara, Sthira, and Shoola at targetDate (default = now). Same builders as the dedicated /dashas/{chara,sthira,shoola}/maha endpoints; this one returns three running periods in a single call.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/dasha-summary] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the target date for the Jaimini dasha summary. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| summary | No | |
| ayanamsa | No |
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 operational context: the cost tier (20 credits / Tier 2), the concrete endpoint, and the guarantee that it reuses the 'same builders' as the individual endpoints, so results are consistent. It stops short of describing granularity of the running periods returned.
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?
Two sentences, front-loaded with the aggregate behavior and followed by the sibling comparison; the bracketed group/endpoint/cost tags are compact and scannable. Slightly redundant to restate the endpoint paths twice, 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?
With an output schema present, the description need not explain return values, and it covers the remaining essentials: what is returned (running Mahadashas across three systems), the target-date default, and the cost. An agent has everything needed to decide and invoke.
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 detailed `body` description covering birth data, timezone handling, and field naming rules, plus descriptions for `fields` and `precision`. The description only adds the meaning of the `targetDate` default ('now'). Per the rubric, a fully documented schema sets the baseline at 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 a specific verb and resource ('returns the running Mahadasha for Chara, Sthira, and Shoola') and pins the temporal scope with `targetDate` (default = now). It also names the sibling endpoints it aggregates (`/dashas/{chara,sthira,shoola}/maha`), so an agent can distinguish it from the many astroway_vedic_dashas_chara_* / sthira_* / shoola_* tools 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?
Frames itself as a 'convenience aggregate' that 'returns three running periods in a single call', which implicitly tells the agent to prefer this over three separate system-specific calls. However, it never states an explicit when-not condition (e.g., if you only need one system, call the dedicated endpoint) and gives no guidance on choosing between summary vs. antar/pratyantar depth levels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_drishti_grahaJaimini: Graha Drishti (planet aspects)ARead-onlyIdempotentInspect
Per-planet graha drishti per Parashari rules (BPHS): Mars 4/7/8, Jupiter 5/7/9, Saturn 3/7/10, others 7th. Used in Jaimini-context dashboards alongside rasi drishti.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/drishti-graha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| grahaDrishti | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered; the description adds operationally relevant facts those annotations cannot carry - the POST endpoint and a billing cost (20 credits, Tier 2). It does not describe return shape, but an output schema exists and 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?
The most distinctive content (the aspect rules) is front-loaded, followed by a short context sentence and a compact bracketed metadata block. Every line carries information; only the 'Jaimini-context dashboards' phrasing leans on vocabulary an agent may not need.
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 15-parameter computation tool, the basics are there: what is computed, the cost, the endpoint, the required inputs, plus complete safety annotations and an output schema. What is missing is guidance on the chart-shaping options (zodiacType, houseSystem, ayanamsa variants) that materially change the result, leaving a large share of parameters unexplained in both places.
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 only 33% across 15 parameters, so the description is expected to compensate - yet it only restates the four required parameters that are already enumerated in the schema's required array. Cryptic inputs such as ayanamsaId (number), houseSystem (single-letter enum) and cosmogram receive no meaning from 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?
It names the exact computation (per-planet graha drishti) and even spells out the Parashari aspect rules for Mars, Jupiter, Saturn and the default 7th, which no sibling does. It also names the sibling it belongs next to ('alongside rasi drishti', i.e. astroway_vedic_jaimini_drishti_rasi), so an agent can separate the two aspect tools 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?
'Used in Jaimini-context dashboards alongside rasi drishti' implies the context of use but never states a when-to-use/when-not rule or a selection condition against the rasi drishti sibling. The agent must infer that graha drishti and rasi drishti are complementary rather than alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_drishti_rasiJaimini: Rasi Drishti (sign aspects)BRead-onlyIdempotentInspect
Jaimini rasi drishti table: movable signs aspect all fixed except adjacent; fixed aspect all movable except adjacent; dual aspect all other dual. Per Jaimini Sutras 1.1.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/drishti-rasi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| rasiDrishti | No |
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 fully covered structurally. The description adds the cost (20 credits) and the required inputs, which is useful billing context, but says nothing about latency, whether a full chart is needed internally, or failure modes. With annotations carrying the safety burden, a 3 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?
Front-loaded with the substantive rule content in a single dense sentence, followed by a compact metadata block for group, endpoint, required params and cost. Every line carries information; the format is efficient 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?
An output schema exists, so return-value documentation is unnecessary, and the annotations cover safety, leaving the domain rules as the main thing to convey. However, the description omits sibling differentiation against graha drishti and any guidance on the optional chart parameters that materially affect this calculation.
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 only 33% across 15 parameters, yet the description contributes nothing beyond repeating the four required fields already in the schema. Meaningful options such as fields (compact mode), ayanamsa school, zodiacType, houseSystem, and timezone handling are left entirely to the schema, so the description does not compensate for the coverage gap.
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 (Jaimini rasi drishti table) and even enumerates the actual sign-aspect rules, which makes the output unambiguous. It does not name or distinguish itself from the sibling astroway_vedic_jaimini_drishti_graha (planetary drishti), so the agent must infer the sign-vs-planet distinction from the domain rule text alone.
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?
There is no explicit when-to-use or when-not guidance and the closely related sibling astroway_vedic_jaimini_drishti_graha is never mentioned. The rules of the technique imply its purpose, but an agent cannot tell from the text which of the two Jaimini drishti tools to pick for a given question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_karakasJaimini: Karakas (Chara + Naisargika)BRead-onlyIdempotentInspect
Jaimini karakas: chara karakas (8-planet ranking by advancement-in-rasi, Atmakaraka..Darakaraka) + naisargika karakas (fixed planet→house mapping). Source: Jaimini Sutras 2.x + BPHS Adhyaya 47 + PyJHora chara_karakas/naisargika_karakas.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/karakas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chara | No | |
| lagna | No | |
| ayanamsa | No | |
| charaRoles | No | |
| naisargika | No |
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 source lineage (Jaimini Sutras 2.x, BPHS 47, PyJHora) and cost/tier, but says nothing about computation or determinism beyond 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?
A single dense sentence captures the resource and scope, followed by a compact metadata block. Front-loaded and free of filler, though the bracket metadata is slightly boilerplate-heavy.
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. However, for a 15-parameter tool at 33% schema coverage, the description omits param guidance the agent needs, leaving the definition only minimally complete.
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 only 33% across 15 parameters. The description contributes nothing about parameters beyond restating the four required ones, leaving many undocumented fields (city, name, cosmogram, houseSystem, zodiacType) unexplained in either place.
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 Jaimini karakas, splitting chara karakas (8-planet ranking, Atmakaraka..Darakaraka) from naisargika karakas (fixed planet→house mapping). This is clear, but it does not differentiate from the sibling astroway_vedic_jaimini_chara_karakas, which overlaps on the chara half.
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?
No when-to-use, when-not, or alternative guidance is given. It never tells the agent whether to call this versus astroway_vedic_jaimini_chara_karakas for chara-only work or the atmakaraka siblings for derived charts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_padasJaimini: Padas (Bhava/Surya/Chandra/Graha Arudhas)BRead-onlyIdempotentInspect
All canonical Arudhas: A1..A12 (Bhava Arudhas / lagna padas), S1..S12 (Surya/Sun arudhas), M1..M12 (Chandra/Moon arudhas), and Graha Arudhas (lagna + 9 planets). Implements 1/7-trim rule per BPHS Adhyaya 26 verse 4.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/padas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| bhavaArudhas | No | |
| grahaArudhas | No | |
| suryaArudhas | No | |
| chandraArudhas | No |
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 usefully adds the cost (20 credits, Tier 2), the endpoint, and the required parameter set, which is genuine context beyond annotations. It does not describe response shape or computational caveats, so it adds value without being rich.
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 substantive content is two tightly written sentences with the output inventory front-loaded, followed by a compact bracketed metadata block. Nothing is wasted, though the inventory enumeration is dense and the metadata block restates schema/annotation-adjacent facts.
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 output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a 15-parameter computation with 33% schema coverage, the description omits any guidance on time/place inputs, ayanamsa choice, or compact mode, leaving the agent reliant on raw schema fields.
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 15 parameters and only 33% schema description coverage, the description should compensate for the undocumented parameters, but it mentions none of them. Devices like timezone vs timezoneOffset, fields, precision, and ayanamsa carry real invocation risk here and are left entirely to 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 names a specific resource (Arudhas/padas) and enumerates the exact contents: A1..A12 Bhava, S1..S12 Surya, M1..M12 Chandra, and Graha Arudhas. An agent can tell this is the comprehensive padas computation. It does not explicitly distinguish itself from siblings like astroway_vedic_jaimini_upapada or _karakas, so it falls short of a 5.
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?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no conditions or exclusions. The BPHS verse citation is a provenance note, not usage guidance. The sibling upapada tool returns a subset, but the router is never told which to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_upapadaJaimini: Upapada Lagna (UL)BRead-onlyIdempotentInspect
Upapada Lagna (UL = A12): pada of the 12th house from lagna. Canonical Jaimini significator for spouse, marriage, partnerships.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/upapada] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| upapada | No |
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 usefully adds the cost (20 credits, Tier 2), the HTTP endpoint, and the required inputs, which help an agent decide whether to call it, but it says nothing about determinism or output shape beyond 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?
The definition is front-loaded with the concept and its astrological role, followed by compact bracketed metadata blocks (group, endpoint, required, cost). Every line carries information and there is no filler, though the concept sentence could be tightened into an action statement.
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 supplies what an agent needs to invoke it correctly: purpose, required coordinates/date/time, endpoint, and cost. The main gap is guidance on the many optional calculation settings (ayanamsa, zodiacType, houseSystem) that materially affect results.
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 only 33% across 15 parameters, so the description should compensate, yet it only restates the four required fields (date, time, latitude, longitude) that the schema's `required` array already lists. Optional parameters like ayanamsa, zodiacType, houseSystem, and the compact-mode fields get no semantic help from 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?
The description names the specific artifact (Upapada Lagna, UL = A12), defines it concretely as the pada of the 12th house from lagna, and states its role as the Jaimini significator for spouse, marriage, and partnerships. An agent can tell this apart from generic 'padas' or 'karakas' siblings, though no sibling is named explicitly and it describes the concept more than the action ('computes/returns').
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 phrase 'canonical significator for spouse, marriage, partnerships' implies the domain in which to reach for this tool, but there is no explicit when-to-use framing, no prerequisites, and no routing to alternatives such as the compatibility or karakamsa tools that overlap in subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_yogasJaimini: Yogas (basic AK/DK/PK set)BRead-onlyIdempotentInspect
Basic Jaimini-yoga checks based on chara karakas: Raja yoga (AK in Lagna/Kendra), marriage yoga (DK in trine), AK+PK conjunction (success yoga), AK in dusthana (challenge flag). Phase 2 block 19 will add 5 dedicated /yogas/jaimini/* endpoints with Raja/Dhana/Daridra/Viparita Raja yogas per Jaimini canon.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/yogas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| lagna | No | |
| yogas | No | |
| atmakaraka | No | |
| darakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive, closed-world computation, so the safety profile is covered without the description. The description does add value beyond that: it discloses the cost (20 credits, Tier 2), the endpoint, and the specific flags returned (e.g. 'challenge flag' for AK in dusthana). It does not cover latency, caching, or error conditions.
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 in the first sentence, followed by a compact enumeration of checks and a metadata block. Only the 'Phase 2 block 19' roadmap sentence is arguably noise, but it is one sentence and not disruptive.
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 cost/endpoint/required inputs are given. However, for a 15-parameter astrological computation the description is silent on which parameters affect results and how this differs from the numerous sibling yoga endpoints, leaving real gaps.
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 only 33%, so the description must carry more weight, and it only lists the four required parameters (date, time, latitude, longitude) without explaining their meaning or format — information already present in the schema's required array. The eleven optional parameters (ayanamsa, houseSystem, zodiacType, precision, etc.) that materially change the computed yogas get no mention.
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 verb/resource (Jaimini yoga checks) and enumerates the exact checks performed (Raja via AK in Lagna/Kendra, marriage via DK in trine, AK+PK success, AK in dusthana). It is harder to place against the already-listed siblings (astroway_vedic_yogas_jaimini_raja/dhana/daridra/viparita), because the 'Phase 2 will add' note suggests those dedicated endpoints do not exist yet.
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?
There is no explicit when-to-use guidance: no statement of which chart/context this is appropriate for, and no routing such as 'use jaimini_full for a complete picture.' The only comparative statement is a forward-looking roadmap note about future endpoints, which does not help an agent choose among current siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_asc_subKP: Ascendant sub-lordBRead-onlyIdempotentInspect
Sub-lord of the Ascendant: the canonical "ruling indicator" for the chart's primary motivation, life direction, and dominant karmic theme per K.S. Krishnamurti Reader I-II.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/asc-sub] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No | |
| lagna | No | |
| meaning | No | |
| ascSubLord | No |
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 non-redundant operational context that matters for agent planning: a 20-credit Tier 2 cost and the concrete endpoint. It does not describe latency or result shape, but the output schema covers returns.
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 in the first clause, and the bracketed metadata block is scannable and wastes little space. The required-parameter line duplicates the schema's `required` list, which is the one non-earning 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?
An output schema exists, so return values need not be explained. However, for a 15-parameter, paid, KP-specific calculation, the description leaves important correctness context unaddressed — notably that the ayanamsa default is Lahiri rather than the Krishnamurti/KP school the tool's doctrine assumes — which an agent would need in order to call it and interpret results reliably.
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 only 33% across 15 parameters, so the description is expected to compensate — but it only restates the four required fields already declared in the schema's `required` array. It says nothing about consequential optional inputs such as ayanamsa (the schema defaults to Lahiri, which is questionable for KP work), timezone/timezoneOffset, or the `fields`/`precision` compact-mode switches.
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 computed artifact (the Ascendant's sub-lord) and explains its interpretive role — the chart's primary motivation, life direction, and karmic theme — with a cited source. It is clearly distinguishable from the broader KP sub-lord and significator siblings, though it never explicitly names or contrasts them.
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 only implied: calling it when you need the 'ruling indicator' for primary motivation. The bracketed block supplies operational facts (required inputs, cost tier, endpoint) but no when-to-use/when-not guidance and no routing to alternatives such as astroway_vedic_kp_sub_lords or astroway_vedic_kp_ruling_planets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_cuspsKP: Placidus cusps with sub-lord chainBRead-onlyIdempotentInspect
KP-canonical Placidus cusps (12) with full sub-lord chain (sign / star / sub / sub-sub) for each cusp. Sub-lord chain follows K.S. Krishnamurti 1971 Vimshottari proportional sub-divisions.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/cusps] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| lagna | No | |
| method | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely new behavioral facts — a 20-credit Tier 2 charge and the concrete endpoint — but says nothing about authentication, quotas, or how heavyweight the computation is.
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?
Two sentences of substance followed by a compact bracketed metadata block, with the output definition front-loaded. Every element is short and scannable, though the entity's derivation claim ('K.P. Krishnamurti 1971') is the least actionable line for an agent.
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. However, for a 15-parameter tool at 33% schema coverage the definition should at least steer the ayanamsa/house-system defaults, since this is a KP tool where the 'kp' vs 'krishnamurti' enum distinction is easy to get wrong.
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 only 33% across 15 parameters, and the description compensates for none of it: it just repeats the four required names the schema already marks as required. Choices that matter for this tool (ayanamsa 'kp' vs 'krishnamurti', houseSystem, fields, precision, timezone handling) are left entirely to 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 concrete verb+resource: computes the 12 KP Placidus cusps with the full sign/star/sub/sub-sub sub-lord chain, and names the Krishnamurti 1971 method. That is far more specific than a title restatement, but it never distinguishes itself from close KP siblings like kp_sub_lords, kp_sub_sub_lord, or kp_asc_sub.
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?
There is no when-to-use guidance, no when-not-to, and no mention of which sibling to pick for a different KP need (e.g. sub-lords of planets vs. cusps). The only routing aids are the [Required] and [Cost] lines, which are input/cost facts rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_fortunaKP: Part of FortuneBRead-onlyIdempotentInspect
Part of Fortune (Lot of Fortune): ASC + Moon − Sun (day birth) or ASC + Sun − Moon (night birth). Sub-lord chain attached for KP-style usage.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/fortuna] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No | |
| house | No | |
| lagna | No | |
| formula | No | |
| isDayBirth | No | |
| fortunaLongitude | No |
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 new context: the day/night branch that governs the result, the fact that a KP sub-lord chain is attached to the output, and the 20-credit Tier 2 cost — none of which the annotations or schema 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?
The definition leads with the substance — the point name and its formula — before the bracketed metadata block, and nothing is padded. The Group/Endpoint lines are mildly boilerplate but compact and useful for cost/route awareness.
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 shape need not be explained, and annotations cover safety and idempotency. However, for a 15-parameter tool with one-third schema coverage, the description leaves the configuration parameters (house system, zodiac type, ayanamsa, compact-mode options) entirely to the schema, which is a real gap 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 only 33% across 15 parameters, so the description is expected to compensate and does not. Listing 'Required: date, time, latitude, longitude' merely restates the schema's required array and adds no meaning for the eleven other fields (houseSystem, zodiacType, ayanamsa, precision, cosmogram, etc.).
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 computed point and even gives the exact formula (ASC + Moon − Sun for day births, reversed at night), so an agent knows precisely what this endpoint produces. It does not explicitly differentiate itself from KP siblings like kp_asc_sub or kp_cusps, but the named artifact is 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?
There is no when-to-use / when-not-to-use guidance and no named alternative among the many KP and Vedic sibling tools. The phrase 'for KP-style usage' hints at the applicable school but does not tell the agent when this computation is the right call versus kp_cusps or kp_sub_lords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_horaryKP: Horary chart (1..249)ARead-onlyIdempotentInspect
KP number chart: the number 1..249 fixes the sidereal ascendant (249-entry table, the six subs on a sign edge split in two); cusps are Placidus for the moment of the question day when that degree rises at the place, planets are taken at the question time. ascendantAt picks the centre (default) or the first degree of the segment. Latitudes past 66.5 are refused.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/horary] [Required: horaryNumber, date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| ascendantAt | No | Where in the number's segment the ascendant is placed: its centre (default) or its first degree. Sources differ; sign, star and sub are the same either way. | middle |
| horaryNumber | Yes | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| method | No | |
| planets | No | |
| segment | No | |
| ayanamsa | No | |
| housesJd | No | |
| ascendant | No | |
| ascSidereal | No | |
| ascendantAt | No | |
| horaryNumber | No | |
| housesOffsetHours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: latitudes past 66.5 are refused, cusps use Placidus computed for the question moment, and ascendantAt controls placement. These are useful operational traits not present in 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?
The core mechanic is front-loaded in the first clause, followed by supporting detail and the ascendantAt clarification. It is dense but every sentence carries information, with no filler. Slightly long for a single paragraph but well organized.
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 covers the key quirks an agent needs (refused latitudes, computation basis, ascendantAt effect), and cost/endpoint/required fields are supplied in the metadata block. It is essentially complete for calling 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 only 50% across 12 parameters, so the description must compensate. It does add meaning for horaryNumber (1..249 fixes the ascendant) and ascendantAt (centre vs first degree of the segment), but leaves the remaining half of parameters — including ayanamsaId, timezone, timezoneOffset, precision, fields — to the schema. Partial compensation merits a 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 names a specific verb+resource ('KP number chart') and explains precisely what the horaryNumber does — fixing the sidereal ascendant from a 249-entry table. It is far more than a restatement of the title. It does not, however, distinguish this tool from the many sibling KP tools (kp_cusps, kp_asc_sub, etc.), so an agent must infer the boundary.
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 text is entirely mechanical: it explains how the chart is computed but never states when to use a KP horary chart versus a natal chart or versus sibling KP tools like kp_asc_sub or kp_cusps. There are no exclusions or prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_planet_cuspal_positionKP: Planet cuspal positionsBRead-onlyIdempotentInspect
For each planet: sidereal longitude + KP chain (sign/star/sub/sub-sub) + Placidus house occupied. Convenience layout for KP analyses.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/planet-cuspal-position] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| planets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, closed-world nature of the call. The description adds useful behavioral context beyond that: the exact endpoint, the four required inputs, and the cost (20 credits, Tier 2), which helps an agent budget the call.
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 core output summary is front-loaded in the first sentence, followed by compact metadata lines. There is little waste, though the bracketed metadata could be slightly more integrated.
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. Annotations cover the safety profile, and the description supplies cost and required inputs. However, it lacks any routing guidance among the numerous KP siblings and does not clarify the many optional parameters, leaving clear gaps for an agent.
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 only 33% across 15 parameters. The description merely repeats the four required parameters already listed in the schema and does not explain the optional parameters (e.g., ayanamsa, fields, precision, timezone), so it fails to compensate for the coverage gap.
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 specifies exactly what is returned for each planet: sidereal longitude, the full KP chain (sign/star/sub/sub-sub), and the Placidus house occupied. This distinguishes it from siblings like kp_cusps or kp_sub_lords, though it never explicitly names an alternative 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 phrase 'Convenience layout for KP analyses' implies the tool is meant for KP workflows, but there is no explicit guidance on when to choose it over the many other KP siblings (e.g., kp_cusps, kp_sub_lords) or any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_ruling_planetsKP: Ruling PlanetsBRead-onlyIdempotentInspect
Canonical KP ruling planets: Day-lord + Hora-lord + Asc-sign + Asc-star + Asc-sub + Moon-sign + Moon-star + Moon-sub, deduplicated. Used in horary timing analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/ruling-planets] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| moon | No | |
| method | No | |
| dayLord | No | |
| ayanamsa | No | |
| horaLord | No | |
| ascendant | No | |
| rulingPlanets | No |
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 cost (20 credits, Tier 2) and required inputs, which is useful, but says nothing about latency, caching, or the deduplication behavior's practical effect.
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 tool's output components, followed by compact bracketed metadata. No filler sentences; every line carries information, though the bracketed block is mildly redundant with schema fields.
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, and annotations cover safety. For a 15-parameter tool the description is adequate, though the low schema coverage of several optional parameters leaves minor gaps.
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 only 33%, so the description is expected to compensate, yet it merely restates the four required parameters already marked required in the schema. It adds no meaning for ayanamsa, timezone, houseSystem, fields or precision, leaving several parameters undocumented.
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 computation and enumerates its exact components (Day-lord, Hora-lord, Asc-sign/star/sub, Moon-sign/star/sub), so an agent knows precisely what is returned. It does not, however, differentiate itself from closely named siblings such as astroway_vedic_kp_horary or astroway_vedic_kp_significators.
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?
"Used in horary timing analysis" gives an implied context of use, but there is no explicit when-to-use/when-not, nor any routing to alternative KP tools. The agent must infer that this is a supporting call rather than a standalone horary query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_significatorsKP: Significators (primary/secondary/tertiary)BRead-onlyIdempotentInspect
KP significator hierarchy per planet: primary = houses occupied by the star-lord; secondary = houses occupied by the planet itself; tertiary = houses occupied by the sign-lord. K.S. Krishnamurti Reader IV.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/significators] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| significators | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety needs no restating. The description adds genuinely new operational context: a 20-credit Tier 2 cost, the group, and the POST endpoint — cost is material for an agent deciding whether to call it. It omits auth requirements and rate limits, which keeps it out of 5 territory.
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 substantive content is front-loaded in a single dense sentence that defines the three tiers, followed by a compact bracketed metadata block that is easy to scan. Nothing is padded, though the source citation (K.S. Krishnamurti Reader IV) is scholarly color rather than actionable instruction.
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 required inputs plus cost are stated. For a 15-parameter KP endpoint, however, the description leaves a real correctness gap: it never signals that KP significators conventionally require the KP/Krishnamurti ayanamsa and a KP-appropriate house system, so an agent could invoke it with defaults and produce non-KP results.
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 only 33% across 15 parameters, so the description is expected to compensate and does not. It echoes the four required names already present in the schema's `required` array, but says nothing about the choices that materially change KP output — ayanamsa (krishnamurti/kp), houseSystem, zodiacType, or the `fields`/`precision` compact-mode options.
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 computation (KP significator hierarchy per planet) and even defines the three tiers operationally — primary from the star-lord's houses, secondary from the planet's own, tertiary from the sign-lord's. That is far more specific than a restated title. It stops short of 5 because it never distinguishes this output from adjacent KP tools such as kp_sub_lords, kp_ruling_planets, or kp_planet_cuspal_position, so an agent must guess which KP artifact it wants.
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?
There is no when-to-use statement, no when-not-to, and no named alternative among the many KP siblings. The bracketed block lists required inputs and cost but gives no selection guidance. An agent learns what the tool computes, not when it should be preferred over a different KP endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_sub_lordsKP: Sub-lords (cusps + planets)BRead-onlyIdempotentInspect
Full KP "horoscope at a glance" table: sub-lord chain for every cusp + every planet (lagna, 9 grahas including Ketu).
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/sub-lords] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| lagna | No | |
| planets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, non-destructive read (readOnlyHint/idempotentHint/destructiveHint), so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond the schema: the 20-credit Tier 2 cost and the POST endpoint. It does not describe the returned structure, though 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 core purpose is a single front-loaded sentence, with bracketed metadata for group, endpoint, required inputs, and cost. It is compact and easy to scan. Minor waste in the redundant required-parameter bracket, but overall 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 a 15-parameter tool the definition covers purpose, required inputs, cost, and endpoint, and the output schema carries the return contract, so the agent can call it. What is missing is any guidance on the optional parameters (timezone vs timezoneOffset, ayanamsa, fields) and on when to prefer this over sibling KP tools.
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 only 33% across 15 parameters, so the description must compensate and it does not. It merely repeats the four required parameters (date, time, latitude, longitude), which the schema already lists in its required array, and says nothing about the 11 optional parameters such as fields, ayanamsa, timezone, precision, or houseSystem.
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 concrete verb and resource: it returns the KP sub-lord chain for every cusp plus every planet (lagna, 9 grahas including Ketu). This is clearly more than a tautology. However, it never contrasts itself against close siblings like astroway_vedic_kp_cusps (cusps only) or astroway_vedic_kp_sub_sub_lord (deeper chain), so sibling differentiation is left to inference.
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 no when-to-use guidance, no exclusions, and never names an alternative tool. An agent must infer from the title alone that this is the full cusp+planet sub-lord table rather than the cusps-only or sub-sub-lord variant. Only the required-input list and cost are provided, neither of which is usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_sub_sub_lordKP: Sub-sub-lord lookupARead-onlyIdempotentInspect
Returns the full sub-lord chain (sign/star/sub/sub-sub) at any sidereal longitude 0..360. Useful for transit-trigger and dasha-bhukti exact-moment analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/sub-sub-lord] [Required: longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No |
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 contributes the credit cost (20 credits, Tier 2) and endpoint, which are useful but not behavioral traits like edge cases or precision loss beyond the schema's note.
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 return content, followed by the use case, with metadata in a compact bracketed block. Efficient, though the metadata block slightly dilutes the core sentence.
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 covers the required param, cost tier, and endpoint. The only shortfall is the lack of sibling disambiguation among several closely named KP tools.
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 67%, and the schema already documents `fields` and `precision`. The description adds the 'sidereal' qualifier for longitude beyond the raw 0..360 range, a small but real semantic gain; nothing is said about the compact-mode parameters, so it doesn't compensate for the gap.
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 full sub-lord chain (sign/star/sub/sub-sub) at any sidereal longitude 0..360.' An agent can distinguish this from the sibling kp_sub_lords (which operates on a chart/planet) because this one is longitude-scoped.
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 names use cases ('transit-trigger and dasha-bhukti exact-moment analysis') but gives no when-not guidance and never contrasts itself with the related kp_sub_lords or kp_asc_sub siblings, leaving the agent to infer which KP sub-lord tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_transit_kpKP: Transit positionsBRead-onlyIdempotentInspect
Sidereal positions of all 9 grahas (incl. Ketu) at targetDate (default = now) with KP sub-lord chain attached. Use for KP transit-timing.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/transit-kp] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jd | No | |
| planets | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly/idempotent/non-destructive, lowering the burden, and the description adds useful extras: the default of 'now', the Ketu inclusion, and the 20-credit Tier 2 cost. It still says nothing about rate limits, auth, or response shape, so it is solid but not rich.
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 core behavior is front-loaded in one dense sentence, followed by a compact metadata block for group/endpoint/cost. No filler, though the metadata block could be folded or trimmed for tightness.
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 endpoint/cost lines are useful. However, for an 8-parameter tool with 63% schema coverage and no required params, the definition never explains the date/time pair or resolves the `targetDate` mismatch, leaving ambiguity about the single most important input.
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 references a `targetDate` parameter that does not exist in the schema (which has `date` and `time`), which will mislead an agent about how to supply the moment. With schema coverage at 63% and no format hints for date/time, the description does not compensate for the gap and actively introduces a naming inconsistency.
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: sidereal positions of all 9 grahas including Ketu with the KP sub-lord chain attached. This distinguishes it from the many natal/KP siblings (kp_cusps, kp_sub_lords, kp_significators) by scoping it to transits, though no sibling is named explicitly.
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 phrase 'Use for KP transit-timing' gives an implied use case, but there is no when-not, no prerequisite (e.g. birth data vs. just a date), and no named alternative among the ~15 other KP tools. It is adequate but leaves the agent to infer scope boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kundliKundli (one call)ARead-onlyIdempotentInspect
A kundli card in one call: D1 lagna and the nine grahas with sign names, the Moon nakshatra and pada, the running Vimshottari maha and antar at targetDate (default now), and the Parashari yogas and doshas with a present list of the ones found. Each part is the same answer as its own route (/vedic/varga/D1, /vedic/dashas/vimshottari/antar, /vedic/yogas/parashara/full, /vedic/doshas/parashara/full). latitude and longitude are required; time is HH:mm:ss or HH:mm.
[Group: Vedic] [Endpoint: POST /v1/vedic/kundli] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dasha | No | |
| lagna | No | |
| yogas | No | |
| doshas | No | |
| grahas | No | |
| ayanamsa | No | |
| nakshatra | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description's job is supplemental. It adds real context beyond annotations: that the response is a composite of four otherwise-separate route answers, that `targetDate` defaults to now, and that yogas/doshas come back as a `present` list of those found. It doesn't mention the 50-credit cost or latency of composing four computations, which would be useful.
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 most important fact (one call, full card), then the returned contents, then the route equivalence, then parameter caveats. Dense but no filler sentences; slightly heavy with backticked route/format tokens, but every clause carries 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?
An output schema exists, so return values need not be reproduced; the description still summarizes the payload shape usefully. Annotations cover safety, the schema covers the birth-data contract, and the description covers composition semantics and the targetDate default — an agent has everything needed to call this correctly for a 3-parameter 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 schema already documents parameters and the baseline is 3. The description adds value beyond it by stating latitude/longitude are required, giving the accepted `time` formats, and noting `targetDate` defaults to now — a default that does not appear in the schema for that field. The `fields`/`precision` compact-mode params are left to 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 names a specific verb+resource (a kundli card in one call) and enumerates exactly what it returns: D1 lagna, nine grahas with sign names, Moon nakshatra/pada, running Vimshottari maha/antar, and Parashari yogas/doshas with a `present` list. It explicitly maps each part to the sibling routes it aggregates (/vedic/varga/D1, /vedic/dashas/vimshottari/antar, /vedic/yogas/parashara/full, /vedic/doshas/parashara/full), so an agent can distinguish it from those sibling tools 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 'one call' framing plus the explicit equivalence to four individual routes tells the agent when this is the right pick (want the whole card, avoid four round trips) versus the narrower single-purpose siblings. It doesn't state exclusions (e.g., use a different tool for compatibility or transits), so it falls short of full when/when-not guidance, but the aggregation context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_blind_houseLal Kitab: Blind houses (Andha bhava)BRead-onlyIdempotentInspect
Houses with no planet AND no Parashari aspect. Per Lal Kitab, blind houses indicate areas where karma is "unilluminated" and remedies are essential.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/blind-house] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| disclaimer | No | |
| blindHouses | No |
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 conceptual context (what a blind house means, that remedies follow) but says nothing about computation behavior, cost implications beyond the metadata line, or response shape. This is adequate but not rich; a 3 fits against annotations carrying the safety burden.
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, compact, and the bracketed metadata block cleanly separates endpoint/cost/required-args from the conceptual description. Every sentence carries information, though the required-field line is redundant with 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?
An output schema exists, so return values need not be explained. The conceptual base is present, but with 33% schema coverage and no usage guidance for a tool that sits among many similar Lal Kitab siblings, the description leaves meaningful selection and parameter gaps.
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 only 33% (15 params), so the description should compensate for undocumented parameters. Instead it merely restates the four required fields (date, time, latitude, longitude) that the schema already enforces as required, adding no syntax or semantic meaning for the remaining 11 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?
The description defines the specific astrological concept ("Houses with no planet AND no Parashari aspect") that this tool computes, which is clear and non-tautological. However, it never distinguishes itself from close siblings like astroway_vedic_lal_kitab_sleeping_house or astroway_vedic_lal_kitab_remedies, leaving an agent to infer the boundary.
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?
There is no when-to-use guidance, no prerequisites, and no named alternative. The statement that remedies are "essential" is interpretive color, not routing information that would help an agent choose this tool over lal_kitab_remedies or lal_kitab_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_dashaLal Kitab: Dasha (35-year cycle)BRead-onlyIdempotentInspect
Lal Kitab dasha: 35-year cycle, 1 house per ~2.917 years from age 0 forward. Per K. Ashant tradition (alternate 38y impl in some authors flagged in method).
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/dasha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dasha | No | |
| lagna | No | |
| method | No | |
| cycleYears | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive, closed-world behavior. The description adds genuine value beyond them: the cycle length, per-house duration, starting age, attribution to the K. Ashant tradition, endpoint, and a 20-credit (Tier 2) cost warning. This is substantive computational and cost 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 core computational definition is front-loaded, and the bracketed metadata (group, endpoint, required, cost) is scannable. Fairly efficient, though the bracket block is somewhat conventional filler rather than description 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 explained, and the astronomical/cycle semantics are covered. But the dangling `method` reference, absent usage guidance, and undocumented parameters leave gaps for a 15-parameter tool. Adequate but not complete.
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 15 parameters and only ~33% schema coverage, the description is expected to compensate, but it repeats only the required list already present in the schema. Worse, it references a `method` field that does not exist in the input schema, which could mislead an agent looking for that property.
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 resource and mechanism: 'Lal Kitab dasha: 35-year cycle, 1 house per ~2.917 years from age 0 forward.' An agent can identify the technique precisely. However, with ~150 sibling dasha tools (vimshottari, shodashottari, yogini, etc.), it never differentiates itself from those 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?
No when-to-use guidance and no routing to alternatives despite a dense field of sibling dasha tools. The only directional hint is that an alternate 38-year implementation exists 'in some authors,' which is a variant note rather than usage guidance. An agent gets no signal on when to prefer this over the other dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_debtsLal Kitab: Rin (6 ancestral debts)BRead-onlyIdempotentInspect
Detects six ancestral debts (Pitri / Stree / Kanya / Atma / Rishi / Daiva Rin) per Lal Kitab planet-affliction patterns. Each rin returns trigger conditions + recommended remedy. Per K. Ashant Vol. IV + R.D. Mathur consensus.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/debts] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rins | No | |
| lagna | No | |
| disclaimer | No | |
| activeCount | No |
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 burden is lifted; the description adds genuinely new context by disclosing the response shape ('trigger conditions + recommended remedy'), the interpretive source, and the operational cost (20 credits, Tier 2). It omits auth requirements and any latency/pagination expectations, but for a deterministic read-only calculation this is solid.
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?
Three front-loaded sentences that establish what, what-you-get, and provenance, followed by a compact metadata block. The bracketed 'Required' line duplicates the schema's required array and costs a line, but overall it is tight and free of 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, so return-value explanation is not strictly needed, and the definition still covers purpose, output gist, source, required inputs, and cost. The notable gap is the absence of any routing guidance against the overlapping lal_kitab_rin / doshas siblings, which is where an agent would most likely err.
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 only 33% across 15 parameters, so the description is expected to compensate and does not. It repeats the four required fields already enforced by the schema and says nothing about the ayanamsa/zodiacType/houseSystem enums, the compact 'fields' projection, or the timezone-vs-timezoneOffset tradeoff that materially affects results.
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 ('Detects') and names the exact resource and its six sub-types (Pitri/Stree/Kanya/Atma/Rishi/Daiva Rin), plus the doctrinal basis (Lal Kitab planet-affliction patterns), so the agent knows what computation is performed. It does not, however, distinguish itself from the near-identical sibling astroway_vedic_doshas_lal_kitab_rin, which an agent would have no way to choose between.
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?
No when-to-use statement and no named alternatives, despite the crowded Lal Kitab sibling set (lal_kitab_remedies, doshas_lal_kitab_rin, doshas_lal_kitab_pitra, doshas_lal_kitab_full). The only usage-ish content is the bracketed 'Required: date, time, latitude, longitude', which merely restates schema requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_kismatLal Kitab: Kismat (fortune indicator)BRead-onlyIdempotentInspect
LK fortune score: +2 pakka ghar, +1 own sign, +2 exalted, −2 debilitated. Higher = more fortunate per K. Ashant Vol. III.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/kismat] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| kismat | No | |
| disclaimer | No | |
| interpretation | No |
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 fully covered. The description adds the cost (20 credits, Tier 2) and the source citation (Ashant Vol. III), which are useful, but says nothing about return shape, whether pakka ghar/own sign are evaluated per planet, or aggregation behavior — the burden there is only partly met by the 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 scoring rubric is front-loaded in a single dense sentence, followed by compact bracketed metadata blocks that are easy to scan. Nothing is padded, though the rubric's notation (+2 pakka ghar) assumes domain familiarity.
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 scoring formula gives the agent what it needs to interpret the number. However, for a 15-parameter tool at 33% schema coverage with no alternative-routing guidance, the definition leaves meaningful gaps 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 only 33% across 15 parameters, so the description is expected to compensate — but it only restates the four required parameters (date, time, latitude, longitude) already marked required in the schema. The numerous optional chart-shaping parameters (ayanamsa, houseSystem, zodiacType, fields, precision) get no explanation here, leaving the coverage gap unaddressed.
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 resource and computation — a Lal Kitab fortune (kismat) score — and exposes the exact scoring rubric (+2 pakka ghar, +1 own sign, +2 exalted, −2 debilitated), so an agent knows precisely what it produces. It is distinguishable from siblings like prosperity or life_graph by its single fortune score. It stops short of explicitly contrasting itself with those siblings, so it is a clear 4 rather than a 5.
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?
There is no statement of when to use this versus the other ~15 Lal Kitab endpoints (prosperity, life_graph, teva, etc.), nor any prerequisites or exclusions. 'Higher = more fortunate per K' explains output interpretation, not usage. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_lal_kundaliLal Kitab: Kundali (12-house grid)BRead-onlyIdempotentInspect
Lal Kitab kundali grid layout: 12 houses, each listing planets currently in it with state. Companion to /teva for chart visualization.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/lal-kundali] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| grid | No | |
| lagna | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, non-destructive, and closed-world, so the safety profile is covered. The description adds two pieces of genuinely behavioral metadata the annotations lack: the 20-credit Tier-2 cost and the POST endpoint. It says nothing about pagination, response shape, or auth, so it is modestly additive.
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?
One prose sentence followed by bracketed metadata (group, endpoint, required, cost) — front-loaded and scannable, with no filler. The parenthetical tags are terse and each carries distinct information. Not padded, though the required-params tag duplicates 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?
An output schema exists, so return values need not be explained here. For a 15-parameter chart endpoint with three enums and a defaulted house system, however, the description gives no orientation on which configuration choices matter, leaving an agent to infer intent from bare schema fields.
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 only 33% across 15 parameters, so the description should be compensating and does not. Its only parameter content is '[Required: date, time, latitude, longitude]', which merely restates the schema's required array. Undocumented or thin fields like zodiacType, houseSystem, ayanamsaId, cosmogram, and the interaction between timezone and timezoneOffset get no help from 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 concrete output: a 12-house Lal Kitab kundali grid with planets per house and their state. This is a specific resource and it positions itself against the sibling astroway_vedic_lal_kitab_teva as a 'companion for chart visualization'. It stops short of a crisp verb, but the artifact is 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?
'Companion to /teva for chart visualization' hints at the relationship to one sibling, implying they are used together. But among ~150 sibling tools there is no explicit when-to-use/when-not guidance, no statement of what you'd pick instead, and no prerequisites beyond the required-params line. Usage is implied rather than taught.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_life_graphLal Kitab: Life graph (age-by-age)BRead-onlyIdempotentInspect
Year-by-year (age 0..35) Lal Kitab dasha snapshot showing the running house, its ruler, and the ruler's current state in the chart. Use as a rough timing index.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/life-graph] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| lifeGraph | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds genuine extra context: the bounded age range 0..35, the caveat that output is a 'rough timing index', the required parameters, and the cost tier (20 credits). It stops short of describing pagination or output shape, but the annotations and output schema carry 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?
The purpose sentence is front-loaded and information-dense, followed by a compact bracketed metadata block (group, endpoint, required, cost). Every element earns its place, though the bracketed lines are boilerplate rather than tool-specific insight.
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, idempotent tool with an output schema present, the description needn't explain return values, and it covers purpose, scope, and cost. What it lacks is enough parameter guidance for a 15-param tool with only 33% schema coverage, so it is only minimally adequate 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 only 33% across 15 parameters, so the description should compensate — but it merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required. It supplies no meaning for the eleven optional parameters (fields, precision, ayanamsa, timezone, houseSystem, etc.), leaving most of the low-coverage surface undocumented in prose.
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: a year-by-year (age 0..35) Lal Kitab dasha snapshot showing the running house, its ruler, and the ruler's state. The 'age-by-age' scope is distinctive. It does not, however, explicitly differentiate itself from the closely named sibling astroway_vedic_lal_kitab_dasha, which an agent could easily confuse it with.
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?
'Use as a rough timing index' gives a soft usage cue and a hedge about precision, which is helpful context. But it names no alternative tool and gives no when-to-use/when-not-to-use conditions, so the agent must infer how this differs from the other Lal Kitab dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_planet_house_effectLal Kitab: Planet-in-house effectARead-onlyIdempotentInspect
Short summary of a (planet, house) placement per LK. Caller passes planet (0..6, 11=Rahu, 100=Ketu) and house (1..12). Currently Sun-only full data; remaining 8 planets are placeholder text; the full 144-cell reading database is a Phase 3 content task.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/planet-house-effect] [Required: planet, house] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| house | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| planet | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| house | No | |
| effect | No | |
| planet | No | |
| pakkaGhar | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description's real contribution is the blunt data-completeness caveat: only Sun has full data, the other 8 planets return placeholder text, and the 144-cell database is deferred to Phase 3. It also surfaces cost (20 credits, Tier 2) and the endpoint. Telling an agent the tool is partially stubbed is exactly the kind of context structured fields cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then the input encoding, then the completeness caveat, with bracketed metadata block for group/endpoint/required/cost. Every sentence carries 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-value shape need not be explained. Combined with annotations covering the safety profile and the description covering the critical input encoding and the stub-data limitation, an agent has what it needs to call the tool correctly. Only the missing usage framing keeps it below 5.
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 50%, and the two undescribed parameters are the required ones. The description compensates by giving the planet encoding (0..6, 11=Rahu, 100=Ketu) and the house range (1..12), which the schema's generic safe-integer bounds do not convey at all. It adds nothing for the already-documented `fields` and `precision`, so 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?
The description names a specific resource and action: a short summary of a (planet, house) placement per Lal Kitab. That cell-level scope is inherently distinct from the broader Lal Kitab siblings (lal_kitab_full, lal_kitab_lal_kundali, lal_kitab_teva), so an agent can tell them apart 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 description explains the inputs but gives no when-to-use guidance, no exclusions, and never routes the agent toward or away from the other Lal Kitab tools. Usage is only weakly implied by the tool name and title, so this is a clear gap rather than merely a missing exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_prosperityLal Kitab: Sukh (prosperity yoga)BRead-onlyIdempotentInspect
LK dhana yoga sum: count benefics (Moon/Mercury/Venus/Jupiter) in 2/5/9/11 houses (LK fixed). +2 each. Higher = more prosperity yoga.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/prosperity] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sukh | No | |
| lagna | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a safe, idempotent, non-destructive, closed-world read. The description adds genuinely new behavioral facts beyond them: the POST endpoint, the required inputs, and notably the 20-credit (Tier 2) cost per call. It does not, however, describe output shape or limits, which the output schema partly covers.
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 short and front-loads the computation rule before the bracketed metadata block. The formula sentence is dense but earns its place; no filler text. Slightly terse given the tool's parameter complexity, but structurally clean.
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 core computation is stated. But for a 15-parameter chart tool with only 33% schema coverage, the absence of any description of the sidereal/zodiac/house-system options leaves real gaps 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 only 33% across 15 parameters, so the description carries a compensating burden it does not meet. It merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required, and says nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or the enum choices.
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 gives a specific verb and resource: it computes a Lal Kitab dhana/'Sukh' prosperity yoga score by counting benefics (Moon/Mercury/Venus/Jupiter) in houses 2/5/9/11 with +2 each. This is far more concrete than the title alone. It does not name sibling alternatives (e.g. astroway_vedic_yogas_parashara_dhana or astroway_vedic_yogas_jaimini_dhana), so it falls short of full sibling 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?
There is no when-to-use or when-not-to-use guidance and no comparison to the many competing dhana/prosperity yoga tools in the sibling list. The only context given is the required-parameter list and cost, which the schema and pricing already imply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_remediesLal Kitab: Remedies (Upayas)ARead-onlyIdempotentInspect
Per-planet Lal Kitab remedies (upayas): the canonical Mathur-tradition remedy + day + donation + mantra. With optional planet param, returns single-planet upaya; without, returns all 9.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/remedies] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| remedies | No |
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), and the description adds genuinely new operational context: the credit cost and tier (20 credits, Tier 2) as well as the exact composition of the returned remedy. It does not mention rate limits or caching, but the cost disclosure is the kind of detail agents cannot get from the annotation block.
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?
Two tight sentences plus compact metadata tags; the capability statement leads and the optional-parameter behavior follows immediately. No filler or 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?
An output schema exists, so return values need not be detailed, and the description still summarizes the shape helpfully while adding group, endpoint, and cost. The main remaining gap is the planet index convention, though that is arguably a schema-authoring problem rather than a description one.
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 description only adds the planet/no-planet branching already visible in the schema. It does not resolve the biggest ambiguity: `planet` is an integer with no enum or description, so an agent has no idea whether it is a 1-based graha index or something else.
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 resource (Lal Kitab remedies/upayas) and enumerates exactly what each remedy contains: remedy, day, donation, mantra. It also names the tradition (Mathur) and the scope (per-planet), which cleanly separates it from the sibling lal_kitab tools that report chart structure, dashes, or doshas rather than remedies.
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 a conditional on the `planet` param (single-planet upaya vs all 9), which implies when to narrow scope, but it never states when to reach for this tool over adjacent ones such as astroway_vedic_gemstones or astroway_vedic_doshas_lal_kitab_*. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_sleeping_houseLal Kitab: Sleeping housesBRead-onlyIdempotentInspect
Houses where a planet is in its pakka ghar with no companions/aspects. LK considers such planets dormant; remedies activate them.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/sleeping-house] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| disclaimer | No | |
| sleepingHouses | No |
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 fully covered. The description adds genuinely useful operational context — the cost (20 credits, Tier 2) and the endpoint path — but says nothing about response shape, latency, or determinism beyond what annotations state.
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?
Two sentences of concept followed by a clean bracketed metadata block; the definition is front-loaded and the cost/endpoint data is scannable. Slightly terse relative to the complexity, 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 not be described, and the cost/endpoint block covers operational essentials. However, for a 15-parameter tool with low schema description coverage and a dense cluster of Lal Kitab siblings, the definition leaves the agent without enough to choose inputs or disambiguate the tool from blind_house and planet_house_effect.
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 only 33% across 15 parameters, so the description carries a real burden here — yet it only restates the four required parameters that the schema already marks as required. It offers no guidance on ayanamsa choice (relevant for Lal Kitab), timezone vs timezoneOffset precedence, or the compact-mode fields/precision 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 defines the domain artifact precisely — houses where a planet sits in its pakka ghar with no companions or aspects — which tells the agent what content the tool produces. It is not a plain verb+resource statement, and it does not distinguish itself from close siblings like astroway_vedic_lal_kitab_blind_house or astroway_vedic_lal_kitab_planet_house_effect, but the concept is specific enough to be actionable.
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?
There is no when-to-use guidance, no mention of when this tool is preferable to the other Lal Kitab endpoints, and no prerequisites beyond the bare [Required: date, time, latitude, longitude] line. The statement that 'remedies activate them' hints at interpretation but does not route the agent to any remedy tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_tevaLal Kitab: Teva (fixed-house chart)ARead-onlyIdempotentInspect
Lal Kitab teva: fixed-house chart where house = sign (Aries=1..Pisces=12), no ASC rotation. Each planet placed by sign with state (own/exalted/debilitated/neutral) + pakka-ghar match flag. YELLOW: Lal Kitab is single-school; we ship K. Ashant + R.D. Mathur consensus.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/teva] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| teva | No | |
| lagna | No | |
| disclaimer | No | |
| pakkaGhars | No |
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 low. The description adds real value beyond them: it describes the returned content shape (each planet by sign with own/exalted/debilitated/neutral state plus a pakka-ghar match flag) and flags a source-authority caveat about the single-school Lal Kitab interpretation 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?
The prose is tight and front-loaded: mechanics first, returned content second, caveat last, with bracket metadata kept separate. Every sentence earns its place, though the metadata block adds tokens the surrounding structured context already supplies.
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 detailed, and the safety profile is covered by annotations. For a 15-parameter tool at 33% description coverage, however, the description leaves the agent without enough to configure sidereal/zodiac/house options confidently.
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 only 33% across 15 parameters, so the description would need to compensate and does not. It lists the four required inputs and the cost, but says nothing about zodiacType, houseSystem, ayanamsa, cosmogram, or fields — parameters whose meaning an agent must infer from bare enum values.
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 specific verb+resource (Lal Kitab teva) and immediately states the defining mechanics: fixed-house chart where house = sign (Aries=1..Pisces=12), no ASC rotation. That single clause distinguishes it from the generic kundli and varga chart siblings 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?
The description explains what the chart is but never says when to reach for it versus siblings such as astroway_vedic_lal_kitab_lal_kundali or astroway_vedic_kundli. The YELLOW note about school consensus is a caveat, not usage guidance, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_varshphalLal Kitab: Varshphal (annual)ARead-onlyIdempotentInspect
Lal Kitab annual progression at given age. Returns the running 35-year-cycle dasha house + approximate solar-return JD for full annual chart casting.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/varshphal] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| lagna | No | |
| varshphal | No | |
| disclaimer | No | |
| runningDashaHouse | No |
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 useful context by naming what comes back (running 35-year-cycle dasha house plus approximate solar-return JD) and the credit tier, but says nothing about auth, rate limits, or failure modes.
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?
One front-loaded sentence carries the substance, followed by short structured metadata lines (group, endpoint, cost). No filler, no repetition of schema content; only the boilerplate block borders on non-essential.
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, rich annotations, and a fully documented input schema, the definition only needs to frame purpose and selection — which it mostly does. The lone gap is the absence of any signal distinguishing it from the other Lal Kitab and Varshaphal 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 baseline is 3. The description does single out `age` as the pivot for the annual progression, which maps meaning to the one non-generic parameter, but adds no range, default, or edge-case 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?
"Lal Kitab annual progression at given `age`" gives a clear verb+resource and the annual-scoping is specific enough to separate it from the general Lal Kitab dasha tools. It never names a sibling, though, so an agent weighing it against astroway_vedic_lal_kitab_dasha or astroway_vedic_varshaphal must infer the distinction from the label alone.
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 phrase "for full annual chart casting" gestures at the use case, but there is no explicit when-to-use, when-not-to-use, or named alternative. An agent gets an implied context rather than a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_business_startMuhurat: Business start (Vyapara)BRead-onlyIdempotentInspect
Auspicious-window scanner for starting a business / new venture. Preferred nakshatras: Pushya/Hasta/Chitra/Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Sravana/Punarvasu. Avoid Sun/Tue/Sat. Same scoring shape.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/business-start] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
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 genuinely useful operational context: the POST endpoint, the required parameter, and the 50-credit Tier 3 cost. It does not describe pagination or the 'scoring shape' it references, but with an output schema present that gap 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 one-line purpose followed by a compact metadata block. The nakshatra list is long but domain-relevant and the 'Same scoring shape' note is efficiently terse. No filler sentences.
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 metadata block covers endpoint, required input, and cost. However, for a 10-parameter tool the description leaves most parameters and all sibling routing unexplained, which is a clear gap for correct invocation in a crowded muhurat family.
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 only 40% across 10 parameters, so the description carries more burden than usual. It only surfaces the required search_window_start and the nakshatra selection rules, leaving latitude, longitude, ayanamsa, timezoneOffset, topN, and fields unexplained here and thinly 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 and resource: 'Auspicious-window scanner for starting a business / new venture.' The domain is unambiguous and clearly distinct from siblings like muhurat_marriage or muhurat_property_purchase. It stops short of naming which sibling to prefer when the venture type is ambiguous, so it doesn't reach 5.
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 implies the domain (business/new venture) but gives no explicit when-to-use, when-not-to-use, or alternatives. With ~12 muhurat siblings sharing the same shape, nothing here helps the agent route between e.g. business_start, investment, or general_auspicious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_education_startMuhurat: Education start (Vidyarambha)ARead-onlyIdempotentInspect
Auspicious-window scanner for starting formal education / Vidyarambha ceremony. Preferred nakshatras: Hasta/Chitra/Swati/Pushya/Sravana/Revati/Anuradha/Punarvasu/U.Phalguni/U.Ashadha/U.Bhadrapada. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/education-start] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description earns credit by adding operational context: endpoint, cost (50 credits, Tier 3), and the required parameter. It could go further on what the scan returns and window bounds, but the cost/auth context is genuinely useful.
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 compact structured brackets for group/endpoint/required/cost, plus a tight nakshatra list. Every line carries signal; only minor trimming 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 described, and the description supplies the domain-specific auspiciousness rules that an agent would otherwise lack. The remaining gap is parameter-level guidance on the non-required inputs, which is modest given schema coverage.
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 only 40% and the description adds no parameter semantics beyond restating the required 'search_window_start'. It says nothing about topN, latitude/longitude, timezoneOffset, or search_window_end, so it fails to compensate for the coverage gap on a 10-parameter tool.
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: an 'auspicious-window scanner' for 'starting formal education / Vidyarambha ceremony'. The education/Vidyarambha framing cleanly distinguishes it from the many sibling muhurat tools (marriage, business_start, travel, etc.) 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 domain rules for a good window (preferred nakshatras, avoid Sun/Tue/Sat) and lists the required input, but never states when to choose this tool over a sibling like naming_ceremony or general_auspicious. Guidance is implied rather than explicit about tool selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_general_auspiciousMuhurat: General auspicious windowARead-onlyIdempotentInspect
Generic favourable-window finder when no specific activity applies (Sankalpa, prayer, fallback). Universal Pushya/Hasta nakshatras + standard shubha tithis. Returns top-N days against universal Panchang criteria.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/general-auspicious] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
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 operational context: the astrological criteria used (universal Pushya/Hasta and shubha tithis), that it returns top-N days, the endpoint, and the 50-credit cost.
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 text is front-loaded with the tool's purpose and criteria, followed by compact bracketed metadata. It is efficient and well-structured, though the endpoint/cost block is slightly extraneous to pure tool 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 10-parameter tool with only 40% schema description coverage, the description is incomplete. It does not explain how to constrain the search window or set location, timezone, ayanamsa, or topN, all of which are important for a muhurat finder. The output schema covers return values, but parameter guidance is largely 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 only 40% across 10 parameters, so the description should compensate but does not. It mentions the required search_window_start only, leaving topN, ayanamsa, latitude, longitude, timezoneOffset, precision, fields, search_window_end, and ayanamsaId without added meaning in 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?
The description states a specific verb+resource ('favourable-window finder') and explicitly scopes it as the generic fallback when no specific activity applies. It names the criteria used (Pushya/Hasta nakshatras, shubha tithis) and distinguishes itself from the many activity-specific muhurat 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?
It clearly says to use this when no specific activity applies, with Sankalpa, prayer, and fallback as examples. It implies the activity-specific muhurat tools should be used instead but does not name any alternative tool, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_investmentMuhurat: Investment / Dhana SthapanaARead-onlyIdempotentInspect
Auspicious-window scanner for major investments and financial commitments (deposits, share/bond purchase, lending). Preferred nakshatras: Pushya/Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Hasta/Sravana. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/investment] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds genuinely new behavioral context: the credit cost and tier ('50 credits (Tier 3)') plus the search-window requirement, which the agent cannot get from 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 purpose sentence is front-loaded and dense, and the bracketed metadata block is compact. The nakshatra/day lists are relevant domain content rather than padding, though the block format slightly fragments the flow.
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 cost/required params are surfaced. However, for a 10-parameter tool with 40% schema coverage, the description leaves geographic and formatting parameters (lat/long, topN, fields, precision) opaque, leaving real gaps.
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 only 40%, and the description repeats just the one required parameter (search_window_start) already flagged by the schema. It says nothing about the geographic inputs (latitude/longitude), topN, ayanamsaId, or search_window_end, so it fails to compensate for the coverage gap.
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 verb+resource ('Auspicious-window scanner for major investments and financial commitments') and enumerates the covered cases (deposits, share/bond purchase, lending). This clearly separates it from sibling muhurat tools such as business_start, property_purchase, or vehicle_purchase 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?
Domain scoping implies when the tool applies, and the required-parameter note hints at invocation, but there is no explicit when-to-use/when-not guidance and no reference to the many sibling muhurat scanners. The agent must infer routing from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_journey_longMuhurat: Long journey (multi-day Yatra)ARead-onlyIdempotentInspect
Auspicious-window scanner for multi-day journeys (pilgrimages, relocation travel). Stricter than short travel: Friday is excluded per Yatra prakarana. Preferred nakshatras: Punarvasu/Pushya/Anuradha/Sravana/Hasta/Mrigashira/Revati/Ashwini.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/journey-long] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive, closed-world call, so the safety burden is light. The description adds genuinely useful non-structural context: 50 credits (Tier 3) cost, the POST endpoint, and the domain rule that Friday is excluded per Yatra prakarana plus the preferred nakshatra set. It says nothing about rate limits or response shape, though an output schema exists to cover 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 with the purpose and scope, followed by the differentiator, the nakshatra rule, and then a compact bracketed metadata block. Every line carries information; the nakshatra enumeration is long but domain-relevant. Minor overhead comes from the endpoint string, which is not actionable for a tool call.
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 values need no explanation, and the domain selection rules are well stated. The gap is input completeness: with 10 parameters at 40% coverage, the description never explains that latitude/longitude (defaulting to 0) determine location-specific windows, nor the ayanamsaId alias, leaving correctness of a computational tool partly undocumented.
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 10 parameters and only 40% schema description coverage, the description should compensate for the undocumented ones, but it only repeats that search_window_start is required. Latitude/longitude, search_window_end, topN, and ayanamsaId have no descriptions in either the schema or the description, so the agent gets no guidance on location-dependence or the ayanamsaId/ayanamsa duality. Only the required-parameter note adds marginal value over 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: an 'auspicious-window scanner for multi-day journeys (pilgrimages, relocation travel)', which is clearly a muhurat computation, not a chart lookup. It differentiates against short travel ('stricter than short travel', Friday excluded), but never names the sibling astroway_vedic_muhurat_travel, so an agent must infer which of the many sibling tools is the 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?
Gives clear context for use: multi-day journeys, pilgrimages, relocation travel, and implicitly excludes short trips by claiming to be stricter than the short-travel variant. The metadata block also states the one required parameter and the credit cost, which helps an agent decide whether to call it. However, it never explicitly says 'use astroway_vedic_muhurat_travel for single-day trips', so routing is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_marriageMuhurat: Marriage (Vivah)ARead-onlyIdempotentInspect
Auspicious-window scanner for marriage (Vivah Muhurat) over a date range. Scores each day by Tithi + Vara + Nakshatra + Yoga + Karana per Muhurta Chintamani Adhyaya 5 + B.V.Raman Muhurta Ch.6. Preferred nakshatras: Rohini/Mrigashira/Magha/Hasta/Swati/Anuradha/Mula/U.Phalguni/U.Ashadha/U.Bhadrapada/Revati. Avoid Sun/Tue/Sat. Returns top-N days sorted by score with per-day Abhijit Muhurat sub-window.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/marriage] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: the scoring factors (Tithi/Vara/Nakshatra/Yoga/Karana), the classical sources cited, preferred and avoided nakshatras, the days to avoid (Sun/Tue/Sat), and the output shape (top-N sorted by score with an Abhijit sub-window). It stops short of noting the 50-credit cost or any rate limits.
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 in the first clause, followed by methodology and then output format — a logical scan-read order. Every sentence carries distinct information (source citations, preferred nakshatras, avoided weekdays, return shape) 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?
Because an output schema exists, the description needn't explain return values, and it is complete on the astrological methodology, which is what an agent needs to trust the ranking. However, for a 10-parameter tool with only 40% schema coverage it leaves meaningful parameter semantics undocumented, so it is adequate but with a clear 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 only 40%, so the description bears more burden, yet it names no parameters at all. Only weak implicit mapping exists ('date range' → search_window_start/end, 'top-N' → topN); there is no guidance on latitude/longitude, ayanamsa, timezoneOffset, precision, or fields, and no mention that search_window_start is the sole required field despite that being flagged in 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?
States a specific verb and resource ('auspicious-window scanner for marriage (Vivah Muhurat)') and immediately names the domain and scope ('over a date range'). The '(Vivah)' qualifier and marriage-specific nakshatra/scoring rules clearly distinguish it from sibling muhurat tools like business_start or vehicle_purchase.
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 implied by the name and scanning framing — an agent can infer this is for picking marriage dates — but there is no explicit when-to-use, when-not, or alternative routing (e.g. vs astroway_vedic_muhurta_types or general_auspicious). The required date window is noted only in context lines, not framed as a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_name_changeMuhurat: Name changeBRead-onlyIdempotentInspect
Auspicious-window scanner for legal or sacramental name change (uses Namkaran-derived rules with widened tithi set). Preferred nakshatras: Hasta/Chitra/Swati/Pushya/Anuradha/Revati/U.Phalguni/U.Ashadha/U.Bhadrapada.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/name-change] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
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 adds genuinely useful operational context beyond them: cost (50 credits, Tier 3), the endpoint, the required parameter, and the rule derivation. It stops short of describing result shape or window-size constraints.
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 compact bracketed metadata; nothing is padded. The nakshatra list is long but is domain content the agent may need, not 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 so return values need no explanation, and cost/required/endpoint are present. The main gap is the absence of any disambiguation from the near-identical naming_ceremony tool and no note on how a narrow search window affects results, which matters for a 10-parameter scanner.
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 only 40%, and the description barely compensates: it only restates that search_window_start is required, which the schema's required array already conveys. Latitude, longitude, topN, search_window_end and ayanamsaId remain undocumented in both places, so an agent gets little help on the geolocation/timezone inputs this scanner needs.
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: an auspicious-window scanner for name change, with the rule basis (Namkaran-derived, widened tithi set) called out. However it does not distinguish itself from the very close sibling astroway_vedic_muhurat_naming_ceremony, and the 'Namkaran-derived' phrasing actually blurs that boundary rather than sharpening it.
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 phrase 'for legal or sacramental name change' implies the use case, and the widened tithi set hints at scope. But there is no explicit when-to-use vs the naming_ceremony sibling, no statement of exclusions, and no guidance on choosing among the ~12 muhurat siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_naming_ceremonyMuhurat: Naming ceremony (Namkaran)BRead-onlyIdempotentInspect
Auspicious-window scanner for Namkaran (naming ceremony). Wide nakshatra acceptance per classical text. Note: orthodox practice schedules Namkaran on the 11th or 12th day after birth; this scan returns top auspicious days within any caller-supplied window.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/naming-ceremony] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
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 description's real contribution is operational: the 50-credit Tier 3 cost and the requirement that search_window_start be supplied. It does not disclose pagination or result-shape behavior, but with an output schema present that is 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?
Two tight prose sentences followed by a structured [Group]/[Endpoint]/[Required]/[Cost] block; the purpose and the practical prerequisites are front-loaded. Slightly more than strictly needed, but nothing 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?
An output schema exists, so return values need not be explained, and cost plus the required parameter are covered. What is missing for a 10-parameter geolocation-sensitive muhurat tool is guidance on the coordinate/timezone/ayanamsa inputs and any differentiation from the adjacent muhurat 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 only 40% across 10 parameters, so the description carries a compensation burden it does not meet. It names search_window_start as required and implies topN ('top auspicious days'), but says nothing about latitude/longitude, ayanamsaId, fields, or the search_window_end pairing, all of which are undocumented or thinly 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+resource ('auspicious-window scanner for Namkaran') and grounds it in classical practice ('wide nakshatra acceptance'). It does not explicitly distinguish itself from the near-identical sibling astroway_vedic_muhurat_name_change, which an agent would plausibly confuse with it.
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 note about orthodox practice (11th/12th day after birth) and the statement that the scan returns top days in any caller-supplied window gives implied usage context. However, there is no explicit when-to-use/when-not, and no routing away from muhurat_name_change or muhurat_general_auspicious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_property_purchaseMuhurat: Property purchase / Griha PraveshBRead-onlyIdempotentInspect
Auspicious-window scanner for purchasing or moving into property (Griha Pravesh). Preferred nakshatras: Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Mrigashira/Rohini/Pushya/Hasta/Sravana/Dhanishta/Shatabhisha/Revati. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/property-purchase] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
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 adds genuine domain behavior beyond that: the preferred nakshatras, the avoid Sun/Tue/Sat rule, and the 50-credit Tier 3 cost. It does not mention permissions or rate limits, but for a read-only scanner this is solid additive 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?
Two content sentences are front-loaded with the core purpose followed by the domain rules, with no filler prose. The bracketed metadata block (group/endpoint/required/cost) is compact and useful, though slightly 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 complex 10-parameter tool, the definition covers purpose, cost, and domain rules, and an output schema exists so return values need not be explained. It leaves gaps on the large set of unmentioned parameters and on differentiation from the broader muhurat family, making it adequate but not complete.
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 only 40% across 10 parameters, so the description is expected to compensate and does not. It only restates that search_window_start is required, which the schema already declares, and says nothing about latitude/longitude, timezoneOffset, topN, ayanamsa, or search_window_end semantics. The list of nakshatras describes internals of the scan, not how to fill the inputs.
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 gives a specific verb+resource: an auspicious-window scanner for purchasing or moving into property (Griha Pravesh). That is clearly distinct from the neighboring muhurat tools (vehicle_purchase, marriage, investment, etc.). It stops short of explicitly naming a sibling to differentiate against, but the domain scoping is 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 domain context (buying or moving into property) implies when the tool applies, so an agent can infer the use case. However, no explicit when-to-use vs alternatives guidance is given, and with a large family of muhurat_* siblings a note such as 'use general_auspicious for non-property events' would materially help selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_surgeryMuhurat: Surgery (Shastrakarma)ARead-onlyIdempotentInspect
Auspicious-window scanner for elective surgery. Inverted polarity vs benefic activities: Tue/Sat (Mars/Saturn) preferred for cutting work; Sun/Mon/Thu/Fri avoided. Output is advisory only, and modern medical scheduling takes precedence.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/surgery] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the burden is light — and the description still adds meaningful context: the counterintuitive Tue/Sat preference for 'cutting' work, the advisory-only framing with medical scheduling taking precedence, and the 50-credit Tier 3 cost. The polarity rule is exactly the kind of behavior an agent would otherwise get wrong.
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?
Three front-loaded sentences carry the core meaning with no filler, followed by a compact metadata block (group, endpoint, required, cost). Efficient, though the bracketed metadata is somewhat boilerplate rather than descriptive 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 described, and annotations cover the safety profile. The description supplies purpose and the advisory caveat, but for a geo-dependent muhurat tool it is silent on coordinate/timezone expectations and on the non-obvious equator default.
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 only 40% across 10 parameters, and the description contributes nothing about them beyond restating the single required 'search_window_start' (already enforced by the schema). Key parameters such as latitude/longitude (defaulting to 0, i.e. the equator/Atlantic), topN, ayanamsaId, and search_window_end are left unexplained.
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 ('auspicious-window scanner for elective surgery') that cleanly distinguishes this tool from the many sibling muhurat scanners (marriage, travel, property, business). The added note that polarity is inverted relative to benefic activities makes the tool's output semantics 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 'inverted polarity vs benefic activities' remark implicitly steers the agent toward the other muhurat_* tools for benefic events, and the advisory caveat bounds expectations. However, there is no explicit when-to-use/when-not-to-use statement or named alternative for non-surgical timing queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_travelMuhurat: Travel (short Yatra)BRead-onlyIdempotentInspect
Auspicious-window scanner for short / daily travel. Preferred nakshatras: Ashwini/Pushya/Anuradha/Hasta/Sravana/Mrigashira/Punarvasu/Revati. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/travel] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the description correctly focuses on complementary facts: the credit cost (50 credits, Tier 3), the endpoint, and the required parameter. This adds budgeting and invocation context beyond the structured fields, though nothing about latency or result shape (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?
Two short sentences are front-loaded with the purpose and scanning rules, followed by scannable bracketed metadata. There is no filler prose, though the metadata block adds lines without additional semantic content beyond routing and cost.
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 output schema means return values need not be explained, but for a 10-parameter scanner with 40% schema coverage the description is thin: it says nothing about the search-window semantics, topN behavior, or the fact that latitude/longitude default to 0 (an ambiguous default location). Adequate for routing, incomplete for confident 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 only 40% across 10 parameters, and the description compensates almost nothing: it merely restates 'Required: search_window_start', which the schema already marks required. Key parameters such as topN, latitude/longitude (defaulting to 0), ayanamsa, precision, and fields receive no clarifying meaning from 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+resource ('auspicious-window scanner') and a precise scope ('short / daily travel'), which implicitly separates it from the long-journey muhurat sibling. It does not name or contrast an alternative tool explicitly, so it falls short of a 5.
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 domain selection criteria (preferred nakshatras, avoid Sun/Tue/Sat) but never states when to choose this tool over the muhurat_journey_long or muhurat_general_auspicious siblings. Usage is implied by the 'short / daily travel' scope rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_vehicle_purchaseMuhurat: Vehicle purchaseARead-onlyIdempotentInspect
Auspicious-window scanner for buying a new vehicle. Preferred nakshatras: Ashwini/Pushya/Hasta/Chitra/Anuradha/Revati/U.Phalguni/U.Ashadha/U.Bhadrapada/Sravana. Avoid Sun/Sat. Same scoring shape as /vedic/muhurat/marriage.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/vehicle-purchase] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent safety profile, so the bar is lower. The description adds genuinely useful behavior beyond that: the preferred nakshatra set, the Sun/Sat avoidance rule, and the cost tier (50 credits, Tier 3).
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?
Money sentences are front-loaded, and the bracketed metadata block is easy to scan. It is dense but every element (nakshatras, cost, endpoint, required field) 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. However, with 10 parameters and 40% schema coverage, several inputs remain undocumented in both places, leaving the description adequate but incomplete for a tool of this surface area.
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 only 40% across 10 parameters. The description repeats only that search_window_start is required (already in the schema) and adds nothing for topN, fields, ayanamsa, precision, latitude/longitude, or timezoneOffset, so it fails to compensate for the low 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+resource: 'Auspicious-window scanner for buying a new vehicle.' The vehicle framing cleanly distinguishes it from the many sibling muhurat tools (property_purchase, marriage, travel, etc.), 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 vehicle-purchase scope makes the intended situation clear, and it cross-references 'Same scoring shape as /vedic/muhurat/marriage' for the output. It offers no explicit when-not or sibling routing (e.g., vs. general_auspicious), so it stops short of full 5-level guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurta_typesMuhurat: activity catalogueARead-onlyIdempotentInspect
List the 12 supported muhurat activities (key + Sanskrit name + one-line purpose) so a client can discover them without hard-coding. Free metadata read, no calculation.
[Group: Vedic] [Endpoint: GET /v1/muhurta/types] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| activities | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioral context beyond them: 'Free metadata read, no calculation' sets cost and computational expectations. However, the 'Free metadata read' claim sits awkwardly against the auto-generated 'Cost: see your plan — endpoint not in the public credit manifest', leaving the cost signal slightly muddled.
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 core sentence is tight and front-loaded, delivering purpose, content, and the non-calculation caveat immediately. The trailing bracketed metadata (group/endpoint/cost) adds length but is clearly structured and skimmable, so 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?
With an output schema present, the description needn't explain return values, and it even summarizes them anyway. Combined with full annotation coverage and fully-documented optional params, nothing essential is missing; only the guidance on how it fits into a muhurat workflow is thin.
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 optional parameters (fields, precision) are fully self-documented in the schema. The description adds nothing about them, which is the correct baseline-3 outcome 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 precise verb (list) and resource (the 12 supported muhurat activities) and even spells out the return shape: key + Sanskrit name + one-line purpose. The phrase 'no calculation' distinguishes it from the many astroway_vedic_muhurat_* calculation siblings, so an agent can tell this is a discovery/catalogue tool rather than a chart computation.
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?
'So a client can discover them without hard-coding' implies the intended use — enumerate activity keys before invoking a specific muhurat calculation — but it never says when to use this versus a calculation endpoint, nor names an alternative. Usage is inferable rather than stated, which lands at minimum-viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_nakshatrasNakshatrasBRead-onlyIdempotentInspect
Calculate the Nakshatra (lunar mansion) for each planet using the sidereal zodiac. Returns nakshatra name, pada, deity, and quality.
[Group: Vedic] [Endpoint: POST /v1/nakshatras] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| planets | No | |
| ayanamsaId | No |
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 that computation is sidereal and lists the output payload, and the metadata discloses a 20-credit (Tier 2) cost, which is real value beyond annotations; however it says nothing about rate limits, ayanamsa defaults, or timezone requirements.
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?
Two tight sentences front-load the calculation and the return payload, followed by a compact metadata block. Nothing is padded or redundant, though the bracketed lines are somewhat 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?
An output schema exists, so explaining return values is not strictly required, and required inputs plus cost are supplied. For a 15-parameter calculation with 33% schema coverage, however, the description leaves notable gaps around the sidereal configuration options and timezone handling that an agent would need to resolve elsewhere.
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 only 33% across 15 parameters, so the description should compensate more than it does. It does name the four required inputs and pins the zodiac mode to sidereal, which is useful, but it says nothing about the compact-mode fields, ayanamsa school selection, or the timezone/timezoneOffset interplay, leaving that burden entirely to 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 gives a specific verb and resource ('Calculate the Nakshatra (lunar mansion) for each planet using the sidereal zodiac') and even names the returned fields. The 'for each planet' scope implicitly separates it from the per-day sibling astroway_vedic_panchang_nakshatra_of_day, but that sibling is never named, so differentiation is left to inference.
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?
There is no statement of when to choose this tool over the many other Vedic calculation siblings, and no prerequisites or exclusions. The bracketed metadata lists required inputs and credit cost, which is practical context, but that is not usage guidance about when the tool is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_choghadiaPanchang: ChoghadiaBRead-onlyIdempotentInspect
8 day + 8 night Choghadia divisions. Each ~1.5h, marked good/bad/neutral. Cycle: Udveg, Char, Labh, Amrit, Kaal, Shubh, Rog. Day-start by weekday.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/choghadia] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sunset | No | |
| daytime | No | |
| sunrise | No | |
| nighttime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive. The description adds practical context: POST endpoint, required parameters, 20-credit Tier 2 cost, and the division/cycle model. It still does not explain auth or response behavior, but output schema and annotations carry much of 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?
The first sentence front-loads the core concept, followed by a compact cycle list and bracketed metadata. It is tight and scannable, though the metadata block could be integrated more cleanly.
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 15-parameter Vedic calculation with no output-schema burden, the description covers the concept and required inputs but omits how this tool relates to other panchang endpoints and how optional astrological settings affect results. Annotations and output schema fill safety/return gaps, leaving usage and parameter context thin.
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?
Coverage is only 33% across 15 parameters. The description repeats the four required parameters already present in the schema and adds no meaning for optional parameters such as ayanamsa, timezone, fields, precision, or houseSystem.
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 specific Choghadia divisions, their count/duration and quality marks, so it is clearly not panchang_full or hora. It does not explicitly name sibling alternatives, which keeps it from a 5.
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?
There is no when-to-use guidance, no contrast with other panchang tools such as hora, karana, tithi, rahu_kaal, or yoga. Required inputs are listed, but that is invocation data rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_fullPanchang: fullARead-onlyIdempotentInspect
Complete daily Panchang: Tithi, Vara, Karana, Yoga, Nakshatra + Choghadia + Rahu Kaal + Yamaganda + Gulika + Abhijit Muhurat. Single call. Tithi, karana, yoga and nakshatra carry endsAt (local ISO time with offset); sunNakshatra, moonrise and moonset (first after sunrise, disc centre on the horizon as panchangs count it; null when the Moon does not rise or set within 30 hours). muhurtas: Brahma Muhurta, Pratah and Sayahna Sandhya, Vijaya, Godhuli, Nishita, durMuhurtam, amritKalam and varjyam (lists), each { start, end } in local ISO time.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/full] [Required: date, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | moment (default): tithi, nakshatra, yoga and karana at date + time. sunrise: at local sunrise of that date, as a printed panchang gives them; time may be omitted. | |
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jd | No | |
| vara | No | |
| yoga | No | |
| tithi | No | |
| gulika | No | |
| karana | No | |
| sunset | No | |
| sunrise | No | |
| ayanamsa | No | |
| muhurtas | No | |
| rahuKaal | No | |
| choghadia | No | |
| nakshatra | No | |
| tarabalam | No | |
| yamaganda | No | |
| chandrabalam | No | |
| abhijitMuhurat | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds real non-obvious behavior: `endsAt` semantics, the sunrise-referenced moonrise/moonset convention ('disc centre on the horizon as panchangs count it') and the null rule when the Moon does not rise/set within 30 hours. It stops short of stating computation basis (ayanamsa default, zodiac) which matters for a sidereal panchang.
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 component inventory, then moves to time/return semantics in dense but economical sentences; no filler prose. The trailing [Group]/[Endpoint]/[Required]/[Cost] block is boilerplate but does add transport and cost facts that are otherwise unavailable.
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, yet the description still supplies the interpretive details an agent needs to read the response correctly (endsAt offsets, null conditions, muhurta list shapes). Combined with the cost/endpoint block, an agent has enough 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 only 38% across 16 parameters, so the description is expected to compensate but addresses no parameter at all — it never mentions date/time, latitude/longitude, the `at` moment-vs-sunrise switch, timezone, ayanamsa or the `fields`/`precision` compact mode. The only thing close to parameter meaning is the sunrise timing convention, which is about output rather than inputs.
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 resource (complete daily Panchang) and enumerates exactly which elements it returns (Tithi, Vara, Karana, Yoga, Nakshatra, Choghadia, Rahu Kaal, Yamaganda, Gulika, Abhijit Muhurat, muhurtas). This enumeration distinguishes it at a glance from the single-element siblings such as panchang_tithi, panchang_rahu_kaal and panchang_choghadia, which return just one component.
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 implied rather than stated: 'Single call' plus the full component list signals this is the aggregate tool to pick when you want everything, and the granular siblings exist for single components. However, there is no explicit when-to-use / when-not sentence, no guidance on preferring a cheaper sibling, and no mention of the credit cost tradeoff (20 credits, Tier 2).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_horaPanchang: HoraCRead-onlyIdempotentInspect
24 planetary hours per Chaldean order, with sunrise/sunset and day ruler.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/hora] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| hours | No | |
| latitude | No | |
| sunTimes | No | |
| timezone | No | |
| dayOfWeek | No | |
| longitude | No | |
| dayRulerPlanetId | No | |
| dayRulerPlanetName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description usefully adds the cost (20 credits, Tier 2) and the shape of the returned content, but says nothing about determinism, location sensitivity, or the polar-latitude edge case where sunrise/sunset are undefined.
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 in one sentence, with zero filler and no repetition. The bracketed metadata block is rote but compact and skimmable.
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 15-parameter, location-and-timezone-sensitive Vedic calculation, a one-line purpose plus metadata leaves the agent without routing guidance or parameter meaning. The presence of an output schema and annotations removes some burden, but the high parameter complexity is 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 only 33%, so the description should compensate, yet it merely restates the four required parameters already declared in the schema. It contributes nothing about ayanamsa, zodiacType, houseSystem, timezone, or precision, which materially change the Hora output.
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 phrase '24 planetary hours per Chaldean order, with sunrise/sunset and day ruler' names a concrete resource and scope (the Hora division of the day) and implicitly separates it from the tithi/karana/yoga/nakshatra siblings. It lacks an explicit compute/get verb and never names a sibling, so it is clear but not maximally differentiating.
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?
There is no statement of when to call this versus panchang_full, panchang_choghadia, or any other panchang tool, and no prerequisites or exclusions. The bracketed metadata gives required inputs and cost, but that is operational data, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_karanaPanchang: KaranaCRead-onlyIdempotentInspect
Half-tithi (1-60). 7 movable (Bava-Vishti) + 4 fixed (Kimstughna, Shakuni, Naga, Chatushpada).
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/karana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| index | No | |
| isFixed | No |
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 fully covered. The description adds genuinely new operational context — the endpoint and a 20-credit Tier 2 cost — which is useful for an agent budgeting calls, but it says nothing about output shape or edge cases.
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 domain definition followed by bracketed endpoint/required/cost metadata; no filler sentences. Efficient, though the bracket lines are slightly redundant with the schema's required 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?
Output schema and annotations exist, so return values and safety need not be re-explained. However, for a 15-parameter tool at 33% schema coverage, the near-total absence of parameter and usage guidance leaves the definition under-specified 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 only 33% across 15 parameters, so the description carries a heavy burden and does not meet it. It restates the four required fields (date, time, latitude, longitude) but adds nothing about timezone handling, ayanamsa, fields/precision compact mode, or the other optional inputs.
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 defines what Karana is (half-tithi, 1-60, with named movable/fixed types), which orients an agent to the domain but never states the tool's action — it does not say it returns the karana active at a given date/time/location. Nothing distinguishes it from sibling panchang tools such as panchang_tithi, panchang_yoga, or panchang_full.
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?
There is no when-to-use guidance and no alternative named, despite many sibling panchang tools that overlap (panchang_full, panchang_tithi, panchang_yoga, panchang_nakshatra_of_day). The '[Required: ...]' line lists inputs but is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_nakshatra_of_dayPanchang: Nakshatra of DayBRead-onlyIdempotentInspect
Moon's sidereal Nakshatra (lunar mansion) at the given moment, with Pada (1-4) and percent-complete.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/nakshatra-of-day] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pada | No | |
| nakshatra | No | |
| percentComplete | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful operational context beyond that - the cost (20 credits, Tier 2), the endpoint, and the shape of the result (nakshatra, pada, percent-complete) - which is helpful 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?
The description is short and front-loads the payload definition, with metadata brackets kept separate. Every line (group, endpoint, required, cost) carries information, though the 'Required' line largely duplicates the schema's required array.
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 safety profile is covered by annotations. However, for a 15-parameter tool with 33% schema coverage, the description omits any guidance on the optional ayanamsa, timezone, fields and precision parameters, leaving real gaps 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 only 33% across 15 parameters, so the description needs to compensate but does not. It merely restates the four required fields already declared in the schema's `required` array and adds nothing about ayanamsa, timezone/timezoneOffset, fields, precision, or houseSystem.
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 verb-resource pair ('Moon's sidereal Nakshatra ... with Pada (1-4) and percent-complete'), so an agent knows exactly what comes back. It is clear, but it never distinguishes itself from the many panchang siblings (panchang_full, panchang_tithi, panchang_yoga, etc.), so the agent must infer that this is the single-nakshatra slice rather than the composite.
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?
There is no when-to-use guidance and no named alternative. The 'Required' line and endpoint hint at a computed ephemeris lookup, but nothing tells the agent to prefer panchang_full when several panchang elements are needed, nor what preconditions (e.g. geocoding to lat/long) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_rahu_kaalPanchang: Rahu Kaal blockBRead-onlyIdempotentInspect
Three inauspicious 1.5h-windows (Rahu Kaal + Yamaganda + Gulika) + Abhijit Muhurat. Position depends on weekday and sunrise/sunset.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/rahu-kaal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gulika | No | |
| sunset | No | |
| sunrise | No | |
| rahuKaal | No | |
| yamaganda | No | |
| abhijitMuhurat | No |
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 usefully adds that window positions depend on weekday and sunrise/sunset, and discloses cost tier and endpoint, but says nothing about precision of the windows or required permission/auth beyond the 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 content line followed by compact bracketed metadata (group, endpoint, required, cost). Every element is short and earns its place, though the repeated 'required' line duplicates 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?
An output schema exists so return values need not be explained, and the description covers required inputs and cost. But for a 15-parameter tool at 33% schema coverage with no usage guidance, it leaves meaningful gaps 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 only 33%, so the description needs to compensate but does not. It merely restates the four required fields (date, time, latitude, longitude) already present in the schema's 'required' array, and leaves undocumented params like city, name, cosmogram, zodiacType, and houseSystem unexplained.
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 the concrete output content — Rahu Kaal, Yamaganda, Gulika (three 1.5h windows) plus Abhijit Muhurat — so an agent knows exactly what this resource returns. It does not, however, explicitly differentiate itself from sibling Panchang tools like panchang_choghadia, which also deal with inauspicious time windows.
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?
There is no when-to-use guidance and no alternative named. An agent cannot tell from the text whether to call this versus astroway_vedic_panchang_choghadia or astroway_vedic_panchang_full for inauspicious timing questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_tithiPanchang: TithiBRead-onlyIdempotentInspect
Lunar day (1-30): Moon-Sun elongation / 12°. Returns paksha (shukla/krishna), tithi name, % complete.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/tithi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| number | No | |
| paksha | No | |
| elongation | No | |
| indexInPaksha | No | |
| percentComplete | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely new context: credit cost and tier ('20 credits (Tier 2)'), the transport endpoint, and the required-input set — real operational context that annotations do not 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 with the core definition, then compact bracketed metadata (group, endpoint, required, cost). It is dense but every line carries information; no filler 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-value explanation is not required, though the description helpfully names the three returned fields. For a 15-parameter tool with 33% schema coverage and many near-identical panchang siblings, the description is minimally adequate but leaves parameter and sibling-selection gaps.
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 only 33% across 15 parameters, so the description is expected to compensate and largely does not. It restates the four required fields already marked required in the schema, but says nothing about zodiacType, houseSystem, ayanamsaId, cosmogram, city or name, leaving a large documentation gap.
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 gives a precise verb-adjacent definition: 'Lunar day (1-30): Moon-Sun elongation / 12°', and names the concrete outputs (paksha, tithi name, % complete). An agent knows exactly what computation this performs. It does not, however, distinguish it from sibling panchang tools (panchang_full, nakshatra_of_day, karana, yoga), several of which also touch tithi-adjacent daily values.
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?
Prerequisites are explicit ('Required: date, time, latitude, longitude') and the endpoint/cost framing implies when the call is warranted. But there is no 'use this vs panchang_full' guidance, and no exclusions, so usage is only implied by the definition of a tithi.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_yogaPanchang: YogaCRead-onlyIdempotentInspect
Surya-Chandra Yoga (1-27). Sum of Sun + Moon longitudes / (360/27).
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/yoga] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| number | No | |
| sumLongitude | No |
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 marginally useful operational context via the endpoint path and the cost (20 credits, Tier 2), but says nothing about permissions, rate limits, or what the returned Yoga value looks like beyond the range.
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 concept name and value range, and the bracketed metadata block is scannable. The formula sentence is slightly ambiguous (imprecise operator precedence), but nothing is padded and it reads in seconds.
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 15-parameter tool where two-thirds of parameters lack schema descriptions, the description does not fill the gap: it never explains the optional controls (ayanamsa, timezone, precision, fields, houseSystem) or how the result relates to the full panchang. An output schema exists, so return values need no explanation, but the input-side guidance is materially incomplete.
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 only 33% across 15 parameters, so several inputs (city, name, cosmogram, ayanamsaId, zodiacType, houseSystem, date, time, latitude, longitude) carry no documentation anywhere. The description merely repeats the four required parameter names that the schema already enforces and adds no meaning, format, or default guidance to compensate.
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 the specific resource (Surya-Chandra Yoga, the Yoga limb of Panchang, values 1-27) and even gives the underlying formula, which cleanly separates it from the sibling panchang tools for tithi, karana, nakshatra, hora and choghadia. However it never explicitly routes the agent away from panchang_full, so the differentiation is implied rather than stated.
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?
There is no when-to-use or when-not-to-use guidance: nothing tells the agent to pick this over astroway_vedic_panchang_full or the other limb-specific panchang tools. The bracketed [Required:] line only restates schema essentials and provides no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_cheshtaShadbala: Cheshta (motional)BRead-onlyIdempotentInspect
Cheshta Bala, motional strength via simplified retrograde+speed model: retrograde=60v, direct slow=ratio*60, direct fast=(2-ratio)*60. Sun=0 (handled via Ayana with ×2), Moon=0 (handled via Paksha with ×2). Full BPHS Cheshta-Kendra method (mean-longitude based) is not implemented yet; current divergence vs jhora ≤30v on non-stationary dates.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/cheshta] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, idempotent operation, but the description goes far beyond them: it discloses the exact simplified retrograde/speed formula, the exception handling for Sun and Moon, the fact that the full BPHS Cheshta-Kendra method is not implemented, and a quantified divergence bound versus jhora. These are the limitations an agent genuinely needs to judge output trustworthiness.
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?
Dense but front-loaded: the tool identity leads, then the model, then caveats, then the metadata block. The formulas are technical but arguably earn their place by letting an agent reason about the strength values; there is little outright 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 so return values need no explanation, and the description thoroughly covers the computational model and its limitations. However, for a 15-parameter tool with low schema coverage it omits any parameter-level guidance and any usage routing against shadbala_full, so it is adequate for behavior but incomplete for 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 only 33% across 15 parameters, so the description is expected to compensate, yet it says nothing about date, time, latitude, longitude, ayanamsa, timezone, precision, or the compact 'fields' mode. Only the implicit 'speed/retrograde' concept relates to the computation, leaving most parameters undocumented 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: 'Cheshta Bala, motional strength', which is one of the six Shadbala components and identifies it apart from siblings like shadbala_dig, kala, sthana, naisargika and drik. An agent can tell it computes one specific strength component, but the description never explicitly contrasts it with astroway_vedic_shadbala_full, which is the obvious alternative for a complete six-fold score.
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?
There is no when-to-use guidance at all: no statement of when Cheshta alone is preferable to shadbala_full, and no prerequisites such as needing a chart or ayanamsa context. The Sun=0 / Moon=0 notes explain internal scoring conventions rather than routing the agent to the right tool, so this is effectively absent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_digShadbala: Dig (directional)ARead-onlyIdempotentInspect
Dig Bala: directional strength. 60v at preferred kendra cusp, 0v at opposite point, linear gradient. Sun/Mars→10th, Moon/Venus→4th, Jupiter/Mercury→1st, Saturn→7th.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/dig] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
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 adds useful context beyond that: a specific cost of 20 credits (Tier 2), the endpoint, and the required parameter set. It does not discuss return values, 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?
The description is short and front-loads the key astrological semantics before the bracketed metadata. The bracket lines repeat some information available elsewhere, but cost and endpoint are useful and the whole is efficiently sized.
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 15-parameter endpoint with a rich output schema and strong annotations, the description covers purpose and cost but omits usage guidance and parameter semantics. An agent can invoke it correctly for the required fields, but the optional parameters remain opaque beyond their schema entries.
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 only 33%, so the description needs to compensate for underspecified parameters. It does not: it merely lists the four required parameter names, adding no meaning beyond the schema's required list, and says nothing about the optional ayanamsa, timezone, houseSystem, precision, or fields 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 the exact astrological quantity computed — Dig Bala, directional strength — and gives its formula (60v at preferred kendra, 0v opposite, linear gradient) plus planet-house mappings. This cleanly distinguishes it from sibling Shadbala tools such as sthana, kala, cheshta, drik, and naisargika.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling is named (e.g., use shadbala_full for all components). The astrological definition implies the context, but the description leaves the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_drikShadbala: Drik (aspectual)BRead-onlyIdempotentInspect
Drik Bala, net aspectual strength per BPHS A.27.49: (benefic_drishti − malefic_drishti) / 4 + full Mercury_drishti + full Jupiter_drishti. Mercury and Jupiter aspects super-add (full weight). Vedic full drishti: 7th for all + Mars 4/8, Jupiter 5/9, Saturn 3/10.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/drik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read. The description adds genuinely non-redundant operational context: the POST endpoint and a cost of 20 credits (Tier 2), which is exactly the kind of rate/cost disclosure that annotations cannot convey. It stops short of describing anything about the returned structure, but an output schema exists so that is not required here.
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 core formula is front-loaded in the first sentence and the operational metadata is cleanly bracketed at the end. No filler sentences. The drishti-rule sentence is dense but legitimately needed to interpret the result, so it 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 15-parameter domain calculation the definition covers the mathematics well and an output schema handles the return shape. What is missing is family context: sitting among six Shadbala components plus a full composite, the agent gets no signal about which to call or whether this feeds into shadbala_full. Adequate but with a real gap for tool selection.
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 only 33% across 15 parameters, so the description carries extra burden — yet it says nothing about any parameter beyond restating the four required ones, which the schema already marks as required. The many undescribed inputs (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, the raw coordinates) get no clarification, and the drishti narrative is about the output, not the inputs.
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 computed quantity (net aspectual strength) with the exact formula and the BPHS chapter-verse citation, plus the drishti rules used. An agent knows precisely what this returns. It does not, however, draw any contrast with the sibling Shadbala tools (drik vs dig vs kala vs shadbala_full), so differentiation rests on the name alone.
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?
There is no when-to-use guidance at all — no statement of when Drik Bala is the right component versus astroway_vedic_shadbala_full or the other five Shadbala parts, and no prerequisites or follow-up suggestions. The description is purely a formula spec, leaving routing entirely to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_fullShadbala: full summaryBRead-onlyIdempotentInspect
Combined Shadbala: всі 6 типів strength + total Virupa + total Rupa per planet. Single call. Useful for Vedic chart strength dashboards.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive), so the description earns credit for adding operational context beyond them: the HTTP endpoint, the 20-credit Tier 2 cost, and the four required parameters. It does not mention latency or response size for a consolidated six-fold calculation.
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 capability in one sentence, followed by compact bracketed metadata (group, endpoint, required, cost). Slight noise from the mixed-language fragment 'всі 6 типів' and the bracket block, but no wasted 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 no explanation, and the safety profile is in annotations. However, for a 15-parameter tool with 33% schema coverage and dense sibling overlap, the description leaves the agent guessing about optional parameters and about which Shadbala variant to pick.
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 only 33% across 15 parameters, so the description must carry more weight than it does. It restates the four required parameters already declared in the schema's required list, and says nothing about the many optional knobs (ayanamsa/ayanamsaId, zodiacType, houseSystem, timezone vs. timezoneOffset, fields, precision) that materially change the result.
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 ('Combined Shadbala ... all 6 types strength + total Virupa + total Rupa per planet'), and 'Single call' hints that it consolidates the work of the six sibling component tools (sthana, dig, kala, cheshta, naisargika, drik). It never names those siblings, so the differentiation is inferable rather than explicit.
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 implied context ('Useful for Vedic chart strength dashboards') but no explicit when-to-use/when-not guidance and no mention of the six per-component Shadbala siblings that an agent must choose between. 'Single call' is the only routing hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_kalaShadbala: Kala (temporal)BRead-onlyIdempotentInspect
Kala Bala, sum of Nathonnatha (continuous time-from-midnight/noon), Paksha (continuous Moon-Sun elongation, Moon-doubled per BPHS), Tribhaga (3-fold split of day/night), Abda+Masa+Vara+Hora rulers, Ayana (declination-based, Sun-doubled, Mercury bidirectional). Yuddha (planetary war) deferred. Abda/Masa rulers require Vedic calendar lookup, currently zeroed (no contribution) to avoid double-counting Vara.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/kala] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
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 adds genuinely useful behavioral context: Yuddha (planetary war) is deferred, Abda/Masa rulers are currently zeroed to avoid double-counting Vara, and the call costs 20 credits. Disclosing degraded/incomplete output this way is exactly the value structured fields 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?
The substantive content is front-loaded into a single dense sentence enumerating the computed components, followed immediately by the caveats that matter. The bracketed metadata lines are boilerplate but compact, and no sentence 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 not be explained, and the description adequately covers what is computed and what is intentionally omitted. However, for a read-only computation tool with 15 parameters, it leaves the non-required configuration parameters entirely unaddressed, which is a notable 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?
With 15 parameters and only 33% schema description coverage, the description is expected to compensate, but it only restates the four required parameters (date, time, latitude, longitude), which are already marked required in the schema. It adds no meaning for the other eleven parameters such as ayanamsa, zodiacType, houseSystem, or the compact-mode fields/precision options.
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 the specific Shadbala component (Kala Bala) and enumerates exactly which sub-components it computes (Nathonnatha, Paksha, Tribhaga, Ayana, etc.), so an agent knows precisely what is being calculated. It does not, however, explicitly distinguish itself from siblings like astroway_vedic_shadbala_full or the other individual balas.
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?
There is no when-to-use guidance. The description never says when this sub-bala should be called versus shadbala_full or the other five balas, nor any prerequisites beyond the required params. Usage is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_naisargikaShadbala: Naisargika (natural)ARead-onlyIdempotentInspect
Naisargika Bala: fixed natural strength per planet. Sun=60v, Moon=51.43, Venus=42.85, Jupiter=34.28, Mercury=25.71, Mars=17.14, Saturn=8.57.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/naisargika] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the operation is a fixed lookup (values are constants independent of the chart), it is a Tier 2 paid call costing 20 credits, and it lists required inputs. That is more than most read-only tool descriptions 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?
What the tool computes is front-loaded in the first sentence, followed by a compact metadata block. The constant table earns its place by defining the output semantically, and there is no redundant prose. Only minor overhead comes from bracketed operational tags.
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 safety, so the description need not address reversibility. It supplies the required inputs, cost tier, and the crucial fact that results are chart-independent constants, which is the key thing an agent needs to interpret output. It could still note whether optional chart parameters (ayanamsa, houseSystem) affect this specific computation.
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 only 33%, so the description should compensate, but it merely restates the four required parameters already marked required in the schema (date, time, latitude, longitude). It adds no meaning for the eleven other parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsa variants) and gives no syntax hints beyond what the schema documents.
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 the specific Shadbala component (Naisargika Bala) and explains what it yields: fixed natural strength per planet, going so far as to list the constant values. This distinguishes it from the sibling Shadbala components (cheshta, dig, drik, kala, sthana, full), though it never explicitly contrasts itself with shadbala_full. The verb is implicit ('compute/return') but the resource and its meaning are 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?
Usage is only implied by the component name and the listed constants; there is no explicit statement of when to prefer this over astroway_vedic_shadbala_full or the other Shadbala siblings. The endpoint/required/cost lines give operational context but not selection guidance. An agent can infer the use case but must reason it out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_sthanaShadbala: Sthana (positional)BRead-onlyIdempotentInspect
Sthana Bala, the sum of 5 sub-strengths: Ucchabala (exaltation), Saptavargaja (sum across 7 vargas D1/D2/D3/D7/D9/D12/D30 with Mulatrikona+Own/Friend/Neutral/Enemy weights per BPHS A.27.10-19), Ojhayugmarasyamsa (odd/even sign suitability D1+D9), Kendradi (60/30/15 angular/succedent/cadent), Drekkana (1st/2nd/3rd third gender match).
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/sthana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
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, so the safety profile is covered. The description adds real substance by naming the BPHS rule set (A.27.10-19), the varga set, and the weighting scheme, plus the cost tier. It does not, however, disclose response shape or that the result is deterministic per chart, which the annotations already imply.
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?
A single dense sentence for the concept plus a bracketed metadata block, with the core definition front-loaded. The parenthetical component list is information-rich rather than filler, though it could be trimmed for an agent that only needs selection cues.
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. What is missing is when to prefer this over the other shadbala endpoints and any hint at the 15 mostly-undocumented parameters, leaving the definition adequate but incomplete for a Tier-2 paid calculation.
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 only 33% across 15 parameters, and the description says nothing about any parameter — not the ayanamsa selection, the timezone/timezoneOffset interplay, the fields compact mode, or the four required inputs. With low coverage the description is expected to compensate and does not.
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 the exact quantity computed ('Sthana Bala, the sum of 5 sub-strengths') and enumerates the five components, which distinguishes it from sibling shadbala sub-tools (dig, kala, cheshta, drik, naisargika) and from shadbala_full. It never states in plain terms that it returns positional strength values, but a competent agent can infer the output.
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?
No statement of when to use this tool rather than astroway_vedic_shadbala_full or the other shadbala sub-tools, and no prerequisites or context beyond the required-input line. The agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d1Varga D1: RashiBRead-onlyIdempotentInspect
Sidereal natal sign chart (Rashi). Foundation of Vedic analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D1] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile thoroughly (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description's burden is lighter. It usefully adds the endpoint and the cost (20 credits, Tier 2), which are behavioral facts an agent needs. It says nothing about resolution behavior (which ayanamsa/house system defaults apply), but an output schema exists, so return-format disclosure is not required.
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 purpose sentence is front-loaded and the bracketed metadata lines are compact and scannable. Endpoint, required set, and cost each carry distinct value; almost no waste, though 'Foundation of Vedic analysis' is the only line that is purely editorial.
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 cost/endpoint metadata is a genuine plus for a paid tool. However, for a 15-parameter chart calculator with only 33% schema description coverage, the definition leaves the agent guessing about defaults (Lahiri ayanamsa, house system 'P') and compact-mode options that materially change the result.
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 only 33% across 15 parameters, so the description should compensate — but it merely restates the four required parameters (date, time, latitude, longitude), which are already enforced by the schema's required array. Optional but consequential inputs like ayanamsa, houseSystem, precision, fields, and zodiacType get no mention from the description at all.
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 resource — 'Sidereal natal sign chart (Rashi)' — and frames it as the 'Foundation of Vedic analysis', which gives it a distinct role among the many varga siblings (D2, D3, D9, etc.). It does not explicitly tell the agent how D1 differs operationally from those siblings, but the 'foundation' framing works as implicit 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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The 'Foundation of Vedic analysis' phrasing hints that this is the base chart other analyses build on, but that is inference, not instruction. The required-params and cost lines are operational metadata, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d10Varga D10: DasamsaBRead-onlyIdempotentInspect
Dasamsa chart (career, profession, public reputation).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D10] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful non-schema context: the endpoint (POST /v1/vedic/varga/D10), the required input set, and a cost of 20 credits (Tier 2), which no annotation conveys. It says nothing about payload size, latency, or ayanamsa-sensitive behavior, so a 3 is fair.
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?
Extremely compact and front-loaded: purpose first, then bracketed metadata blocks for group, endpoint, required params, and cost. Nothing is wasted, though the tag lines are boilerplate rather than prose that earns emphasis.
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 required inputs plus cost are stated. However, for a 15-parameter chart computation where school/house-system choices change results, the description leaves the agent to infer everything optional from a partially documented schema, making it adequate but not complete.
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 only 33%, so the description is expected to compensate, yet it merely restates the four required parameters that the schema already marks as required. The numerous optional parameters that materially affect output (houseSystem, zodiacType, ayanamsa, fields, precision) are given no explanation in the description, leaving the low-coverage gap unfilled.
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 the specific artifact (Dasamsa / D10 divisional chart) and glosses its astrological domain (career, profession, public reputation), which meaningfully distinguishes it from the crowded varga family (d9 marriage, d7 children, etc.). It is clear what the tool produces, but it never explicitly contrasts itself with those sibling varga endpoints, so it stops short of a 5.
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 parenthetical domain hint implies when an agent would reach for D10 (career questions), but there is no explicit when-to-use/when-not-to-use statement and no named alternative among the ~20 sibling varga tools. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d12Varga D12: DwadasamsaCRead-onlyIdempotentInspect
Dwadasamsa chart (parents, ancestral karma).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D12] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 safety is covered. The description adds genuinely new operational context — the POST endpoint, the 20-credit Tier 2 cost, and the required inputs — which is real value, though it says nothing about latency, caching, or how the D12 result differs from the base chart. Cost disclosure is the main non-annotation contribution.
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?
It is compact and front-loaded: the chart identity and purpose come first, metadata after. The bracketed lines are formulaic but each carries distinct information (group, endpoint, required set, cost), so there is no filler — the issue is under-specification rather than 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?
An output schema exists, so return values need not be explained, but for a 15-parameter endpoint with only 33% schema coverage the description leaves the agent without guidance on the sidereal/zodiac configuration and compact-mode options that materially change results. For a highly specialized Vedic chart tool embedded in a dense sibling family, this is too thin.
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 only 33% across 15 parameters, so the description carries a heavier burden than usual — yet it only restates the four required parameters already marked required in the schema. The eleven optional parameters (ayanamsa, ayanamsaId, timezone, timezoneOffset, zodiacType, houseSystem, fields, precision, cosmogram, city, name) get no elaboration, including the ones whose interaction rules (timezone vs timezoneOffset) are subtle.
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 the specific chart (Dwadasamsa / D12) and its astrological significations (parents, ancestral karma), which does differentiate it from the many sibling varga tools (d1, d9, d10, d16, etc.) that share the same shape. It stops short of stating the action verb ('compute/return the D12 divisional chart'), but the resource is 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?
There is no when-to-use guidance: nothing tells the agent when D12 is the right chart versus D9/D10/D60, nor what prerequisites (birth data quality, ayanamsa choice) apply. The bracketed metadata lists required fields and cost but not decision criteria, so the agent must infer selection from the significations alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d16Varga D16: ShodasamsaBRead-onlyIdempotentInspect
Shodasamsa chart (vehicles, comforts, conveyances).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D16] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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. The description adds useful operational context the annotations do not carry: the POST endpoint and the 20-credit Tier 2 cost. It says nothing about failure modes, validation, or response behavior for this computation.
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?
Very compact and front-loaded: purpose first, then bracketed metadata blocks that are easy to scan. Every element earns its place, though the tags are terse enough that some context is arguably left out rather than trimmed.
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. However, for a 15-parameter chart-computation tool the description is thin: it gives no framing on ayanamsa/house-system selection or the meaning of the D16 division, leaving the agent to work entirely from schema descriptions that cover only a third of the parameters.
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 only 33%, and the description's only parameter content is the list of required fields (date, time, latitude, longitude), which merely repeats the schema's required array. None of the 11 optional parameters (ayanamsa, houseSystem, zodiacType, precision, fields, etc.) receive any added meaning from the description, so it does not compensate for the coverage gap.
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 resource (the Shodasamsa / D16 divisional chart) and adds the traditional significations (vehicles, comforts, conveyances), which tells an agent what the chart is for. It has no verb, but the D16 designation implicitly separates it from the D1/D2/D9/D20 siblings in the same family.
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 parenthetical 'vehicles, comforts, conveyances' implies the kinds of questions this chart answers, and the cost line signals a Tier 2 spend, but there is no explicit statement of when to pick D16 over another varga or when not to use it. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d2Varga D2: HoraCRead-onlyIdempotentInspect
Hora chart (wealth analysis, half-sign Sun/Moon division).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D2] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 genuinely new operational context — the POST endpoint and a 20-credit Tier 2 cost — but says nothing about rate limits, response size, or caching.
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 substantive chart description in the first line and keeps metadata in compact bracketed tags with no filler sentences. Efficient, though the bracketed block is somewhat 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 high-complexity 15-parameter astrology computation the description is thin: it never explains how to choose this varga versus its ~20 sibling varga tools, and it leaves the undocumented parameters to the schema. Output schema and annotations do cover return values and safety, mitigating but not resolving the 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 only 33% for 15 parameters, so the description should compensate and does not. Its '[Required: date, time, latitude, longitude]' merely restates the schema's required array, adding no meaning for the ten under-documented parameters (zodiacType, houseSystem, cosmogram, etc.).
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 specific artifact ('Hora chart'), its analytical use ('wealth analysis') and its technical basis ('half-sign Sun/Moon division'), which goes beyond the bare name/title. Among the many sibling varga tools (D1, D3, D9, D60...), the D2/Hora identity is clear, though it does not explicitly contrast itself against those 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?
There is no when-to-use guidance at all — nothing says why an agent would pick the Hora chart over the other varga divisions available as siblings. The bracketed lines give endpoint, required params and cost, which are logistics rather than usage selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d20Varga D20: VimsamsaBRead-onlyIdempotentInspect
Vimsamsa chart (spiritual progress, sadhana, religious inclination).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D20] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 add real behavioral context not in the structured fields: the credit cost and tier ('20 credits (Tier 2)') and the underlying endpoint, which help an agent plan a call. It stops short of noting timezone/ayanamsa sensitivity of the computation.
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 signification is front-loaded in one sentence and the bracketed metadata lines are scannable and waste-free. Structure is tight; the endpoint line is arguably redundant with the tool name but cheap.
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 15-parameter astrological computation with an output schema, the description covers required inputs and cost but leaves the agent without any guidance on the many optional astrological settings (ayanamsa, zodiacType, houseSystem) or when this chart is warranted. It is minimally adequate rather than complete.
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 only 33%, so the description is expected to compensate, and it does not. It merely restates the four required parameters ('date, time, latitude, longitude') that are already enumerated in the schema's `required` array, adding no meaning for the 15 parameters, the ayanamsa/house-system choices, or the compact-mode flags.
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?
It names the specific resource (the D20/Vimsamsa divisional chart) and even glosses its astrological domain: 'spiritual progress, sadhana, religious inclination'. That distinguishes it in intent from the other varga siblings, but it never explicitly frames itself against d1/d9/d24 etc., so an agent must infer the D20-vs-D9 distinction from the code alone.
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?
There is no when-to-use guidance, no prerequisites, and no routing to or away from alternatives. The 'spiritual progress' gloss hints at an evaluation domain but nothing tells an agent when D20 is the right choice over another divisional chart, which matters given the very large varga sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d24Varga D24: ChaturvimsamsaBRead-onlyIdempotentInspect
Chaturvimsamsa / Siddhamsa chart (education, learning, academic achievement).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D24] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 adds genuinely useful non-annotation context — cost of 20 credits (Tier 2) and the endpoint — but says nothing about interpretation of the returned varga chart, latency, or auth/credit failure behavior.
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?
Terse and front-loaded: chart name and interpretive domain come first, followed by compact bracketed metadata. The required-parameter and endpoint lines are largely redundant with the schema, but the whole payload is short enough that waste is minimal.
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 takes 15 parameters and has an output schema, so return values need not be explained. Still, for a varga-specific chart with meaningful ayanamsa/house-system choices, the description gives no guidance on defaults or which optional inputs alter the result, leaving a gap for such a wide parameter surface.
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 only 33%, so the description needed to compensate for the 15-parameter surface. Instead it merely restates the four required fields already declared in the schema's `required` array, adding zero meaning for the eleven optional parameters (ayanamsa, houseSystem, zodiacType, precision, fields, timezone, etc.).
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 the specific resource (Chaturvimsamsa / Siddhamsa, the D24 divisional chart) and its interpretive domain (education, learning, academic achievement), which uniquely separates it from the D1/D9/D10 varga siblings. However, it never explicitly contrasts itself with those siblings or states what a varga chart computation does beyond the label.
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?
There is no when-to-use statement, no prerequisites, and no pointer to alternatives (e.g., 'use alongside D10 for career'). The parenthetical domain hint implies an education-focused reading, but this is inference rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d27Varga D27: SaptavimsamsaBRead-onlyIdempotentInspect
Saptavimsamsa / Bhamsa chart (strengths, weaknesses, stamina).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D27] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 fully covered. The description adds genuinely useful non-annotation context — credit cost (20 credits, Tier 2) and the concrete endpoint — but says nothing about how the chart is computed, caching, or determinism.
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?
Tight, front-loaded block: name and interpretive meaning first, then bracketed metadata lines that each carry distinct information (group, endpoint, required inputs, cost). The endpoint line is of marginal value to an agent, but there is no filler 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?
An output schema exists, so return values need not be explained, and annotations cover safety — that lightens the burden considerably. However, for a 15-parameter domain-specific tool where an agent may not know what a D27 divisional chart is, the description gives no selection context and leaves most parameter semantics to a partially documented 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 only 33%, so the description carries a real compensation burden, and it does not meet it: it merely restates the four required fields already listed in the schema's `required` array. The nine-plus undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, and the bare date/time/latitude/longitude) get no clarification from 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 the resource precisely (Saptavimsamsa/Bhamsa, D27 varga chart) and adds the interpretive domain it addresses (strengths, weaknesses, stamina), which distinguishes it from the other ~20 varga siblings by meaning, not just by number. It never uses a verb like 'compute' or 'generate', but the resource and scope are 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?
No when-to-use guidance at all: it does not say when a D27 chart is the right choice versus D9, D30, D60, or the general kundli tool. The only orienting metadata is the required-parameter list and credit cost, which are invocation facts, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d3Varga D3: DrekkanaBRead-onlyIdempotentInspect
Drekkana chart (siblings, courage; trinal third-of-sign division).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D3] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds cost (20 credits, Tier 2) and required inputs, but does not disclose authentication needs, rate limits, or other behavioral details beyond what annotations and the output schema already 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 chart's domain meaning and then gives terse, useful metadata. It contains no filler, though the bracketed metadata style is formulaic rather than richly structured.
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 15-parameter calculation tool with an output schema, the description covers the required inputs, cost, group, and endpoint. However, it omits any mention of important optional parameters and defaults that affect the chart calculation, leaving a significant gap given the low schema description coverage.
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 only 33% for 15 parameters. The description lists the four required fields (date, time, latitude, longitude), which are already marked required in the schema, and adds no meaning for optional parameters such as ayanamsa, houseSystem, timezone, fields, or precision. With low coverage, the description should compensate but does not.
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 the specific Vedic chart ('Drekkana chart') and describes its domain meaning ('siblings, courage; trinal third-of-sign division'). This distinguishes it from general astrology tools, though it does not explicitly compare it to sibling varga tools like D9 or D10.
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?
No guidance is given about when to use this D3 chart versus other varga charts or alternative tools. The metadata only states group, endpoint, required parameters, and cost, leaving usage selection entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d30Varga D30: TrimsamsaBRead-onlyIdempotentInspect
Trimsamsa chart (misfortunes, evils; uses Parashara unequal-segments formula).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D30] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 operational context the annotations lack: the endpoint, the four required inputs, and a per-call cost of 20 credits (Tier 2). It says nothing about response shape, precision of results, or failure modes.
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 in the first clause, then a compact bracketed metadata block. Every line carries information and there is no filler, though the bracket format is terse rather than prose-explanatory.
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 output schema means return values need no explanation, and the description covers identity, endpoint and cost. But for a 15-parameter tool at 33% schema coverage, the description leaves too many chart-configuration choices unexplained for an agent to call it confidently without reading 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 coverage is only 33%, so the description would need to carry real weight, but it merely restates the four required parameters already flagged in the schema. The many non-obvious options (ayanamsa vs ayanamsaId, zodiacType, houseSystem, cosmogram, name/city) get no explanation here, and the description does not clarify which of these matter for a D30 computation.
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 pair (Trimsamsa/D30 varga chart) and names the computational variant ('Parashara unequal-segments formula'), plus the interpretive domain ('misfortunes, evils'). It distinguishes itself from the many sibling varga tools by the explicit D30 identifier, though it doesn't say how to choose it over D9 or D60.
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 'misfortunes, evils' gloss implies the astrological use case, which is more than nothing, but there is no explicit when-to-use, no comparison to sibling vargas, and no guidance on prerequisites such as choosing an ayanamsa or house system for a divisional chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d4Varga D4: ChaturthamsaBRead-onlyIdempotentInspect
Chaturthamsa chart (fortune, fixed assets, real estate).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D4] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 safety semantics are covered by structured data. The description adds genuinely useful non-annotation context: the POST endpoint and the 20-credit Tier 2 cost, which an agent needs for budget planning. It says nothing about rate limits, latency, or what the response contains beyond the existence of an 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 purpose is front-loaded in a single clause, followed by bracketed metadata that is dense and skimmable. The 'Required' line duplicates the schema's required array and is the one element that does not earn its place; everything else (group, endpoint, cost tier) is actionable.
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 15-parameter chart computation with an output schema, the description covers identity, endpoint, and cost but omits any interpretive framing or parameter guidance beyond the required list. An agent can call it correctly but has no help choosing ayanamsa, house system, or zodiac type, which materially affect a varga chart.
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 only 33%, so the description is expected to compensate but does not: it merely restates the four required parameters, which the schema's required array already declares, earning no credit. The many optional parameters (ayanamsa, houseSystem, zodiacType, fields, precision, cosmogram) are neither explained nor linked to the chart's interpretation choices.
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 chart type (Chaturthamsa / D4) and maps it to domains (fortune, fixed assets, real estate), which is the standard signification set for the fourth divisional chart. Combined with the D4 label and endpoint, an agent can distinguish it from the D1/D9/D10 varga siblings. It stops short of explicitly contrasting itself with those siblings, so it falls just under a 5.
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?
There is no when-to-use or when-not-to-use guidance, and no mention of the alternative varga tools. The only routing aid is the domain gloss (real estate, assets), which an agent must interpret on its own. A brief 'use for property/asset analysis instead of D1' line would have closed this gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d40Varga D40: KhavedamsaCRead-onlyIdempotentInspect
Khavedamsa chart (auspicious & inauspicious effects, maternal lineage).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D40] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 genuinely useful non-schema context: the cost (20 credits, Tier 2) and the HTTP endpoint. It says nothing about execution latency, rate limits, or output behavior, so it is a modest rather than rich addition.
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 chart name and significations, followed by compact bracketed metadata lines for group, endpoint, required inputs, and cost. Nothing is padded; the tag-block format is scannable though slightly template-like.
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. But for a 15-parameter tool with low schema coverage, the description leaves the optional configuration surface undocumented and offers no guidance on defaults or interactions, making it only partially complete.
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 only 33% across 15 parameters, so the description is expected to compensate — yet it merely repeats the four required parameters already present and marked required in the schema. The eleven optional parameters (ayanamsa, timezone, houseSystem, precision, fields, etc.) get no clarification in 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?
The description names the specific resource (the D40/Khavedamsa divisional chart), which is what distinguishes it from the many virga siblings (D1, D9, D45, etc.). However, 'Khavedamsa chart' largely restates the title, and the parenthetical significations ('auspicious & inauspicious effects, maternal lineage') are the only added semantic content. It stops short of stating the action or what a caller gains from this specific varga.
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?
There is no when-to-use guidance, no statement of alternatives (e.g. why D40 over D45/D60), and no exclusions or prerequisites beyond the required-parameter list. An agent cannot tell from this text when this chart 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.
astroway_vedic_varga_d45Varga D45: AkshavedamsaBRead-onlyIdempotentInspect
Akshavedamsa chart (general life patterns, paternal lineage).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D45] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 safety profile is covered. The description adds genuinely useful non-annotation context: cost (20 credits, Tier 2), the endpoint, and the required inputs. It does not, however, describe latency, what the chart data contains, or any failure modes beyond cost.
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 short and front-loaded, with the chart's purpose first and bracketed metadata (group, endpoint, required, cost) after. Every element carries information, though the bracketed metadata is somewhat formulaic.
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. However, for a 15-parameter tool with only 33% schema description coverage, the description is too thin—it labels the required inputs and cost but leaves the many configuration parameters undocumented in prose.
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 only 33% across 15 parameters, so the description is expected to compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude), which are already marked required in the schema, and says nothing about the eleven optional parameters such as fields, precision, houseSystem, or ayanamsa.
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 verb-less but specific resource: the Akshavedamsa (D45) divisional chart, and gives its astrological scope (general life patterns, paternal lineage). This distinguishes it from the many other varga siblings (D1, D9, D40, etc.) by the divisional number and name. It stops short of contrasting directly with those siblings, but the tool's identity is 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 parenthetical '(general life patterns, paternal lineage)' hints at when this chart is relevant, but there is no explicit when-to-use guidance, no mention of alternatives (e.g., which varga to pick instead), and no prerequisites. Usage is implied by the domain, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d60Varga D60: ShashtiamsaBRead-onlyIdempotentInspect
Shashtiamsa chart (past karma, the most subtle divisional; high precision needed in birth time).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D60] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 genuinely useful non-annotation context: the endpoint, the 20-credit Tier 2 cost, and the sensitivity of the result to birth-time precision. Return format is not described, 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?
The lead sentence conveys the chart's identity and accuracy caveat first, followed by a compact structured metadata block. Nothing is padded, though the bracketed endpoint/required list is largely machine-facing rather than agent-facing.
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 15-parameter chart tool with an output schema and full annotation coverage, the description supplies what is needed to call it (required inputs, cost, precision caveat). However it offers no differentiation from the ~16 sibling varga tools, so an agent lacks the cues to select D60 correctly rather than D9 or D10.
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 only 33% across 15 parameters, so the description should compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude) with no added meaning, leaving the behavior of optional parameters such as zodiacType, houseSystem and ayanamsaIdId undocumented.
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 resource (the Shashtiamsa / D60 divisional chart) and its astrological meaning, which distinguishes it from the many other varga siblings by divisional number. It does not use an explicit action verb or name a sibling, but the resource is 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?
There is no when-to-use or when-not-to-use guidance, and no alternative varga tool is named. The lone caveat ('high precision needed in birth time') is an accuracy warning about the input, not a usage condition for choosing this tool over d9, d10, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d7Varga D7: SaptamsaBRead-onlyIdempotentInspect
Saptamsa chart (children, progeny).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D7] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 usefully adds the per-call cost (20 credits, Tier 2) and the endpoint, but says nothing about failure modes, rate limits, or what the computation produces.
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 bracketed metadata block is compact and front-loads the essential purpose before plumbing details. Every line carries information, though the '[Required]' line duplicates the schema's required array rather than earning 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 15-parameter tool sitting in a family of 16 near-identical varga tools, the description does little to orient the agent: no optional-parameter guidance despite 33% schema coverage and no differentiation from the sibling varga charts. The presence of an output schema excuses it from explaining return values, but the input-side and routing gaps remain.
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 only 33% across 15 parameters, and the description merely repeats the four required names (date, time, latitude, longitude) that the schema already marks required. Eleven optional parameters — including fields, precision, zodiacType, houseSystem, ayanamsaId — receive no guidance from the description to compensate for the coverage gap.
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 resource (Saptamsa / D7 divisional chart) plus its astrological signification (children, progeny), which lets an agent tell it apart from the other varga siblings by domain. It stops short of explicitly contrasting itself with those siblings, but the verb+resource is 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 parenthetical '(children, progeny)' implies the domain in which this chart is relevant, so usage is inferable. However, there is no explicit when-to-use, no condition selecting D7 over D1/D9 or the other 15 varga tools, and no stated prerequisites beyond the required parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d9Varga D9: NavamsaBRead-onlyIdempotentInspect
Navamsa chart (spouse, dharma; the most important divisional chart in BPHS Vedic analysis).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D9] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
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 operational context not in the annotations: the POST endpoint, the four required inputs, and the 20-credit Tier 2 cost, which matters for budget-aware agents. It stops short of describing output shape, though 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 content is compact and front-loads the chart name and its significance; the bracketed metadata block is scannable. Nothing is padding, though the format is more of a spec sheet than prose 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?
With an output schema present, return values need not be explained, and the description correctly identifies the tool and its inputs. However, for a 15-parameter chart tool with only a third of parameters documented, an agent is left guessing about the sidereal-school, house-system, and compact-mode options that materially change the result.
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 only 33% across 15 parameters, so the description is expected to compensate; instead it merely repeats the required list (date, time, latitude, longitude) that the schema's 'required' array already encodes. It adds no meaning for the many optional params (ayanamsa, houseSystem, zodiacType, fields, precision).
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 the specific resource (Navamsa / D9 divisional chart) and states its classical significations (spouse, dharma) plus its status in BPHS, so an agent can grasp what this computes. It does not explicitly contrast itself with the 15 sibling varga tools (d1, d10, d12, etc.), which is the only thing keeping it from a 5.
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 parenthetical '(spouse, dharma)' implies the topical situations where a Navamsa is wanted, but there is no explicit when-to-use, when-not-to-use, or alternative routing (e.g. use D10 for career instead). Usage must be inferred from the chart's significations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varshaphalVarshaphal: Tajika annual chartARead-onlyIdempotentInspect
The Tajika annual chart for one year of life. Cast on the moment the SIDEREAL Sun returns to its natal longitude, which for an adult sits many hours away from the tropical solar return and therefore on a different ascendant: the gap runs 0.4 h at age 1, 3.3 h at 10, 7.0 h at 20, 12.5 h at 36 and 17.2 h at 50.
[Group: Vedic] [Endpoint: POST /v1/vedic/varshaphal] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data plus a year, for the Tajika annual chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude, longitude and year. Coordinates do NOT default to 0 here as they do on other chart endpoints. The chart is cast on the SIDEREAL solar return, which for an adult is many hours away from the tropical one and therefore a different ascendant. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bala | No | |
| note | No | |
| year | No | |
| cusps | No | |
| muntha | No | |
| sahams | No | |
| planets | No | |
| pravesh | No | |
| ayanamsa | No | |
| ascendant | No | |
| varshesha | No | |
| candidates | No | |
| isDayBirth | No | |
| ayanamsaName | No | |
| yearsElapsed | No | |
| varsheshaByStrength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive, closed-world computation, so the safety profile is covered. The description adds a genuinely useful behavioral fact not in the annotations: the 50-credit / Tier 3 cost, plus the caveat that the chart is cast on the sidereal solar return and can land on a different ascendant than a tropical solar return. It still says nothing about auth requirements or rate limits.
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?
Two sentences, front-loaded with the purpose, and the [Group]/[Endpoint]/[Cost] metadata is compact. The age-indexed hour-gap series (0.4 h at 1, 3.3 h at 10 … 17.2 h at 50) is longer than an agent strictly needs and edges toward exposition, but it does quantify a real divergence.
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, annotations cover the safety profile, and the schema documents every parameter, so the description is not required to explain returns or fields. It covers what the chart is and the sidereal-return nuance; the only substantive omission is guidance on how this differs from the other varshphal-family sibling.
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 nested schema already explains timezone, timezoneOffset, ayanamsa, houseSystem letters, year, and the entryLatitude/entryLongitude pairing in detail. The tool description adds no parameter-level meaning beyond implying the sidereal framework; baseline 3 is appropriate when the schema carries the whole load.
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 both the technique and the artifact: 'The Tajika annual chart for one year of life,' which is a specific resource an agent can match to a request. It does not, however, distinguish itself from the sibling astroway_vedic_lal_kitab_varshphal, which is also an annual (varshphal) chart produced by a different school, so the agent has no textual basis for choosing between them.
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 only implied: an agent can infer 'use this when you want the Tajika annual chart for a given year' from the opening sentence, but there is no explicit when-to-use, when-not, or routing note. With a near-identical sibling (lal_kitab_varshphal) in the list, the absence of an explicit alternative is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_daridraYogas: Jaimini Daridra yogaBRead-onlyIdempotentInspect
Jaimini Daridra yoga: AK + AmK both in dusthanas (6/8/12), poverty/struggle flag. Remedies recommended.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/daridra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, closed-world profile, so the bar is lower. The description still adds genuinely non-structured behavior: the credit cost (20 credits, Tier 2) and the endpoint path, plus a hint that the response includes recommended remedies. It stops short of any rate-limit, auth, or failure-mode detail.
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 yoga definition and its output meaning are front-loaded in the first sentence, with cost/endpoint/required-inputs relegated to a compact bracketed block. Nothing is padded, though the required-parameter line largely duplicates 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?
An output schema exists, so return-value explanation is not needed, and the required inputs plus cost are present. What is missing for a 15-parameter, 20-credit Tier-2 tool is any routing guidance against the near-identical Jaimini yoga siblings, leaving the agent able to call it but not confident it should.
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 only 33% across 15 parameters, so the description should compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks required, and never mentions ayanamsa, zodiacType, houseSystem, fields, precision, or timezone 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?
The description states precisely what the tool computes: the Jaimini Daridra yoga, defined as AK + AmK both in dusthanas (6/8/12), returning a poverty/struggle flag. That definitional condition makes it distinguishable in substance from the dhana/raja shubha siblings without opening a schema, though none of those siblings are named explicitly.
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?
There is no when-to-use guidance and no alternatives named. With siblings like astroway_vedic_yogas_jaimini_dhana, _raja, _viparita and the catch-all astroway_vedic_jaimini_yogas / _full in the same family, the agent gets no help deciding whether to call this narrow yoga check or a broader one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_dhanaYogas: Jaimini Dhana yogaBRead-onlyIdempotentInspect
Jaimini Dhana yoga: AK or AmK in 2nd / 11th from lagna. Wealth indicator.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/dhana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
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 genuinely useful non-annotation context: the endpoint, the required inputs, and the cost (20 credits, Tier 2), which helps an agent budget calls.
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 yoga definition, then bracketed operational metadata in a scannable block. Every line carries information; no filler 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 described, and the required inputs and cost are given. However, for a 15-parameter tool with low schema coverage, the absence of any guidance on the optional astrology settings leaves meaningful gaps.
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 only 33% across 15 parameters. The description merely restates the four required params and adds nothing about the undocumented optionals (zodiacType, houseSystem, cosmogram, name, city, ayanamsaId), so it fails to compensate for the coverage gap.
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 technique (Jaimini Dhana yoga) with the defining astronomical condition (AK or AmK in 2nd/11th from lagna) and its meaning (wealth indicator). Distinguishes it reasonably from the sibling daridra (poverty) yoga, though it does not name that sibling explicitly.
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?
No when-to-use or when-not-to-use guidance beyond the required parameter list. Nothing tells the agent how this differs operationally from astroway_vedic_jaimini_yogas or astroway_vedic_yogas_jaimini_full, which compute overlapping Jaimini content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_fullYogas: Jaimini full summaryBRead-onlyIdempotentInspect
Composite Jaimini yoga summary: Raja / Dhana / Daridra / Viparita with karaka details.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| raja | No | |
| dhana | No | |
| school | No | |
| daridra | No | |
| viparita | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
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 fully covered. The description adds genuinely useful non-annotation facts: the endpoint, the four required inputs, and the 20-credit Tier 2 cost, which helps an agent weigh whether to call it. It does not, however, describe response depth or pagination/format behavior.
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?
Four short, front-loaded lines: the purpose line first, then group, endpoint, required inputs and cost. No wasted prose, and the most decision-relevant content (what it computes, what it costs) is at the top.
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 explained, and annotations cover the safety profile. What is missing is coverage of a complex 15-parameter surface: no guidance on ayanamsa/zodiac selection, timezone handling, or the 'fields' compact mode, which matters for a Tier 2 paid call. It is minimally adequate but leaves real gaps for a tool of this parameter complexity.
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 only 33% across 15 parameters, and the description compensates for none of it. '[Required: date, time, latitude, longitude]' merely restates the schema's own required array, adding no meaning for the other 11 parameters (fields, ayanamsa, timezone, precision, houseSystem, etc.). Because coverage is low, the description should have supplied parameter meaning but does not.
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 resource and its scope: a composite Jaimini yoga summary covering Raja / Dhana / Daridra / Viparita with karaka details. Listing the four component yoga types implicitly distinguishes it from the individual sibling tools (e.g. astroway_vedic_yogas_jaimini_raja, _dhana, _daridra, _viparita), which are the per-yoga counterparts. It stops short of stating the relationship explicitly, so it is clear but not maximally differentiated.
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 word 'Composite ... summary' implies this is the aggregate call to use when all four yoga families are wanted rather than the individual siblings, but the description never states when to choose it over astroway_vedic_yogas_jaimini_raja or _dhana, nor any exclusions. Usage is left to inference from the tool's scope line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_karakamsaYogas: Karakamsa chart (12-house projection)BRead-onlyIdempotentInspect
Karakamsa = Atmakaraka's sign in D9 Navamsha, treated as lagna for a 12-house projection. Each house carries canonical iṣṭa-devata / moksha / spiritual significations per Sanjay Rath. Yogas surfaced: 5th-house planet = Ishta Devata; 12th-house planet = Moksha Indicator.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/karakamsa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| yogas | No | |
| houses | No | |
| karakamsa | No |
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 full safety profile is covered by structured data. The description's marginal behavioral content is the cost line (20 credits, Tier 2) and the endpoint path, which are useful but modest; nothing is said about auth requirements or any usage limits. 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 domain definition is front-loaded, followed by two compact sentences on the yogas surfaced, then a short bracketed metadata block (group, endpoint, required fields, cost). Every element is short and skimmable with no filler, though the metadata block is boilerplate rather than explanatory.
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 conceptual definition of Karakamsa is solid. However, for a 15-parameter tool with a long list of near-identical Jaimini yoga siblings, the description omits any routing guidance and says nothing about the optional chart-configuration parameters, leaving it only minimally 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 description coverage is only 33% (15 parameters, most optional ones undocumented), so the description carries a compensation burden it does not meet. It repeats the four required fields (date, time, latitude, longitude) already in the schema and adds no meaning for the ten optional parameters such as ayanamsa, houseSystem, zodiacType, fields, or precision.
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 gives a precise verb+resource: it defines Karakamsa (Atmakaraka's sign in D9 treated as lagna) and states the 12-house projection and the yogas surfaced (5th = Ishta Devata, 12th = Moksha Indicator). That is far more than a restatement of the title. It does not, however, differentiate itself from close siblings such as astroway_vedic_jaimini_yogas or astroway_vedic_yogas_jaimini_karaka_yoga, which an agent would need to distinguish when picking a Jaimini yoga endpoint.
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 content implies the use case (spiritual/iṣṭa-devata and moksha significations per Sanjay Rath), so an agent can infer when it is relevant. But there is no explicit when-to-use statement, no when-not to use it, and no named alternative among the many Jaimini yoga siblings, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_karaka_yogaYogas: Jaimini Karaka yoga (all 8 karakas)BRead-onlyIdempotentInspect
Scans every chara karaka (Atmakaraka..Darakaraka) for house-based yogas. Each karaka in kendra/trine/dusthana receives a strength score and manifestation hint (e.g. "Atmakaraka-in-5: creative/spiritual purpose"). Returns 8 yogas with karaka role + house + strength 0-100.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/karaka-yoga] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| yogas | No | |
| summary | No | |
| atmakaraka | No |
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 genuine operational context by disclosing the scoring model (strength 0-100), the manifestation-hint format, and that exactly 8 yogas are returned. It also surfaces the 20-credit Tier 2 cost, which is real behavioral information not present in 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?
Three tightly written sentences lead with the core behavior and return shape before the metadata block. No filler; the grouping/endpoint/cost tags are compact and bracketed, though the bracketed metadata adds bulk that is not 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?
Because an output schema exists, return values need not be spelled out, and the annotations carry the safety profile, so the description is adequate on those fronts. The remaining gap is the large set of unelaborated chart-configuration parameters, which makes the definition only minimally sufficient for a 15-parameter 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?
With 15 parameters and only 33% schema description coverage, the description should compensate but instead only restates the four required params (date, time, latitude, longitude), which are already marked required in the schema. Eleven chart-configuration parameters (ayanamsa, houseSystem, zodiacType, timezone, precision, fields, etc.) get no explanatory help from 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 (scans) and resource (every chara karaka, Atmakaraka..Darakaraka) and the analytical target (house-based yogas), which separates it from generic yoga siblings. However, it never explicitly names alternative jaimini yoga tools (dhana, raja, daridra, full) or the karaka-listing tools, so the agent must infer differentiation from the karaka scoping alone.
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?
No when-to-use, when-not-to-use, or alternative-tool guidance is given. In a sibling set containing astroway_vedic_jaimini_yogas, astroway_vedic_jaimini_karakas and astroway_vedic_jaimini_chara_karakas, this omission matters, yet the description offers nothing to route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_rajaYogas: Jaimini Raja yogaARead-onlyIdempotentInspect
Jaimini Raja yoga: Atmakaraka in Lagna/Kendra OR conjunct Amatyakaraka. Sources: Jaimini Sutras 2.x + Sanjay Rath modern commentary.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/raja] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
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 safety profile is covered. The description adds genuinely new operational context: a fixed cost of 20 credits (Tier 2) and the citation sources, which help an agent judge whether the call is worth making. It does not describe output or caveats, but with annotations doing heavy lifting this is a solid contribution.
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 yoga definition, then compact bracketed metadata lines; there is almost no filler. The endpoint line is arguably redundant given the tool name, but nothing is wasted or bloated.
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 output schema means return values need not be explained, and annotations cover safety. However, for a 15-parameter tool with only 33% schema coverage, the description leaves the bulk of the optional parameters unexplained and offers no sibling routing, so it is only minimally 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 description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required parameters already declared in the schema's required array, leaving city, name, cosmogram, zodiacType, houseSystem and ayanamsaId undocumented in either place. No added meaning 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 gives the exact astrological condition the tool evaluates ('Atmakaraka in Lagna/Kendra OR conjunct Amatyakaraka') plus the textual sources, so an agent knows precisely what computation this returns. That rule also implicitly separates it from the near-identical jaimini yoga siblings (dhana, daridra, karaka_yoga). Specific verb+resource with a distinguishing condition.
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?
There is no statement of when to choose this over the general astroway_vedic_jaimini_yogas or the sibling yoga tools, and no prerequisites or exclusions. The required-parameter and cost lines are operational metadata, not routing guidance. In a dense cluster of lookalike Jaimini yoga endpoints, this gap matters most.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_shubha_grahaYogas: Shubha-graha (functional natures)ARead-onlyIdempotentInspect
Functional benefic / malefic identification per Lagna-lord ownership. Returns each of the 7 visible grahas with natural nature + functional nature (yogakaraka / functional-benefic / neutral / functional-malefic / maraka) + houses owned + reasoning per BPHS Adhyaya 34 kendradhipati & maraka rules.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/shubha-graha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| marakas | No | |
| planets | No | |
| yogakarakas | No |
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 adds real operational context: it names the interpretive authority (BPHS Adhyaya 34 kendradhipati and maraka rules), the exact output content, the required inputs, and a cost of 20 credits at Tier 2, which is genuine value beyond the 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 purpose in the first clause, then output content, then bracketed metadata. Every sentence carries information and there is no filler, though the bracketed group/endpoint/cost block is somewhat dense.
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 structure need not be explained, yet the description still usefully enumerates the returned fields (natural nature, functional nature, houses owned, reasoning). The gap is contextual: no guidance on when to prefer this over sibling yoga or strength tools, and no parameter-level help given the thin schema coverage.
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 15 parameters and only 33% schema description coverage, the description must compensate for the documentation gap and does not. It lists the four required parameters (date, time, latitude, longitude) that the schema already marks as required, but says nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or the timezone/timezoneOffset interaction.
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 (identifies/returns) and resource (functional benefic/malefic natures of the 7 grahas) with an enumeration of the five classification values. It distinguishes itself from nearby Jaimini yoga siblings like daridra, dhana, raja and viparita by being a per-graha classification rather than a yoga-combination lookup, though it never names those siblings explicitly.
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 only implied by content ('identification per Lagna-lord ownership'), which tells a knowledgeable agent this is the chart-based functional-nature readout. There is no explicit when-to-use statement, no prerequisites, and no routing to alternatives such as astroway_vedic_yogas_jaimini_full or astroway_vedic_yogas_parashara_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_viparitaYogas: Jaimini Viparita Raja yogaBRead-onlyIdempotentInspect
Reverse Raja yoga: AK in 6/8/12, success after struggle. Per Sanjay Rath modern commentary.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/viparita] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No |
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 does add non-obvious operational context — cost (20 credits, Tier 2), endpoint, and interpretive lineage (Sanjay Rath) — but says nothing about what the returned yoga assessment contains or how partial data is handled.
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?
Very short and front-loaded: the definition and condition come first, metadata is bracketed off at the end. Nothing is padded, though the bracketed block is terse to the point of being cryptic rather than explanatory.
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 15-parameter, 20-credit computed tool with an output schema and full annotations, the description covers the essentials (what it computes, prerequisites, cost) but leaves the agent without guidance on choosing it over the other jaimini yoga endpoints or on interpreting the result.
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 33% across 15 parameters, so the description must compensate, yet it only restates the four required parameters already marked required in the schema. It adds no meaning for ayanamsa, zodiacType, houseSystem, or the compact-mode fields, leaving the coverage gap unfilled.
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 specific yoga and states its defining condition (AK in 6/8/12) plus the interpretive payoff ('success after struggle'), which is far more than a restatement of the title. It sits clearly apart from siblings like jaimini_raja and jaimini_daridra, though it never explicitly says so.
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?
There is no when-to-use statement and no routing against the many sibling jaimini_yogas_* tools (raja, dhana, karaka_yoga, full). The '[Required: ...]' line is operational metadata, not usage guidance, and nothing tells the agent when this yoga is worth computing versus jaimini_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_adhiYogas: AdhiBRead-onlyIdempotentInspect
Adhi Yoga: benefics (Mercury, Venus, Jupiter) in 6th, 7th, 8th houses from Moon. Maha Adhi Yoga when all three benefics are positioned там. Powerful for status and prosperity.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/adhi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| strength | No | |
| lagnaSign | No | |
| contributingPlanets | No |
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 usefully adds the cost (20 credits, Tier 2), endpoint, and required inputs, which annotations do not carry, but says nothing about return content or behavior for missing/invalid data.
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 yoga definition is front-loaded and the metadata block (group, endpoint, required, cost) is compact and scannable. A stray non-English token ('там') is a minor quality blemish but does not impede readability.
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. But for a 15-parameter computation tool with low schema coverage, the description leaves the optional parameters and usage context entirely unaddressed, which is only adequate, not complete.
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 only 33% across 15 parameters, so the description should compensate and does not. It merely restates the four required fields already declared in the schema's required array and adds no meaning for ayanamsa, timezone, fields, precision, or the other 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?
The description names the specific resource and explains what Adhi Yoga is (benefics in 6th/7th/8th from Moon, Maha variant when all three are placed there), so an agent knows what is being computed. However, the verb is implicit and there is no explicit differentiation from siblings such as astroway_vedic_yogas_parashara_full or the other parashara yoga endpoints.
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?
There is no when-to-use guidance and no mention of alternatives, even though ~180 sibling tools include a general parashara_full yoga endpoint that likely subsumes this one. The agent gets no signal about when to pick this narrow Adhi endpoint instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_dhanaYogas: Dhana (wealth)ARead-onlyIdempotentInspect
Dhana Yoga: lords of wealth houses (1, 2, 5, 9, 11) connected via conjunction, mutual graha drishti, or strict parivartana.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dhana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
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 genuinely new context the annotations cannot: the cost tier (20 credits, Tier 2) and the transport (POST /v1/vedic/yogas/parashara/dhana). It stops short of describing rate limits or what the calculation returns, but for a read-only analytical tool this is solid added value.
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 leads with the substantive content and pushes metadata into bracketed tokens on one line each, so an agent can scan it quickly. The bracketed block is slightly cluttered but each entry (required params, cost) carries real information, so 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?
An output schema exists, so return values need not be explained, and the core concept is well defined. But with 15 parameters and only a third documented, plus no guidance on how this differs from the Parashara full or Jaimini dhana siblings, the definition is adequate rather than complete.
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 only 33% across 15 parameters, so the description should compensate — instead it merely restates the four required fields already declared in the schema's required array. It says nothing about ayanamsa, houseSystem, zodiacType, precision, or the fields/cosmogram options, leaving the meaning of eleven parameters to 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?
Names the specific yoga (Dhana), states exactly which houses are involved (1, 2, 5, 9, 11) and which connection types qualify (conjunction, mutual graha drishti, strict parivartana). That level of technical specificity distinguishes it from the sibling jaimini_dhana and parashara_raja 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 operational context (required date/time/lat/long, POST endpoint, 20-credit Tier 2 cost), which helps an agent decide whether it can afford or call it. However, it never says when to choose this over astroway_vedic_yogas_parashara_full or the Jaimini dhana variant, so selection between near-identical siblings 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.
astroway_vedic_yogas_parashara_dharma_karmadhipatiYogas: Dharma-KarmadhipatiBRead-onlyIdempotentInspect
Dharma-Karmadhipati Yoga: lord of 9th (Dharma) and lord of 10th (Karma) conjunct, in mutual graha drishti (full Vedic aspects), or single planet rules both. Exceptionally fortunate combination.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dharma-karmadhipati] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
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 useful non-structured context: the exact endpoint, the four mandatory inputs, and a cost of 20 credits at Tier 2, which is real behavioral information for budgeting tool calls. It does not say what a negative result looks like, but the output schema covers returns.
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?
Compact and front-loaded: the yoga definition leads, followed by a scannable bracketed metadata block. The '[Required: date, time, latitude, longitude]' line largely duplicates the schema's required array, which is minor waste, but nothing else 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 15-parameter computational tool with an output schema, the definition plus endpoint, required inputs and credit cost is minimally adequate — return values need not be explained. What is missing is disambiguation across a very large sibling family containing two near-identical yoga tools, and any hint about which optional chart parameters matter for this specific yoga.
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 only 33% across 15 parameters, so the description carries more burden than usual — yet it contributes nothing beyond restating the required list already in the schema's `required` array. Important knobs (ayanamsa selection, zodiacType, houseSystem, fields compaction) are left entirely to sparse or missing schema text, and no guidance on choosing an ayanamsa is offered.
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 specific astrological condition the tool targets (9th and 10th lords conjunct, in mutual graha drishti, or one planet ruling both), which is a specific resource rather than a restatement of the name. However, it never states the operation itself (detect/analyse this yoga for a given chart), and it does nothing to separate itself from the near-identical sibling astroway_vyp_dharma_karmadhipati or from astroway_vedic_yogas_parashara_full.
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?
There is no when-to-use guidance at all — nothing says to call this for a single-yoga check versus astroway_vedic_yogas_parashara_full for a comprehensive reading, or versus the VYP-prefixed variant. The only routing signal is the endpoint path, which the agent would have to interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_fullYogas: Parashara full reportARead-onlyIdempotentInspect
Combined Parashara yoga report: runs all 6 detectors (Raja/Dhana/Dharma-Karmadhipati/Pancha-Mahapurusha/Gajakesari/Adhi) and returns one structured response.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| adhi | No | |
| raja | No | |
| dhana | No | |
| school | No | |
| lagnaSign | No | |
| gajakesari | No | |
| panchaMahapurusha | No | |
| dharmaKarmadhipati | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a non-destructive, idempotent, read-only operation, so the description doesn't need to re-establish that. It adds genuinely useful operational facts beyond the annotations: the POST endpoint, the required parameter set, and the 20-credit (Tier 2) cost, which is material for an agent deciding whether to make this multi-detector call.
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 first sentence is front-loaded and wastes no words, naming the detectors and the single-response shape. The bracketed metadata lines are mechanical but carry non-obvious facts (endpoint, cost tier, required params), so they earn their place; the block could be trimmed slightly but is not padded.
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 annotations cover the safety profile; cost and endpoint are disclosed. What is missing for a 15-parameter tool is any hint about how sidereal-school/house-system choices shape the yoga results, and no guidance on the compact-mode parameters, leaving the caller to guess.
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 15 parameters and only ~33% schema description coverage, the description should compensate; instead it only restates the four required fields (date, time, latitude, longitude), which are already in the schema's required array. Nothing is said about how ayanamsa, zodiacType, houseSystem, or the compact-mode fields (fields, precision, cosmogram) affect yoga detection.
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 ('Combined Parashara yoga report ... runs all 6 detectors') and enumerates exactly which yogas are covered (Raja/Dhana/Dharma-Karmadhipati/Pancha-Mahapurusha/Gajakesari/Adhi). This clearly separates it from the six single-yoga siblings like astroway_vedic_yogas_parashara_raja without needing to open 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?
'runs all 6 detectors ... and returns one structured response' gives clear context that this is the aggregate/batch call for Parashara yogas rather than a single-detector call. It stops short of explicitly naming the alternative ('use the individual *_raja / *_dhana tools when you need only one yoga') or stating when the extra cost is not worth it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_gajakesariYogas: GajakesariBRead-onlyIdempotentInspect
Gajakesari Yoga: Jupiter in a kendra (1, 4, 7, 10) from Moon. One of the most-cited classical combinations.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/gajakesari] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| contributingPlanets | No |
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 useful operational context the annotations do not carry: the POST endpoint, the four required inputs, and the 20-credit Tier 2 cost. It says nothing about output shape, though 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-loads the definition in one sentence, then a compact tagged metadata block. Efficient and scannable, though the bracketed metadata block is formulaic boilerplate rather than prose that earns every line.
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?
Since an output schema exists, return values need not be described. However, for a 15-parameter chart-calculation tool, the description never clarifies how date/time/timezone interact or what the ayanamsa/zodiac/house-system choices mean for this yogas endpoint, leaving real gaps beyond the schema's partial coverage.
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 only 33%, with description-less params including cosmogram, zodiacType, ayanamsaId, city and name. The description's '[Required: date, time, latitude, longitude]' line merely restates what the schema already marks as required and adds no semantics to compensate for the coverage gap.
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-equivalent resource (Gajakesari Yoga) and defines it precisely as Jupiter in a kendra (1,4,7,10) from Moon. This distinguishes it clearly from the many sibling yoga tools such as pancha_mahapurusha or raja 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?
No guidance on when to use this single-yoga tool versus astroway_vedic_yogas_parashara_full or the other per-yoga siblings, and no prerequisites or exclusion criteria. The definition of the yoga is not the same as usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_pancha_mahapurushaYogas: Pancha Mahapurusha (5 great)ARead-onlyIdempotentInspect
5 Mahapurusha yogas: Ruchaka (Mars), Bhadra (Mercury), Hamsa (Jupiter), Malavya (Venus), Sasha (Saturn). Each formed when respective planet is in its own/exalted sign AND in a kendra (1/4/7/10).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/pancha-mahapurusha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yogas | No | |
| school | No | |
| lagnaSign | No | |
| presentCount | No |
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 genuinely useful behavioral context beyond that: it is a black-box computation (no write), it costs 20 credits at Tier 2, it is a POST, and it lists the four mandatory inputs. It omits the return shape, but an output schema exists, so that gap 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?
The core sentence is front-loaded and dense with real information, and the bracketed metadata (group, endpoint, required, cost) is compact and scannable. It is slightly mechanical but wastes no words.
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 15-parameter endpoint, the description supplies the domain definition and required inputs, and the existing output schema means return values need not be described. However, it leaves the non-trivial optional parameters (ayanamsa school, house system, timezone handling) entirely to the schema, which only partially documents them, so an agent still has gaps before calling 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 only 33% across 15 parameters, so the description is expected to compensate and does not. It restates the four required parameters that the schema's required array already enforces, and says nothing about the semantically loaded optional params (ayanamsa, zodiacType, houseSystem, timezone vs timezoneOffset, fields, precision).
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 the exact technique (Pancha Mahapurusha yogas), enumerates all five (Ruchaka, Bhadra, Hamsa, Malavya, Sasha) with their ruling planets, and states the precise formation rule (own/exalted sign + kendra). This lets an agent tell it apart from the other parashara yoga siblings (gajakesari, raja, dhana) 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 description states what the tool computes and lists required inputs and cost, but gives no when-to-use guidance: no mention of when to prefer this over astroway_vedic_yogas_parashara_full or the other yoga endpoints, and no exclusions or prerequisites. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_rajaYogas: Raja (royal)BRead-onlyIdempotentInspect
Raja Yoga detection per BPHS A.36-37: sambandha between kendra-lord (1/4/7/10) and trikona-lord (1/5/9) via 1) conjunction, 2) mutual graha drishti (full Vedic aspects: 7th universal + Mars 4/8, Jupiter 5/9, Saturn 3/10), or 3) strict parivartana (specific pair-swap of houses).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/raja] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
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 usefully adds operational facts the annotations do not carry: the HTTP endpoint, the four required inputs, and the 20-credit Tier 2 cost, which matters for tool selection. It says nothing about auth or rate limits, but those gaps are 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?
One dense but well-formed sentence defining the detection rule, followed by bracketed metadata blocks for group, endpoint, required inputs and cost. Information is front-loaded and every line carries content, though the classical-aspect parenthetical is heavy going for a reader scanning for call parameters.
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 detection semantics are unusually complete. However, for a 15-parameter tool with low schema coverage and no usage guidance or prerequisites, the definition leaves the agent under-equipped on how and when to invoke 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 description coverage is only 33% across 15 parameters, so the description must compensate — but it only restates the four required parameters already flagged in the schema's `required` array. The ten optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.) receive no meaning from 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?
The description states precisely what is detected (Raja Yoga per BPHS A.36-37) and enumerates the three valid sambandha mechanisms, so an agent knows the exact output domain. It does not, however, differentiate itself from close siblings such as astroway_vedic_yogas_parashara_dharma_karmadhipati or astroway_vedic_yogas_jaimini_raja, which an agent choosing among the ~170 yoga/vedic tools would benefit from.
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?
There is no when-to-use statement, no prerequisite (e.g. a birth chart must already be computed), and no routing to alternatives like the Jaimini or dharma-karmadhipati variants. Usage is only implicit from the subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vyp_dharma_karmadhipatiYogas: Dharma-KarmadhipatiBRead-onlyIdempotentInspect
Dharma-Karmadhipati Yoga: lord of 9th (Dharma) and lord of 10th (Karma) conjunct, in mutual graha drishti (full Vedic aspects), or single planet rules both. Exceptionally fortunate combination.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dharma-karmadhipati] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_yogas_parashara_dharma_karmadhipati.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
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 operational context beyond that: the endpoint path and, importantly, the cost of 20 credits (Tier 2), which an agent needs before calling. It adds no return-format detail, 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?
The yoga definition is front-loaded, followed by tightly packed bracketed metadata (group, endpoint, required, cost, alias). Nearly every line earns its place; the required-params line is the only mildly redundant 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?
An output schema exists, so return values need not be described, and annotations cover safety. The description supplies cost and endpoint, which is adequate for invocation, but with 15 parameters at 33% coverage the documentation leaves real gaps (notably house system) that the definition does not fill.
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 only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields already in the schema's `required` array, and adds nothing about the many undocumented parameters such as `houseSystem` (a bare enum of single-letter codes) or `cosmogram`.
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 the specific yoga and defines its astronomical condition (9th/10th lords conjunct, in mutual drishti, or one planet ruling both), which distinguishes it from the sibling Parashara yoga tools. It is implicit rather than stated that the tool detects this yoga in a supplied birth chart, but the meaning is 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 parenthetical note that this is a 'cursor-friendly alias for astroway_vedic_yogas_parashara_dharma_karmadhipati' is a real routing aid, telling the agent this call is equivalent to the longer-named sibling. However, there is no explicit when-to-use/when-not guidance or suggested alternatives within the broader yoga toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vyp_pancha_mahapurushaYogas: Pancha Mahapurusha (5 great)BRead-onlyIdempotentInspect
5 Mahapurusha yogas: Ruchaka (Mars), Bhadra (Mercury), Hamsa (Jupiter), Malavya (Venus), Sasha (Saturn). Each formed when respective planet is in its own/exalted sign AND in a kendra (1/4/7/10).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/pancha-mahapurusha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_yogas_parashara_pancha_mahapurusha.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yogas | No | |
| school | No | |
| lagnaSign | No | |
| presentCount | No |
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 still adds genuinely useful operational context beyond the annotations: the 20-credit Tier 2 cost (important for agent budgeting) and the exact endpoint. It does not describe return shape, but an output schema exists to carry 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 yoga names and formation rule, followed by tightly formatted metadata lines (group, endpoint, required, cost) with no filler. Every sentence carries information; the only mild redundancy is re-listing the required parameters.
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 that an output schema exists, the description need not explain return values, and annotations cover the safety profile. It supplies domain context (which yogas, how formed), cost and endpoint, which is sufficient for an agent to call it correctly; only parameter-level detail for the non-required options is thin.
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 only 33%, so the description is obliged to compensate and does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema's `required` array already declares, leaving undocumented parameters such as houseSystem, zodiacType, ayanamsaId, cosmogram, city and name with no explanatory value added.
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 the exact resource — the five Pancha Mahapurusha yogas (Ruchaka/Bhadra/Hamsa/Malavya/Sasha) — and states the precise formation rule (own/exalted sign plus kendra placement), which clearly separates it from broad yoga siblings like astroway_vedic_yogas_parashara_full. It never states the verb explicitly (compute/detect/return), but the scope is unambiguous to an agent reading the sibling 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?
There is no when-to-use or when-not-to-use guidance, and no comparison to the many other yoga tools (parashara_full, gajakesari, raja, dhana, etc.). The alias note implies the tool exists under two names, but nothing tells the agent why to pick this over the aggregate yoga endpoint.
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
astroway_vedic_kp_horary8 fields changed- added
Input schema / properties / ascendantAtAdded value: +{ + "default": "middle", + "description": "Where in the number's segment the ascendant is placed: its centre (default) or its first degree. Sources differ; sign, star and sub are the same either way.", + "enum": [ + "middle", + "start" + ], + "type": "string" +} - added
Output schema / properties / ascendantAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / ayanamsaAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / cuspsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "house": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "longitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInSign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInStar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "signName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "star": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "starName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subSub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subSubName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / housesJdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / housesOffsetHoursAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / planetsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "graha": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "grahaName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "house": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "longitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInSign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInStar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retrograde": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "sign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "signName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "star": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "starName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subSub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subSubName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / segmentAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +}
1 tool update
- Changed
astroway_vedic_panchang_full3 fields changed- added
Output schema / properties / chandrabalamAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "ashtamaFor": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "favourableFor": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "moonSign": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / muhurtasAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "amritKalam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "brahmaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "durMuhurtam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "godhuliMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "nishitaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "pratahSandhya": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "sayahnaSandhya": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "varjyam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "vijayaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / tarabalamAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "favourableFor": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "nakshatra": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +}
1 tool update
- Changed
astroway_vedic_panchang_full2 fields changed- added
Input schema / properties / atAdded value: +{ + "description": "moment (default): tithi, nakshatra, yoga and karana at date + time. sunrise: at local sunrise of that date, as a printed panchang gives them; time may be omitted.", + "enum": [ + "moment", + "sunrise" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "date", - "time", - "latitude", - "longitude" -]New value: +[ + "date", + "latitude", + "longitude" +]
1 tool update
- Added
astroway_vedic_kundli
192 tool updates
- First observed
astroway_account_status - First observed
astroway_agent_tools - First observed
astroway_cost_estimate - First observed
astroway_mcp_agent_debate - First observed
astroway_mcp_agent_pool_status - First observed
astroway_mcp_ai_chat - First observed
astroway_mcp_ai_comparison_coach - First observed
astroway_mcp_ai_explain_aspect - First observed
astroway_mcp_ai_explain_transit - First observed
astroway_mcp_multi_agent_coordinate - First observed
astroway_mcp_multi_chart_context - First observed
astroway_mcp_rag_search - First observed
astroway_mcp_streaming - First observed
astroway_mcp_tool_call_stream - First observed
astroway_mcp_tools_list - First observed
astroway_vd_shodashottari_pratyantar - First observed
astroway_vedic_ashtakavarga - First observed
astroway_vedic_bhavabala - First observed
astroway_vedic_compatibility_ashtakoot - First observed
astroway_vedic_compatibility_bhrigu_match - First observed
astroway_vedic_compatibility_dashakoota - First observed
astroway_vedic_compatibility_full - First observed
astroway_vedic_compatibility_mangal_match - First observed
astroway_vedic_compatibility_manglik_check - First observed
astroway_vedic_dashas_ashtottari_antar - First observed
astroway_vedic_dashas_ashtottari_maha - First observed
astroway_vedic_dashas_ashtottari_prana - First observed
astroway_vedic_dashas_ashtottari_pratyantar - First observed
astroway_vedic_dashas_ashtottari_sookshma - First observed
astroway_vedic_dashas_chara_antar - First observed
astroway_vedic_dashas_chara_maha - First observed
astroway_vedic_dashas_chara_prana - First observed
astroway_vedic_dashas_chara_pratyantar - First observed
astroway_vedic_dashas_chara_sookshma - First observed
astroway_vedic_dashas_kalachakra_antar - First observed
astroway_vedic_dashas_kalachakra_maha - First observed
astroway_vedic_dashas_kalachakra_prana - First observed
astroway_vedic_dashas_kalachakra_pratyantar - First observed
astroway_vedic_dashas_kalachakra_sookshma - First observed
astroway_vedic_dashas_shatabdika_antar - First observed
astroway_vedic_dashas_shatabdika_maha - First observed
astroway_vedic_dashas_shatabdika_prana - First observed
astroway_vedic_dashas_shatabdika_pratyantar - First observed
astroway_vedic_dashas_shatabdika_sookshma - First observed
astroway_vedic_dashas_shodashottari_antar - First observed
astroway_vedic_dashas_shodashottari_maha - First observed
astroway_vedic_dashas_shodashottari_prana - First observed
astroway_vedic_dashas_shodashottari_pratyantar - First observed
astroway_vedic_dashas_shodashottari_sookshma - First observed
astroway_vedic_dashas_shoola_antar - First observed
astroway_vedic_dashas_shoola_maha - First observed
astroway_vedic_dashas_shoola_prana - First observed
astroway_vedic_dashas_shoola_pratyantar - First observed
astroway_vedic_dashas_shoola_sookshma - First observed
astroway_vedic_dashas_sthira_antar - First observed
astroway_vedic_dashas_sthira_maha - First observed
astroway_vedic_dashas_sthira_prana - First observed
astroway_vedic_dashas_sthira_pratyantar - First observed
astroway_vedic_dashas_sthira_sookshma - First observed
astroway_vedic_dashas_tribhagi_antar - First observed
astroway_vedic_dashas_tribhagi_maha - First observed
astroway_vedic_dashas_tribhagi_prana - First observed
astroway_vedic_dashas_tribhagi_pratyantar - First observed
astroway_vedic_dashas_tribhagi_sookshma - First observed
astroway_vedic_dashas_vimshottari_antar - First observed
astroway_vedic_dashas_vimshottari_maha - First observed
astroway_vedic_dashas_vimshottari_prana - First observed
astroway_vedic_dashas_vimshottari_pratyantar - First observed
astroway_vedic_dashas_vimshottari_sookshma - First observed
astroway_vedic_dashas_yogini_antar - First observed
astroway_vedic_dashas_yogini_maha - First observed
astroway_vedic_dashas_yogini_prana - First observed
astroway_vedic_dashas_yogini_pratyantar - First observed
astroway_vedic_dashas_yogini_sookshma - First observed
astroway_vedic_doshas_kp_full - First observed
astroway_vedic_doshas_kp_kalasarpa - First observed
astroway_vedic_doshas_kp_kemadruma - First observed
astroway_vedic_doshas_kp_manglik - First observed
astroway_vedic_doshas_kp_pitra - First observed
astroway_vedic_doshas_kp_sade_sati - First observed
astroway_vedic_doshas_lal_kitab_full - First observed
astroway_vedic_doshas_lal_kitab_kalsarpa - First observed
astroway_vedic_doshas_lal_kitab_manglik - First observed
astroway_vedic_doshas_lal_kitab_pitra - First observed
astroway_vedic_doshas_lal_kitab_rin - First observed
astroway_vedic_doshas_lal_kitab_shrapit - First observed
astroway_vedic_doshas_parashara_full - First observed
astroway_vedic_doshas_parashara_grahan - First observed
astroway_vedic_doshas_parashara_guru_chandal - First observed
astroway_vedic_doshas_parashara_kaal_sarp - First observed
astroway_vedic_doshas_parashara_mangal - First observed
astroway_vedic_doshas_parashara_pitru - First observed
astroway_vedic_doshas_parashara_shrapit - First observed
astroway_vedic_gemstones - First observed
astroway_vedic_gemstones_navaratna - First observed
astroway_vedic_jaimini_argala_analysis - First observed
astroway_vedic_jaimini_aspects - First observed
astroway_vedic_jaimini_atmakaraka_navamsa - First observed
astroway_vedic_jaimini_atmakaraka_rotation - First observed
astroway_vedic_jaimini_chara_karakas - First observed
astroway_vedic_jaimini_dasha_summary - First observed
astroway_vedic_jaimini_drishti_graha - First observed
astroway_vedic_jaimini_drishti_rasi - First observed
astroway_vedic_jaimini_karakas - First observed
astroway_vedic_jaimini_padas - First observed
astroway_vedic_jaimini_upapada - First observed
astroway_vedic_jaimini_yogas - First observed
astroway_vedic_kp_asc_sub - First observed
astroway_vedic_kp_cusps - First observed
astroway_vedic_kp_fortuna - First observed
astroway_vedic_kp_horary - First observed
astroway_vedic_kp_planet_cuspal_position - First observed
astroway_vedic_kp_ruling_planets - First observed
astroway_vedic_kp_significators - First observed
astroway_vedic_kp_sub_lords - First observed
astroway_vedic_kp_sub_sub_lord - First observed
astroway_vedic_kp_transit_kp - First observed
astroway_vedic_lal_kitab_blind_house - First observed
astroway_vedic_lal_kitab_dasha - First observed
astroway_vedic_lal_kitab_debts - First observed
astroway_vedic_lal_kitab_kismat - First observed
astroway_vedic_lal_kitab_lal_kundali - First observed
astroway_vedic_lal_kitab_life_graph - First observed
astroway_vedic_lal_kitab_planet_house_effect - First observed
astroway_vedic_lal_kitab_prosperity - First observed
astroway_vedic_lal_kitab_remedies - First observed
astroway_vedic_lal_kitab_sleeping_house - First observed
astroway_vedic_lal_kitab_teva - First observed
astroway_vedic_lal_kitab_varshphal - First observed
astroway_vedic_muhurat_business_start - First observed
astroway_vedic_muhurat_education_start - First observed
astroway_vedic_muhurat_general_auspicious - First observed
astroway_vedic_muhurat_investment - First observed
astroway_vedic_muhurat_journey_long - First observed
astroway_vedic_muhurat_marriage - First observed
astroway_vedic_muhurat_name_change - First observed
astroway_vedic_muhurat_naming_ceremony - First observed
astroway_vedic_muhurat_property_purchase - First observed
astroway_vedic_muhurat_surgery - First observed
astroway_vedic_muhurat_travel - First observed
astroway_vedic_muhurat_vehicle_purchase - First observed
astroway_vedic_muhurta_types - First observed
astroway_vedic_nakshatras - First observed
astroway_vedic_panchang_choghadia - First observed
astroway_vedic_panchang_full - First observed
astroway_vedic_panchang_hora - First observed
astroway_vedic_panchang_karana - First observed
astroway_vedic_panchang_nakshatra_of_day - First observed
astroway_vedic_panchang_rahu_kaal - First observed
astroway_vedic_panchang_tithi - First observed
astroway_vedic_panchang_yoga - First observed
astroway_vedic_shadbala_cheshta - First observed
astroway_vedic_shadbala_dig - First observed
astroway_vedic_shadbala_drik - First observed
astroway_vedic_shadbala_full - First observed
astroway_vedic_shadbala_kala - First observed
astroway_vedic_shadbala_naisargika - First observed
astroway_vedic_shadbala_sthana - First observed
astroway_vedic_varga_d1 - First observed
astroway_vedic_varga_d10 - First observed
astroway_vedic_varga_d12 - First observed
astroway_vedic_varga_d16 - First observed
astroway_vedic_varga_d2 - First observed
astroway_vedic_varga_d20 - First observed
astroway_vedic_varga_d24 - First observed
astroway_vedic_varga_d27 - First observed
astroway_vedic_varga_d3 - First observed
astroway_vedic_varga_d30 - First observed
astroway_vedic_varga_d4 - First observed
astroway_vedic_varga_d40 - First observed
astroway_vedic_varga_d45 - First observed
astroway_vedic_varga_d60 - First observed
astroway_vedic_varga_d7 - First observed
astroway_vedic_varga_d9 - First observed
astroway_vedic_varshaphal - First observed
astroway_vedic_yogas_jaimini_daridra - First observed
astroway_vedic_yogas_jaimini_dhana - First observed
astroway_vedic_yogas_jaimini_full - First observed
astroway_vedic_yogas_jaimini_karaka_yoga - First observed
astroway_vedic_yogas_jaimini_karakamsa - First observed
astroway_vedic_yogas_jaimini_raja - First observed
astroway_vedic_yogas_jaimini_shubha_graha - First observed
astroway_vedic_yogas_jaimini_viparita - First observed
astroway_vedic_yogas_parashara_adhi - First observed
astroway_vedic_yogas_parashara_dhana - First observed
astroway_vedic_yogas_parashara_dharma_karmadhipati - First observed
astroway_vedic_yogas_parashara_full - First observed
astroway_vedic_yogas_parashara_gajakesari - First observed
astroway_vedic_yogas_parashara_pancha_mahapurusha - First observed
astroway_vedic_yogas_parashara_raja - First observed
astroway_vyp_dharma_karmadhipati - First observed
astroway_vyp_pancha_mahapurusha
Related MCP Connectors
Vedic astrology (Jyotish): birth charts, divisional charts, dashas, yogas, transits, panchang
30 Vedic Jyotish tools: natal charts, dashas, yogas, nakshatras. Swiss Ephemeris.
Vedic astrology from a real ephemeris: birth chart, life-event timing and Kundli matching.
Ephemeris natal & mundane charts, Vimshottari Dasha, transit horoscopes, Horas, and Vedic yogas.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes Vedic astrology tools for birth chart, dasha, transit calculations, and question context analysis.MIT
- AlicenseAqualityAmaintenanceVedic and Western astrology for AI agents: 103 read-only tools for natal charts, dasha, kundali matching with Rajju and Vedha vetoes, panchanga, numerology and tarot, backed by Swiss Ephemeris and verified against NASA JPL Horizons.103MIT
- AlicenseAqualityCmaintenanceHosted Streamable HTTP MCP server for Vedic astrology: panchang, kundali (birth chart), matchmaking, dashas, doshas, muhurta and 16 tools computed by a precision astronomy engine.1718 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to answer Vedic astrology questions about dashas, transits, and planetary positions using real sidereal calculations.AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.