✷Birthstar MCP
liveGet API keyConnect AI →
✷Build on Birthstar · 30 MCP tools

A Vedic astronomy engine your agent can call.

Swiss Ephemeris positions, dashas, yogas, strengths and transits — exposed as 30 typed MCP tools over one HTTP endpoint. Point any MCP client at it and try it without a key, or sign in with Google for a free key with its own credit balance.

Start in 60 seconds →Get a free API keyTool reference
Endpoint
/mcp
Credits / chart
1
Reads off a chart
Free
Ephemeris
Swiss / JPL
✷Quickstart

Connect, then compute once and read many times

Birthstar is a streamable-HTTP MCP server. Any client that speaks MCP — Claude, Cursor, Windsurf, your own agent — connects with a URL and nothing else.

mcp client config
{
  "mcpServers": {
    "birthstar": { "url": "https://mcp.birthstar.ai/mcp" }
  }
}

The one rule worth knowing

Credits meter engine computation, never tool calls. create_chart costs one credit and returns a handle; every analytical read off that handle costs nothing. Design your agent to compute once and ask freely.

the shape of every integration
// 1. One metered call mints a handle. 1 credit.
const { chart_id } = await client.callTool({
  name: "create_chart",
  arguments: {
    dob: "1990-03-14", tob: "09:20", tz: "Asia/Kolkata",
    lat: 26.9124, lon: 75.7873
  }
});

// 2. Every read off that handle is free. Ask as much as you like.
const grahas   = await call("get_grahas",        { chart_id });
const dasha    = await call("get_current_dasha", { chart_id });
const yogas    = await call("get_yogas",         { chart_id });
const transits = await call("get_transits",      { chart_id });

// 3. A successful call can still be a failed operation.
if (grahas.error) handle(grahas.type);  // check the key, not the status

Chart handles are self-describing

A handle is an encrypted token carrying the birth data it names, scoped to the account that minted it. Two consequences you can build on: a handle never expires out from under a running conversation — if the cache has evicted it, the server recomputes rather than failing — and any replica can serve any handle. You do not need sticky sessions.

✷Pricing & quota

Free to start, free with a key

Nothing costs money today and every tool is reachable either way. What you spend is credits, and only when a call actually runs the ephemeris. Without a key you share a public trial pool; with a free key you get a balance of your own. The trial numbers below are read live from the running server.

quota unavailable

Could not reach the engine to read current limits: backend returned HTTP 503

Trial, no key

available now

A shared pool, open to everyone. No key, no account, no card. All 30 tools are reachable. Everyone without a key draws from the same balance, so it can run out for the day.

PriceFree
Monthly credits—
Rate ceiling—
Cached reads per chartUnmetered

Free API key

available now

Sign in with Google and get a key. Send it as the X-Birthstar-Key header and your calls are metered against your own balance instead of the shared pool.

PriceFree
Monthly credits (yours alone)1,000
Rate ceiling—
Sign-inGoogle
Cached reads per chartUnmetered

Dedicated

not yet purchasable

There is no paid plan yet and no prices have been set. This is the shape being built — listed so you can tell us what you actually need before it is fixed.

PriceNot set
Larger credit balancePlanned
Higher rate ceilingPlanned
Private chart ownershipPlanned

How a credit is spent

  • create_chart and calculate_birth_star — 1 credit each. Real ephemeris work.
  • get_timeline — 1 credit. It recomputes a natal document to find turning points.
  • rectify_birth_time — 1 credit per candidate chart tested, minimum 20 per call, charged up front. It works near a birth time you already have, scanning the minutes around it to find how many genuinely different charts the window holds. A wide scan is expensive by design; it is the tool that self-throttles.
  • Everything else reading an existing handle — 0 credits.
  • A cache hit costs nothing, and a failed computation is refunded.
✷Reference

30 tools, one cost question

There is no premium tier and no tool is locked behind a plan — all 30 are reachable on the free pool. The only question that costs you anything: does the call run the ephemeris, or read a chart you already computed? 4 compute, and draw down the credits above. The other 26 read off a handle you already hold and cost nothing.

Computes a chart

4 tools1 credit each

Real astronomical work. Debits the credit ledger, and is refunded if it fails.

ToolWhat it returns
create_chartCompute a full natal chart and return a handle. Call this first.
calculate_birth_starOne-shot nakshatra and core anchors, without a full chart.
get_timelineTurning points between two dates. Recomputes a natal document to find them.
rectify_birth_timeNarrow a recorded birth time by scanning the minutes around it — how many genuinely different charts does your uncertainty window hold? The exception: 1 credit per candidate chart tested (min 20 per call), up to 241 — keep the window narrow.

Reads a chart you already have

26 toolsfree

Served off the chart handle. No ephemeris work, no debit, no limit on how many you call.

ToolWhat it returns
get_grahasPlanetary positions, dignity and state.
get_housesThe twelve bhavas.
get_panchangaTithi, vara, nakshatra, yoga and karana at birth.
get_day_periodsSunrise/sunset, Rahu kala and the day windows.
get_current_dashaThe dasha periods running right now.
get_dasha_periodsWalk the dasha tree at any level, past or future.
get_transitsGochara — planets now against the natal chart.
get_yogasClassical combinations whose conditions actually hold.
get_strengthsShadbala, Bhava Bala, Ishta/Kashta phala.
get_ashtakavargaBindu point-scores per sign, for transit strength.
get_vimsopakaDignity-weighted strength across the 16 vargas.
get_aspectsGraha and rashi drishti — who looks at which house.
get_vargaOne divisional chart from a cached chart.
get_lagna_pointsSpecial lagnas, Arudha padas, Bhrigu Bindu.
get_karakasChara karakas plus Karakamsa and Swamsa.
get_avasthasMaturity, alertness and mood states per graha.
get_fixed_starsReal conjunctions with named prominent fixed stars.
get_longevityAyurdaya estimates. Experimental, not for predictive use.
get_compatibility36-point Ashta-Kuta Guna Milan between two charts.
get_doshasKuja, Kaal Sarp, Gandanta and Pitre audits.
get_numerologyChaldean name and Vedic date-of-birth numbers.
describe_chartMetadata and inventory of what a cached chart holds.
get_prompt_libraryCurated prompt templates and multi-tool workflows.
get_account_statusYour plan, remaining credits and reset date.
health_checkConfiguration and accuracy self-test.
server_statsCalls, latency, errors and payload sizes for this session.
✷Zero-shot builds

Apps you can build by pasting a prompt

Each of these is a complete build prompt — the endpoint, the exact tool chain, the credit model and the honesty constraints, already written. Paste one into Claude Code, Cursor or v0 and you get a working app, not a scaffold to finish yourself.

Natal chart explorer

React SPA4 tools1 credit per visitor

A birth-details form that renders a real chart wheel, then lets the user drill into any placement for free.

Compatibility check

Next.js3 tools2 credits per pair

Two birth charts, the classical 36-point Ashta-Kuta score, and an honest breakdown of what each koota measures.

Timing calendar

Node + .ics3 tools2 credits per user

Turns planetary period changes into a subscribable calendar feed the user reads in the app they already use.

Daily timing widget

Any frontend4 tools1 credit, then free

A small always-on panel: what period is running, what is transiting, and which windows today are traditionally favourable.

Cohort analytics

Python + notebook4 tools1 credit per chart

Compute a few hundred charts, aggregate the distributions, and test what is actually over-represented against a uniform baseline.

Astrology-aware agent

TypeScript agent6 tools1 credit per subject

Wire the whole tool surface into an agent loop so a model picks the right tool per question instead of guessing at astronomy.

Every prompt names real tools with real arguments, checked against the server. Pair one with the Claude Skill and your agent already knows the calling convention before it writes a line.

✷Ship faster

Twelve prompts and a Claude Skill, already written

The good tool chains are already worked out. Twelve workflows ship as native MCP prompts your client lists directly — no tool round-trip.

Native MCP prompts

Read my chart6 toolsWhat's coming3 toolsAm I in Sade Sati?2 tools

Claude Skill

free

Drop one file in .claude/skills/ and your agent stops guessing at astronomy.

  • The credit model, so it does not burn charts
  • Tool selection per question type
  • Error recovery that stops instead of retrying
  • Sidereal vs tropical, and never faking a null
Download SKILL.md ↓
✷Error model

Errors are returned, not raised

A tool that raises gives your model a stack trace. Every Birthstar tool returns a JSON object with an error string and a type your code can branch on — which means a successful MCP call can still be a failed operation. Check for the error key, not the transport status.

UnknownChart

The string is not a chart handle at all.

Call create_chart.

StaleHandle

A handle issued under an older key version.

Call create_chart again.

ForbiddenChart

A valid handle owned by a different account.

Recreate under this account.

SubscriptionRequired

Tool or argument is outside the plan.

Check get_account_status first.

InsufficientCredits

On-plan, but the balance cannot cover it.

Carries credits_needed and credits_reset_at.

RateLimited

Past the per-minute compute ceiling.

Carries retry_after_s. Back off.

InputTooLarge

A list or string argument past its cap.

Message names the argument and limit.

TimeError

Bad date, time or timezone.

Message states the expected format.

ConfigError

Unknown ayanamsha, house system or node type.

Message names the bad value.

CalcError

Engine computation failure.

Message carries the engine reason.

VargaNotAvailable

Varga outside the computed set.

Response lists computed and not_computed.

InternalError

A bug in the server.

Carries error_id. Quote it in a report.

✷Honest scope

Not in the box yet

Things you will look for and not find. Better stated here than discovered halfway through a build. Each one is a real gap, not a teaser — none of them has a ship date.

One key per account, and no usage dashboard yet

Signing in with Google gives you one API key with its own monthly balance. You can replace it, but not hold several, name them, or see per-key usage. claude.ai custom connectors cannot send the key header, so they use the shared trial.

would be

Several named keys, per-key usage, and keys that work from claude.ai connectors.

No plain REST API

The engine speaks MCP. There is a JSON dashboard endpoint for calculating a chart, but no documented, versioned, stable REST surface you should build a product against.

would be

A versioned HTTP API with the same tool semantics, for callers that are not agents.

The credit ledger is single-process

Chart handles are horizontally safe — they carry their own birth data, so any replica can serve them. The ledger is not: it is a local file, so a multi-replica deployment does not share one balance.

would be

A shared ledger backend so quota is exact under horizontal scale.

No MCP resources

Prompts do ship: twelve curated workflows are registered as native MCP prompts, so your client lists them without a tool round-trip. Resources are the half that is missing — there is no addressable chart or reference document a client can subscribe to and read directly.

would be

A computed chart exposed as a resource, so clients can attach it as context instead of re-querying tools.

No webhooks or subscriptions

Every answer is pull-only. Nothing can notify you when a dasha changes or a transit becomes exact — you have to ask on a schedule you run yourself.

would be

Subscribe to a chart and receive turning points as they arrive.

No batch endpoint

One chart per create_chart call. Computing a cohort means N round-trips and N credits, with per-call latency you cannot amortise.

would be

A batch compute that takes many births and returns many handles.

No official SDK package

You connect with a standard MCP client. There is no typed, published npm or PyPI wrapper with argument types and return shapes for these thirty tools.

would be

Generated, typed clients so tool arguments are checked at compile time.

Request one of these ↗See what people build
✷Live status

What the engine reports right now

Read from /usage at page load. Your own client can read the same thing at any time by calling get_account_status or server_stats.

engine unreachable

backend returned HTTP 503