Skip to main content
Glama

Birthstar Vedic Astrology MCP

create_chart

Compute a full Vedic natal chart and cache it, returning a short handle.

Call this FIRST. It returns a `chart_id` plus a small summary. Pass that
chart_id to the other tools (get_grahas, get_houses, get_current_dasha,
get_panchanga, get_yogas) to read specific parts of the chart without
recomputing it.

Args:
    dob: Date of birth, YYYY-MM-DD (proleptic Gregorian).
    tob: Time of birth, HH:MM or HH:MM:SS, 24-hour, local to `tz`.
    tz:  IANA timezone name (e.g. "Asia/Kolkata") or fixed offset "+05:30".
    lat: Latitude in decimal degrees, North positive.
    lon: Longitude in decimal degrees, East positive.
    ayanamsha: Sidereal zero-point — lahiri, raman, kp, true_chitra,
        yukteshwar, or fagan_bradley.
    house_system: whole_sign, sripati, equal, placidus, or kp.
    node_type: "true" or "mean" lunar nodes.
    transit_date: YYYY-MM-DD the "now" questions are answered against —
        which dasha is running, where the transits are, whether Sade Sati
        is active. Defaults to today *in `tz`*, not in UTC, so a caller in
        Asia/Kolkata at 01:00 local gets their own date rather than the
        previous one. Set it to ask about another date; a chart made
        yesterday still answers as of yesterday.

Returns the chart_id and the headline placements (birth star, moon sign,
ascendant) — not the full document, which is far too large to return.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tzYes
dobYes
latYes
lonYes
tobYes
ayanamshaNolahiri
node_typeNotrue
house_systemNowhole_sign
transit_dateNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior4/5

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

There are no annotations, so the description carries the behavioral burden. It discloses caching, the decision to return only a chart_id plus headline placements rather than the full document, and the important tz-local default behavior of transit_date. It could additionally mention failure modes or whether repeated calls with identical inputs reuse the cache, but the key behavioral traits are covered.

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

Conciseness5/5

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

The description is long but the length is justified by nine parameters with no schema descriptions. It is well-structured: two opening sentences establish purpose and usage, followed by a compact, scannable Arg list. Every line adds necessary information.

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

Completeness5/5

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

Given no output schema and no annotations, the description provides what an agent needs: what the tool does, how to invoke it with all parameters, what it returns, and how to proceed with sibling tools. It is complete for its role as the chart-creation entry point.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates by explaining every parameter: date/time formats, timezone/local-time semantics, coordinate conventions, allowed ayanamsha values, house system values, node_type values, and the meaning of transit_date. This goes far beyond the schema's bare property names and defaults.

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

Purpose5/5

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

The description states a specific operation: compute a full Vedic natal chart, cache it, and return a short handle. It clearly distinguishes itself from the sibling getter tools by explicitly positioning itself as the first call that produces the chart_id they need.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: 'Call this FIRST' and then pass the returned chart_id to get_grahas, get_houses, get_current_dasha, get_panchanga, and get_yogas. This unambiguously tells an agent when to use this tool versus its siblings.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Every tool targets a distinct astrological subsystem — positions, houses, aspects, strengths, dashas, transits, yogas, doshas, vargas, karakas, etc. The pairs that could plausibly be confused (calculate_birth_star vs create_chart, get_current_dasha vs get_dasha_periods, get_timeline vs get_transits) are explicitly cross-referenced with guidance on when to use which, so an agent can disambiguate reliably.

Naming Consistency4/5

24 of 30 tools follow a uniform get_X pattern, and the remaining action tools (create_chart, calculate_birth_star, describe_chart, rectify_birth_time) still use verb_noun. Only health_check and server_stats break the pattern as noun-style names, and the different verbs reflect genuinely different actions rather than inconsistency.

Tool Count3/5

30 tools is on the heavy side and exceeds the comfortable range, even though Vedic astrology is a genuinely broad domain with many distinct subsystems. Some tools are meta or adjacent (get_account_status, health_check, server_stats, get_prompt_library, get_numerology) and a couple could arguably be consolidated (get_current_dasha as a mode of get_dasha_periods), but each tool does carve out a distinct purpose.

Completeness5/5

The chart lifecycle is fully covered: create_chart produces a cached handle, describe_chart inventories it, and the get_* readers retrieve every section. Timing (dashas, transits, timeline), strengths (shadbala, vimsopaka), yogas, doshas, vargas, compatibility, rectification, and even meta-concerns (account status, health) are all present with no obvious dead ends or missing operations for a computation-cache domain.

Resources