Skip to content

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.

Tools: 2 delete, 0 irreversible, 37 write, 6 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".

      Matched 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.

      What this check looks for
    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".

      Matched 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.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "astroway_mcp_tool_call_stream" says "call": a word for a change.

      What this check looks for
    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.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "fetch": a word for reading.

      What this check looks for
    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.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "list": a word for reading.

      What this check looks for
    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_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.

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.

Tools listed without sign-in

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.

    Matched 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

    What this check looks for

Findings

Matches of fixed checks, with the text they matched.

7 warn
  • The server marks "astroway_ai_interpret_natal" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.

    What this check looks for
  • The server marks "astroway_mcp_multi_agent_coordinate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "run": a word for a change.

    What this check looks for
  • The server marks "astroway_mcp_tool_call_stream" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "astroway_mcp_tool_call_stream" says "call": a word for a change.

    What this check looks for
  • The server marks "astroway_stream_void_of_course" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

    Matched 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.

    What this check looks for
  • The server marks "astroway_webhooks_webhooks" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "list": a word for reading.

    What this check looks for
  • The server marks "astroway_webhooks_id" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "fetch": a word for reading.

    What this check looks for
Show 1 more finding
  • The server marks "astroway_webhooks_void_of_course_start" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

    Matched 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.

    What this check looks for

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.

.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.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for info.astroway/platform
[![anlyon.dev](https://anlyon.dev/badge/info.astroway/platform.svg)](https://anlyon.dev/servers/info.astroway/platform)

Source: MCP Registry. Synced Nov 1, 2026, 01:17 UTC.