Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.w8s/w8s-astro-mcp

PYPI · W8S-ASTRO-MCP · SCANNED SEP 20

Natal charts, transits, history, ingress forecasting, aspects, composite & Davison charts — SQLite.

Available components

+15 this week 55 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 2 of 51 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (AGPL-3.0-or-later).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability74
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4431 tokens (~147/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
  • Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_profile" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.w8s/w8s-astro-mcp server?

io.github.w8s/w8s-astro-mcp runs locally as a PyPI package, launched with uvx w8s-astro-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · w8s-astro-mcp

# add to Claude Code
claude mcp add w8s-w8s-astro-mcp -- uvx w8s-astro-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "w8s-w8s-astro-mcp": {
      "command": "uvx",
      "args": [
        "w8s-astro-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "w8s-w8s-astro-mcp": {
      "command": "uvx",
      "args": [
        "w8s-astro-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add w8s-w8s-astro-mcp -- uvx w8s-astro-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "w8s-w8s-astro-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "w8s-astro-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add w8s-w8s-astro-mcp --command uvx --arg w8s-astro-mcp
# ~/.hermes/config.yaml
mcp_servers:
  w8s-w8s-astro-mcp:
    command: "uvx"
    args: ["w8s-astro-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "w8s-w8s-astro-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "w8s-astro-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add w8s-w8s-astro-mcp -t stdio -c uvx -a w8s-astro-mcp
// mcp.json
{
  "mcpServers": {
    "w8s-w8s-astro-mcp": {
      "command": "uvx",
      "args": [
        "w8s-astro-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −15
    • Malware scan: pass → unverified security
    • Schema quality: 133 → 147 functional
    • Stability: unverified → 0.03 functional
    • Package version: 0.12.1 → 0.14.0 functional
  • 19 Sept 26 +45
    • Injection markers: unverified → pass security
    • Malware scan: unverified → pass security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool safety: Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 0 functional
    • First check of Tool coverage: 100 functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 0.12.0 → 0.12.1 functional
  • 17 Sept 26 −15
    • Malware scan: pass → unverified security
  • 12 Sept 26 +15
    • Malware scan: unverified → pass security
  • 11 Sept 26 −15
    • Malware scan: pass → unverified security
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 22 Aug 26 40
    • Source repository: unverified → pass security
  • 21 Aug 26 0
    • Provenance: pass → unverified security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/w8s-astro-mcp@0.14.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 51 packages
Packages resolved 51
Stale 2
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 30 exposed · ~4,235 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_connection_member ~61

Add a profile to an existing connection. Note: adding a member invalidates any cached charts for this connection.

NameTypeReqDescription
connection_idintegeryesConnection ID (from list_connections)
profile_idintegeryesProfile ID to add (from list_profiles)

No output schema declared.

No examples provided.

add_location ~130

Add a saved location (home, office, travel destination, etc.) for a profile. Every location must belong to a specific profile.

NameTypeReqDescription
labelstringyesLocation label (e.g., 'Office', 'Vacation Home')
latitudenumberyesLatitude in decimal degrees
longitudenumberyesLongitude in decimal degrees
profile_idintegeryesProfile ID this location belongs to (required)
set_as_homebooleanOptional: Set as current home location for this profile
timezonestringyesTimezone (e.g., 'America/Los_Angeles')

No output schema declared.

No examples provided.

cast_event_chart ~263

Cast an astrological chart for any date, time, and location. No profile required — useful for historical events, mundane astrology, and electional work. If 'label' is provided, the chart is saved to the database and can be referenced later via compare_charts using 'event:<label>'. If 'label' is omitted, the chart is calculated and returned but not saved.

NameTypeReqDescription
datestringyesDate in YYYY-MM-DD format
descriptionstringOptional notes about this event
labelstringOptional unique name to save this chart for later reference. If omitted, chart is calculated but not saved. Must be unique among all saved event charts.
latitudenumberyesLatitude in decimal degrees
location_namestringyesHuman-readable location name (e.g., 'Chicago, IL')
longitudenumberyesLongitude in decimal degrees
profile_idintegerOptional profile ID to associate this event with a person
timestringyesTime in HH:MM format, local time at the given location (converted to UT using the timezone)
timezonestringyesIANA timezone name (e.g., 'America/Chicago'); used to convert the local time to UT

No output schema declared.

No examples provided.

check_ephemeris ~62

Check the current ephemeris mode and precision level. Reports whether the built-in Moshier ephemeris (~1 arcminute) or Swiss Ephemeris data files (~0.001 arcsecond) are active, and shows the pysweph version.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

compare_charts ~496

Calculate aspects between two charts. Use for synastry (comparing two natal charts), transits (comparing natal chart with current positions), or event chart analysis. Finds conjunctions, oppositions, trines, squares, sextiles, and minor aspects. Each aspect names the chart each body belongs to (natal, transit, event) and, when a chart carries planet speeds (transit charts), whether the aspect is applying or separating with an estimated time of exactness. Times are UT. Transit-chart angles use the owner's current home location.

NameTypeReqDescription
chart1_datestringyesDate for first chart (YYYY-MM-DD), use 'natal' for a natal chart, or 'event:<label>' for a saved event chart
chart1_profile_idintegerProfile ID for chart1 when chart1_date is 'natal' (from list_profiles). Defaults to owner profile.
chart1_timestringTime for first chart in HH:MM format, interpreted as UT (optional, defaults to 12:00)
chart2_datestringyesDate for second chart (YYYY-MM-DD), use 'natal' for a natal chart, 'today' for current, or 'event:<label>' for a saved event chart
chart2_profile_idintegerProfile ID for chart2 when chart2_date is 'natal' (from list_profiles). Defaults to owner profile.
chart2_timestringTime for second chart in HH:MM format, interpreted as UT (optional, defaults to 12:00)
formatstringOutput format. 'text' (default) is human-readable. 'json' returns structured data with numeric orb, applying, days_to_exact and exact_utc fields.
include_anglesstringWhich charts contribute their angles (Ascendant, MC, etc.). 'natal' uses only the natal chart's angles - the usual choice for transits, since the transit sky's own angles change every few minutes and…
orb_multipliernumberMultiplier for aspect orbs (optional, default 1.0)
planets_onlybooleanLegacy switch, kept for compatibility: true (default) compares planets only; false also compares the angles of both charts. Prefer include_angles, which overrides this.

No output schema declared.

No examples provided.

create_connection ~127

Create a new connection between two or more profiles for synastry or composite/Davison chart analysis. Requires at least 2 profile IDs. Use list_profiles to find profile IDs first.

NameTypeReqDescription
labelstringyesName for this connection (e.g., 'Alice & Bob', 'Family Trio')
profile_idsarrayyesList of profile IDs to include (minimum 2)
start_datestringOptional date the relationship began (YYYY-MM-DD)
typestringOptional connection type (e.g., 'romantic', 'family', 'business')

No output schema declared.

No examples provided.

create_profile ~270

Create a new astrological profile (for friends, family, synastry analysis, etc.). After creating, ask user if this should be their current profile. IMPORTANT: Ask for information conversationally: 1. Ask: 'What's their name?' 2. Ask: 'What's their birthday?' (get YYYY-MM-DD) 3. Ask: 'Do you know what time they were born? (If not, we can use 12:00)' 4. Ask: 'Where were they born?' (get city, state/country) Then look up coordinates and confirm before saving.

NameTypeReqDescription
birth_datestringyesBirth date in YYYY-MM-DD format
birth_latitudenumberyesLatitude in decimal degrees
birth_location_namestringyesLocation name (e.g., 'New York, NY')
birth_longitudenumberyesLongitude in decimal degrees
birth_timestringyesBirth time in HH:MM format (24-hour), local time at the birth location (converted to UT using birth_timezone)
birth_timezonestringyesIANA timezone of the birth location (e.g., 'America/New_York'); used to convert the local birth time to UT
namestringyesPerson's name (e.g., 'Sarah Johnson')

No output schema declared.

No examples provided.

delete_connection ~58

Delete a connection and all its cached charts. WARNING: Permanent and cannot be undone. Does not affect the member profiles themselves.

NameTypeReqDescription
confirmbooleanyesMust be true to confirm deletion
connection_idintegeryesConnection ID to delete

No output schema declared.

No examples provided.

delete_event_chart ~52

Delete a saved event chart by label. WARNING: Permanent and cannot be undone.

NameTypeReqDescription
confirmbooleanyesMust be true to confirm deletion
labelstringyesLabel of the event chart to delete

No output schema declared.

No examples provided.

delete_profile ~81

Delete a profile from the database. WARNING: This is permanent and cannot be undone. Deletes the profile and all associated natal chart data. If this is the owner profile, owner_profile_id will be set to NULL.

NameTypeReqDescription
confirmbooleanyesMust be true to confirm deletion
profile_idintegeryesProfile ID to delete (get from list_profiles)

No output schema declared.

No examples provided.

dismiss_data_notice ~81

Stop the 'Data notice' about stored natal charts that need recalculating, until a different chart becomes affected. Call this ONLY when the user asks not to be reminded; it does not fix anything. Use undo=true to bring the notice back.

NameTypeReqDescription
undobooleanIf true, bring the notice back instead of dismissing it (default false)

No output schema declared.

No examples provided.

download_ephemeris_files ~125

Download Swiss Ephemeris data files for higher-precision calculations. Upgrades from built-in Moshier ephemeris (~1 arcminute) to full Swiss Ephemeris files (~0.001 arcsecond). Downloads ~2 MB from the official Swiss Ephemeris GitHub repository to ~/.w8s-astro-mcp/ephe/. Use check_ephemeris first to see current precision mode.

NameTypeReqDescription
confirmbooleanMust be true to proceed. Omit or set false to preview file details (names, sizes, source, destination) first.

No output schema declared.

No examples provided.

find_electional_windows ~387

Scan a time window and return candidate moments that satisfy electional astrology criteria. Useful for finding auspicious times to start a project, sign a contract, hold an event, etc. Scans at a configurable interval (default 60 minutes) and scores each moment against the requested criteria. Returns candidates ranked by score (most criteria met first), then by tightness. Maximum window: 90 days. Maximum interval: 360 minutes (6 hours). Minimum interval: 15 minutes. Available criteria: - moon_not_void: Moon is not void of course - no_retrograde_inner: Mercury and Venus are direct - no_retrograde_outer: Mars through Pluto are direct - no_retrograde_all: All planets are direct - moon_waxing: Moon is waxing (New to Full) - moon_waning: Moon is waning (Full to New) - benefic_angular: Venus or Jupiter in houses 1, 4, 7, or 10 - asc_not_late: Ascendant is not in the last 3° of its sign

NameTypeReqDescription
criteriaarrayyesCriteria to evaluate at each interval
end_datestringyesEnd of scan window (YYYY-MM-DD, max 90 days from start)
interval_minutesintegerMinutes between scan steps (15–360, default 60)
latitudenumberyesLatitude for the charts
location_namestringyesHuman-readable location name
longitudenumberyesLongitude for the charts
max_resultsintegerMaximum number of candidates to return (default 10)
start_datestringyesStart of scan window (YYYY-MM-DD)
timezonestringyesIANA timezone: start_date and end_date are local dates in this timezone, and results are shown in local time

No output schema declared.

No examples provided.

find_house_placements ~229

Determine which house each planet occupies in a chart. Can use a natal chart (via profile_id or owner default) or a connection chart (composite/Davison via connection_id + chart_type) as the house reference frame. Shows both which planets are in each house and which house each planet is in.

NameTypeReqDescription
chart_typestringWhich connection chart to use as the house reference frame. Required when connection_id is supplied.
connection_idintegerConnection ID whose composite/Davison houses to use as the reference frame (from list_connections). Requires chart_type. Mutually exclusive with profile_id.
datestringyesDate for the planets to place (YYYY-MM-DD), 'natal' for birth chart planets, or 'today' for current sky
profile_idintegerProfile ID whose natal houses to use as the reference frame (from list_profiles). Defaults to owner profile. Mutually exclusive with connection_id.
timestringTime in HH:MM format, interpreted as UT (optional, defaults to 12:00)

No output schema declared.

No examples provided.

find_last_transit ~173

Find the most recent logged transit where a planet met specific conditions. Examples: 'when was Mercury last retrograde?', 'when was the Moon last in Scorpio?', 'when was Mars last in my 7th house?'. Requires at least one of: sign, retrograde, or house.

NameTypeReqDescription
houseintegerNatal house number to match, 1-12 (optional)
planetstringyesPlanet name, e.g. 'Mercury', 'Mars'
profile_idintegerProfile ID to query (from list_profiles). Defaults to owner profile.
retrogradebooleanIf true, find last retrograde; if false, find last direct (optional)
signstringZodiac sign to match, e.g. 'Capricorn' (optional)

No output schema declared.

No examples provided.

get_connection_chart ~161

Calculate (or retrieve cached) a composite or Davison chart for a connection. COMPOSITE: Each planet position is the circular mean of all members' natal positions. No swetest call needed — pure math on cached natal data. DAVISON: A real chart cast for the midpoint datetime and location of all members' births. Requires a swetest call. Birth times are converted to UTC before averaging, so timezone data in each profile's birth location is used. Results are cached in the database. Use invalidate=true to force recalculation.

NameTypeReqDescription
chart_typestringyesType of chart to calculate
connection_idintegeryesConnection ID (from list_connections)
invalidatebooleanForce recalculation even if cached (default: false)

No output schema declared.

No examples provided.

get_ingresses ~256

Scan the ephemeris for upcoming or recent planetary sign ingresses and stations (retrograde/direct). Examples: 'what transits are coming up this month?', 'when does Mercury go retrograde?', 'show me major transits next April', 'what were the outer planet movements during the Renaissance?'. Use offset to shift the window from today. Use extended=true for historical or far-future windows (outer planets only).

NameTypeReqDescription
daysintegerNumber of days to scan. Normal mode: default 30, max 365. Extended mode: default 30, max 3650.
extendedbooleanIf true, removes offset cap and raises scan cap to 3650 days, but only returns outer planets (Jupiter through Pluto). Inner planets are excluded in extended mode — they produce thousands of events ov…
futurebooleanTrue = scan forward from today+offset (default), False = backward
offsetintegerDays from today to start the scan window (default 0). Normal mode: max 36500 (~100 years). Extended mode: uncapped.

No output schema declared.

No examples provided.

get_natal_chart ~57

Get the natal chart (birth chart) planetary positions for a profile. Defaults to the owner profile if no profile_id is supplied.

NameTypeReqDescription
profile_idintegerProfile ID to query (from list_profiles). Defaults to owner profile.

No output schema declared.

No examples provided.

get_transit_history ~198

Query historical transit lookups stored in the database for a profile. Defaults to the owner profile. Supports filtering by date range, planet, and sign. Examples: 'show me last month\'s transits', 'when was Mercury in Capricorn?', 'what sign was Jupiter in last year?'

NameTypeReqDescription
afterstringReturn lookups on or after this date (YYYY-MM-DD, optional)
beforestringReturn lookups on or before this date (YYYY-MM-DD, optional)
limitintegerMax number of results to return (default 20, max 100)
planetstringFilter by planet name, e.g. 'Mercury' (optional)
profile_idintegerProfile ID to query (from list_profiles). Defaults to owner profile.
signstringFilter by zodiac sign, e.g. 'Capricorn' — requires planet (optional)

No output schema declared.

No examples provided.

get_transits ~172

Get planetary transits for a specific date and location. Location can be a saved label ('home', 'work', 'birth'), or any city/place name ('Seattle', 'Bangkok, Thailand', 'Paris') — unknown names are geocoded automatically. Defaults to current home location if omitted.

NameTypeReqDescription
datestringDate in YYYY-MM-DD format (optional, defaults to today)
locationstringSaved label ('home', 'work', 'birth') or any city name ('Bangkok, Thailand', 'Seattle, WA'). Defaults to 'current'.
profile_idintegerProfile ID to query (from list_profiles). Defaults to owner profile.
timestringTime in HH:MM format, interpreted as UT (optional, defaults to 12:00)

No output schema declared.

No examples provided.

list_connections ~28

List all connections with their member names and IDs. Use this to find connection IDs before requesting charts.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_event_charts ~61

List all saved event charts. Shows label, date/time, location, and optional description. Saved charts can be used in compare_charts via 'event:<label>'.

NameTypeReqDescription
profile_idintegerOptional: filter to events associated with a specific profile

No output schema declared.

No examples provided.

list_profiles ~45

List all astrological profiles in the database. Shows profile names, birth dates, and which is currently active. Use this to see all available profiles before creating, updating, or switching.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_connection_member ~62

Remove a profile from a connection. Connection must retain at least 2 members. Note: removing a member invalidates any cached charts.

NameTypeReqDescription
connection_idintegeryesConnection ID (from list_connections)
profile_idintegeryesProfile ID to remove

No output schema declared.

No examples provided.

remove_location ~44

Remove a saved location. WARNING: Cannot remove locations that are set as birth locations for profiles.

NameTypeReqDescription
location_idintegeryesLocation ID to remove (get from view_config)

No output schema declared.

No examples provided.

setup_astro_config ~233

Configure birth data and location for transit calculations. IMPORTANT: Ask the user for information conversationally in steps: 1. Ask: 'What's your birthday?' (get YYYY-MM-DD) 2. Ask: 'Do you know what time you were born? (If not, we can use 12:00)' (get HH:MM) 3. Ask: 'Where were you born?' (get city, state/country) Then look up coordinates and confirm with user before saving.

NameTypeReqDescription
birth_datestringyesBirth date in YYYY-MM-DD format
birth_latitudenumberyesLatitude in decimal degrees
birth_location_namestringyesLocation name (e.g., 'Richardson, TX')
birth_longitudenumberyesLongitude in decimal degrees
birth_timestringyesBirth time in HH:MM format (24-hour), local time at the birth location (converted to UT using the timezone)
birth_timezonestringyesIANA timezone of the birth location (e.g., 'America/Chicago'); used to convert the local birth time to UT

No output schema declared.

No examples provided.

setup_owner ~92

Set who you are — the human operating this server. This is a one-time setup step, not a session operation. The owner profile is the stable identity used as the default for get_natal_chart, get_transits, and all other tools when no profile_id is supplied. Use list_profiles to find your profile_id.

NameTypeReqDescription
profile_idintegeryesProfile ID to set as owner (get from list_profiles)

No output schema declared.

No examples provided.

update_profile ~94

Update a profile field (name, birth date, birth time, etc.). Use with caution - changing birth data invalidates cached natal chart. Valid fields: name, birth_date, birth_time

NameTypeReqDescription
fieldstringyesField to update (name, birth_date, birth_time)
profile_idintegeryesProfile ID to update (get from list_profiles)
valuestringyesNew value for the field

No output schema declared.

No examples provided.

view_config ~20

View current astrological configuration (birth data and saved locations)

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

visualize_natal_chart ~117

Generate a circular natal chart visualization and save to file. Creates a traditional astrological chart wheel with zodiac signs, houses, planets, and angles.

NameTypeReqDescription
output_pathstringPath where to save the chart image (e.g., '~/Downloads/natal_chart.png'). Defaults to 'natal_chart.png' in current directory.
profile_idintegerProfile ID to visualize (from list_profiles). Defaults to owner profile.
titlestringCustom title for the chart (optional, defaults to 'Natal Chart')

No output schema declared.

No examples provided.

Common questions

What is the io.github.w8s/w8s-astro-mcp server?

io.github.w8s/w8s-astro-mcp is listed in the public MCP registry as io.github.w8s/w8s-astro-mcp. Natal charts, transits, history, ingress forecasting, aspects, composite & Davison charts, SQLite. This page covers its PyPI package (w8s-astro-mcp).

Is the io.github.w8s/w8s-astro-mcp server safe to use?

io.github.w8s/w8s-astro-mcp scores 55 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.w8s/w8s-astro-mcp server expose?

io.github.w8s/w8s-astro-mcp exposes 30 tools: dismiss_data_notice, check_ephemeris, download_ephemeris_files, setup_astro_config, view_config, and 25 more. Their descriptions and schemas cost roughly 4,235 tokens of context every time the server is loaded.

Is the io.github.w8s/w8s-astro-mcp server still maintained?

io.github.w8s/w8s-astro-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.w8s/w8s-astro-mcp server under?

io.github.w8s/w8s-astro-mcp declares the AGPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.