@openephemeris/mcp-server 3.4.2 → 3.5.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 CHANGED
@@ -7,8 +7,22 @@ Version numbering follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ---
9
9
 
10
+ ## [3.5.0] — 2026-03-28
11
+
12
+ ### Added
13
+ - `POST /ephemeris/draconic` — Draconic chart: full planetary set shifted to True Node as 0° Aries (Explorer tier, 1 credit)
14
+ - `POST /ephemeris/prenatal-lunation` — Finds the prenatal new and full moon preceding a subject's birth date (Developer tier, 5 credits)
15
+ - `POST /predictive/primary-directions` — Placidian semi-arc primary directions with configurable arc length and body/angle targets (Developer tier, 5 credits)
16
+
17
+ ### Changed
18
+ - Total production endpoints: **107 → 110**
19
+ - `dev-allowlist.json`, `endpoint-tier-matrix.json`, `llms.txt` all updated to reflect new surface
20
+
21
+ ---
22
+
10
23
  ## [3.4.1] — 2026-03-25
11
24
 
25
+
12
26
  ### Fixed
13
27
  - Chiron position fallback for edge-date calculations now uses full Swiss Ephemeris path instead of simplified approximation
14
28
  - SSE server chart wheel responses now correctly deliver native MCP image blocks instead of raw base64 JSON
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # OpenEphemeris MCP Server
2
2
 
3
+ [![System Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fblacksmithops%2Fbetter-stack-shields%2Fmain%2Fbetterstack.json&label=Status&color=success)](https://status.openephemeris.com/)
4
+
3
5
  Model Context Protocol server for OpenEphemeris. This package exposes typed astrology tools and an allowlist-gated generic proxy (`dev.call`) for MCP-compatible clients.
4
6
 
5
7
  ## Quick Start
@@ -84,12 +86,57 @@ This package runs as a local stdio MCP server. Remote-only clients require a hos
84
86
 
85
87
  ## What You Can Ask
86
88
 
87
- - "Calculate a natal chart for 1990-04-15 14:30 in Chicago."
88
- - "Find transit events for the next 6 months."
89
- - "Get moon phase and void-of-course status right now."
90
- - "Find an electional window for signing a contract next month."
91
- - "Generate Human Design chart data from birth details."
92
- - "Call `/predictive/transits/search` with `format=llm`."
89
+ ```
90
+ "Calculate a natal chart for 1990-04-15 at 2:30 PM in Chicago."
91
+ "Find all Saturn transits to my natal Sun in the next 6 months."
92
+ "Get the current moon phase and void-of-course status."
93
+ "Find the next solar eclipse visible from Tokyo."
94
+ "Find the best time to sign a contract in March — electional window."
95
+ "Generate a Human Design chart for my birth data."
96
+ "What is my Vedic (sidereal) chart?"
97
+ "Calculate my Chinese BaZi (Four Pillars) chart."
98
+ "Show me my Astrocartography power lines — where is my Venus line on the map?"
99
+ "Find all ACG lines within 3° of Paris for my chart."
100
+ "Calculate a synastry chart between two people."
101
+ "Find the next Venus Star Point and my relationship to it."
102
+ "What are the active planetary stations in the next 3 months?"
103
+ "Calculate primary directions for the next 5 years."
104
+ "Find my Firdaria time lord period."
105
+ "What is the sidereal time and delta-T right now?"
106
+ ```
107
+
108
+ ## Tools at a Glance
109
+
110
+ | Category | Tool | Tier |
111
+ |---|---|---|
112
+ | Natal chart | `ephemeris_natal_chart` | Explorer |
113
+ | Transit forecast | `ephemeris_transits` | Personal |
114
+ | Transit chart snapshot | `ephemeris_natal_transits` | Personal |
115
+ | Moon phase / VOC | `ephemeris_moon_phase` | Explorer |
116
+ | Eclipse next visible | `ephemeris_next_eclipse` | Explorer |
117
+ | Electional window | `ephemeris_electional` | Developer |
118
+ | Moment analysis | `electional_moment_analysis` | Developer |
119
+ | Station tracker | `electional_station_tracker` | Developer |
120
+ | Aspect search | `electional_aspect_search` | Developer |
121
+ | Human Design chart | `human_design_chart` | Explorer |
122
+ | HD composite | `human_design_composite` | Explorer |
123
+ | HD penta | `human_design_penta` | Explorer |
124
+ | HD return / opposition | `hd_planetary_return`, `hd_opposition` | Explorer |
125
+ | Vedic chart | `vedic_chart` | Explorer |
126
+ | BaZi (Chinese) | `chinese_bazi` | Explorer |
127
+ | Synastry | `ephemeris_synastry` | Developer |
128
+ | Composite chart | `ephemeris_composite` | Developer |
129
+ | Relocation chart | `ephemeris_relocation` | Developer |
130
+ | Progressed chart | `ephemeris_progressed_chart` | Explorer |
131
+ | Solar return | `ephemeris_solar_return` | Developer |
132
+ | Lunar return | `ephemeris_lunar_return` | Developer |
133
+ | Planetary return | `ephemeris_planetary_return` | Developer |
134
+ | Astrocartography lines | `acg_power_lines` | Developer |
135
+ | ACG hits at location | `acg_hits` | Scale |
136
+ | Venus Star Points | `venus_star_points` + 4 more | Explorer |
137
+ | Chart wheel image | `ephemeris_chart_wheel` | Developer |
138
+ | Bi-wheel image | `ephemeris_bi_wheel` | Developer |
139
+ | Dignities / Midpoints / Fixed stars | `ephemeris_dignities`, `ephemeris_midpoints`, `ephemeris_fixed_stars` | Explorer |
93
140
 
94
141
  ## Tooling Model
95
142
 
@@ -177,10 +224,10 @@ OpenEphemeris API
177
224
 
178
225
  Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live tool registry.
179
226
 
180
- - Allowlisted operations: **17**
181
- - Methods: `GET=4`, `POST=13`, `PUT=0`, `PATCH=0`, `DELETE=0`
182
- - Registered tools (`OPENEPHEMERIS_PROFILE=dev`): **50**
183
- - Typed tools: `acg_hits`, `acg_power_lines`, `auth_login`, `auth_logout`, `auth_status`, `chinese_bazi`, `dev_call`, `dev_list_allowed`, `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_overlay`, `ephemeris_planet_position`, `ephemeris_planetary_return`, `ephemeris_progressed_chart`, `ephemeris_relocation`, `ephemeris_retrograde_status`, `ephemeris_solar_return`, `ephemeris_synastry`, `ephemeris_transits`, `hd_opposition`, `hd_planetary_return`, `human_design_chart`, `human_design_composite`, `human_design_penta`, `vedic_chart`, `venus_eight_year_star`, `venus_elongations`, `venus_phase`, `venus_star_points`, `venus_star_points_conjunctions`, `venus_stations`
227
+ - Allowlisted operations: **20**
228
+ - Methods: `GET=4`, `POST=16`, `PUT=0`, `PATCH=0`, `DELETE=0`
229
+ - Registered tools (`OPENEPHEMERIS_PROFILE=dev`): **48**
230
+ - Typed tools: `auth_login`, `auth_logout`, `auth_status`, `chinese_bazi`, `dev_call`, `dev_list_allowed`, `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_overlay`, `ephemeris_planet_position`, `ephemeris_planetary_return`, `ephemeris_progressed_chart`, `ephemeris_relocation`, `ephemeris_retrograde_status`, `ephemeris_solar_return`, `ephemeris_synastry`, `ephemeris_transits`, `hd_opposition`, `hd_planetary_return`, `human_design_chart`, `human_design_composite`, `human_design_penta`, `vedic_chart`, `venus_eight_year_star`, `venus_elongations`, `venus_phase`, `venus_star_points`, `venus_star_points_conjunctions`, `venus_stations`
184
231
  - Generic tools:
185
232
 
186
233
  ### Allowlist Families
@@ -191,7 +238,7 @@ Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live
191
238
  | `comparative` | 5 | `POST /comparative/composite`, `POST /comparative/composite/midpoint` |
192
239
  | `electional` | 4 | `GET /electional/aspect-search`, `GET /electional/find-window` |
193
240
  | `ephemeris` | 1 | `POST /ephemeris/relocation` |
194
- | `predictive` | 3 | `POST /predictive/returns`, `POST /predictive/returns/lunar` |
241
+ | `predictive` | 6 | `POST /predictive/returns`, `POST /predictive/returns/lunar` |
195
242
  | `visualization` | 2 | `POST /visualization/bi-wheel`, `POST /visualization/chart-wheel` |
196
243
  <!-- GENERATED:RUNTIME_SNAPSHOT:END -->
197
244
 
@@ -75,6 +75,18 @@
75
75
  "method": "POST",
76
76
  "path": "/predictive/returns"
77
77
  },
78
+ {
79
+ "method": "POST",
80
+ "path": "/predictive/time-lords/firdaria"
81
+ },
82
+ {
83
+ "method": "POST",
84
+ "path": "/predictive/time-lords/profections"
85
+ },
86
+ {
87
+ "method": "POST",
88
+ "path": "/predictive/time-lords/zodiacal-releasing"
89
+ },
78
90
  {
79
91
  "method": "POST",
80
92
  "path": "/visualization/bi-wheel"
@@ -84,8 +96,8 @@
84
96
  "path": "/visualization/chart-wheel"
85
97
  }
86
98
  ],
87
- "last_generated_at": "2026-03-25T15:51:37.919Z",
88
- "openapi_sha256": "48a3d6db42a5957421c3c7b3a5af3f971df36a2558bce7a13943ad097dfe3621",
99
+ "last_generated_at": "2026-03-29T02:31:11.230Z",
100
+ "openapi_sha256": "c92376455af5f33481fd676a126d9b9436b30d5dd0c681d33258cf74a19ba18b",
89
101
  "candidates_get": [
90
102
  {
91
103
  "method": "GET",
@@ -553,6 +565,14 @@
553
565
  ],
554
566
  "operationId": "angles_points_ephemeris_angles_points_post"
555
567
  },
568
+ {
569
+ "method": "POST",
570
+ "path": "/ephemeris/antiscia",
571
+ "tags": [
572
+ "ephemeris"
573
+ ],
574
+ "operationId": "calculate_antiscia_ephemeris_antiscia_post"
575
+ },
556
576
  {
557
577
  "method": "POST",
558
578
  "path": "/ephemeris/aspect-check",
@@ -561,6 +581,14 @@
561
581
  ],
562
582
  "operationId": "aspect_check_ephemeris_aspect_check_post"
563
583
  },
584
+ {
585
+ "method": "POST",
586
+ "path": "/ephemeris/declinations",
587
+ "tags": [
588
+ "ephemeris"
589
+ ],
590
+ "operationId": "analyze_declinations_ephemeris_declinations_post"
591
+ },
564
592
  {
565
593
  "method": "POST",
566
594
  "path": "/ephemeris/dignities",
@@ -569,6 +597,22 @@
569
597
  ],
570
598
  "operationId": "dignities_ephemeris_dignities_post"
571
599
  },
600
+ {
601
+ "method": "POST",
602
+ "path": "/ephemeris/dispositor-tree",
603
+ "tags": [
604
+ "ephemeris"
605
+ ],
606
+ "operationId": "calculate_dispositor_tree_ephemeris_dispositor_tree_post"
607
+ },
608
+ {
609
+ "method": "POST",
610
+ "path": "/ephemeris/draconic",
611
+ "tags": [
612
+ "ephemeris"
613
+ ],
614
+ "operationId": "calculate_draconic_chart_ephemeris_draconic_post"
615
+ },
572
616
  {
573
617
  "method": "POST",
574
618
  "path": "/ephemeris/fixed-stars",
@@ -577,6 +621,22 @@
577
621
  ],
578
622
  "operationId": "calculate_fixed_stars_ephemeris_fixed_stars_post"
579
623
  },
624
+ {
625
+ "method": "POST",
626
+ "path": "/ephemeris/harmonics",
627
+ "tags": [
628
+ "ephemeris"
629
+ ],
630
+ "operationId": "calculate_harmonics_ephemeris_harmonics_post"
631
+ },
632
+ {
633
+ "method": "POST",
634
+ "path": "/ephemeris/heatmap/score",
635
+ "tags": [
636
+ "Ephemeris"
637
+ ],
638
+ "operationId": "HeatmapScoreEphemerisHeatmapScorePost"
639
+ },
580
640
  {
581
641
  "method": "POST",
582
642
  "path": "/ephemeris/hermetic-lots",
@@ -633,6 +693,14 @@
633
693
  ],
634
694
  "operationId": "planet_position_ephemeris_planet_position_post"
635
695
  },
696
+ {
697
+ "method": "POST",
698
+ "path": "/ephemeris/prenatal-lunation",
699
+ "tags": [
700
+ "ephemeris"
701
+ ],
702
+ "operationId": "calculate_prenatal_lunation_ephemeris_prenatal_lunation_post"
703
+ },
636
704
  {
637
705
  "method": "POST",
638
706
  "path": "/ephemeris/progressed",
@@ -761,6 +829,14 @@
761
829
  ],
762
830
  "operationId": "human_design_transit_human_design_transit_post"
763
831
  },
832
+ {
833
+ "method": "POST",
834
+ "path": "/predictive/primary-directions",
835
+ "tags": [
836
+ "predictive"
837
+ ],
838
+ "operationId": "CalculatePrimaryDirections"
839
+ },
764
840
  {
765
841
  "method": "POST",
766
842
  "path": "/predictive/returns/lunar",
@@ -785,6 +861,30 @@
785
861
  ],
786
862
  "operationId": "calculate_planetary_return_predictive_returns_post"
787
863
  },
864
+ {
865
+ "method": "POST",
866
+ "path": "/predictive/time-lords/firdaria",
867
+ "tags": [
868
+ "predictive"
869
+ ],
870
+ "operationId": "calculate_firdaria_predictive_time_lords_firdaria_post"
871
+ },
872
+ {
873
+ "method": "POST",
874
+ "path": "/predictive/time-lords/profections",
875
+ "tags": [
876
+ "predictive"
877
+ ],
878
+ "operationId": "calculate_profections_predictive_time_lords_profections_post"
879
+ },
880
+ {
881
+ "method": "POST",
882
+ "path": "/predictive/time-lords/zodiacal-releasing",
883
+ "tags": [
884
+ "predictive"
885
+ ],
886
+ "operationId": "calculate_zodiacal_releasing_predictive_time_lords_zodiacal_releasing_post"
887
+ },
788
888
  {
789
889
  "method": "POST",
790
890
  "path": "/predictive/transit-chart",
@@ -889,6 +989,9 @@
889
989
  "Non-GET allowlisted: POST /predictive/returns/lunar",
890
990
  "Non-GET allowlisted: POST /predictive/returns/solar",
891
991
  "Non-GET allowlisted: POST /predictive/returns",
992
+ "Non-GET allowlisted: POST /predictive/time-lords/firdaria",
993
+ "Non-GET allowlisted: POST /predictive/time-lords/profections",
994
+ "Non-GET allowlisted: POST /predictive/time-lords/zodiacal-releasing",
892
995
  "Non-GET allowlisted: POST /visualization/bi-wheel",
893
996
  "Non-GET allowlisted: POST /visualization/chart-wheel"
894
997
  ]
@@ -36,7 +36,6 @@ export async function initTools(profile) {
36
36
  await import("./specialized/returns.js");
37
37
  await import("./specialized/progressed.js");
38
38
  await import("./specialized/ephemeris_core.js");
39
- await import("./specialized/acg.js");
40
39
  await import("./specialized/comparative.js");
41
40
  await import("./specialized/hd_group.js");
42
41
  await import("./specialized/hd_cycles.js");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openephemeris/mcp-server",
3
- "version": "3.4.2",
3
+ "version": "3.5.1",
4
4
  "description": "Model Context Protocol server for the Open Ephemeris astronomical computation API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",