@openephemeris/mcp-server 3.2.13 → 3.3.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/README.md +2 -2
- package/dist/tools/index.js +8 -0
- package/dist/tools/specialized/acg.d.ts +1 -0
- package/dist/tools/specialized/acg.js +143 -0
- package/dist/tools/specialized/comparative.d.ts +1 -0
- package/dist/tools/specialized/comparative.js +153 -0
- package/dist/tools/specialized/electional.js +178 -0
- package/dist/tools/specialized/ephemeris_core.d.ts +1 -0
- package/dist/tools/specialized/ephemeris_core.js +93 -0
- package/dist/tools/specialized/ephemeris_extended.d.ts +1 -0
- package/dist/tools/specialized/ephemeris_extended.js +234 -0
- package/dist/tools/specialized/hd_group.d.ts +1 -0
- package/dist/tools/specialized/hd_group.js +107 -0
- package/dist/tools/specialized/progressed.d.ts +1 -0
- package/dist/tools/specialized/progressed.js +65 -0
- package/dist/tools/specialized/returns.js +67 -49
- package/dist/tools/specialized/venus_star_points.d.ts +1 -0
- package/dist/tools/specialized/venus_star_points.js +187 -0
- package/package.json +2 -2
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { registerTool, validateRequired } from "../index.js";
|
|
2
|
+
import { backendClient } from "../../backend/client.js";
|
|
3
|
+
function buildSubject(datetime, lat, lon) {
|
|
4
|
+
return {
|
|
5
|
+
name: "Subject",
|
|
6
|
+
birth_datetime: { iso: datetime },
|
|
7
|
+
birth_location: {
|
|
8
|
+
latitude: { decimal: lat },
|
|
9
|
+
longitude: { decimal: lon },
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// POST /ephemeris/venus-star-points
|
|
14
|
+
registerTool({
|
|
15
|
+
name: "venus_star_points",
|
|
16
|
+
description: "Get Venus Star Points — the Sun-Venus conjunction events nearest to a birth date. " +
|
|
17
|
+
"Shows the quality of each conjunction (cazimi, combust, under beams) with zodiac details.\n\n" +
|
|
18
|
+
"CREDIT COST: 2 credits per call.\n\n" +
|
|
19
|
+
"EXAMPLE: Venus star points for someone born 1990-04-15:\n" +
|
|
20
|
+
" datetime='1990-04-15T14:30:00', latitude=41.88, longitude=-87.63",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
datetime: { type: "string", description: "Birth datetime (ISO 8601)." },
|
|
25
|
+
latitude: { type: "number", description: "Birth latitude." },
|
|
26
|
+
longitude: { type: "number", description: "Birth longitude." },
|
|
27
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
28
|
+
},
|
|
29
|
+
required: ["datetime", "latitude", "longitude"],
|
|
30
|
+
additionalProperties: false,
|
|
31
|
+
},
|
|
32
|
+
handler: async (args) => {
|
|
33
|
+
validateRequired(args, ["datetime", "latitude", "longitude"]);
|
|
34
|
+
const query = {};
|
|
35
|
+
if (args.format)
|
|
36
|
+
query.format = args.format;
|
|
37
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points", {
|
|
38
|
+
data: { subject: buildSubject(args.datetime, args.latitude, args.longitude) },
|
|
39
|
+
params: query,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
// POST /ephemeris/venus-star-points/conjunctions
|
|
44
|
+
registerTool({
|
|
45
|
+
name: "venus_star_points_conjunctions",
|
|
46
|
+
description: "Find all Sun-Venus conjunctions in a date range. Returns each conjunction with " +
|
|
47
|
+
"its exact timestamp, zodiac position, orb, visibility (morning/evening star), and dignity.\n\n" +
|
|
48
|
+
"CREDIT COST: 2 credits per call.\n\n" +
|
|
49
|
+
"EXAMPLE: Find Venus conjunctions in 2026:\n" +
|
|
50
|
+
" start_date='2026-01-01', end_date='2026-12-31'",
|
|
51
|
+
inputSchema: {
|
|
52
|
+
type: "object",
|
|
53
|
+
properties: {
|
|
54
|
+
start_date: { type: "string", description: "Start date (ISO 8601)." },
|
|
55
|
+
end_date: { type: "string", description: "End date (ISO 8601)." },
|
|
56
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
57
|
+
},
|
|
58
|
+
required: ["start_date", "end_date"],
|
|
59
|
+
additionalProperties: false,
|
|
60
|
+
},
|
|
61
|
+
handler: async (args) => {
|
|
62
|
+
validateRequired(args, ["start_date", "end_date"]);
|
|
63
|
+
const query = {};
|
|
64
|
+
if (args.format)
|
|
65
|
+
query.format = args.format;
|
|
66
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points/conjunctions", {
|
|
67
|
+
data: { start_date: args.start_date, end_date: args.end_date },
|
|
68
|
+
params: query,
|
|
69
|
+
});
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// POST /ephemeris/venus-star-points/eight-year-star
|
|
73
|
+
registerTool({
|
|
74
|
+
name: "venus_eight_year_star",
|
|
75
|
+
description: "Compute the 8-year Venus Star pattern — the pentagram of 5 Venus-Sun conjunctions " +
|
|
76
|
+
"that trace a near-perfect star over 8 years (the Venus synodic cycle). Returns the 5 " +
|
|
77
|
+
"vertices with their zodiac positions.\n\n" +
|
|
78
|
+
"CREDIT COST: 2 credits per call.\n\n" +
|
|
79
|
+
"EXAMPLE: 8-year star starting from 2020:\n" +
|
|
80
|
+
" date='2020-01-01'",
|
|
81
|
+
inputSchema: {
|
|
82
|
+
type: "object",
|
|
83
|
+
properties: {
|
|
84
|
+
date: { type: "string", description: "Start date for the 8-year cycle (ISO 8601)." },
|
|
85
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
86
|
+
},
|
|
87
|
+
required: ["date"],
|
|
88
|
+
additionalProperties: false,
|
|
89
|
+
},
|
|
90
|
+
handler: async (args) => {
|
|
91
|
+
validateRequired(args, ["date"]);
|
|
92
|
+
const query = {};
|
|
93
|
+
if (args.format)
|
|
94
|
+
query.format = args.format;
|
|
95
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points/eight-year-star", {
|
|
96
|
+
data: { date: args.date },
|
|
97
|
+
params: query,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
// POST /ephemeris/venus-star-points/phase
|
|
102
|
+
registerTool({
|
|
103
|
+
name: "venus_phase",
|
|
104
|
+
description: "Get the current Venus phase — morning star, evening star, or combust. Returns Venus " +
|
|
105
|
+
"longitude, Sun longitude, elongation, retrograde/cazimi status.\n\n" +
|
|
106
|
+
"CREDIT COST: 1 credit per call.\n\n" +
|
|
107
|
+
"EXAMPLE: Venus phase right now:\n" +
|
|
108
|
+
" date='2026-03-20'",
|
|
109
|
+
inputSchema: {
|
|
110
|
+
type: "object",
|
|
111
|
+
properties: {
|
|
112
|
+
date: { type: "string", description: "Date to check (ISO 8601). Defaults to now." },
|
|
113
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
114
|
+
},
|
|
115
|
+
required: ["date"],
|
|
116
|
+
additionalProperties: false,
|
|
117
|
+
},
|
|
118
|
+
handler: async (args) => {
|
|
119
|
+
validateRequired(args, ["date"]);
|
|
120
|
+
const query = {};
|
|
121
|
+
if (args.format)
|
|
122
|
+
query.format = args.format;
|
|
123
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points/phase", {
|
|
124
|
+
data: { date: args.date },
|
|
125
|
+
params: query,
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
// POST /ephemeris/venus-star-points/elongations
|
|
130
|
+
registerTool({
|
|
131
|
+
name: "venus_elongations",
|
|
132
|
+
description: "Find Venus greatest elongation events (when Venus is farthest from the Sun in the sky). " +
|
|
133
|
+
"Returns east (evening star) and west (morning star) elongation peaks.\n\n" +
|
|
134
|
+
"CREDIT COST: 2 credits per call.",
|
|
135
|
+
inputSchema: {
|
|
136
|
+
type: "object",
|
|
137
|
+
properties: {
|
|
138
|
+
start_date: { type: "string", description: "Start date (ISO 8601)." },
|
|
139
|
+
end_date: { type: "string", description: "End date (ISO 8601)." },
|
|
140
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
141
|
+
},
|
|
142
|
+
required: ["start_date", "end_date"],
|
|
143
|
+
additionalProperties: false,
|
|
144
|
+
},
|
|
145
|
+
handler: async (args) => {
|
|
146
|
+
validateRequired(args, ["start_date", "end_date"]);
|
|
147
|
+
const query = {};
|
|
148
|
+
if (args.format)
|
|
149
|
+
query.format = args.format;
|
|
150
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points/elongations", {
|
|
151
|
+
data: { start_date: args.start_date, end_date: args.end_date },
|
|
152
|
+
params: query,
|
|
153
|
+
});
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
// POST /ephemeris/venus-star-points/stations
|
|
157
|
+
registerTool({
|
|
158
|
+
name: "venus_stations",
|
|
159
|
+
description: "Find Venus retrograde and direct stations in a date range. Returns the exact " +
|
|
160
|
+
"moment Venus appears to stop and reverse direction.\n\n" +
|
|
161
|
+
"CREDIT COST: 2 credits per call.\n\n" +
|
|
162
|
+
"EXAMPLE: Venus stations in 2026:\n" +
|
|
163
|
+
" start_date='2026-01-01', end_date='2026-12-31'",
|
|
164
|
+
inputSchema: {
|
|
165
|
+
type: "object",
|
|
166
|
+
properties: {
|
|
167
|
+
start_date: { type: "string", description: "Start date (ISO 8601)." },
|
|
168
|
+
end_date: { type: "string", description: "End date (ISO 8601). Defaults to +1 year." },
|
|
169
|
+
format: { type: "string", enum: ["json", "llm"], description: "Output format." },
|
|
170
|
+
},
|
|
171
|
+
required: ["start_date"],
|
|
172
|
+
additionalProperties: false,
|
|
173
|
+
},
|
|
174
|
+
handler: async (args) => {
|
|
175
|
+
validateRequired(args, ["start_date"]);
|
|
176
|
+
const query = {};
|
|
177
|
+
if (args.format)
|
|
178
|
+
query.format = args.format;
|
|
179
|
+
return await backendClient.request("POST", "/ephemeris/venus-star-points/stations", {
|
|
180
|
+
data: {
|
|
181
|
+
start_date: args.start_date,
|
|
182
|
+
end_date: args.end_date || "",
|
|
183
|
+
},
|
|
184
|
+
params: query,
|
|
185
|
+
});
|
|
186
|
+
},
|
|
187
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openephemeris/mcp-server",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.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",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"dev": "tsx watch src/index.ts",
|
|
22
22
|
"dev:sse": "tsx watch src/server-sse.ts",
|
|
23
23
|
"start": "node dist/index.js",
|
|
24
|
-
"start:sse": "node dist/
|
|
24
|
+
"start:sse": "node dist/server-sse.js",
|
|
25
25
|
"test": "vitest run --exclude \"dist/**\"",
|
|
26
26
|
"test:watch": "vitest --exclude \"dist/**\"",
|
|
27
27
|
"test:integration": "tsx scripts/test-client.ts",
|