@astroway/mcp
MCP (Model Context Protocol) server exposing every endpoint of the AstroWay Calculation API as tools for Claude Desktop, Cursor, and any MCP-compatible AI agent.

Natal charts, synastry, transits, Vedic dashas (Vimshottari, Yogini, Ashtottari, Kalachakra), 16 Vargas, Tarot (Rider-Waite / Marseille / Lenormand), Numerology (5 systems), Human Design, AI horoscopes, all wrapped as MCP tools that the agent can call directly.
Tools are auto-generated from the live API manifest at build time, so each release ships every endpoint that exists in production. No manual tool-list maintenance.
Install
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"astroway": {
"command": "npx",
"args": ["-y", "@astroway/mcp"],
"env": {
"ASTROWAY_API_KEY": "aw_live_..."
}
}
}
}
Restart Claude Desktop. The astroway server will appear in the MCP indicator at the bottom of the chat input.
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"astroway": {
"command": "npx",
"args": ["-y", "@astroway/mcp"],
"env": { "ASTROWAY_API_KEY": "aw_live_..." }
}
}
}
Cline / Continue / Windsurf / Copilot / VS Code MCP
The same npx @astroway/mcp command works in every MCP-compatible client. Drop this block into the client's MCP config file (the path varies by client):
{
"mcpServers": {
"astroway": {
"command": "npx",
"args": ["-y", "@astroway/mcp"],
"env": { "ASTROWAY_API_KEY": "aw_live_..." }
}
}
}
Config locations:
| Client | Config path |
|---|
| Cline (VS Code) | .cline/mcp.json in the workspace root |
| Continue | ~/.continue/config.json (under mcpServers) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| GitHub Copilot Chat (VS Code) | enable preview in settings, then mcp.json in workspace |
| VS Code MCP extension | ~/.vscode/mcp.json |
Other MCP clients
Run as a stdio server:
ASTROWAY_API_KEY=aw_live_... npx @astroway/mcp
Privacy
This MCP server does not phone home. There is no telemetry, no analytics, no usage reporting, and no opt-in / opt-out toggle to maintain. The only network traffic the server originates is the AstroWay API calls you ask it to make, going directly from your machine to https://api.astroway.info/v1.
Outgoing requests carry two identifying headers so the AstroWay backend can distinguish MCP traffic from raw HTTP traffic in its own logs:
User-Agent: astroway-mcp/<version> (Node/<node-version>)
X-Astroway-Channel: mcp
Neither header carries a session ID, machine fingerprint, or anything personal. They mirror standard HTTP User-Agent semantics: every CLI tool sends similar information already.
Subset registration (advanced)
If you only use part of the catalogue, you can register a subset and keep your LLM context window lean:
{
"env": {
"ASTROWAY_API_KEY": "aw_live_...",
"ASTROWAY_TOOL_GROUPS": "western,vedic,relational", // only these prefixes
"ASTROWAY_READONLY": "1" // skip ai/horoscope/reports (LLM-backed, costs credits)
}
}
Common groups: western, vedic, tarot, numerology, hd (Human Design), relational (synastry/composite/davison), prognostics (transits/progressions/returns), aspects, horary, geo, chinese, bazi, mayan, iching, runes, geomancy. Run npx @astroway/mcp --list-tools to inspect the full set; the boot-line filters: … field shows what was applied.
ASTROWAY_READONLY=1 skips the three groups that internally call an LLM (ai, horoscope, reports), useful when you want pure deterministic chart math without burning credits on text generation.
Discovery (lean) mode
If your agent hits context or tool-count limits with the full catalogue, set ASTROWAY_DISCOVERY_MODE=1. Instead of registering 600+ tools up front, the server exposes just two meta-tools:
astroway_find_tool(query, limit?): keyword-search the whole catalogue; returns the best-matching tools with their one-line description and input parameter names.
astroway_call_tool(name, arguments?): invoke any tool the search surfaced.
The agent discovers the right tool on demand, then calls it, reaching the entire catalogue from a two-tool footprint.
Trade-off: a tool dispatched through astroway_call_tool returns its result as text only. A runtime-dispatched call cannot declare a per-call outputSchema, so it can't carry the validated structuredContent that directly-registered tools provide. Leave ASTROWAY_DISCOVERY_MODE unset (the default) when you want typed structured output; use it when tool-count pressure matters more. Discovery supersedes ASTROWAY_TOOL_GROUPS / ASTROWAY_READONLY.
Stability
- Catalogue is frozen for the duration of a session. The whole catalogue (tools, prompts and resources) is baked into the published npm package and do not change at runtime. (The MCP
listChanged capability is advertised by the SDK, but no */list_changed notification is ever emitted by this build. If your client caches the catalogue after the first tools/list it will stay correct for the whole connection.)
- Tool identifiers are stable inside a major version. A name shipped under
astroway_<group>_<tool> won't be renamed or removed within the same v0.x minor without a deprecation note in CHANGELOG.md. Across major bumps (v1 → v2) any breaking change is announced and the legacy escape (MCP_FLAT_TOOLS=1) carries you across one minor.
- Tool input shape is stable inside a minor version. Tightening (regex, range, enum) ships in patches; adding required fields requires a minor bump.
- Refresh the catalogue by reinstalling.
npm i -g @astroway/mcp@latest (or the npx -y @astroway/mcp form already in your client config) pulls the current set on the next start.
Verify the install
After restarting your MCP client:
- Open the MCP indicator (bottom of the chat input in Claude Desktop, status bar in Cursor).
- You should see
astroway listed as an active server.
- Hover or click, and the badge shows how many tools, prompts and resources registered;
npx @astroway/mcp --list-tools prints the full tool list for the installed version.
- Cold-start takes 2-3 seconds the first time (Node + TLS handshake to api.astroway.info).
- Sanity check from any terminal:
npx @astroway/mcp --version prints the package version, npx @astroway/mcp --list-tools synastry prints matching tools.
If the server doesn't appear, set LOG_LEVEL=debug in the env block above and restart: the boot line and any startup errors land in the client's MCP debug panel.
Get an API key
Sign up at https://api.astroway.info/dashboard/sign-up: 10 000 credits/month free, no card required. Each request costs 5–500 credits depending on the endpoint (see pricing).
For local testing without a paid plan, use a sandbox key (aw_test_...) which returns deterministic responses for free.
What you get
Tool categories, with examples below. Run npx @astroway/mcp once and ask the agent "list astroway tools" for the full live inventory (the package auto-syncs with the API on every release).
| Category | Examples |
|---|
| Core | natal chart, planet positions, draconic, harmonics |
| Comparisons | synastry, composite, davison, cross-system compatibility |
| Prognostics | transits, secondary progressions, solar/lunar return, transit calendar |
| Specialized Charts | heliocentric, sidereal, eclipse search |
| Aspects & Points | aspects table, antiscia, midpoints, Arabic parts, fixed stars |
| Calendar & Cycles | retrograde periods, ingresses, lunar phases, planetary hours |
| Dignities & Receptions | essential dignities, almuten, hyleg, dispositors |
| Horary | horary chart, moon void-of-course, via combusta |
| Human Design | full chart, transits, penta, dream rave, hologenetic profile |
| Astro-Geography | astrocartography, local space, relocation chart |
| Vedic | 16 Vargas, Panchang, Shadbala, 4 Dasha systems × 5 levels (Vimshottari / Yogini / Ashtottari / Kalachakra), Yogas, Doshas, Compatibility, Muhurat |
| Tarot | Rider-Waite-Smith, Marseille, Lenormand decks; spreads + card lookups |
| Numerology | Pythagorean, Chaldean, Kabbalistic, Vedic, Destiny Matrix |
| Esoteric | I Ching, sabian symbols, fortune dice, color & gemstone correspondences |
| Reference | signs, planets, houses, aspects, nakshatras, Hellenistic Lots, natal texts (edited interpretation copy, no AI) |
| AI Interpretations | natal, synastry, transits; chart-grounded chat with four personas; 21 languages |
| Horoscope | daily, weekly, monthly, compatibility (zodiac sign-based) |
Example prompts
After connecting the server, try these in Claude Desktop:
Natal chart
Calculate a natal chart for me, born 1990-03-15 at 14:30 in Kyiv, Ukraine (50.45N 30.52E, UTC+2). Identify my sun, moon, ascendant, and any tight aspects.
Synastry
Compare two charts: person A born 1988-06-10 09:15 in London (51.51N -0.13E UTC+1), person B born 1991-11-22 22:40 in Berlin (52.52N 13.40E UTC+1). What are the strongest cross-aspects?