@openephemeris/mcp-server 3.4.1 → 3.5.0

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 ADDED
@@ -0,0 +1,112 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@openephemeris/mcp-server` are documented here.
4
+
5
+ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
+ Version numbering follows [Semantic Versioning](https://semver.org/).
7
+
8
+ ---
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
+
23
+ ## [3.4.1] — 2026-03-25
24
+
25
+
26
+ ### Fixed
27
+ - Chiron position fallback for edge-date calculations now uses full Swiss Ephemeris path instead of simplified approximation
28
+ - SSE server chart wheel responses now correctly deliver native MCP image blocks instead of raw base64 JSON
29
+
30
+ ### Changed
31
+ - Explorer tier daily cap set to 50 credits/day (resets midnight UTC)
32
+ - Catalog and metadata endpoints (`/acg/meta`, `/acg/datasets`, `/catalogs/*`) moved to free tier (0 credits)
33
+
34
+ ---
35
+
36
+ ## [3.4.0] — 2026-03-22
37
+
38
+ ### Added
39
+ - `hd_planetary_return` tool — finds the exact date when a planet returns to its natal position in HD context
40
+ - `hd_opposition` tool — finds the exact date/age of a planet's first opposition (age cycle milestone)
41
+ - `venus_star_points`, `venus_eight_year_star`, `venus_elongations`, `venus_phase`, `venus_stations` — complete Venus Star Point toolkit
42
+ - `ephemeris_planetary_return` — generic multi-planet support for solar, lunar, and outer planet returns
43
+ - `ephemeris_lunar_return` — dedicated monthly lunar return chart
44
+
45
+ ### Changed
46
+ - Asteroid data (Chiron, Ceres, Pallas, Juno, Vesta, Pholus) now included by default in natal chart responses
47
+ - `ephemeris_transits` tool now includes explicit `aspect_angle` parameter with examples for returns and oppositions
48
+
49
+ ---
50
+
51
+ ## [3.3.0] — 2026-03-21
52
+
53
+ ### Added
54
+ - Timezone parameter added to all natal/transit/predictive tools — resolves ambiguous local-time inputs
55
+ - `ephemeris_composite_midpoint` — Davison midpoint composite chart
56
+ - `ephemeris_fixed_stars` — Ptolemaic fixed star positions with orb and conjunction data
57
+ - `ephemeris_hermetic_lots` — Arabic parts / Hermetic Lots (Lot of Fortune, Spirit, etc.)
58
+
59
+ ### Fixed
60
+ - ACG power lines now correctly render for southern hemisphere birth locations
61
+ - Timezone resolution for "America/Denver" and similar IANA names no longer defaults to UTC
62
+
63
+ ---
64
+
65
+ ## [3.2.0] — 2026-03-21
66
+
67
+ ### Added
68
+ - SSE (Server-Sent Events) transport support — enables remote MCP clients without local `npx` installs
69
+ - `ephemeris_chart_wheel` and `ephemeris_bi_wheel` tools now deliver native MCP image blocks (PNG)
70
+ - Payload size safety cap — responses over 500kb return a structured `PAYLOAD_TOO_LARGE` error
71
+
72
+ ### Fixed
73
+ - Composite chart endpoint route corrected in allowlist
74
+
75
+ ---
76
+
77
+ ## [3.1.0] — 2026-03-20
78
+
79
+ ### Added
80
+ - `human_design_composite` — dual-chart BodyGraph overlay for relationship analysis
81
+ - `human_design_penta` — 5-person Penta composite for group/team dynamics
82
+ - `ephemeris_progressed_chart` — secondary progressions (day-for-a-year method)
83
+
84
+ ### Changed
85
+ - Personal tier: 1,500 credits/month (formerly 'Maker' at 750)
86
+ - Startup tier: 15,000 credits/month (formerly 'Pro')
87
+ - Developer tier: 75,000 credits/month
88
+
89
+ ---
90
+
91
+ ## [3.0.0] — 2026-03-15
92
+
93
+ ### Added
94
+ - Full tool allowlist security model — default-deny with `config/dev-allowlist.json`
95
+ - `dev.call` and `dev.list_allowed` generic proxy tools for allowlisted operations
96
+ - `welcome_to_open_ephemeris` MCP Prompt — orientation guide available to MCP clients
97
+ - Server icon registered at `https://mcp.openephemeris.com/icon.png`
98
+ - `verify:release` npm gate script for pre-publish validation
99
+
100
+ ### Breaking
101
+ - Environment variable renamed from `ASTROMCP_API_KEY` to `OPENEPHEMERIS_API_KEY` (old name kept as fallback)
102
+ - Package renamed from `@astromcp/server` to `@openephemeris/mcp-server`
103
+
104
+ ---
105
+
106
+ ## [2.x] — Legacy
107
+
108
+ Earlier versions published under `@astromcp/server`. All users should migrate to `@openephemeris/mcp-server`.
109
+
110
+ ---
111
+
112
+ *[Unreleased changes are tracked in commit history.]*
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Open Ephemeris
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
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
@@ -177,8 +179,8 @@ OpenEphemeris API
177
179
 
178
180
  Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live tool registry.
179
181
 
180
- - Allowlisted operations: **17**
181
- - Methods: `GET=4`, `POST=13`, `PUT=0`, `PATCH=0`, `DELETE=0`
182
+ - Allowlisted operations: **20**
183
+ - Methods: `GET=4`, `POST=16`, `PUT=0`, `PATCH=0`, `DELETE=0`
182
184
  - Registered tools (`OPENEPHEMERIS_PROFILE=dev`): **50**
183
185
  - 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`
184
186
  - Generic tools:
@@ -191,7 +193,7 @@ Generated by `npm run sync:readme` from `config/dev-allowlist.json` and the live
191
193
  | `comparative` | 5 | `POST /comparative/composite`, `POST /comparative/composite/midpoint` |
192
194
  | `electional` | 4 | `GET /electional/aspect-search`, `GET /electional/find-window` |
193
195
  | `ephemeris` | 1 | `POST /ephemeris/relocation` |
194
- | `predictive` | 3 | `POST /predictive/returns`, `POST /predictive/returns/lunar` |
196
+ | `predictive` | 6 | `POST /predictive/returns`, `POST /predictive/returns/lunar` |
195
197
  | `visualization` | 2 | `POST /visualization/bi-wheel`, `POST /visualization/chart-wheel` |
196
198
  <!-- GENERATED:RUNTIME_SNAPSHOT:END -->
197
199
 
@@ -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-28T17:28:53.352Z",
100
+ "openapi_sha256": "cb3161103c61dfa063dcfed946f96ecf6c1df3c9f6c5d20378b54583d70d2f75",
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,14 @@
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
+ },
580
632
  {
581
633
  "method": "POST",
582
634
  "path": "/ephemeris/hermetic-lots",
@@ -633,6 +685,14 @@
633
685
  ],
634
686
  "operationId": "planet_position_ephemeris_planet_position_post"
635
687
  },
688
+ {
689
+ "method": "POST",
690
+ "path": "/ephemeris/prenatal-lunation",
691
+ "tags": [
692
+ "ephemeris"
693
+ ],
694
+ "operationId": "calculate_prenatal_lunation_ephemeris_prenatal_lunation_post"
695
+ },
636
696
  {
637
697
  "method": "POST",
638
698
  "path": "/ephemeris/progressed",
@@ -761,6 +821,14 @@
761
821
  ],
762
822
  "operationId": "human_design_transit_human_design_transit_post"
763
823
  },
824
+ {
825
+ "method": "POST",
826
+ "path": "/predictive/primary-directions",
827
+ "tags": [
828
+ "predictive"
829
+ ],
830
+ "operationId": "CalculatePrimaryDirections"
831
+ },
764
832
  {
765
833
  "method": "POST",
766
834
  "path": "/predictive/returns/lunar",
@@ -785,6 +853,30 @@
785
853
  ],
786
854
  "operationId": "calculate_planetary_return_predictive_returns_post"
787
855
  },
856
+ {
857
+ "method": "POST",
858
+ "path": "/predictive/time-lords/firdaria",
859
+ "tags": [
860
+ "predictive"
861
+ ],
862
+ "operationId": "calculate_firdaria_predictive_time_lords_firdaria_post"
863
+ },
864
+ {
865
+ "method": "POST",
866
+ "path": "/predictive/time-lords/profections",
867
+ "tags": [
868
+ "predictive"
869
+ ],
870
+ "operationId": "calculate_profections_predictive_time_lords_profections_post"
871
+ },
872
+ {
873
+ "method": "POST",
874
+ "path": "/predictive/time-lords/zodiacal-releasing",
875
+ "tags": [
876
+ "predictive"
877
+ ],
878
+ "operationId": "calculate_zodiacal_releasing_predictive_time_lords_zodiacal_releasing_post"
879
+ },
788
880
  {
789
881
  "method": "POST",
790
882
  "path": "/predictive/transit-chart",
@@ -889,6 +981,9 @@
889
981
  "Non-GET allowlisted: POST /predictive/returns/lunar",
890
982
  "Non-GET allowlisted: POST /predictive/returns/solar",
891
983
  "Non-GET allowlisted: POST /predictive/returns",
984
+ "Non-GET allowlisted: POST /predictive/time-lords/firdaria",
985
+ "Non-GET allowlisted: POST /predictive/time-lords/profections",
986
+ "Non-GET allowlisted: POST /predictive/time-lords/zodiacal-releasing",
892
987
  "Non-GET allowlisted: POST /visualization/bi-wheel",
893
988
  "Non-GET allowlisted: POST /visualization/chart-wheel"
894
989
  ]
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@openephemeris/mcp-server",
3
- "version": "3.4.1",
3
+ "version": "3.5.0",
4
4
  "description": "Model Context Protocol server for the Open Ephemeris astronomical computation API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
9
9
  "config/dev-allowlist.json",
10
- "README.md"
10
+ "README.md",
11
+ "CHANGELOG.md",
12
+ "LICENSE"
11
13
  ],
12
14
  "bin": {
13
15
  "openephemeris-mcp": "dist/index.js"