@enfyra/mcp-server 0.0.33 → 0.0.34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enfyra/mcp-server",
3
- "version": "0.0.33",
3
+ "version": "0.0.34",
4
4
  "description": "MCP server for Enfyra - manage your Enfyra instance via Claude Code",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -553,7 +553,7 @@ create_extension({
553
553
  name: "ReportsPage",
554
554
  description: "Reports dashboard",
555
555
  menuId: "<created-menu-id>",
556
- code: "<template><section class=\\"min-h-full w-full p-4 sm:p-6 lg:p-8\\">Reports</section></template><script setup>useHeaderActionRegistry({ id: 'refresh-reports', label: 'Refresh', icon: 'lucide:refresh-cw', onClick: () => {}, order: 0 })</script>",
556
+ code: "<template><section class=\\"min-h-full w-full space-y-4\\">Reports</section></template><script setup>useHeaderActionRegistry({ id: 'refresh-reports', label: 'Refresh', icon: 'lucide:refresh-cw', onClick: () => {}, order: 0 })</script>",
557
557
  isEnabled: true
558
558
  })`,
559
559
  notes: [
@@ -561,6 +561,7 @@ create_extension({
561
561
  'Use menu_definition.label, not title.',
562
562
  'For page extensions, create the menu first and pass menuId to create_extension.',
563
563
  'Page extensions should be full-bleed by default and responsive from the first version.',
564
+ 'The extension root is already inside eApp main; do not add root-level page padding.',
564
565
  ],
565
566
  },
566
567
  {
@@ -576,17 +577,20 @@ create_menu({
576
577
  })
577
578
 
578
579
  // Child page extensions should be focused:
579
- // /dashboard overview with time range KPIs
580
+ // /dashboard compact summary/routing hub: KPIs, current signal, attention queue, navigation cards
580
581
  // /cloud/projects project status and drill-downs
581
582
  // /cloud/provisioning provisioning timeline/failures/slow steps
582
583
  // /cloud/billing orders/subscriptions/refunds
583
584
  // /cloud/infrastructure hosts/capacity/plans/system credential readiness
584
585
  // /cloud/readiness legal/Paddle/landing launch checklist
585
- // Use UTabs inside large pages instead of placing every section in one dashboard.`,
586
+ // Use UTabs inside large pages instead of placing every section in one dashboard.
587
+ // For admin record management, link to /data/<table>, e.g. /data/landing_terms, not public landing paths.`,
586
588
  notes: [
587
589
  'Design the menu/page split before generating dashboard code.',
588
- 'Keep /dashboard as overview and use focused pages for operational domains.',
590
+ 'Keep /dashboard as a summary and distribution page, not a detailed operations table.',
591
+ 'Use focused pages for operational domains.',
589
592
  'UTabs is available in eApp extension runtime for page-level sections.',
593
+ 'Admin links for editing or inspecting records should point to /data/<table> routes.',
590
594
  ],
591
595
  },
592
596
  {
@@ -271,8 +271,9 @@ export function buildMcpServerInstructions(apiBaseUrl) {
271
271
  '- **CRITICAL:** MUST call `create_record` or `update_record` on `extension_definition` — outputting Vue code in chat does NOT save it. User will NOT see it.',
272
272
  '- **Code format:** Vue SFC only. Structure: `<template>...</template>` + `<script setup>...</script>`. Server auto-compiles; if compile fails, fix and retry.',
273
273
  '- **NO import statements.** All APIs are injected globally (see full list below).',
274
- '- **Design first for dashboards:** before creating/updating a dashboard extension, define the menu/page split, time range controls, tabs, and drill-down links. Keep `/dashboard` as overview; create focused menu pages for projects, provisioning, billing, infrastructure, and readiness when the surface grows.',
275
- '- **Page layout default:** page extensions should render full-bleed inside the app shell by default. Do not wrap the entire page in a centered card/container unless explicitly requested. Use responsive grids/stacks from the first version so the page works on desktop, tablet, and mobile.',
274
+ '- **Design first for dashboards:** before creating/updating a dashboard extension, define the menu/page split, time range controls, tabs, and drill-down links. Keep `/dashboard` as a compact summary and routing hub only: KPIs, current signal, attention queue, and navigation cards. Put detailed lists/tables/timelines into focused pages such as projects, provisioning, billing, infrastructure, and readiness.',
275
+ '- **Page layout default:** page extensions should render full-bleed inside the app shell by default. The extension root is already inside the eApp page `<main>`, so do not add root-level page padding such as `p-4 sm:p-6 xl:p-8`; use spacing between internal sections only. Do not wrap the entire page in a centered card/container unless explicitly requested. Use responsive grids/stacks from the first version so the page works on desktop, tablet, and mobile.',
276
+ '- **Admin record links:** when an admin extension links to backend records for management or inspection, point to eApp data routes such as `/data/landing_terms`, `/data/cloud_projects`, or `/data/cloud_payment_orders`. Do not use public landing-page paths from record fields such as `/cloud-terms` unless the explicit intent is previewing the public website.',
276
277
  '- **Do not downgrade extension code to ES5 to appease tooling.** eApp extension runtime should support normal browser/runtime APIs such as `Array.includes`, `Set`, `Promise.all`, `String.replace`, `Intl.DateTimeFormat`, and `Intl.NumberFormat`. If diagnostics reject these, fix eApp extension checker/runtime contract instead of rewriting generated extension code around the limitation.',
277
278
  '',
278
279
  '#### Injected Vue API functions:',