AstroWay Platform
info.astroway/platformastroway.infostreamable-httpv0.4.6Scanned
Webhooks, streaming and the AI interpretation endpoints.
45 tools: 2 can delete or cancel things, 37 change things and 6 only read.
- Reads private data · 0
- Reads text others write · 37
- Can send data out · 11
- 7 findings
Tools listed without sign-in. Remote posture
Anlyon alternative
39 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
45 tools
Deletes or cancels 2Claude Code: deny
astroway_stream_void_of_courseCurrent Moon VOC + next ingress.Reads text others write1 finding
Why it is in this group
- The name "astroway_stream_void_of_course" says "void": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "astroway_stream_void_of_course" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "astroway_stream_void_of_course" says "void": a word for removing or ending something.
Description, as the server wrote it Current Moon VOC + next ingress. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/void-of-course] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_void_of_course_startFires at the start of every VOC Moon period.Reads text others write1 finding
Why it is in this group
- The name "astroway_webhooks_void_of_course_start" says "void": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "astroway_webhooks_void_of_course_start" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "astroway_webhooks_void_of_course_start" says "void": a word for removing or ending something.
Description, as the server wrote it Fires at the start of every VOC Moon period. [Group: Webhooks] [Endpoint: POST /v1/webhooks/void-of-course-start] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 37Claude Code: ask
astroway_agent_toolsTool definitions for an agent framework, generated from the live OpenAPI document, so the schema a model fills is the schema the endpoint validates.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Tool definitions for an agent framework, generated from the live OpenAPI document, so the schema a model fills is the schema the endpoint validates. `format=openai` (default) returns `{ type, function }` objects you can spread straight into a chat completion; `format=anthropic` returns `{ name, description, input_schema }`. The objects carry nothing of ours: how to call each tool lives in a separate `executors` map keyed by tool name, because an unexpected key inside a vendor tool object is a 400 at their end. [Group: Agent Platform] [Endpoint: GET /v1/agent/tools] [Cost: see your plan — endpoint not in the public credit manifest]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_ai_interpret_elementAI interpretation of a single chart element (planet/house/aspect) in context.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI interpretation of a single chart element (planet/house/aspect) in context. Useful for chart-detail pages. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/element] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_ai_interpret_natalGenerate AI interpretation of a natal chart: personality traits, life themes, strongest archetypes.Reads text others write1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "astroway_ai_interpret_natal" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate AI interpretation of a natal chart: personality traits, life themes, strongest archetypes. Multi-language. Token-cached for repeats. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/natal] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_ai_interpret_placementAI interpretation of a specific planet+sign+house combination: concise, focused on the placement only.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI interpretation of a specific planet+sign+house combination: concise, focused on the placement only. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/placement] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_ai_interpret_synastryAI interpretation of synastry between two charts: relationship dynamics, attractions, friction points, long-term outlook.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI interpretation of synastry between two charts: relationship dynamics, attractions, friction points, long-term outlook. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/synastry] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_ai_interpret_tarotAI reading of a tarot, Marseille or Lenormand spread: each position read in context, then a synthesis of the whole spread and one piece of advice.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI reading of a tarot, Marseille or Lenormand spread: each position read in context, then a synthesis of the whole spread and one piece of advice. Takes card slugs or the drawn array of any draw response. Multi-language. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/tarot] [Required: cards] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_ai_interpret_transitsAI interpretation of current/upcoming transits to a natal chart: what each major transit means in life context.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AI interpretation of current/upcoming transits to a natal chart: what each major transit means in life context. [Group: AI Interpretations] [Endpoint: POST /v1/interpret/transits] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_cost_estimateEstimate the credit cost of one or more endpoints WITHOUT invoking them.Can send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- outboundThe input takes a URL (input.endpoints): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Estimate the credit cost of one or more endpoints WITHOUT invoking them. Returns total + per-endpoint breakdown with tier annotations. Useful when planning multi-step workflows: estimate first, ask user confirmation, then invoke. Cache TTL 5 min.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_agent_debate2 personas debate a topic, multi-round transcript.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 2 personas debate a topic, multi-round transcript. [Group: MCP Advanced] [Endpoint: POST /v1/mcp/agent-debate] [Required: topic, agentA, agentB] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_ai_chatChat answered from the positions we computed for this birth moment, not from the model's memory of a sun sign.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Chat answered from the positions we computed for this birth moment, not from the model's memory of a sun sign. Carries up to 10 turns of history, replies in 21 languages, and takes four voices through `persona`. Send your own provider key and the turn costs 5 credits instead of the endpoint price. [Group: AI & MCP] [Endpoint: POST /v1/ai/chat] [Required: message] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_ai_comparison_coachCoach two charts on relationship dynamics.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Coach two charts on relationship dynamics. [Group: AI & MCP] [Endpoint: POST /v1/ai/comparison-coach] [Required: chart1, chart2, question] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_multi_agent_coordinateRun N personas in parallel + LLM synthesis.1 finding
Why it is in this group
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "astroway_mcp_multi_agent_coordinate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
Description, as the server wrote it Run N personas in parallel + LLM synthesis. [Group: MCP Advanced] [Endpoint: POST /v1/mcp/multi-agent-coordinate] [Required: question, agents] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_multi_chart_contextCompact context for MCP agents working across multiple charts.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Compact context for MCP agents working across multiple charts. [Group: AI & MCP] [Endpoint: POST /v1/mcp/multi-chart-context] [Required: charts] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_streamingServer-Sent Events streaming chat completion with optional chart context.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Server-Sent Events streaming chat completion with optional chart context. [Group: AI & MCP] [Endpoint: POST /v1/mcp/streaming] [Required: message] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_tool_call_streamSSE-stream of a tool call envelope.1 finding
Why it is in this group
- The name "astroway_mcp_tool_call_stream" says "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "astroway_mcp_tool_call_stream" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "astroway_mcp_tool_call_stream" says "call": a word for a change.
Description, as the server wrote it SSE-stream of a tool call envelope. [Group: MCP Advanced] [Endpoint: POST /v1/mcp/tool-call-stream] [Required: tool] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_stream_eclipse_incomingCountdown to next 5 eclipses.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Countdown to next 5 eclipses. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/eclipse-incoming] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_eclipse_totalityNext solar+lunar eclipses with totality info.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Next solar+lunar eclipses with totality info. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/eclipse-totality] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_ingressNext planet sign-ingresses for N days.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Next planet sign-ingresses for N days. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/ingress] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_lunar_phaseCurrent 8-phase + countdown to next major phase.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Current 8-phase + countdown to next major phase. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/lunar-phase] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_planetary_hour_changesCurrent planetary hour + next 24.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Current planetary hour + next 24. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/planetary-hour-changes] [Required: latitude, longitude] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_positionsCurrent planetary positions snapshot, tickSeconds=30.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Current planetary positions snapshot, tickSeconds=30. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/positions] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_retrograde_alertsAll planets retro state + next stations.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it All planets retro state + next stations. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/retrograde-alerts] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_sunrise_sunsetToday + tomorrow sun events.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Today + tomorrow sun events. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/sunrise-sunset] [Required: latitude, longitude] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_stream_transit_alertsNatal-transit hits within next N hours.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Natal-transit hits within next N hours. [Group: Real-time Streaming] [Endpoint: POST /v1/stream/transit-alerts] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_dasha_changeFires on Vedic Vimshottari dasha period transitions.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires on Vedic Vimshottari dasha period transitions. [Group: Webhooks] [Endpoint: POST /v1/webhooks/dasha-change] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_eclipse_alertSubscribe to upcoming eclipse alerts (default 7 days before).Reads text others writeCan send data outNo findings
Why it is in this group
- The description's first verb is "subscribe": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Subscribe to upcoming eclipse alerts (default 7 days before). [Group: Webhooks] [Endpoint: POST /v1/webhooks/eclipse-alert] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_idFetch a single webhook subscription owned by the authenticated user.Reads text others write1 finding
Why it is in this group
- The description's first verb is "fetch": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "astroway_webhooks_id" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "fetch": a word for reading.
Description, as the server wrote it Fetch a single webhook subscription owned by the authenticated user. [Group: Webhooks] [Endpoint: GET /v1/webhooks/{id}] [Required: id] [Cost: see your plan — endpoint not in the public credit manifest]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_id_testFire a synthetic delivery to the registered URL with `{ "test": true }` payload.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Fire a synthetic delivery to the registered URL with `{ "test": true }` payload. Useful when validating endpoint signature handling. Records the result in failure_count / last_status_code. [Group: Webhooks] [Endpoint: POST /v1/webhooks/{id}/test] [Required: id] [Cost: see your plan — endpoint not in the public credit manifest]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_mahadasha_endFires N days before a Vimshottari mahadasha ends.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires N days before a Vimshottari mahadasha ends. [Group: Webhooks] [Endpoint: POST /v1/webhooks/mahadasha-end] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_planetary_hour_tickFires at every planetary hour boundary (24/day).Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires at every planetary hour boundary (24/day). [Group: Webhooks] [Endpoint: POST /v1/webhooks/planetary-hour-tick] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_retrograde_endFires when any of Mercury–Pluto stations direct.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires when any of Mercury–Pluto stations direct. [Group: Webhooks] [Endpoint: POST /v1/webhooks/retrograde-end] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_retrograde_startFires when any of Mercury–Pluto stations retrograde.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "astroway_webhooks_retrograde_start" says "start": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires when any of Mercury–Pluto stations retrograde. [Group: Webhooks] [Endpoint: POST /v1/webhooks/retrograde-start] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_return_dueFires N days before a solar/lunar/planetary return is exact.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires N days before a solar/lunar/planetary return is exact. [Group: Webhooks] [Endpoint: POST /v1/webhooks/return-due] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_sign_ingressFires when any tracked planet ingresses a new sign.Reads text others writeCan send data outNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fires when any tracked planet ingresses a new sign. [Group: Webhooks] [Endpoint: POST /v1/webhooks/sign-ingress] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_subscribeSubscribe to outbound webhook deliveries.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "astroway_webhooks_subscribe" says "subscribe": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Subscribe to outbound webhook deliveries. Events: report-ready, transit-alert, eclipse-alert. Returns a signing_secret used to verify the X-AstroWay-Signature HMAC-SHA256 header on each delivery. [Group: Webhooks] [Endpoint: POST /v1/webhooks/subscribe] [Required: event, url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_transit_triggerSubscribe to natal-transit aspect threshold-crossings.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "astroway_webhooks_transit_trigger" says "trigger": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Subscribe to natal-transit aspect threshold-crossings. [Group: Webhooks] [Endpoint: POST /v1/webhooks/transit-trigger] [Required: url] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_webhooks_webhooksList all active webhook subscriptions for the authenticated user.Reads text others write1 finding
Why it is in this group
- The description's first verb is "list": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "astroway_webhooks_webhooks" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "list": a word for reading.
Description, as the server wrote it List all active webhook subscriptions for the authenticated user. [Group: Webhooks] [Endpoint: GET /v1/webhooks] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 6Show 6 read-only tools
astroway_account_statusCheck current API key status: tier, credit balance, rate limits, monthly cycle reset.No findings
Why it is in this group
- The name "astroway_account_status" says "status": a word for reading.
Description, as the server wrote it Check current API key status: tier, credit balance, rate limits, monthly cycle reset. Run this BEFORE invoking expensive endpoints (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm the user has budget. Returns plain-text human-readable summary.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_agent_pool_status8 personas with specialties.No findings
Why it is in this group
- The name "astroway_mcp_agent_pool_status" says "status": a word for reading.
Description, as the server wrote it 8 personas with specialties. [Group: MCP Advanced] [Endpoint: GET /v1/mcp/agent-pool-status] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_ai_explain_aspectDetailed explanation of an aspect between two planets.Reads text others writeNo findings
Why it is in this group
- The name "astroway_mcp_ai_explain_aspect" says "explain": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Detailed explanation of an aspect between two planets. [Group: AI & MCP] [Endpoint: POST /v1/ai/explain-aspect] [Required: planet1, planet2, aspectType] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_ai_explain_transitExplain a current transit hitting your natal chart.Reads text others writeNo findings
Why it is in this group
- The name "astroway_mcp_ai_explain_transit" says "explain": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Explain a current transit hitting your natal chart. [Group: AI & MCP] [Endpoint: POST /v1/ai/explain-transit] [Required: chart, transitDate, transitPlanet, natalPlanet, aspectType] [Cost: 100 credits (Tier 4)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
astroway_mcp_rag_searchKeyword-tag scoring over chart chunks.No findings
Why it is in this group
- The name "astroway_mcp_rag_search" says "search": a word for reading.
Description, as the server wrote it Keyword-tag scoring over chart chunks. [Group: MCP Advanced] [Endpoint: POST /v1/mcp/rag-search] [Required: query, chart] [Cost: 10 credits (Tier 1)]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
astroway_mcp_tools_listAuto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec).Reads text others writeNo findings
Why it is in this group
- The name "astroway_mcp_tools_list" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Auto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec). [Group: AI & MCP] [Endpoint: GET /v1/mcp/tools-list] [Cost: see your plan — endpoint not in the public credit manifest]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write37
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- astroway_ai_interpret_element
- astroway_ai_interpret_natal
- astroway_ai_interpret_placement
- astroway_ai_interpret_synastry
- astroway_ai_interpret_tarot
- astroway_ai_interpret_transits
- astroway_mcp_ai_chat
- astroway_mcp_ai_comparison_coach
- astroway_mcp_ai_explain_aspect
- astroway_mcp_ai_explain_transit
- astroway_mcp_multi_chart_context
- astroway_mcp_streaming
- and 25 more
- Can send data out11
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
- astroway_cost_estimate
- astroway_webhooks_dasha_change
- astroway_webhooks_eclipse_alert
- astroway_webhooks_mahadasha_end
- astroway_webhooks_planetary_hour_tick
- astroway_webhooks_retrograde_end
- astroway_webhooks_retrograde_start
- astroway_webhooks_return_due
- astroway_webhooks_sign_ingress
- astroway_webhooks_subscribe
- astroway_webhooks_transit_trigger
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 29, 2026, 22:23 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 39
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- https://mcp.astroway.info/.well-known/oauth-protected-resource/mcp/platform
- Authorization servers
- https://api.astroway.info
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- yes
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 39 tools that change things (2 destructive, 37 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://mcp.astroway.info/mcp/platform: tools/list returned 45 tools to an anonymous client, including astroway_stream_void_of_course (destructive), astroway_webhooks_void_of_course_start (destructive), astroway_cost_estimate (write), astroway_agent_tools (write), astroway_mcp_ai_chat (write) and 34 more
Findings
Matches of fixed checks, with the text they matched.
The server marks "astroway_ai_interpret_natal" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
The server marks "astroway_mcp_multi_agent_coordinate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.
The server marks "astroway_mcp_tool_call_stream" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "astroway_mcp_tool_call_stream" says "call": a word for a change.
The server marks "astroway_stream_void_of_course" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "astroway_stream_void_of_course" says "void": a word for removing or ending something.
The server marks "astroway_webhooks_webhooks" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "list": a word for reading.
The server marks "astroway_webhooks_id" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "fetch": a word for reading.
Show 1 more findingShow fewer
The server marks "astroway_webhooks_void_of_course_start" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "astroway_webhooks_void_of_course_start" says "void": a word for removing or ending something.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.4.6. Values in angle brackets are yours to fill in.
claude mcp add --transport http platform https://mcp.astroway.info/mcp/platform --header 'Authorization: <your-authorization>'claude mcp add --transport http platform https://mcp.astroway.info/mcp/platform --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__platform__astroway_account_status",
"mcp__platform__astroway_mcp_ai_explain_aspect",
"mcp__platform__astroway_mcp_ai_explain_transit",
"mcp__platform__astroway_mcp_agent_pool_status",
"mcp__platform__astroway_mcp_rag_search",
"mcp__platform__astroway_mcp_tools_list"
],
"ask": [
"mcp__platform__astroway_cost_estimate",
"mcp__platform__astroway_agent_tools",
"mcp__platform__astroway_mcp_ai_chat",
"mcp__platform__astroway_mcp_ai_comparison_coach",
"mcp__platform__astroway_ai_interpret_element",
"mcp__platform__astroway_ai_interpret_natal",
"mcp__platform__astroway_ai_interpret_placement",
"mcp__platform__astroway_ai_interpret_synastry",
"mcp__platform__astroway_ai_interpret_tarot",
"mcp__platform__astroway_ai_interpret_transits",
"mcp__platform__astroway_mcp_agent_debate",
"mcp__platform__astroway_mcp_multi_agent_coordinate",
"mcp__platform__astroway_mcp_multi_chart_context",
"mcp__platform__astroway_mcp_streaming",
"mcp__platform__astroway_mcp_tool_call_stream",
"mcp__platform__astroway_stream_eclipse_incoming",
"mcp__platform__astroway_stream_eclipse_totality",
"mcp__platform__astroway_stream_ingress",
"mcp__platform__astroway_stream_lunar_phase",
"mcp__platform__astroway_stream_planetary_hour_changes",
"mcp__platform__astroway_stream_positions",
"mcp__platform__astroway_stream_retrograde_alerts",
"mcp__platform__astroway_stream_sunrise_sunset",
"mcp__platform__astroway_stream_transit_alerts",
"mcp__platform__astroway_webhooks_webhooks",
"mcp__platform__astroway_webhooks_dasha_change",
"mcp__platform__astroway_webhooks_eclipse_alert",
"mcp__platform__astroway_webhooks_id",
"mcp__platform__astroway_webhooks_id_test",
"mcp__platform__astroway_webhooks_mahadasha_end",
"mcp__platform__astroway_webhooks_planetary_hour_tick",
"mcp__platform__astroway_webhooks_retrograde_end",
"mcp__platform__astroway_webhooks_retrograde_start",
"mcp__platform__astroway_webhooks_return_due",
"mcp__platform__astroway_webhooks_sign_ingress",
"mcp__platform__astroway_webhooks_subscribe",
"mcp__platform__astroway_webhooks_transit_trigger"
],
"deny": [
"mcp__platform__astroway_stream_void_of_course",
"mcp__platform__astroway_webhooks_void_of_course_start"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as platform. Review it before you use it.
Capability tags behind 38 rules
- mcp__platform__astroway_cost_estimate outbound
- mcp__platform__astroway_mcp_ai_chat untrusted-input
- mcp__platform__astroway_mcp_ai_comparison_coach untrusted-input
- mcp__platform__astroway_mcp_ai_explain_aspect untrusted-input
- mcp__platform__astroway_mcp_ai_explain_transit untrusted-input
- mcp__platform__astroway_ai_interpret_element untrusted-input
- mcp__platform__astroway_ai_interpret_natal untrusted-input
- mcp__platform__astroway_ai_interpret_placement untrusted-input
- mcp__platform__astroway_ai_interpret_synastry untrusted-input
- mcp__platform__astroway_ai_interpret_tarot untrusted-input
- mcp__platform__astroway_ai_interpret_transits untrusted-input
- mcp__platform__astroway_mcp_multi_chart_context untrusted-input
- mcp__platform__astroway_mcp_streaming untrusted-input
- mcp__platform__astroway_mcp_tools_list untrusted-input
- mcp__platform__astroway_stream_eclipse_incoming untrusted-input
- mcp__platform__astroway_stream_eclipse_totality untrusted-input
- mcp__platform__astroway_stream_ingress untrusted-input
- mcp__platform__astroway_stream_lunar_phase untrusted-input
- mcp__platform__astroway_stream_planetary_hour_changes untrusted-input
- mcp__platform__astroway_stream_positions untrusted-input
- mcp__platform__astroway_stream_retrograde_alerts untrusted-input
- mcp__platform__astroway_stream_sunrise_sunset untrusted-input
- mcp__platform__astroway_stream_transit_alerts untrusted-input
- mcp__platform__astroway_stream_void_of_course untrusted-input
- mcp__platform__astroway_webhooks_webhooks untrusted-input
- mcp__platform__astroway_webhooks_dasha_change untrusted-input, outbound
- mcp__platform__astroway_webhooks_eclipse_alert untrusted-input, outbound
- mcp__platform__astroway_webhooks_id untrusted-input
- mcp__platform__astroway_webhooks_id_test untrusted-input
- mcp__platform__astroway_webhooks_mahadasha_end untrusted-input, outbound
- mcp__platform__astroway_webhooks_planetary_hour_tick untrusted-input, outbound
- mcp__platform__astroway_webhooks_retrograde_end untrusted-input, outbound
- mcp__platform__astroway_webhooks_retrograde_start untrusted-input, outbound
- mcp__platform__astroway_webhooks_return_due untrusted-input, outbound
- mcp__platform__astroway_webhooks_sign_ingress untrusted-input, outbound
- mcp__platform__astroway_webhooks_subscribe untrusted-input, outbound
- mcp__platform__astroway_webhooks_transit_trigger untrusted-input, outbound
- mcp__platform__astroway_webhooks_void_of_course_start untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/info.astroway/platform/verify?hash=d44fb7046a3a0ea89550183b3edb321bb3223faea7745c688a098c5b8add0127" | jq -e '.changed == false'Pinned hash d44fb7046a3a, from Nov 1, 2026, 01:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/info.astroway/platform/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/info.astroway/platform)Source: MCP Registry. Synced Nov 1, 2026, 01:17 UTC.