Koskamo

AstroCalc MCP

A free, read-only remote MCP server that allows AI assistants to generate Vedic astrology kundli charts, perform kundli milan (guna matching), explain dashas, check yoga rarity, answer learning questions, and search places. It uses Swiss Ephemeris and Parashari rules, supporting English and Hindi outputs without requiring user sign-in.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

AstroCalc MCP logo, by AstroCalcVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by AstroCalc
MCP endpoint (Streamable HTTP)
https://astrocalc.in/mcp
Vendor documentation

What its tools do

15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

15 of 15 have a description · 15 of 15 declare behavior hints · 15 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to astrocalc.in ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Generate a Janam kundali (birth chart) from date, time, and place of birth
  • Perform Ashtakoota guna milan (matchmaking) for two people with Manglik check
  • Explain current Mahadasha and Antardasha periods from a birth chart
  • Search for place names or get answers from the Vedic astrology learning course

Source and maintenance

Vendor evidenceRegistry 1.0.1

Protocol and capabilities

Server
astrocalc 1.0.1
MCP protocol negotiated in check
2025-11-25
Tools
15 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

AstroCalc computes Vedic (Jyotish) charts with the Swiss Ephemeris, sidereal zodiac and Lahiri ayanamsa: free_kundli, kundli_milan and explain_dasha return calculated planetary positions, guna scores and dasha dates; yoga_rarity and learn_answer need no birth data. With a free AstroCalc sign-in (read-only, no credits), the tools marked "(needs a free AstroCalc sign-in)" also work: the people saved on the user's AstroCalc account (my_profiles, my_kundli, my_family_phases, match_my_profiles, compare_family, today_for) and deeper calculations for any birth details (full_chart, life_timeline, sky_on_date). Without a sign-in these return a connect prompt. If a place name is ambiguous, search_place lists the matching places. Birth time may be unknown; the Lagna is then approximate (timeUnknown: true). Each result has a caveat and a link to the free full report on astrocalc.in that the user can open. Doshas come with their classical cancellations; results are traditional astrology information, not certain predictions or medical, legal or financial advice. A Mahadasha is a life chapter; an Antardasha is the current phase within it.

Tools

15 advertised

free_kundli — Someone's birth chart, read in plain words (free kundli)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads a person's birth chart from their date, time and place of birth: their core nature, the life phase they are in now and when it changes, the standout strengths in the chart, and which life areas look strong or need care, with what helps. Useful when the user talks about themselves, a family member or someone they know and wants to understand them better: personality, a life change, career or marriage timing, feeling stuck, or what to work on. Also for direct requests for a kundli or janam kundali. Calculated by AstroCalc's ephemeris engine (sidereal zodiac, Lahiri ayanamsa). Returns Lagna (ascendant), Moon sign (rashi), Sun sign, nakshatra and pada, the running Vimshottari Mahadasha and Antardasha with dates, the most notable yoga with how rare it is ("1 in N charts"), life areas that are strong or need care, a caveat, and a link to the full free report. Birth details are used only to compute the chart in memory and are not stored. Results are traditional astrology information, not predictions or professional advice.

free_kundli input schema
{
  "type": "object",
  "required": [
    "date"
  ],
  "properties": {
    "lat": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
    },
    "lon": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "time": {
      "type": "string",
      "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
      "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
    },
    "place": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
    }
  },
  "additionalProperties": false
}
free_kundli annotations
{
  "title": "Someone's birth chart, read in plain words (free kundli)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
kundli_milan — How well two people match for marriage (36-point kundli milan)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Checks how well two people match for marriage in the Indian (Vedic) tradition, from both people's birth details: a score out of 36 with what each of its eight parts means, and whether either person has the Mars placement (Manglik) that families often ask about. Useful when the user is thinking about marriage or a relationship, weighing a proposal, or their family has asked for a kundli match ("kundli milan", "guna milan", "how many gunas match", Manglik, Nadi or Bhakoot dosha). Computed by AstroCalc's engine. Returns the Ashtakoota total and band, all 8 kootas (Varna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot, Nadi) with points and a plain-language meaning, which doshas are cancelled by classical exceptions, each person's Manglik status and the pair verdict, a caveat, and a link to the full free report. Each person needs a birth date and place; time is optional. Details are used in memory only and not stored. The score is one traditional input, not a decision about a relationship.

kundli_milan input schema
{
  "type": "object",
  "required": [
    "person_a",
    "person_b"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "person_a": {
      "type": "object",
      "required": [
        "date"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
        },
        "date": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
        },
        "time": {
          "type": "string",
          "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
          "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
        },
        "place": {
          "type": "string",
          "maxLength": 120,
          "minLength": 2,
          "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
        },
        "gender": {
          "enum": [
            "male",
            "female"
          ],
          "type": "string",
          "description": "Optional. Classical milan reads the boy's chart against the girl's; with a male/female pair the order is set by gender, otherwise person_a is read as the boy."
        }
      },
      "description": "Birth details of the first person.",
      "additionalProperties": false
    },
    "person_b": {
      "type": "object",
      "required": [
        "date"
      ],
      "properties": {
        "lat": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
        },
        "lon": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
        },
        "date": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
        },
        "time": {
          "type": "string",
          "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
          "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
        },
        "place": {
          "type": "string",
          "maxLength": 120,
          "minLength": 2,
          "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
        },
        "gender": {
          "enum": [
            "male",
            "female"
          ],
          "type": "string",
          "description": "Optional. Classical milan reads the boy's chart against the girl's; with a male/female pair the order is set by gender, otherwise person_a is read as the boy."
        }
      },
      "description": "Birth details of the second person.",
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
kundli_milan annotations
{
  "title": "How well two people match for marriage (36-point kundli milan)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
explain_dasha — What life phase someone is in and what changes next
Advertised by the server during the last successful anonymous check.
Advertised read-only

Explains the life phase a person is in right now, what it tends to bring, when it ends and what comes next, from their birth details; or, without birth details, what a given phase means in general and how long it lasts. Useful when the user wonders why life feels a certain way at the moment, when things will change, or about timing for career, marriage, a move or a fresh start, for themselves or someone close to them. Uses the Vimshottari dasha system. Two ways to call it: (1) with birth details (date, time, place) it returns the running Mahadasha and Antardasha with exact start/end dates, what the period is about for that chart and the next antardashas (AstroCalc engine); or (2) with lord (and optionally antardasha) set to a planet, e.g. lord "Saturn", antardasha "Venus", it returns the general meaning and length of that period, with no birth data needed. Birth details are not stored. Traditional information, not a prediction.

explain_dasha input schema
{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
    },
    "lon": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "lord": {
      "type": "string",
      "maxLength": 20,
      "description": "Mahadasha planet for a general explanation: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu or Ketu (Hindi/Sanskrit names like Shani or Guru also work). Ignored when date is given."
    },
    "time": {
      "type": "string",
      "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
      "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
    },
    "place": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
    },
    "antardasha": {
      "type": "string",
      "maxLength": 20,
      "description": "Optional antardasha (sub-period) planet inside lord, e.g. \"Venus\"."
    }
  },
  "additionalProperties": false
}
explain_dasha annotations
{
  "title": "What life phase someone is in and what changes next",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
yoga_rarity — How rare a special chart combination is (yoga rarity)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Says how common or rare a particular combination in a birth chart (a yoga) really is, e.g. Gaja Kesari, Raja yoga, Hamsa, Malavya, Budhaditya, Kemadruma, Kaal Sarp, Neecha Bhanga Raja yoga. Useful when someone has been told their chart has a special, lucky or worrying yoga and wants perspective. Accepts English or Hindi names; no birth data needed. Returns "found in about 1 in N charts", the percentage, a rarity label (common / uncommon / rare), a one-line meaning and a Learn link, from AstroCalc's Monte-Carlo sample of 5,000 Indian birth charts run through its yoga engine.

yoga_rarity input schema
{
  "type": "object",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "yoga": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "One yoga name, e.g. \"Gaja Kesari\"."
    },
    "yogas": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80,
        "minLength": 2
      },
      "maxItems": 10,
      "minItems": 1,
      "description": "Several yoga names at once (max 10)."
    }
  },
  "additionalProperties": false
}
yoga_rarity annotations
{
  "title": "How rare a special chart combination is (yoga rarity)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
learn_answer — Plain-language guides to Vedic astrology (AstroCalc Learn)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds AstroCalc's plain-language guide chapters that answer a general question about Indian (Vedic) astrology, e.g. "what is Manglik dosha", "is 24 gunas enough", "what is Nadi dosha", "Saturn in the 7th house", "how do dashas work", "what is Sade Sati". Useful for general questions that need no birth data, when a source page the user can read is helpful. Returns up to 3 chapters with title, a short summary paragraph, the canonical URL, and links to the most relevant sections, in English or Hindi.

learn_answer input schema
{
  "type": "object",
  "required": [
    "question"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of titles, summaries and URLs. Defaults to 'hi' for a question written in Devanagari, else 'en'."
    },
    "question": {
      "type": "string",
      "maxLength": 300,
      "minLength": 2,
      "description": "The question or topic, in English, Hindi or Hinglish."
    }
  },
  "additionalProperties": false
}
learn_answer annotations
{
  "title": "Plain-language guides to Vedic astrology (AstroCalc Learn)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_place — Find a birth place
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds a city or town and its coordinates, Indian places ranked first, from the same city list AstroCalc's kundli form uses. Useful before the birth-chart, matching or life-phase tools when a place name is ambiguous or misspelled (e.g. "Bombay", "Prayagraj", several towns with one name); pass the chosen label as place, or its lat and lon. Returns up to 5 matches with label, state, country, latitude and longitude.

search_place input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the summary text: 'en' (default) or 'hi'."
    },
    "query": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "Place name, optionally with state or country, e.g. 'Varanasi' or 'Aurangabad, Bihar'."
    }
  },
  "additionalProperties": false
}
search_place annotations
{
  "title": "Find a birth place",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
my_profiles — My saved family kundlis
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the people whose kundlis the user has saved on AstroCalc (themselves, parents, partner, children, friends): name, gender, birth place, Moon sign, when it was saved, and an id. Use when the user talks about themselves or a family member by name or relation ('my mother', 'my son') and a saved kundli may exist, or asks who is saved. Read-only. (needs a free AstroCalc sign-in)

my_profiles input schema
{
  "type": "object",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    }
  },
  "additionalProperties": false
}
my_profiles annotations
{
  "title": "My saved family kundlis",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
my_kundli — A saved person's kundli at a glance
Advertised by the server during the last successful anonymous check.
Advertised read-only

Summary of one saved person's birth chart: their nature (Lagna, Moon sign, nakshatra), the life chapter and phase they are in now with dates (Mahadasha / Antardasha), their most notable yoga and how rare it is, and which life areas are strong or need care, with what helps. Use when the user asks about themselves or a saved family member: personality, a child's nature, strengths, what to work on, why life feels a certain way. Same shape as free_kundli, read from the saved chart. Read-only. (needs a free AstroCalc sign-in)

my_kundli input schema
{
  "type": "object",
  "required": [
    "profile"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
my_kundli annotations
{
  "title": "A saved person's kundli at a glance",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
my_family_phases — What life phase each person is in, and what changes next
Advertised by the server during the last successful anonymous check.
Advertised read-only

For one saved person or everyone saved on the account: the life chapter they are in now (Vimshottari Mahadasha) and the current phase within it (Antardasha), with dates, plus what comes next and when, sorted by whose phase changes soonest. Use when the user asks why life feels stuck or is shifting, when things will change, what is changing for someone this year, or about timing for family members. Read-only. (needs a free AstroCalc sign-in)

my_family_phases input schema
{
  "type": "object",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id. Omit for all saved kundlis."
    }
  },
  "additionalProperties": false
}
my_family_phases annotations
{
  "title": "What life phase each person is in, and what changes next",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
match_my_profiles — Marriage match between two saved people
Advertised by the server during the last successful anonymous check.
Advertised read-only

Marriage compatibility between two saved people: the traditional 36-point Guna Milan (Ashtakoota) with all 8 parts and their cancellations, and the Manglik check for both, from their saved kundlis (bride/groom order follows the saved genders). Use when the user asks whether two saved people are compatible, about a match for a son or daughter, or about Manglik dosha between them. Read-only. (needs a free AstroCalc sign-in)

match_my_profiles input schema
{
  "type": "object",
  "required": [
    "profile_a",
    "profile_b"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "profile_a": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    },
    "profile_b": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
match_my_profiles annotations
{
  "title": "Marriage match between two saved people",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_family — Compare family members' strengths side by side
Advertised by the server during the last successful anonymous check.
Advertised read-only

Side-by-side view of up to 6 saved people: for each of the 12 life areas (career, money, marriage, health, children ...) whether it is strong, mixed or needs care for each person (Sarvashtakavarga points), and the life chapter and phase each is in now. Use when the user asks how family members differ, who is better placed for something, or wants an overview of the family. Omit profiles to compare the 6 most recently saved. Read-only. (needs a free AstroCalc sign-in)

compare_family input schema
{
  "type": "object",
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "profiles": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 100,
        "minLength": 1,
        "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
      },
      "maxItems": 6,
      "minItems": 2,
      "description": "Names or ids of 2 to 6 saved kundlis."
    }
  },
  "additionalProperties": false
}
compare_family annotations
{
  "title": "Compare family members' strengths side by side",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
today_for — Today's outlook for a saved person
Advertised by the server during the last successful anonymous check.
Advertised read-only

Today's planetary weather for one saved person, counted from their Moon sign: where the Moon is (and whether it is a Chandrashtama day to go slow), which houses Saturn, Jupiter, Rahu and Ketu occupy for them, and whether Sade Sati is running. Use when the user asks how today looks for them or someone saved, or whether today suits a plan. Read-only. (needs a free AstroCalc sign-in)

today_for input schema
{
  "type": "object",
  "required": [
    "profile"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
today_for annotations
{
  "title": "Today's outlook for a saved person",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
full_chart — Full birth chart in detail (degrees, divisional charts)
Advertised by the server during the last successful anonymous check.
Advertised read-only

The complete birth chart for a detailed reading: Lagna degree; for each planet its sign, degree, nakshatra and pada, nakshatra lord, house, dignity, retrograde status, aspected houses and conjunctions; the 12 houses with lords and occupants; and divisional charts (D9 Navamsa and D10 Dasamsa by default, or any of D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45, D60) with vargottama planets. For a saved person (profile) or from birth details. Use when a question needs more than the summary: a deeper look at career, marriage, a specific planet or house. AstroCalc calculates; the assistant interprets. Read-only. (needs a free AstroCalc sign-in)

full_chart input schema
{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
    },
    "lon": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "time": {
      "type": "string",
      "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
      "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
    },
    "place": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
    },
    "vargas": {
      "type": "array",
      "items": {
        "enum": [
          "D2",
          "D3",
          "D4",
          "D7",
          "D9",
          "D10",
          "D12",
          "D16",
          "D20",
          "D24",
          "D27",
          "D30",
          "D40",
          "D45",
          "D60"
        ],
        "type": "string"
      },
      "maxItems": 15,
      "description": "Divisional charts to include. Default [\"D9\", \"D10\"]."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
full_chart annotations
{
  "title": "Full birth chart in detail (degrees, divisional charts)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
life_timeline — Life chapters and phases over the years
Advertised by the server during the last successful anonymous check.
Advertised read-only

Timeline of life chapters (Vimshottari Mahadashas) and phases (Antardashas, or the finer Pratyantardashas for spans up to 3 years) with start and end dates over a chosen span, marking the one running today. For a saved person (profile) or from birth details. Use for timing questions: when a hard period ends, which coming years suit marriage or a career move, what the next decade looks like. Read-only. (needs a free AstroCalc sign-in)

life_timeline input schema
{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
    },
    "lon": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
    },
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Start of the span, YYYY-MM-DD. Defaults to today."
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "time": {
      "type": "string",
      "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
      "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
    },
    "level": {
      "enum": [
        "mahadasha",
        "antardasha",
        "pratyantardasha"
      ],
      "type": "string",
      "description": "Depth: 'mahadasha', 'antardasha' (default) or 'pratyantardasha'."
    },
    "place": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
    },
    "years": {
      "type": "integer",
      "maximum": 120,
      "minimum": 1,
      "description": "Length of the span in years (default 10)."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
life_timeline annotations
{
  "title": "Life chapters and phases over the years",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
sky_on_date — What the planets are doing for someone on a date
Advertised by the server during the last successful anonymous check.
Advertised read-only

Planet positions on any date from 1900 to 2100 read against a person's chart: each planet's sign, nakshatra and retrograde status, its house from their Lagna and from their Moon, whether Sade Sati is running, and short notes for Saturn, Jupiter, Rahu and Ketu (positions at 12:00 IST). For a saved person (profile) or from birth details. Use when the user asks what is changing for them this year or around a date, whether a date suits a plan, or about Sade Sati or Saturn and Jupiter transits. Read-only. (needs a free AstroCalc sign-in)

sky_on_date input schema
{
  "type": "object",
  "properties": {
    "on": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date, YYYY-MM-DD. Defaults to today (IST)."
    },
    "lat": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Birth latitude in decimal degrees (north positive). Give together with lon."
    },
    "lon": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Birth longitude in decimal degrees (east positive). Give together with lat."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, YYYY-MM-DD (Gregorian calendar)."
    },
    "lang": {
      "enum": [
        "en",
        "hi"
      ],
      "type": "string",
      "description": "Language of the text fields: 'en' (English, default) or 'hi' (Hindi)."
    },
    "time": {
      "type": "string",
      "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|unknown)$",
      "description": "Local clock time of birth, 24-hour HH:MM (e.g. '06:45', '21:10'). Use 'unknown' (or omit) if not known: noon is used, the Moon sign stays reliable but the Lagna is approximate."
    },
    "place": {
      "type": "string",
      "maxLength": 120,
      "minLength": 2,
      "description": "Birth city or town, e.g. 'Lucknow' or 'Pune, Maharashtra, India'. The best match is used (Indian cities preferred); call search_place first if unsure. Not needed when lat and lon are given."
    },
    "profile": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "A saved kundli on the user's AstroCalc account: its name as listed by my_profiles (e.g. 'Mummy') or its id."
    }
  },
  "additionalProperties": false
}
sky_on_date annotations
{
  "title": "What the planets are doing for someone on a date",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-07: 2 of 2 checks answered
  2. 2026-11-09: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1444 ms
95th percentile latency
1444 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1444 ms · metadata changed · 15 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http astrocalc-mcp https://astrocalc.in/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add astrocalc-mcp --url https://astrocalc.in/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable astrocalc-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "astrocalc-mcp": {
      "url": "https://astrocalc.in/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "astrocalc-mcp": {
      "type": "streamableHttp",
      "url": "https://astrocalc.in/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start astrocalc-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "astrocalc-mcp": {
      "type": "http",
      "url": "https://astrocalc.in/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http astrocalc-mcp https://astrocalc.in/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://astrocalc.in/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "astrocalc-mcp": {
      "serverUrl": "https://astrocalc.in/mcp"
    }
  }
}

Let your agent find its tools

Find servers like AstroCalc MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run AstroCalc MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing