@openephemeris/mcp-server 3.13.0 → 3.13.2

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.
@@ -187,7 +187,15 @@ function createMcpServer() {
187
187
  "and more — powered by JPL DE440 ephemerides for sub-arcsecond accuracy.",
188
188
  },
189
189
  }, {
190
- capabilities: { tools: {}, prompts: {}, resources: {} },
190
+ capabilities: {
191
+ tools: {},
192
+ prompts: {},
193
+ resources: {},
194
+ experimental: {
195
+ // Declare MCP Apps extension (spec: io.modelcontextprotocol/ui, 2026-01-26)
196
+ "io.modelcontextprotocol/ui": {},
197
+ },
198
+ },
191
199
  instructions: "Open Ephemeris is a precision astronomical computation engine. " +
192
200
  "Use format='llm' on any tool for compact, token-efficient output. " +
193
201
  "All computations use JPL DE440 ephemerides for sub-arcsecond accuracy. " +
@@ -200,6 +208,10 @@ function createMcpServer() {
200
208
  description: tool.description,
201
209
  inputSchema: tool.inputSchema,
202
210
  annotations: buildAnnotations(tool),
211
+ // Expose MCP Apps UI linkage so Claude Desktop can prefetch the resource
212
+ ...(tool._meta?.ui?.resourceUri
213
+ ? { _meta: { ui: { resourceUri: tool._meta.ui.resourceUri, visibility: tool._meta.ui.visibility ?? ["model", "app"] } } }
214
+ : {}),
203
215
  })),
204
216
  }));
205
217
  // --- Prompt handlers ---
@@ -254,6 +254,12 @@ registerTool({
254
254
  idempotentHint: true,
255
255
  openWorldHint: false,
256
256
  },
257
+ _meta: {
258
+ ui: {
259
+ resourceUri: BI_WHEEL_RESOURCE_URI,
260
+ visibility: ["model", "app"],
261
+ },
262
+ },
257
263
  handler: async (args) => {
258
264
  const client = getActiveClient();
259
265
  const mode = args.mode ?? "synastry";
@@ -303,7 +309,6 @@ registerTool({
303
309
  resource: {
304
310
  uri: BI_WHEEL_RESOURCE_URI,
305
311
  mimeType: BI_WHEEL_MIME_TYPE,
306
- text: "[Bi-Wheel Explorer UI]",
307
312
  },
308
313
  },
309
314
  ],
@@ -243,6 +243,12 @@ registerTool({
243
243
  idempotentHint: true,
244
244
  openWorldHint: false,
245
245
  },
246
+ _meta: {
247
+ ui: {
248
+ resourceUri: BODYGRAPH_RESOURCE_URI,
249
+ visibility: ["model", "app"],
250
+ },
251
+ },
246
252
  handler: async (args) => {
247
253
  const client = getActiveClient();
248
254
  const datetime = ensureTimezone(String(args.datetime));
@@ -274,7 +280,6 @@ registerTool({
274
280
  resource: {
275
281
  uri: BODYGRAPH_RESOURCE_URI,
276
282
  mimeType: BODYGRAPH_MIME_TYPE,
277
- text: "[Human Design Bodygraph Explorer UI]",
278
283
  },
279
284
  },
280
285
  ],
@@ -149,6 +149,12 @@ registerTool({
149
149
  idempotentHint: true,
150
150
  openWorldHint: false,
151
151
  },
152
+ _meta: {
153
+ ui: {
154
+ resourceUri: CHART_WHEEL_RESOURCE_URI,
155
+ visibility: ["model", "app"],
156
+ },
157
+ },
152
158
  handler: async (args) => {
153
159
  const client = getActiveClient();
154
160
  const houseSystem = args.house_system ?? "placidus";
@@ -181,7 +187,6 @@ registerTool({
181
187
  resource: {
182
188
  uri: CHART_WHEEL_RESOURCE_URI,
183
189
  mimeType: CHART_WHEEL_MIME_TYPE,
184
- text: "[Chart Wheel Explorer UI]",
185
190
  },
186
191
  },
187
192
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openephemeris/mcp-server",
3
- "version": "3.13.0",
3
+ "version": "3.13.2",
4
4
  "description": "Model Context Protocol server for the Open Ephemeris astronomical computation API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",