@openephemeris/mcp-server 4.13.0 → 4.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/README.md +18 -8
- package/config/dev-allowlist.json +441 -3
- package/dist/tools/index.js +2 -2
- package/dist/tools/specialized/bi_wheel.js +8 -1
- package/dist/tools/specialized/chart_wheel.js +8 -1
- package/dist/tools/specialized/natal.js +37 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,61 @@ Version numbering follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [4.14.1] — 2026-09-01
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`dev_read_api`/`dev_write_api` rejected 90 endpoints that were supposed to
|
|
14
|
+
be reachable.** The dev allowlist generator recognized invented tier names
|
|
15
|
+
(`free`/`pro`/`production`) instead of the real product tiers
|
|
16
|
+
(`Explorer`/`Developer`/`Startup`/`Scale`/`Enterprise`), so every
|
|
17
|
+
Explorer-tier operation — `location/autocomplete`, `catalogs/bodies`,
|
|
18
|
+
`moon/phase`, the eclipse and agro families, `tidal/forcing`,
|
|
19
|
+
`calendar/astrology/moon-phases`, `chinese/zodiac`, and more — silently
|
|
20
|
+
dropped out of the generated allowlist. The allowlist is now 120 operations
|
|
21
|
+
(was 30).
|
|
22
|
+
- **The Claude plugin's MCP server likely never registered.** `plugin.json`
|
|
23
|
+
declared the bundled server under `"mcp"`; the plugin manifest schema
|
|
24
|
+
requires `"mcpServers"` (nested by server name).
|
|
25
|
+
- Corrected several stale credit-cost figures in the plugin `SKILL.md` and
|
|
26
|
+
`README.md` against the live backend (`human_design_chart`, `chart_wheel`,
|
|
27
|
+
`bi_wheel`: 2 credits, not 1; `acg_power_lines`, `acg_hits`: 10 credits, not
|
|
28
|
+
2), fixed dot-notation tool references in the worked examples that never
|
|
29
|
+
matched a real tool name (e.g. `ephemeris.natal_chart` →
|
|
30
|
+
`ephemeris_natal_chart`), and added the telemetry disclosure that was
|
|
31
|
+
missing from the plugin's privacy section.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [4.14.0] — 2026-08-27
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- **Fixed stars on `ephemeris_natal_chart` — for real this time.** The
|
|
39
|
+
`include_fixed_stars` flag removed in 4.13.0 returns, honest now: the API
|
|
40
|
+
wires it as of the 2026-08-27 release, so asking adds a `fixed_stars` block
|
|
41
|
+
with star positions and conjunctions against the chart's bodies and angles,
|
|
42
|
+
computed in the same zodiac frame as the chart (a sidereal chart's star hits
|
|
43
|
+
equal the tropical chart's, by construction and by test). 4.13.0 removed the
|
|
44
|
+
flag because it did nothing; 4.14.0 restores it because it does something.
|
|
45
|
+
|
|
46
|
+
- **`declinations` on `ephemeris_natal_chart`.** One flag adds each body's
|
|
47
|
+
declination and out-of-bounds status, plus parallel and contraparallel
|
|
48
|
+
aspects at a 1.5° orb.
|
|
49
|
+
|
|
50
|
+
- **`solar_relationships` on `ephemeris_natal_chart`.** Combustion, cazimi
|
|
51
|
+
and under-beams classification for Moon through Saturn; outer bodies get
|
|
52
|
+
the geometry without a verdict.
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
- The REST API these tools call also gained, in the same server release:
|
|
56
|
+
birthplace names echoed back (`birth_location.location_name`), hermetic-lot
|
|
57
|
+
suite selection, and provenance metadata on every response
|
|
58
|
+
(`ephemeris_version`, `delta_t_source`, `delta_t_seconds`,
|
|
59
|
+
`coordinate_reference_frame`, `time_scale`). These need no new tool
|
|
60
|
+
parameters — the metadata simply appears in responses, and lot selection is
|
|
61
|
+
reachable through the request-body pass-through paths.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
10
65
|
## [4.13.0] — 2026-08-27
|
|
11
66
|
|
|
12
67
|
### Added
|
package/README.md
CHANGED
|
@@ -474,8 +474,8 @@ When you update the MCP server logic (handlers, bug fixes, hardening), you shoul
|
|
|
474
474
|
|
|
475
475
|
Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live tool registry.
|
|
476
476
|
|
|
477
|
-
- Allowlisted operations: **
|
|
478
|
-
- Methods: `GET=
|
|
477
|
+
- Allowlisted operations: **120**
|
|
478
|
+
- Methods: `GET=44`, `POST=76`, `PUT=0`, `PATCH=0`, `DELETE=0`
|
|
479
479
|
- Registered tools (`OPENEPHEMERIS_PROFILE=dev`): **92**
|
|
480
480
|
- Typed tools: `account_usage`, `acg_hits`, `acg_power_lines`, `auth_login`, `auth_logout`, `auth_status`, `bazi_annual_pillar`, `bazi_chart`, `bazi_compatibility`, `bazi_element_balance`, `bazi_luck_pillars`, `bazi_recalculate`, `bazi_ten_gods`, `bi_wheel_on_cross_aspect_click`, `bi_wheel_on_house_click`, `bi_wheel_on_planet_click`, `bi_wheel_recalculate`, `bi_wheel_synopsis`, `bodygraph_recalculate`, `chart_wheel_on_aspect_click`, `chart_wheel_on_house_click`, `chart_wheel_on_planet_click`, `chart_wheel_recalculate`, `chinese_bazi`, `electional_angle_crossings`, `electional_aspect_search`, `electional_moment_analysis`, `electional_station_tracker`, `ephemeris_angles_points`, `ephemeris_aspect_check`, `ephemeris_bi_wheel`, `ephemeris_chart_wheel`, `ephemeris_composite`, `ephemeris_composite_midpoint`, `ephemeris_dignities`, `ephemeris_electional`, `ephemeris_fixed_stars`, `ephemeris_hermetic_lots`, `ephemeris_house_cusps`, `ephemeris_lunar_return`, `ephemeris_midpoints`, `ephemeris_moon_phase`, `ephemeris_natal_batch`, `ephemeris_natal_chart`, `ephemeris_natal_transits`, `ephemeris_next_eclipse`, `ephemeris_next_lunar_phase`, `ephemeris_overlay`, `ephemeris_planet_position`, `ephemeris_planetary_return`, `ephemeris_progressed_chart`, `ephemeris_relocation`, `ephemeris_retrograde_status`, `ephemeris_solar_return`, `ephemeris_synastry`, `ephemeris_transits`, `explore_bazi_chart`, `explore_bi_wheel`, `explore_human_design`, `explore_human_design_connection`, `explore_human_design_transit`, `explore_moon_phase`, `explore_natal_chart`, `explore_transit_timeline`, `explore_vedic_chart`, `hd_on_center_click`, `hd_on_channel_click`, `hd_on_connection_channel_click`, `hd_on_gate_click`, `hd_on_planet_click`, `hd_on_transit_channel_click`, `hd_on_variable_click`, `hd_opposition`, `hd_planetary_return`, `human_design_bodygraph`, `human_design_chart`, `human_design_composite`, `human_design_penta`, `location_search`, `moon_phase_recalculate`, `timezone_resolve`, `vedic_chart`, `vedic_chart_recalculate`, `venus_eight_year_star`, `venus_elongations`, `venus_phase`, `venus_star_points`, `venus_star_points_conjunctions`, `venus_stations`
|
|
481
481
|
- Generic tools: `dev_list_allowed`, `dev_read_api`, `dev_write_api`
|
|
@@ -484,13 +484,23 @@ Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live
|
|
|
484
484
|
|
|
485
485
|
| Family | Operations | Example |
|
|
486
486
|
|---|---:|---|
|
|
487
|
-
| `acg` |
|
|
488
|
-
| `
|
|
487
|
+
| `acg` | 14 | `POST /acg/aspects`, `POST /acg/ccg` |
|
|
488
|
+
| `calendar` | 3 | `GET /calendar/astrology/cross-quarter`, `GET /calendar/astrology/lunar-standstill` |
|
|
489
|
+
| `catalogs` | 3 | `GET /catalogs/bodies`, `GET /catalogs/fixed-stars` |
|
|
490
|
+
| `chinese` | 9 | `POST /chinese/bazi`, `POST /chinese/bazi/annual-pillar` |
|
|
489
491
|
| `comparative` | 5 | `POST /comparative/composite`, `POST /comparative/composite/midpoint` |
|
|
490
|
-
| `
|
|
491
|
-
| `
|
|
492
|
-
| `
|
|
493
|
-
| `
|
|
492
|
+
| `eclipse` | 6 | `GET /eclipse/besselian-elements`, `GET /eclipse/lunar/global` |
|
|
493
|
+
| `electional` | 6 | `GET /electional/angle-crossings`, `GET /electional/aspect-search` |
|
|
494
|
+
| `ephemeris` | 36 | `GET /ephemeris/agro/calendar`, `GET /ephemeris/agro/daily` |
|
|
495
|
+
| `health` | 2 | `GET /health`, `GET /health/detailed` |
|
|
496
|
+
| `human-design` | 8 | `POST /human-design/chart`, `POST /human-design/composite` |
|
|
497
|
+
| `location` | 2 | `GET /location/autocomplete`, `GET /location/reverse` |
|
|
498
|
+
| `predictive` | 10 | `POST /predictive/returns`, `POST /predictive/returns/lunar` |
|
|
499
|
+
| `root` | 1 | `GET /` |
|
|
500
|
+
| `tidal` | 2 | `GET /tidal/forcing`, `GET /tidal/forcing/deep-time` |
|
|
501
|
+
| `time` | 6 | `GET /time/delta-t`, `GET /time/equation-of-time` |
|
|
502
|
+
| `timezone` | 3 | `GET /timezone/coverage`, `POST /timezone/lookup` |
|
|
503
|
+
| `vedic` | 1 | `POST /vedic/chart` |
|
|
494
504
|
| `visualization` | 3 | `POST /visualization/bi-wheel`, `POST /visualization/bodygraph` |
|
|
495
505
|
<!-- GENERATED:RUNTIME_SNAPSHOT:END -->
|
|
496
506
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "astromcp-dev-allowlist-v1",
|
|
3
3
|
"description": "Allowlist derived from the Go sidecar openapi.json. Every entry in allow[] corresponds to a real Go endpoint. Run 'npm run check:dev-allowlist' to validate freshness.",
|
|
4
|
-
"generated_from": "C:\\src\\openephemeris\\apps\\api\\go-sidecar\\openapi.json",
|
|
4
|
+
"generated_from": "C:\\src\\openephemeris\\.claude\\worktrees\\mcp-allowlist-gaps-b8befc\\apps\\api\\go-sidecar\\openapi.json",
|
|
5
5
|
"deny": {
|
|
6
6
|
"path_prefixes": [
|
|
7
7
|
"/auth",
|
|
@@ -15,10 +15,34 @@
|
|
|
15
15
|
]
|
|
16
16
|
},
|
|
17
17
|
"allow": [
|
|
18
|
+
{
|
|
19
|
+
"method": "POST",
|
|
20
|
+
"path": "/acg/aspects"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"method": "POST",
|
|
24
|
+
"path": "/acg/ccg/parans"
|
|
25
|
+
},
|
|
18
26
|
{
|
|
19
27
|
"method": "POST",
|
|
20
28
|
"path": "/acg/ccg"
|
|
21
29
|
},
|
|
30
|
+
{
|
|
31
|
+
"method": "POST",
|
|
32
|
+
"path": "/acg/crossings"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"method": "GET",
|
|
36
|
+
"path": "/acg/datasets"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"method": "POST",
|
|
40
|
+
"path": "/acg/declination-lines"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"method": "POST",
|
|
44
|
+
"path": "/acg/hermetic-lines"
|
|
45
|
+
},
|
|
22
46
|
{
|
|
23
47
|
"method": "POST",
|
|
24
48
|
"path": "/acg/hits"
|
|
@@ -27,10 +51,58 @@
|
|
|
27
51
|
"method": "POST",
|
|
28
52
|
"path": "/acg/local-space"
|
|
29
53
|
},
|
|
54
|
+
{
|
|
55
|
+
"method": "GET",
|
|
56
|
+
"path": "/acg/meta"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"method": "POST",
|
|
60
|
+
"path": "/acg/midpoints"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"method": "POST",
|
|
64
|
+
"path": "/acg/parans"
|
|
65
|
+
},
|
|
30
66
|
{
|
|
31
67
|
"method": "POST",
|
|
32
68
|
"path": "/acg/power-lines"
|
|
33
69
|
},
|
|
70
|
+
{
|
|
71
|
+
"method": "POST",
|
|
72
|
+
"path": "/acg/relational-parans"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"method": "GET",
|
|
76
|
+
"path": "/calendar/astrology/cross-quarter"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"method": "GET",
|
|
80
|
+
"path": "/calendar/astrology/lunar-standstill"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"method": "GET",
|
|
84
|
+
"path": "/calendar/astrology/moon-phases"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"method": "GET",
|
|
88
|
+
"path": "/catalogs/bodies"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"method": "GET",
|
|
92
|
+
"path": "/catalogs/fixed-stars/groups"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"method": "GET",
|
|
96
|
+
"path": "/catalogs/fixed-stars"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"method": "POST",
|
|
100
|
+
"path": "/chinese/bazi/annual-pillar"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"method": "POST",
|
|
104
|
+
"path": "/chinese/bazi/chart"
|
|
105
|
+
},
|
|
34
106
|
{
|
|
35
107
|
"method": "POST",
|
|
36
108
|
"path": "/chinese/bazi/compatibility"
|
|
@@ -51,6 +123,14 @@
|
|
|
51
123
|
"method": "POST",
|
|
52
124
|
"path": "/chinese/bazi/ten-gods"
|
|
53
125
|
},
|
|
126
|
+
{
|
|
127
|
+
"method": "POST",
|
|
128
|
+
"path": "/chinese/bazi"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"method": "GET",
|
|
132
|
+
"path": "/chinese/zodiac"
|
|
133
|
+
},
|
|
54
134
|
{
|
|
55
135
|
"method": "POST",
|
|
56
136
|
"path": "/comparative/composite/midpoint"
|
|
@@ -71,6 +151,30 @@
|
|
|
71
151
|
"method": "POST",
|
|
72
152
|
"path": "/comparative/synastry"
|
|
73
153
|
},
|
|
154
|
+
{
|
|
155
|
+
"method": "GET",
|
|
156
|
+
"path": "/eclipse/besselian-elements"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"method": "GET",
|
|
160
|
+
"path": "/eclipse/lunar/global"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"method": "GET",
|
|
164
|
+
"path": "/eclipse/next-visible"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"method": "GET",
|
|
168
|
+
"path": "/eclipse/next"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"method": "GET",
|
|
172
|
+
"path": "/eclipse/solar/global"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"method": "GET",
|
|
176
|
+
"path": "/eclipse/solar/local"
|
|
177
|
+
},
|
|
74
178
|
{
|
|
75
179
|
"method": "GET",
|
|
76
180
|
"path": "/electional/angle-crossings"
|
|
@@ -87,22 +191,210 @@
|
|
|
87
191
|
"method": "GET",
|
|
88
192
|
"path": "/electional/moment-analysis"
|
|
89
193
|
},
|
|
194
|
+
{
|
|
195
|
+
"method": "POST",
|
|
196
|
+
"path": "/electional/natal-angle-crossings"
|
|
197
|
+
},
|
|
90
198
|
{
|
|
91
199
|
"method": "GET",
|
|
92
200
|
"path": "/electional/station-tracker"
|
|
93
201
|
},
|
|
202
|
+
{
|
|
203
|
+
"method": "GET",
|
|
204
|
+
"path": "/ephemeris/agro/calendar"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"method": "GET",
|
|
208
|
+
"path": "/ephemeris/agro/daily"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"method": "GET",
|
|
212
|
+
"path": "/ephemeris/agro/void-of-course"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"method": "POST",
|
|
216
|
+
"path": "/ephemeris/angles-points"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"method": "POST",
|
|
220
|
+
"path": "/ephemeris/antiscia"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"method": "POST",
|
|
224
|
+
"path": "/ephemeris/aspect-check"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"method": "POST",
|
|
228
|
+
"path": "/ephemeris/declinations"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"method": "POST",
|
|
232
|
+
"path": "/ephemeris/dignities"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"method": "POST",
|
|
236
|
+
"path": "/ephemeris/dispositor-tree"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"method": "POST",
|
|
240
|
+
"path": "/ephemeris/fixed-stars"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"method": "POST",
|
|
244
|
+
"path": "/ephemeris/harmonics"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"method": "POST",
|
|
248
|
+
"path": "/ephemeris/hermetic-lots"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"method": "POST",
|
|
252
|
+
"path": "/ephemeris/house-cusps"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"method": "GET",
|
|
256
|
+
"path": "/ephemeris/house-systems"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"method": "POST",
|
|
260
|
+
"path": "/ephemeris/lunar-phase"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"method": "POST",
|
|
264
|
+
"path": "/ephemeris/midpoints"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"method": "GET",
|
|
268
|
+
"path": "/ephemeris/moon/aspects"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"method": "GET",
|
|
272
|
+
"path": "/ephemeris/moon/ingresses"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"method": "GET",
|
|
276
|
+
"path": "/ephemeris/moon/phase"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"method": "GET",
|
|
280
|
+
"path": "/ephemeris/moon/void-of-course"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"method": "POST",
|
|
284
|
+
"path": "/ephemeris/natal-chart"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"method": "POST",
|
|
288
|
+
"path": "/ephemeris/natal/batch"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"method": "POST",
|
|
292
|
+
"path": "/ephemeris/planet-position"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"method": "POST",
|
|
296
|
+
"path": "/ephemeris/progressed"
|
|
297
|
+
},
|
|
94
298
|
{
|
|
95
299
|
"method": "POST",
|
|
96
300
|
"path": "/ephemeris/relocation"
|
|
97
301
|
},
|
|
302
|
+
{
|
|
303
|
+
"method": "POST",
|
|
304
|
+
"path": "/ephemeris/retrograde-status"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"method": "GET",
|
|
308
|
+
"path": "/ephemeris/schemas/natal-request"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"method": "GET",
|
|
312
|
+
"path": "/ephemeris/schemas/natal-response"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"method": "GET",
|
|
316
|
+
"path": "/ephemeris/supported-metadata"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"method": "GET",
|
|
320
|
+
"path": "/ephemeris/supported-objects"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"method": "POST",
|
|
324
|
+
"path": "/ephemeris/venus-star-points/conjunctions"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"method": "POST",
|
|
328
|
+
"path": "/ephemeris/venus-star-points/eight-year-star"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"method": "POST",
|
|
332
|
+
"path": "/ephemeris/venus-star-points/elongations"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"method": "POST",
|
|
336
|
+
"path": "/ephemeris/venus-star-points/phase"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"method": "POST",
|
|
340
|
+
"path": "/ephemeris/venus-star-points/stations"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"method": "POST",
|
|
344
|
+
"path": "/ephemeris/venus-star-points"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"method": "GET",
|
|
348
|
+
"path": "/"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"method": "GET",
|
|
352
|
+
"path": "/health/detailed"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"method": "GET",
|
|
356
|
+
"path": "/health"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"method": "POST",
|
|
360
|
+
"path": "/human-design/chart"
|
|
361
|
+
},
|
|
98
362
|
{
|
|
99
363
|
"method": "POST",
|
|
100
364
|
"path": "/human-design/composite"
|
|
101
365
|
},
|
|
366
|
+
{
|
|
367
|
+
"method": "POST",
|
|
368
|
+
"path": "/human-design/cycles/opposition"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"method": "POST",
|
|
372
|
+
"path": "/human-design/cycles/return"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"method": "POST",
|
|
376
|
+
"path": "/human-design/cycles/solar-return"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"method": "POST",
|
|
380
|
+
"path": "/human-design/penta"
|
|
381
|
+
},
|
|
102
382
|
{
|
|
103
383
|
"method": "POST",
|
|
104
384
|
"path": "/human-design/transit-chart"
|
|
105
385
|
},
|
|
386
|
+
{
|
|
387
|
+
"method": "POST",
|
|
388
|
+
"path": "/human-design/transit"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"method": "GET",
|
|
392
|
+
"path": "/location/autocomplete"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"method": "GET",
|
|
396
|
+
"path": "/location/reverse"
|
|
397
|
+
},
|
|
106
398
|
{
|
|
107
399
|
"method": "POST",
|
|
108
400
|
"path": "/predictive/returns/lunar"
|
|
@@ -127,6 +419,70 @@
|
|
|
127
419
|
"method": "POST",
|
|
128
420
|
"path": "/predictive/time-lords/zodiacal-releasing"
|
|
129
421
|
},
|
|
422
|
+
{
|
|
423
|
+
"method": "POST",
|
|
424
|
+
"path": "/predictive/transit-chart"
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"method": "POST",
|
|
428
|
+
"path": "/predictive/transits/planet-to-degree"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"method": "POST",
|
|
432
|
+
"path": "/predictive/transits/search"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"method": "POST",
|
|
436
|
+
"path": "/predictive/transits/sign-ingresses"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"method": "GET",
|
|
440
|
+
"path": "/tidal/forcing/deep-time"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"method": "GET",
|
|
444
|
+
"path": "/tidal/forcing"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"method": "GET",
|
|
448
|
+
"path": "/time/delta-t"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"method": "GET",
|
|
452
|
+
"path": "/time/equation-of-time"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"method": "POST",
|
|
456
|
+
"path": "/time/julian-day"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"method": "POST",
|
|
460
|
+
"path": "/time/scales"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"method": "GET",
|
|
464
|
+
"path": "/time/sidereal"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"method": "GET",
|
|
468
|
+
"path": "/time/solar-event"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"method": "GET",
|
|
472
|
+
"path": "/timezone/coverage"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"method": "POST",
|
|
476
|
+
"path": "/timezone/lookup"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"method": "POST",
|
|
480
|
+
"path": "/timezone/offset"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"method": "POST",
|
|
484
|
+
"path": "/vedic/chart"
|
|
485
|
+
},
|
|
130
486
|
{
|
|
131
487
|
"method": "POST",
|
|
132
488
|
"path": "/visualization/bi-wheel"
|
|
@@ -140,8 +496,8 @@
|
|
|
140
496
|
"path": "/visualization/chart-wheel"
|
|
141
497
|
}
|
|
142
498
|
],
|
|
143
|
-
"last_generated_at": "2026-
|
|
144
|
-
"openapi_sha256": "
|
|
499
|
+
"last_generated_at": "2026-08-31T23:51:24.873Z",
|
|
500
|
+
"openapi_sha256": "4347724c414ef94075a3db63016a4935ca7b533ecf18f37fac1ca16c22ca0195",
|
|
145
501
|
"candidates_get": [
|
|
146
502
|
{
|
|
147
503
|
"method": "GET",
|
|
@@ -239,6 +595,14 @@
|
|
|
239
595
|
],
|
|
240
596
|
"operationId": "get_next_visible_eclipse_eclipse_next_visible_get"
|
|
241
597
|
},
|
|
598
|
+
{
|
|
599
|
+
"method": "GET",
|
|
600
|
+
"path": "/eclipse/next",
|
|
601
|
+
"tags": [
|
|
602
|
+
"eclipse"
|
|
603
|
+
],
|
|
604
|
+
"operationId": "get_next_eclipse_eclipse_next_get"
|
|
605
|
+
},
|
|
242
606
|
{
|
|
243
607
|
"method": "GET",
|
|
244
608
|
"path": "/eclipse/solar/global",
|
|
@@ -478,6 +842,14 @@
|
|
|
478
842
|
"Time Conversion"
|
|
479
843
|
],
|
|
480
844
|
"operationId": "get_solar_events_time_solar_event_get"
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"method": "GET",
|
|
848
|
+
"path": "/timezone/coverage",
|
|
849
|
+
"tags": [
|
|
850
|
+
"location-timezone"
|
|
851
|
+
],
|
|
852
|
+
"operationId": "timezone_coverage_timezone_coverage_get"
|
|
481
853
|
}
|
|
482
854
|
],
|
|
483
855
|
"candidates_non_get": [
|
|
@@ -601,6 +973,14 @@
|
|
|
601
973
|
],
|
|
602
974
|
"operationId": "bazi_annual_pillar_chinese_bazi_annual_pillar_post"
|
|
603
975
|
},
|
|
976
|
+
{
|
|
977
|
+
"method": "POST",
|
|
978
|
+
"path": "/chinese/bazi/chart",
|
|
979
|
+
"tags": [
|
|
980
|
+
"chinese"
|
|
981
|
+
],
|
|
982
|
+
"operationId": "bazi_chart_render_chinese_bazi_chart_post"
|
|
983
|
+
},
|
|
604
984
|
{
|
|
605
985
|
"method": "POST",
|
|
606
986
|
"path": "/chinese/bazi/compatibility",
|
|
@@ -689,6 +1069,14 @@
|
|
|
689
1069
|
],
|
|
690
1070
|
"operationId": "calculate_synastry_comparative_synastry_post"
|
|
691
1071
|
},
|
|
1072
|
+
{
|
|
1073
|
+
"method": "POST",
|
|
1074
|
+
"path": "/electional/natal-angle-crossings",
|
|
1075
|
+
"tags": [
|
|
1076
|
+
"electional"
|
|
1077
|
+
],
|
|
1078
|
+
"operationId": "ElectionalNatalAngleCrossingsElectionalNatalAngleCrossingsPost"
|
|
1079
|
+
},
|
|
692
1080
|
{
|
|
693
1081
|
"method": "POST",
|
|
694
1082
|
"path": "/ephemeris/angles-points",
|
|
@@ -1118,29 +1506,79 @@
|
|
|
1118
1506
|
"ok": true,
|
|
1119
1507
|
"errors": [],
|
|
1120
1508
|
"warnings": [
|
|
1509
|
+
"Non-GET allowlisted: POST /acg/aspects",
|
|
1510
|
+
"Non-GET allowlisted: POST /acg/ccg/parans",
|
|
1121
1511
|
"Non-GET allowlisted: POST /acg/ccg",
|
|
1512
|
+
"Non-GET allowlisted: POST /acg/crossings",
|
|
1513
|
+
"Non-GET allowlisted: POST /acg/declination-lines",
|
|
1514
|
+
"Non-GET allowlisted: POST /acg/hermetic-lines",
|
|
1122
1515
|
"Non-GET allowlisted: POST /acg/hits",
|
|
1123
1516
|
"Non-GET allowlisted: POST /acg/local-space",
|
|
1517
|
+
"Non-GET allowlisted: POST /acg/midpoints",
|
|
1518
|
+
"Non-GET allowlisted: POST /acg/parans",
|
|
1124
1519
|
"Non-GET allowlisted: POST /acg/power-lines",
|
|
1520
|
+
"Non-GET allowlisted: POST /acg/relational-parans",
|
|
1521
|
+
"Non-GET allowlisted: POST /chinese/bazi/annual-pillar",
|
|
1522
|
+
"Non-GET allowlisted: POST /chinese/bazi/chart",
|
|
1125
1523
|
"Non-GET allowlisted: POST /chinese/bazi/compatibility",
|
|
1126
1524
|
"Non-GET allowlisted: POST /chinese/bazi/element-balance",
|
|
1127
1525
|
"Non-GET allowlisted: POST /chinese/bazi/luck-pillars",
|
|
1128
1526
|
"Non-GET allowlisted: POST /chinese/bazi/solar-terms",
|
|
1129
1527
|
"Non-GET allowlisted: POST /chinese/bazi/ten-gods",
|
|
1528
|
+
"Non-GET allowlisted: POST /chinese/bazi",
|
|
1130
1529
|
"Non-GET allowlisted: POST /comparative/composite/midpoint",
|
|
1131
1530
|
"Non-GET allowlisted: POST /comparative/composite",
|
|
1132
1531
|
"Non-GET allowlisted: POST /comparative/natal-transits",
|
|
1133
1532
|
"Non-GET allowlisted: POST /comparative/overlay",
|
|
1134
1533
|
"Non-GET allowlisted: POST /comparative/synastry",
|
|
1534
|
+
"Non-GET allowlisted: POST /electional/natal-angle-crossings",
|
|
1535
|
+
"Non-GET allowlisted: POST /ephemeris/angles-points",
|
|
1536
|
+
"Non-GET allowlisted: POST /ephemeris/antiscia",
|
|
1537
|
+
"Non-GET allowlisted: POST /ephemeris/aspect-check",
|
|
1538
|
+
"Non-GET allowlisted: POST /ephemeris/declinations",
|
|
1539
|
+
"Non-GET allowlisted: POST /ephemeris/dignities",
|
|
1540
|
+
"Non-GET allowlisted: POST /ephemeris/dispositor-tree",
|
|
1541
|
+
"Non-GET allowlisted: POST /ephemeris/fixed-stars",
|
|
1542
|
+
"Non-GET allowlisted: POST /ephemeris/harmonics",
|
|
1543
|
+
"Non-GET allowlisted: POST /ephemeris/hermetic-lots",
|
|
1544
|
+
"Non-GET allowlisted: POST /ephemeris/house-cusps",
|
|
1545
|
+
"Non-GET allowlisted: POST /ephemeris/lunar-phase",
|
|
1546
|
+
"Non-GET allowlisted: POST /ephemeris/midpoints",
|
|
1547
|
+
"Non-GET allowlisted: POST /ephemeris/natal-chart",
|
|
1548
|
+
"Non-GET allowlisted: POST /ephemeris/natal/batch",
|
|
1549
|
+
"Non-GET allowlisted: POST /ephemeris/planet-position",
|
|
1550
|
+
"Non-GET allowlisted: POST /ephemeris/progressed",
|
|
1135
1551
|
"Non-GET allowlisted: POST /ephemeris/relocation",
|
|
1552
|
+
"Non-GET allowlisted: POST /ephemeris/retrograde-status",
|
|
1553
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points/conjunctions",
|
|
1554
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points/eight-year-star",
|
|
1555
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points/elongations",
|
|
1556
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points/phase",
|
|
1557
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points/stations",
|
|
1558
|
+
"Non-GET allowlisted: POST /ephemeris/venus-star-points",
|
|
1559
|
+
"Non-GET allowlisted: POST /human-design/chart",
|
|
1136
1560
|
"Non-GET allowlisted: POST /human-design/composite",
|
|
1561
|
+
"Non-GET allowlisted: POST /human-design/cycles/opposition",
|
|
1562
|
+
"Non-GET allowlisted: POST /human-design/cycles/return",
|
|
1563
|
+
"Non-GET allowlisted: POST /human-design/cycles/solar-return",
|
|
1564
|
+
"Non-GET allowlisted: POST /human-design/penta",
|
|
1137
1565
|
"Non-GET allowlisted: POST /human-design/transit-chart",
|
|
1566
|
+
"Non-GET allowlisted: POST /human-design/transit",
|
|
1138
1567
|
"Non-GET allowlisted: POST /predictive/returns/lunar",
|
|
1139
1568
|
"Non-GET allowlisted: POST /predictive/returns/solar",
|
|
1140
1569
|
"Non-GET allowlisted: POST /predictive/returns",
|
|
1141
1570
|
"Non-GET allowlisted: POST /predictive/time-lords/firdaria",
|
|
1142
1571
|
"Non-GET allowlisted: POST /predictive/time-lords/profections",
|
|
1143
1572
|
"Non-GET allowlisted: POST /predictive/time-lords/zodiacal-releasing",
|
|
1573
|
+
"Non-GET allowlisted: POST /predictive/transit-chart",
|
|
1574
|
+
"Non-GET allowlisted: POST /predictive/transits/planet-to-degree",
|
|
1575
|
+
"Non-GET allowlisted: POST /predictive/transits/search",
|
|
1576
|
+
"Non-GET allowlisted: POST /predictive/transits/sign-ingresses",
|
|
1577
|
+
"Non-GET allowlisted: POST /time/julian-day",
|
|
1578
|
+
"Non-GET allowlisted: POST /time/scales",
|
|
1579
|
+
"Non-GET allowlisted: POST /timezone/lookup",
|
|
1580
|
+
"Non-GET allowlisted: POST /timezone/offset",
|
|
1581
|
+
"Non-GET allowlisted: POST /vedic/chart",
|
|
1144
1582
|
"Non-GET allowlisted: POST /visualization/bi-wheel",
|
|
1145
1583
|
"Non-GET allowlisted: POST /visualization/bodygraph",
|
|
1146
1584
|
"Non-GET allowlisted: POST /visualization/chart-wheel"
|
package/dist/tools/index.js
CHANGED
|
@@ -123,9 +123,9 @@ const BASE_TOOLSET = [
|
|
|
123
123
|
"timezone_resolve",
|
|
124
124
|
"account_usage",
|
|
125
125
|
"dev_read_api",
|
|
126
|
-
// The write half of the escape hatch.
|
|
126
|
+
// The write half of the escape hatch. 76 of the 120 allowlisted operations
|
|
127
127
|
// are POST — BASE without dev_write_api would strand a toolset caller with
|
|
128
|
-
// only the
|
|
128
|
+
// only the 44 GET proxies. (Deliberately NOT advertised in `core`, where the
|
|
129
129
|
// curated typed tools cover the write surface; a toolset selection has no
|
|
130
130
|
// such coverage, so it needs the proxy whole.)
|
|
131
131
|
"dev_write_api",
|
|
@@ -35,6 +35,10 @@ registerTool({
|
|
|
35
35
|
type: "string",
|
|
36
36
|
enum: ["light", "dark", "mono"],
|
|
37
37
|
description: "Aesthetic style of the chart: 'light' (default, warm cream background), 'dark' (deep navy), or 'mono' (black-and-white print-ready).",
|
|
38
|
+
},
|
|
39
|
+
include_angle_aspects: {
|
|
40
|
+
type: "boolean",
|
|
41
|
+
description: "Also draw aspects between planets and the four chart angles (Ascendant, Descendant, Midheaven, Imum Coeli) as lines on the wheel. Angle aspects use tighter orbs than planet-planet aspects, and angle-to-angle pairs are never drawn. Off by default: these hits are location-dependent, so a relocated chart keeps every planet-planet aspect and changes every angle aspect.",
|
|
38
42
|
}
|
|
39
43
|
},
|
|
40
44
|
required: ["datetime_a", "latitude_a", "longitude_a", "datetime_b", "latitude_b", "longitude_b"],
|
|
@@ -76,6 +80,9 @@ registerTool({
|
|
|
76
80
|
}
|
|
77
81
|
const style = pickEnum(args.style, ["light", "dark", "mono"]);
|
|
78
82
|
const styleParam = style ? `&style=${style}` : "";
|
|
79
|
-
|
|
83
|
+
// Only sent when asked for. The endpoint defaults it to false and the
|
|
84
|
+
// wheel's existing output must not change for callers who omit it.
|
|
85
|
+
const angleAspectsParam = args.include_angle_aspects === true ? "&include_angle_aspects=true" : "";
|
|
86
|
+
return await getActiveClient().post(`/visualization/bi-wheel?format=svg&size=800${styleParam}${angleAspectsParam}`, body);
|
|
80
87
|
},
|
|
81
88
|
});
|
|
@@ -40,6 +40,10 @@ registerTool({
|
|
|
40
40
|
type: "string",
|
|
41
41
|
enum: ["light", "dark", "mono"],
|
|
42
42
|
description: "Aesthetic style of the chart: 'light' (default, warm cream background), 'dark' (deep navy), or 'mono' (black-and-white print-ready).",
|
|
43
|
+
},
|
|
44
|
+
include_angle_aspects: {
|
|
45
|
+
type: "boolean",
|
|
46
|
+
description: "Also draw aspects between planets and the four chart angles (Ascendant, Descendant, Midheaven, Imum Coeli) as lines on the wheel. Angle aspects use tighter orbs than planet-planet aspects, and angle-to-angle pairs are never drawn. Off by default: these hits are location-dependent, so a relocated chart keeps every planet-planet aspect and changes every angle aspect.",
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
required: ["datetime", "latitude", "longitude"],
|
|
@@ -69,6 +73,9 @@ registerTool({
|
|
|
69
73
|
}
|
|
70
74
|
const style = pickEnum(args.style, ["light", "dark", "mono"]);
|
|
71
75
|
const styleParam = style ? `&style=${style}` : "";
|
|
72
|
-
|
|
76
|
+
// Only sent when asked for. The endpoint defaults it to false and the
|
|
77
|
+
// wheel's existing output must not change for callers who omit it.
|
|
78
|
+
const angleAspectsParam = args.include_angle_aspects === true ? "&include_angle_aspects=true" : "";
|
|
79
|
+
return await getActiveClient().post(`/visualization/chart-wheel?format=svg&size=800${styleParam}${angleAspectsParam}`, body);
|
|
73
80
|
},
|
|
74
81
|
});
|
|
@@ -92,6 +92,20 @@ registerTool({
|
|
|
92
92
|
"grid. Off by default; minors use their own orbs, so this widens the grid without changing " +
|
|
93
93
|
"any major aspect.",
|
|
94
94
|
},
|
|
95
|
+
include_fixed_stars: {
|
|
96
|
+
type: "boolean",
|
|
97
|
+
description: "Add fixed-star conjunctions (Regulus, Algol, Spica and the catalog) against the chart's " +
|
|
98
|
+
"bodies and angles. Honoured by the endpoint since 4.14.0; same zodiac frame as the chart.",
|
|
99
|
+
},
|
|
100
|
+
declinations: {
|
|
101
|
+
type: "boolean",
|
|
102
|
+
description: "Add each body's declination and out-of-bounds flag, plus parallel/contraparallel aspects " +
|
|
103
|
+
"(1.5° orb).",
|
|
104
|
+
},
|
|
105
|
+
solar_relationships: {
|
|
106
|
+
type: "boolean",
|
|
107
|
+
description: "Classify combustion, cazimi and under-beams for Moon–Saturn relative to the Sun.",
|
|
108
|
+
},
|
|
95
109
|
include_visual: {
|
|
96
110
|
type: "boolean",
|
|
97
111
|
description: "When true, renders the natal chart wheel as an SVG and embeds it directly in the response. " +
|
|
@@ -182,6 +196,29 @@ registerTool({
|
|
|
182
196
|
include_hermetic_lots: true,
|
|
183
197
|
};
|
|
184
198
|
}
|
|
199
|
+
// All three below were ghost parameters until the 2026-08-27 fan-out
|
|
200
|
+
// (#719) wired them server-side; they are exposed here only because the
|
|
201
|
+
// endpoint now actually reads them.
|
|
202
|
+
if (args.include_fixed_stars) {
|
|
203
|
+
body.configuration = {
|
|
204
|
+
...(body.configuration || {}),
|
|
205
|
+
fixed_star_options: { include: true },
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
if (args.declinations) {
|
|
209
|
+
body.options = {
|
|
210
|
+
...body.options,
|
|
211
|
+
include_declination_values: true,
|
|
212
|
+
include_declination_aspects: true,
|
|
213
|
+
include_out_of_bounds: true,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if (args.solar_relationships) {
|
|
217
|
+
body.enhanced_options = {
|
|
218
|
+
...(body.enhanced_options || {}),
|
|
219
|
+
solar_relationships: true,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
185
222
|
const query = {};
|
|
186
223
|
if (args.format)
|
|
187
224
|
query.format = args.format;
|