Skip to main content
Glama

Astro Agents - verifiable planetary timing data and astrology

Gann planetary lines

planetary_lines
Read-onlyIdempotent

Financial astrology Gann planetary lines for trading bots and backtests (stocks, crypto, BTC, forex): planet degrees seen from the Earth and from the Sun (geocentric and heliocentric) at a moment or as an hourly-to-weekly time series keyed by unix timestamp, with aspect offsets, Mean of 5 / Circle of 8 and price levels (degree + 360k) x unit. E.g. {start: '2024-01-01', end: '2024-12-31', interval: '1d', bodies: ['jupiter', 'saturn']}. Financial-astrology DATA for charting and backtests, not signals: the longitude of each planet, seen from the Earth and from the Sun in one call, plus the aspect offsets you ask for (+/-90, 120...), the Optuma averages Mean of 5 and Circle of 8, speeds, retrograde flags and declinations. Snapshot ('datetime') or series ('start', 'end', 'interval' 1h..1w, up to 1000 samples, optionally unwrapped for plotting) in columns ready for pandas. With 'price_unit' and 'price_range': every price level (degree + 360 k) x unit. Each result is hashed, so a backtest can cite and replay it. Deterministic (JPL DE440, no LLM); every result carries meta.result_sha256. Price $0.20 per call via REST POST https://astro-agent.dev/v1/finance/planetary-lines (x402 or MPP); always paid, never a free call.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "planetary_lines"
  }
}

Input Schema

NameRequiredDescriptionDefault
endNoSeries: last UTC date, YYYY-MM-DD (at most 1000 samples).
startNoSeries: first UTC date, YYYY-MM-DD. Example: '2024-01-01'.
bodiesNoBodies to draw. Default: Sun..Pluto (geo), Mercury..Pluto with Earth (helio).
formatNoSeries layout: 'columns' (pandas.DataFrame(result['series'])) or 'rows' (one object per sample).columns
unwrapNoSeries: continuous degrees (no 360 -> 0 jump), for plotting lines across a chart.
aspectsNoAspect offsets added to every line (+angle and -angle). Default: the planet's own line only (conjunction).
optionsNoOptional zodiac settings.
averagesNoOptuma averages: mean_of_5 = (Jupiter+Saturn+Uranus+Neptune+Pluto)/5, circle_of_8 = (Mercury..Pluto)/8, in each perspective.
datetimeNoA moment (snapshot): ISO 8601 with Z or an offset, e.g. '2024-01-01T00:00Z'. A local time needs 'timezone' or coordinates. Omit when giving start/end.
intervalNoSeries sampling step, in candle-timeframe notation.1d
time_utcNoSeries: UTC time of day of the first sample, HH:MM.00:00
timezoneNoIANA zone, e.g. 'Asia/Kolkata'. Optional: resolved from the coordinates, with the historical offset (DST, Local Mean Time) of that date.
price_unitNoPrice per degree. With price_range: levels = (degree + 360 k) x price_unit.
perspectiveNoGeocentric, heliocentric, or both in one call (default).both
price_rangeNoThe price window in which to list levels, e.g. {min: 30000, max: 80000}.
average_methodNo'arithmetic' mean of the 0-360 longitudes (Optuma's rule) or 'circular' (vector) mean.arithmetic
include_declinationNoSeries: also a declination column per body.

Output Schema

NameRequiredDescriptionDefault
metaNoProvenance of the result.
errorNox402 offer only: why payment is required.
resultNoThe calculation result.
acceptsNox402 offer only: the payment options (scheme, network, amount, asset, payTo, ...).
endpointNoThe REST route that computed it, e.g. 'western/natal'.
resourceNox402 offer only: the resource being paid for.
extensionsNox402 offer only: protocol extensions (bazaar).
x402VersionNox402 offer only: protocol version (2).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "endpoint",
      +      "result",
      +      "meta"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "x402Version",
      +      "accepts"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / accepts
      Added value: +{
      +  "description": "x402 offer only: the payment options (scheme, network, amount, asset, payTo, ...).",
      +  "items": {
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "description": "x402 offer only: why payment is required.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / extensions
      Added value: +{
      +  "description": "x402 offer only: protocol extensions (bazaar).",
      +  "type": "object"
      +}
    • addedOutput schema / properties / resource
      Added value: +{
      +  "description": "x402 offer only: the resource being paid for.",
      +  "type": "object"
      +}
    • addedOutput schema / properties / x402Version
      Added value: +{
      +  "description": "x402 offer only: protocol version (2).",
      +  "type": "integer"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "endpoint",
      -  "result",
      -  "meta"
      -]
  2. Added

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses that every call is paid at $0.20 via x402 or MPP with no free tier, that computation is deterministic on JPL DE440 with no LLM, that each result is hashed into meta.result_sha256 for replay, and that series are capped at 1000 samples. These are exactly the operational facts an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core purpose but then becomes dense and repetitive: the geocentric/heliocentric idea is stated twice, and the (degree + 360k) x unit price-level formula appears twice. The long parenthetical keyword list reads as SEO padding rather than agent guidance. It is informative but could be cut by a third without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 17-parameter tool with nested objects and an existing output schema, the description covers the essential framing: snapshot vs series modes, sampling limits, pricing and determinism, hashing for replay. Return-value details are correctly left to the output schema. Minor gaps remain around error behavior and the interaction between timezone and coordinates, though the schema documents those parameters well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3; the description earns a step up by explaining the semantics behind the parameters: aspect offsets are applied as +angle and -angle to every line, Mean of 5 and Circle of 8 are named Optuma averages, unwrap removes the 360-to-0 jump for plotting, and price_levels equal (degree + 360k) x price_unit. It also shows a concrete sample payload combining start, end, interval and bodies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: computing Gann planetary lines (geocentric and heliocentric longitudes, aspect offsets, price levels) either as a snapshot or as a time series. The domain and output shape are unambiguous, and it explicitly frames itself as data for charting and backtests rather than trading signals. It never names a sibling such as planet_positions or aspects to draw the boundary, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context (trading bots, backtests, chart plotting) and explains the two modes: pass 'datetime' for a snapshot or 'start'/'end'/'interval' for a series. The 'not signals' clause rules out one misuse. However, it offers no explicit guidance on when to prefer sibling tools like planet_positions or aspects, and no prerequisites beyond the payment note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.