# Kaalshodh — Indian astronomy time machine (remote · kaalshodh.com)

Observatory-grade Indian astronomy, years -5000..+5000: positions, eclipses, panchang date search.

- Trust score: 58/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `kaalshodh.com`: 58/100 (this document), [markdown](https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh.md), [page](https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh)

## Channel facts

- Endpoint: `https://kaalshodh.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 5 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2974 tokens (~594/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add --transport http com-kaalshodh-kaalshodh https://kaalshodh.com/mcp
```

### Codex

```toml
[mcp_servers.com-kaalshodh-kaalshodh]
url = "https://kaalshodh.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-kaalshodh-kaalshodh": {
      "type": "remote",
      "url": "https://kaalshodh.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-kaalshodh-kaalshodh --url https://kaalshodh.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-kaalshodh-kaalshodh:
    url: "https://kaalshodh.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-kaalshodh-kaalshodh": {
      "type": "http",
      "url": "https://kaalshodh.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 58, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-02 (score 58)

First indexed and scored.

## MCP tools (5)

### `get_astro_events` (~834 tokens)

Return precomputed astronomical events between start_date and end_date —
    any range within years -5000..+5000 (eclipses -1999..3000), instant.

    Events are global (location-independent) and served from binary-searched
    lookup tables — no live ephemeris computation.

    Example questions: "planetary events this month", "solar eclipses in the
    12th century", "when was Shani retrograde in 1500 BCE?", "adhik maas
    years this decade".

    Ritu/ayana changes are Sayan sankrantis: Surya entering Meena=Vasanta,
    Vrishabha=Grishma, Karka=Varsha (=Dakshinayan start, = solstice),
    Kanya=Sharada, Vrishchika=Hemanta, Makara=Shishira (=Uttarayan start,
    = solstice) — query event_types=["sankranti"] with ayanamsa="Sayan".

    Args:
        start_date: Start date inclusive, YYYY-MM-DD (e.g. "2026-01-01");
                    negative years allowed (e.g. "-3101-01-01")
        end_date:   End date inclusive,   YYYY-MM-DD (e.g. "2026-12-31")
        ayanamsa:   "Lahiri" (Vedic sidereal, default) or "Sayan" (tropical/Western)
        grah:       Optional planet filter. One of: Surya, Chandra, Mangala, Budha,
                    Guru, Shukra, Shani, Rahu, Ketu
        event_types: Optional list of event type filters. Valid values:
                    "transit"          – Mangala..Ketu change rashi (NOT Surya/Chandra)
                    "sankranti"        – Surya changes rashi (~monthly)
                    "moon_transit"     – Chandra changes rashi (~monthly)
                    "full_moon"        – Purnima (Moon at 180° elongation)
                    "new_moon"         – Amavasya (Moon at 0° elongation)
                    "retrograde_start" – planet turns retrograde
                    "retrograde_end"   – planet resumes direct motion
                    "equinox"          – Vernal or Autumnal equinox (Sayan Surya)
                    "solstice"         – Summer or Winter solstice (Sayan Surya)
                    "asta_start"       – planet enters…

Input parameters:

- `ayanamsa` (string)
- `end_date` (string, required)
- `event_types`
- `grah`
- `start_date` (string, required)

### `get_nearest_event` (~343 tokens)

Return the nearest occurrence of one event type before or after a date —
    walks outward from any date in years -5000..+5000, instant.

    Ideal for questions like "when is the next Kumbh Mela?", "when does Guru
    go retrograde next?", "when is Makara Sankranti?" or "when was the last
    total solar eclipse before 1500 CE?" without scanning a whole range.

    Args:
        event_type: One of the values listed in get_astro_events (e.g.
                    "kumbh_mela", "solar_eclipse", "adhik_maas", "sankranti").
        from_date:  Reference date, YYYY-MM-DD (BC years like "-0500-01-01" allowed).
        direction:  "next" (first after from_date) or "prev" (last before).
        ayanamsa:   "Lahiri" (default) or "Sayan".
        grah:       Optional grah filter for grah-specific event types.
        location:   Optional Kumbh Mela location (Haridwar/Prayagraj/Ujjain/Nashik).

    Returns:
        Dict with event_type, direction, from_date, ayanamsa, valid_range, and
        `event` (null if the reference date is outside the data range).

Input parameters:

- `ayanamsa` (string)
- `direction` (string)
- `event_type` (string, required)
- `from_date` (string, required)
- `grah`
- `location`

### `get_planetary_positions` (~333 tokens)

Return the rashi (zodiac sign) and retrograde status of the 9 grahas at
    any instant in years -5000..+5000, plus the paksha (lunar fortnight).

    Served from precomputed lookup tables — O(log n), instant even for
    "where was Shani on this day in 3102 BCE?".

    Example questions: "which planets are retrograde right now?",
    "what sign was Guru in when I was born?", "sky snapshot for 500 CE".

    Args:
        time:      ISO 8601 UTC datetime (e.g. "2026-03-22T12:00:00Z").
                   Negative years allowed (e.g. "-3101-02-18T00:00:00Z").
                   Defaults to now.
        ayanamsa:  "Lahiri" (Vedic sidereal, default) or "Sayan" (tropical).
        grah:      Optional single planet (Surya, Chandra, Mangala, Budha,
                   Guru, Shukra, Shani, Rahu, Ketu) — returns just that one.

    Returns:
        Dict with time, ayanamsa, paksha (Shukla/Krishna), and grahas mapping
        each planet to its rashi name and retrograde status (or the single
        grah's status when `grah` is given).

Input parameters:

- `ayanamsa` (string)
- `grah`
- `time`

### `find_matching_dates` (~711 tokens)

Search up to 10,000 years (-5000..+5000) for every date whose sunrise
    panchang matches the given constraints — instant, from precomputed
    tables. This answers questions no LLM can: dating inscriptions and
    historical events, Hindu→Gregorian conversion, recurrence questions.

    Example questions:
    - "An inscription says Kartika Shukla 5, Thursday, in the 1200s CE —
      which dates fit?" → masa=Kartika, paksha=Shukla, tithi=5,
      vaar=Thursday, range 1200..1300.
    - "Convert Vikram Samvat 1680 Kartik Shukla 5 to a Gregorian date"
      → same constraints over the matching Gregorian years (VS ≈ year+57);
      check vikram_samvat in the results.
    - "When does my janma-tithi (Shravana Krishna Ashtami) fall in 2027?"
    - "Which years this century does Diwali (Kartika Amavasya) fall on a
      Sunday?"
    - "Full moon in Chitra nakshatra in the 5th century BCE" → tithi=Purnima,
      nakshatra=Chitra, range -0500..-0400.

    Give at least one of tithi/nakshatra/masa. All names fuzzy-match
    ("Ekadashi", "ekadasi", or the number 11 all work).

    Args:
        start_date, end_date: YYYY-MM-DD; negative years allowed
                   ("-0500-01-01"). Wide ranges are fine — results are capped.
        tithi:     Name or number 1..30 (1..15 Shukla, 16..30 Krishna;
                   Purnima=15, Amavasya=30). A bare name like "Ekadashi"
                   matches both pakshas unless paksha is given.
        paksha:    "Shukla" (waxing) or "Krishna" (waning).
        nakshatra: Name or number 1..27 (Ashwini=1 .. Revati=27). This is the
                   MOON's nakshatra at sunrise.
        masa:      Amavasyant Hindu month name or number 1..12
                   (Chaitra=1 .. Phalguna=12).
        vaar:      Weekday — English ("Thursday") or Vedic ("Guruvara").
        tz_offset_hours: Local offset for civil-day assignment (default 5.5
                   = India).
        max_results: Cap (≤200); response flags truncation.

    Returns m…

Input parameters:

- `end_date` (string, required)
- `masa`
- `max_results` (integer)
- `nakshatra`
- `paksha`
- `start_date` (string, required)
- `tithi`
- `tz_offset_hours` (number)
- `vaar`

### `find_copresence` (~351 tokens)

Find every window when the given planets occupy the same rashi (sign)
    simultaneously — conjunction-class questions over ±5000 years, instant.

    Example questions: "when are Guru and Shani next together in Kumbha?"
    (the ~60-year social-cycle conjunction), "when were Guru, Shani and
    Mangala last in one sign?", "were all planets really in one rashi at the
    Kali Yuga epoch (Feb 3102 BCE)?", "great conjunctions in the 1st
    millennium".

    Resolution is the rashi (30°) — for exact-degree conjunctions treat these
    windows as candidates. Including Chandra gives many short (~2 day)
    windows; omit it for long-period questions.

    Args:
        grahas:     Two or more of: Surya, Chandra, Mangala, Budha, Guru,
                    Shukra, Shani, Rahu, Ketu.
        start_date, end_date: YYYY-MM-DD, negative years allowed.
        rashi:      Optional sign filter — Vedic (Mesh..Meen) or western
                    (Aries..Pisces) name, or 1..12. Omit = any shared sign.
        ayanamsa:   "Lahiri" (default) or "Sayan".
        max_results: Cap (≤100); response flags truncation.

Input parameters:

- `ayanamsa` (string)
- `end_date` (string, required)
- `grahas` (array, required)
- `max_results` (integer)
- `rashi`
- `start_date` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh#diagnostics

## Score history

- 2026-08-03: 58
- 2026-08-02: 58

## Links

- Remote endpoint: https://kaalshodh.com/mcp
- Website: https://kaalshodh.com/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-kaalshodh-kaalshodh/kaalshodh
