Koskamo

AstralRead MCP

An MCP server providing astrological calculations and knowledge-base retrieval. It computes natal charts, daily transits, and sky data using Swiss Ephemeris, and answers queries by retrieving specific passages from a library of astrology and psychology books. It supports birth chart construction, transit analysis, and semantic search within its curated knowledge base without requiring user authentication.

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.

AstralRead MCP logo, by AstralReadVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by AstralRead
MCP endpoint (Streamable HTTP)
https://astralread.com/mcp
Vendor documentation

What you can do with it

  • Build a natal chart from birth data
  • Check daily transits and aspects
  • Lookup astrological concepts in knowledge base
  • Analyze synastry between two charts

Source and maintenance

Vendor evidenceRegistry 0.1.1

Protocol and capabilities

Server
astralread 0.1.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

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

AstralRead computes astrology data with the Swiss Ephemeris: natal charts (planets, houses, angles, major aspects with orbs), the tight transits of a day to a natal chart, the sky of a day, Vedic (Jyotish) basics — the sidereal chart with nakshatras and the Vimshottari dasha periods — and links to AstralRead's astrology knowledge base. All tools are read-only and need no account. Birth data is used only for the calculation and is never stored. Results are for self-reflection, not medical, psychological, legal or financial advice.

Tools

6 advertised

natal_chart — Natal chart
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates a natal (birth) chart with the Swiss Ephemeris: the exact sign, degree and house of the Sun, Moon, planets, North Node and Chiron; the Ascendant, MC, DSC and IC; the 12 house cusps; and the major aspects between the planets with their orbs. Adds short notes and links from the AstralRead knowledge base for the Sun, Moon and Ascendant signs. Use it when someone asks for their birth chart or about their placements. Needs the birth date, the place (or coordinates) and ideally the birth time. Birth data is used only for this calculation and is not stored or logged.

natal_chart input schema
{
  "type": "object",
  "title": "natal_chartArguments",
  "required": [
    "birth_date"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    },
    "place": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ],
      "title": "Place",
      "default": null,
      "description": "Birth city, e.g. 'Chicago, Illinois, USA'. Used to look up coordinates and the time zone. Not needed if latitude/longitude are given."
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        {
          "type": "null"
        }
      ],
      "title": "Latitude",
      "default": null,
      "description": "Birth latitude in degrees (north +)."
    },
    "timezone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Timezone",
      "default": null,
      "description": "IANA time zone of the birth place, e.g. America/Chicago. Looked up from the place/coordinates when omitted."
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        {
          "type": "null"
        }
      ],
      "title": "Longitude",
      "default": null,
      "description": "Birth longitude in degrees (east +)."
    },
    "birth_date": {
      "type": "string",
      "title": "Birth Date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birth date, YYYY-MM-DD (years 1800–2100)."
    },
    "birth_time": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{1,2}:\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Birth Time",
      "default": null,
      "description": "Local birth time, 24-hour HH:MM. Omit if unknown: then houses, Ascendant and MC are not computed."
    },
    "house_system": {
      "enum": [
        "koch",
        "placidus",
        "whole_sign"
      ],
      "type": "string",
      "title": "House System",
      "default": "koch",
      "description": "House system: koch (default), placidus or whole_sign."
    }
  }
}
natal_chart annotations
{
  "title": "Natal chart",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
transits_today — Transits to a natal chart
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the tight transits of a given day to a natal chart: aspects of the transiting Moon, Sun, Mercury, Venus, Mars, Jupiter and Saturn to the natal planets, Ascendant and MC within 2° (3° for Jupiter and Saturn), plus each planet's current sign and natal house and the Moon phase. Use it for questions like 'what are my transits today' or 'what is happening in my chart this week'. The date defaults to today in the person's time zone. Computed with the Swiss Ephemeris; no forecast text is generated. Birth data is used only for this calculation and is not stored or logged.

transits_today input schema
{
  "type": "object",
  "title": "transits_todayArguments",
  "required": [
    "birth_date"
  ],
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date",
      "default": null,
      "description": "Day to check, YYYY-MM-DD. Defaults to today in current_timezone."
    },
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    },
    "place": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ],
      "title": "Place",
      "default": null,
      "description": "Birth city, e.g. 'Chicago, Illinois, USA'. Used to look up coordinates and the time zone. Not needed if latitude/longitude are given."
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        {
          "type": "null"
        }
      ],
      "title": "Latitude",
      "default": null,
      "description": "Birth latitude in degrees (north +)."
    },
    "timezone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Timezone",
      "default": null,
      "description": "IANA time zone of the birth place, e.g. America/Chicago. Looked up from the place/coordinates when omitted."
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        {
          "type": "null"
        }
      ],
      "title": "Longitude",
      "default": null,
      "description": "Birth longitude in degrees (east +)."
    },
    "birth_date": {
      "type": "string",
      "title": "Birth Date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birth date, YYYY-MM-DD (years 1800–2100)."
    },
    "birth_time": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{1,2}:\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Birth Time",
      "default": null,
      "description": "Local birth time, 24-hour HH:MM. Omit if unknown: then houses, Ascendant and MC are not computed."
    },
    "house_system": {
      "enum": [
        "koch",
        "placidus",
        "whole_sign"
      ],
      "type": "string",
      "title": "House System",
      "default": "koch",
      "description": "House system: koch (default), placidus or whole_sign."
    },
    "current_timezone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Current Timezone",
      "default": null,
      "description": "IANA time zone where the person is now (defines 'today'); defaults to the birth time zone."
    }
  }
}
transits_today annotations
{
  "title": "Transits to a natal chart",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vedic_chart — Vedic (Jyotish) chart
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates a Vedic (Jyotish) birth chart with the Swiss Ephemeris: sidereal zodiac with the Lahiri ayanamsa, whole-sign houses from the Lagna (Ascendant), the rashi, degree and house of the nine grahas (Sun to Saturn, Rahu as the mean node and Ketu opposite), and the nakshatra, pada and nakshatra lord of the Lagna and every graha, with the traditional symbol and deity of the Moon's nakshatra. Use it for questions like 'what is my nakshatra', 'my Vedic chart' or 'my rashi / Moon sign in Jyotish'. Pure calculation: no doshas, yogas or predictions. Birth data is used only for this calculation and is not stored or logged.

vedic_chart input schema
{
  "type": "object",
  "title": "vedic_chartArguments",
  "required": [
    "birth_date"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    },
    "place": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ],
      "title": "Place",
      "default": null,
      "description": "Birth city, e.g. 'Chicago, Illinois, USA'. Used to look up coordinates and the time zone. Not needed if latitude/longitude are given."
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        {
          "type": "null"
        }
      ],
      "title": "Latitude",
      "default": null,
      "description": "Birth latitude in degrees (north +)."
    },
    "timezone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Timezone",
      "default": null,
      "description": "IANA time zone of the birth place, e.g. America/Chicago. Looked up from the place/coordinates when omitted."
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        {
          "type": "null"
        }
      ],
      "title": "Longitude",
      "default": null,
      "description": "Birth longitude in degrees (east +)."
    },
    "birth_date": {
      "type": "string",
      "title": "Birth Date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birth date, YYYY-MM-DD (years 1800–2100)."
    },
    "birth_time": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{1,2}:\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Birth Time",
      "default": null,
      "description": "Local birth time, 24-hour HH:MM. Omit if unknown: then houses, Ascendant and MC are not computed."
    }
  }
}
vedic_chart annotations
{
  "title": "Vedic (Jyotish) chart",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
vimshottari_dasha — Vimshottari dasha periods
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculates the Vimshottari dasha periods of a birth chart (Swiss Ephemeris, Lahiri ayanamsa): the Moon's nakshatra at birth, the balance of the first Mahadasha, the full Mahadasha sequence from birth with start and end dates, and the Mahadasha, Antardasha and Pratyantardasha running on a given date plus the next two Antardashas. Use it for questions like 'which Mahadasha am I in' or 'when does my Saturn dasha start'. Dates use a 365.25-day year. The result lists the classical themes of the running periods, not predictions. Birth data is used only for this calculation and is not stored or logged.

vimshottari_dasha input schema
{
  "type": "object",
  "title": "vimshottari_dashaArguments",
  "required": [
    "birth_date"
  ],
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date",
      "default": null,
      "description": "Date to check the running periods for, YYYY-MM-DD (on or after the birth date). Defaults to today in the birth time zone."
    },
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    },
    "place": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120
        },
        {
          "type": "null"
        }
      ],
      "title": "Place",
      "default": null,
      "description": "Birth city, e.g. 'Chicago, Illinois, USA'. Used to look up coordinates and the time zone. Not needed if latitude/longitude are given."
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        {
          "type": "null"
        }
      ],
      "title": "Latitude",
      "default": null,
      "description": "Birth latitude in degrees (north +)."
    },
    "timezone": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Timezone",
      "default": null,
      "description": "IANA time zone of the birth place, e.g. America/Chicago. Looked up from the place/coordinates when omitted."
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        {
          "type": "null"
        }
      ],
      "title": "Longitude",
      "default": null,
      "description": "Birth longitude in degrees (east +)."
    },
    "birth_date": {
      "type": "string",
      "title": "Birth Date",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Birth date, YYYY-MM-DD (years 1800–2100)."
    },
    "birth_time": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{1,2}:\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Birth Time",
      "default": null,
      "description": "Local birth time, 24-hour HH:MM. Omit if unknown: then houses, Ascendant and MC are not computed."
    }
  }
}
vimshottari_dasha annotations
{
  "title": "Vimshottari dasha periods",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
sky_today — Sky of the day
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the sky of one calendar day from the Swiss Ephemeris: the Moon's sign, phase and illumination, lunations and eclipses, planet sign changes, retrograde/direct stations, exact aspects between planets, which planets are retrograde, and every planet's position, plus a link to the AstralRead 'Sky of the day' page. No birth data needed. English uses UTC times, Russian uses Moscow time.

sky_today input schema
{
  "type": "object",
  "title": "sky_todayArguments",
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date",
      "default": null,
      "description": "Day, YYYY-MM-DD (1900–2100). Defaults to today."
    },
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    }
  }
}
sky_today annotations
{
  "title": "Sky of the day",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
kb_lookup — Astrology knowledge base lookup
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds pages of the AstralRead astrology knowledge base for a chart factor and returns each page's title, a one- or two-sentence summary and its link. Understands planets in signs and houses ('Moon in Taurus', 'Mars in 10th house'), Ascendant/MC signs, aspects ('Venus square Saturn'), houses ('7th house'), patterns ('grand trine', 'T-square', 'yod'), North Node and Chiron placements, and transits ('Saturn transit Aries', 'transiting Saturn square Venus', 'Saturn return'). English or Russian.

kb_lookup input schema
{
  "type": "object",
  "title": "kb_lookupArguments",
  "required": [
    "topic"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "title": "Lang",
      "default": "en",
      "description": "Language of the result: en or ru."
    },
    "topic": {
      "type": "string",
      "title": "Topic",
      "maxLength": 200,
      "minLength": 3,
      "description": "The chart factor to look up, e.g. 'Venus square Saturn'."
    }
  }
}
kb_lookup annotations
{
  "title": "Astrology knowledge base lookup",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

1 advertised

chart-widget — AstralRead chart

Advertised by the server during the last successful anonymous check.

Natal chart wheel with planets, houses, aspects and today's transits; South-Indian Vedic chart and dasha timeline.

chart-widget URI
ui://widget/chart.html

MIME type: text/html;profile=mcp-app

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
1894 ms
95th percentile latency
1894 ms

Maintenance history

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

  • · probe · passed · 1894 ms · metadata changed · 6 tool(s), 1 resource(s), 0 resource template(s), 0 prompt(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 astralread-mcp https://astralread.com/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 astralread-mcp --url https://astralread.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start astralread-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "astralread-mcp": {
      "type": "http",
      "url": "https://astralread.com/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 astralread-mcp https://astralread.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "astralread-mcp": {
      "url": "https://astralread.com/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": {
    "astralread-mcp": {
      "serverUrl": "https://astralread.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like AstralRead 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 AstralRead 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