@casys/mcp-erpnext 3.1.0 → 3.2.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 CHANGED
@@ -9,15 +9,25 @@ English | [繁體中文](README.zh-TW.md)
9
9
  [![M8ven Score](https://m8ven.ai/badge/mcp/casys-ai-mcp-erpnext-1kev4k)](https://m8ven.ai/mcp/casys-ai-mcp-erpnext-1kev4k)
10
10
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
11
11
 
12
+ > [!IMPORTANT]
13
+ > **Installing 3.2:** for npm/Node use `npx -y @casys/mcp-erpnext@latest`; for
14
+ > Deno use `deno run -A jsr:@casys/mcp-erpnext@3.2.0/server`. 3.2.0 is the
15
+ > stable release and carries npm's `latest` tag; prereleases, when published,
16
+ > use the `next` tag. 3.2 adds the generic document viewer and attachment
17
+ > workflows, so test it with the MCP host your users actually run before
18
+ > replacing an existing deployment. See the [CHANGELOG](CHANGELOG.md) for
19
+ > release history.
20
+
12
21
  Let any MCP-compatible AI agent operate your [ERPNext](https://erpnext.com) /
13
22
  Frappe instance — documents, workflows, and interactive viewers inside the host
14
23
  (Claude Desktop, Claude Code, VS Code Copilot, or custom).
15
24
 
16
25
  Works with **self-hosted** and **ERPNext Cloud** (frappe.cloud) instances.
17
26
 
18
- > Built on **[@casys/mcp-server](https://github.com/Casys-AI/mcp-server)** — the
19
- > MCP server framework (concurrency, auth, MCP Apps, observability) that powers
20
- > this project.
27
+ > Built on
28
+ > **[@casys/mcp-server](https://github.com/superWorldSavior/mcp-platform)** —
29
+ > the MCP server framework (concurrency, auth, MCP Apps, observability) that
30
+ > powers this project.
21
31
 
22
32
  ## Screenshots
23
33
 
@@ -69,30 +79,44 @@ results.
69
79
 
70
80
  ## What's New
71
81
 
72
- **3.1.0 is the stable release.** KPI and funnel viewers now use the refreshed
73
- interface and support selecting context for the next conversation turn.
74
- Recognized creation errors include recovery guidance in the existing tools. The
75
- other five viewers keep their existing interactions.
82
+ **3.2.0 is the stable release.** All nine viewers navigate inside the view with
83
+ back and breadcrumb navigation, and a confirmed document change marks the
84
+ derived levels stale until they are read again. Active-context selection covers
85
+ the interactive viewers, and chart, KPI and nested-chart details open from a
86
+ visible button on touch screens. The generic document viewer, child tables and
87
+ attachment workflows follow ERPNext's own DocType metadata. Tool-selection
88
+ filters (`ERPNEXT_CATEGORIES`, `ERPNEXT_EXCLUDE_CATEGORIES`,
89
+ `ERPNEXT_EXCLUDE_TOOLS`) limit what a deployment exposes, attachment downloads
90
+ are refused to clients that do not announce MCP Apps, and errors are structured.
91
+ Viewer enrichment (refresh requests, navigation jumps, tool manifests) travels
92
+ in `_meta`, out of the model's context, instead of the result text.
93
+
94
+ 3.2.0 also carries the creation-error guidance, ERPNext 16 Opportunity
95
+ compatibility, calendar-date, KPI percentage and funnel currency fixes of the
96
+ stable 3.0.5 and 3.1.0 releases. Features remain capability-gated by the MCP
97
+ host; Buy evidence does not purchase or qualify a live ERP.
76
98
 
77
99
  For stable npm installations use `@casys/mcp-erpnext@latest`; for Deno use
78
- `jsr:@casys/mcp-erpnext@3.1.0/server`. The separate 3.2 beta remains on npm
79
- `@next` and includes the generic document viewer, attachment workflows and Buy
80
- evidence features.
100
+ `jsr:@casys/mcp-erpnext@3.2.0/server`.
81
101
 
82
102
  See the [CHANGELOG](CHANGELOG.md) for the full release history, or the
83
103
  [latest release](https://github.com/Casys-AI/mcp-erpnext/releases/latest) for
84
104
  the current version's highlights.
85
105
 
106
+ See the [3.0 to 3.1 migration guide](docs/migration-3.0-to-3.1.md) for the
107
+ source contracts, host requirements, and deployment limits carried into 3.2; it
108
+ applies when upgrading from 3.0 or from stable 3.1.0.
109
+
86
110
  ## Documentation
87
111
 
88
112
  Organised by what you are doing, following [Diátaxis](https://diataxis.fr):
89
113
 
90
- | | |
91
- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
92
- | **Learning** — never used this before | [Your first tool call](docs/tutorial-first-tool-call.md) — from nothing to a working response in four steps |
93
- | **Doing** — you have a specific goal | [Seed a blank ERPNext instance](docs/fresh-instance-setup.md) · [Run the HTTP server](docs/http-deployment.md) · [Set up OAuth](docs/oauth-setup.md) · [Migrate to 2026-07-28](docs/migration-mcp-spec-2026-07-28.md) |
94
- | **Looking something up** | [Tools](docs/tools.md) · [Environment variables](docs/environment-variables.md) · [DocType coverage](docs/coverage.md) |
95
- | **Understanding why** | [Concepts](docs/concepts.md) — link resolution, transports, MRTR, and which cache does what · [ERPNext quirks](docs/erpnext-quirks.md) |
114
+ | | |
115
+ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
116
+ | **Learning** — never used this before | [Your first tool call](docs/tutorial-first-tool-call.md) — from nothing to a working response in four steps |
117
+ | **Doing** — you have a specific goal | [Seed a blank ERPNext instance](docs/fresh-instance-setup.md) · [Run the HTTP server](docs/http-deployment.md) · [Set up OAuth](docs/oauth-setup.md) · [Migrate from 3.0 to 3.1](docs/migration-3.0-to-3.1.md) · [Migrate to 2026-07-28](docs/migration-mcp-spec-2026-07-28.md) |
118
+ | **Looking something up** | [Tools](docs/tools.md) · [Environment variables](docs/environment-variables.md) · [DocType coverage](docs/coverage.md) |
119
+ | **Understanding why** | [Concepts](docs/concepts.md) — link resolution, transports, MRTR, and which cache does what · [ERPNext quirks](docs/erpnext-quirks.md) |
96
120
 
97
121
  ## Quick Start
98
122
 
@@ -179,6 +203,19 @@ Load only the categories you need:
179
203
  npx -y @casys/mcp-erpnext --categories=sales,inventory
180
204
  ```
181
205
 
206
+ Category and individual-tool exclusions are also supported, with
207
+ environment-variable equivalents:
208
+
209
+ ```bash
210
+ deno run -A server.ts --categories=sales,inventory,operations --exclude-tools=erpnext_file_upload,erpnext_doc_delete
211
+ ```
212
+
213
+ CLI values override `ERPNEXT_CATEGORIES`, `ERPNEXT_EXCLUDE_CATEGORIES`, and
214
+ `ERPNEXT_EXCLUDE_TOOLS` individually. Excluded tools disappear from calls,
215
+ viewer actions, and cache warm-up. Use `--flag=value`; invalid exclusions or an
216
+ empty server selection fail startup. Full rules:
217
+ [tool selection](docs/environment-variables.md#tool-selection).
218
+
182
219
  ## Fresh Instance Setup
183
220
 
184
221
  A blank ERPNext instance has no master data, so business tools fail validation
@@ -187,52 +224,65 @@ until it exists. See
187
224
 
188
225
  ## UI Viewers
189
226
 
190
- Seven interactive [MCP Apps](https://github.com/modelcontextprotocol/ext-apps)
227
+ Nine interactive [MCP Apps](https://github.com/modelcontextprotocol/ext-apps)
191
228
  viewers, registered as `ui://mcp-erpnext/{name}`:
192
229
 
193
- | Viewer | Description | Interactive Features |
194
- | ---------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
195
- | `doclist-viewer` | Generic document table with sort, filter, pagination, CSV export | Row click → inline detail panel with Submit/Cancel + sendMessage navigation. Chip filters for status columns. Max 6 columns, rest in detail panel. |
196
- | `invoice-viewer` | Sales/Purchase Invoice with parties, items, totals | Item click → stock balance + item info panel. Submit/Cancel/Payment actions. sendMessage to payment entries and customer invoices. |
197
- | `stock-viewer` | Stock balance table with color-coded qty badges | Row click → item info + recent movements. sendMessage to stock chart, item details, stock entries. |
198
- | `chart-viewer` | Universal chart renderer (12 types via Recharts) | Click bar/pie/line data points → sendMessage drill-down into underlying documents. |
199
- | `kanban-viewer` | Read-write kanban for Task, Opportunity, Issue | Drag-and-drop moves, inline edit (priority, progress, dates), sendMessage to Timesheets/Quotations/Related docs. |
200
- | `kpi-viewer` | Responsive KPI card with delta and monthly trend | Select trend data/months as context; double-click or Enter requests details in the conversation. Scalar-only KPIs have no selection control. |
201
- | `funnel-viewer` | Responsive sales funnel with stage counts, amounts and conversion rates | Click/Space selects or removes a stage from context; double-click, Enter or the explicit Ask button requests details in the conversation. |
202
-
203
- ### Context selection in KPI and funnel
204
-
205
- On hosts that support `app.updateModelContext()`, selecting an element prepares
206
- context for the next conversation turn. It does not send a chat message. Click
207
- again or use the Context control to remove a selection or clear the basket.
208
- Pending and rejected updates are shown separately from confirmed selections.
209
- Refreshing keeps the selections that still exist and updates their values.
210
-
211
- KPI and funnel use the new Preact/Tailwind interface. The other five viewers
212
- retain their existing React interface and interactions. Detail requests in these
213
- two viewers use the conversation; they do not open nested document editors.
214
-
215
- ### Cross-viewer navigation
216
-
217
- Viewers communicate via `app.sendMessage()` — clicking a button in one viewer
218
- sends a request to the conversation for the assistant to open the requested
219
- data.
220
-
221
- The server auto-injects navigation metadata into tool results:
222
-
223
- - `_rowAction` — which tool to call when a row is clicked
224
- - `_sendMessageHints` — navigation buttons shown in detail panels (e.g.
225
- "Orders", "Invoices")
226
- - `_drillDown` / `_trendDrillDown` — sendMessage templates for KPI and chart
227
- click-through
230
+ | Viewer | Description | Interactive Features |
231
+ | --------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
232
+ | `doc-viewer` | Generic ERPNext document with fields and child tables | Capability-gated attachments, typed navigation, guarded Submit/Cancel, and raw JSON fallback. |
233
+ | `doclist-viewer` | Generic document table with sort, filter, pagination, CSV export | Inline details, typed nested navigation, Submit/Cancel, and compact status filters. |
234
+ | `invoice-viewer` | Sales Orders, Sales Invoices, and Quotations with line totals | Item, stock, party, and payment navigation plus guarded Submit/Cancel actions. |
235
+ | `stock-viewer` | Stock balance table with color-coded qty badges | Item details, recent movements, stock charts, and stock-entry navigation. |
236
+ | `chart-viewer` | Universal chart renderer (12 types via Recharts) | Exact point/series navigation and active-context selection across simple and composed charts. |
237
+ | `kanban-viewer` | Read-write kanban for Task, Opportunity, Issue | Drag-and-drop, inline editing, serialized saves, and typed related-document navigation. |
238
+ | `kpi-viewer` | Big number card with delta, sparkline, trend | Number and trend navigation with bounded active-context selection. |
239
+ | `funnel-viewer` | Trapezoid sales funnel with conversion rates | Period-aware stage navigation and bounded active-context selection. |
240
+ | `buy-evidence-viewer` | Immutable sealed Buy evidence (recorded session only) | Complete, partial, unresolved, and unavailable projections; no live ERP refresh or mutation. |
241
+
242
+ Viewers and Buy result fields use the host locale: English, French, Simplified
243
+ Chinese, Traditional Chinese, Hindi, Bengali, Tamil and Urdu. Chinese script
244
+ tags take precedence over region tags; `zh-TW`, `zh-HK` and `zh-MO` select
245
+ Traditional Chinese when no script is specified. Urdu uses right-to-left
246
+ document direction, and a later host locale change updates the language and
247
+ direction without reloading the viewer. App-level waiting and rejection screens
248
+ retain English labels in 3.2; host-context support for those shared surface
249
+ screens remains an upstream MCP View follow-up.
250
+
251
+ ### Navigation and active context
252
+
253
+ Viewers progressively select the best interaction supported by the host:
254
+
255
+ - `serverTools` opens typed list, record, and chart targets inside the current
256
+ viewer through `app.callServerTool()`. Back and breadcrumb navigation restore
257
+ the state of each level.
258
+ - `downloadFile` lets the host confirm and save an attachment returned as a
259
+ bounded embedded resource. The server also requires the MCP client to announce
260
+ the MCP Apps extension and HTML MIME type before serving file bytes. The
261
+ viewer never opens an ERPNext file URL directly.
262
+ - `updateModelContext` lets chart, KPI, and funnel selections join a bounded
263
+ active-context snapshot. The compact context chip keeps up to eight items and
264
+ lets users remove one item or clear them all. The snapshot contains selected
265
+ values, never hidden instructions for the model.
266
+ - `message.text` keeps `app.sendMessage()` as a conversational fallback when
267
+ direct navigation or context replacement is unavailable.
268
+ - Without these capabilities, local inspection remains available and unsupported
269
+ remote actions are omitted.
270
+ - The Buy evidence viewer is recorded-session only. It does not call server
271
+ tools, refresh live documents, or mutate ERP state.
272
+
273
+ The server supplies typed navigation metadata and the exact `_availableTools`
274
+ allowed for each viewer, so category-filtered deployments do not expose tools
275
+ that are not loaded.
228
276
 
229
277
  ### Refresh model
230
278
 
231
- All viewers carry a `refreshRequest` payload for safe revalidation via
232
- `app.callServerTool()`:
233
-
234
- - `kanban-viewer` revalidates after mutations and on focus
235
- - All other viewers support focus refresh + manual refresh button
279
+ Read-only viewers revalidate on focus and through their refresh control.
280
+ Mutations use an explicit read-only request to fetch committed state; a mutating
281
+ tool is never replayed automatically. Overlapping or stale responses are ignored
282
+ when a newer host payload or mutation has already won. A confirmed document
283
+ change marks every potentially derived snapshot in the current navigation stack
284
+ as stale; each marker is removed only when that surface has actually been read
285
+ again. Separate MCP Apps are not synchronized automatically in 3.2.
236
286
 
237
287
  ### Building UI viewers
238
288
 
@@ -242,10 +292,61 @@ npm ci
242
292
  node build-all.mjs
243
293
  ```
244
294
 
295
+ For local iteration, run `deno task ui:dev-host` from the repository root. The
296
+ [local test host](src/ui/dev-host/README.md) uses the actual local MCP server
297
+ and its built viewers, rebuilding and reloading them without restarting the
298
+ desktop client. Open `http://127.0.0.1:5177/?viewer=doclist` for the real
299
+ Company list. The host records viewer context updates but has no connected model
300
+ or conversation; model consumption and conversational actions require a desktop
301
+ host check.
302
+
303
+ ## Buy evidence capture
304
+
305
+ **One** read-only tool and **one** recorded App. They do not purchase, create a
306
+ BOM/RFQ/PO, refresh live documents, replace generic ERP viewers, or qualify a
307
+ live ERPNext instance.
308
+
309
+ - Tool: `erpnext_buy_capture`. Closed DocTypes only (Item, BOM, Item Price,
310
+ Supplier Quotation, Supplier, Price List, UOM, Currency Exchange). Two
311
+ `skipCache` reads must agree on `modified` and the closed projection
312
+ fingerprint. Return is ephemeral canonical JSON + SHA-256 + byte count. The
313
+ caller cannot pass `sourceInstance`, URL, credentials, `capturedAt`, or a
314
+ digest. Digital Thread stores those bytes in its own CAS; this server does not
315
+ keep a second CAS.
316
+ - App: `io.casys.mcp-erpnext.buy-evidence`, App version `3.1.0` (independent of
317
+ the package version), resource `ui://mcp-erpnext/buy-evidence-viewer`
318
+ (`text/html;profile=mcp-app`), manifest
319
+ `ui://mcp-erpnext/buy-evidence-manifest` (`application/json`),
320
+ `acceptedActions` = `viewer.session.apply` only. Complete, partial,
321
+ unresolved, and unavailable projections stay labelled. No live DocViewer
322
+ refresh, mutation, or `app.callServerTool`. Session `anchor` is the sealed
323
+ Digital Thread artefact (`provenance.bundleRef`), not a hash of the displayed
324
+ projection.
325
+ - Schemas: `io.casys.mcp-erpnext.buy-source-capture/1.0`,
326
+ `io.casys.mcp-erpnext.buy-recorded-result/1.0` and `/2.0`,
327
+ `io.casys.mcp-erpnext.buy-recorded-session/1.0`.
328
+ - Result `/2.0` carries bounded `excludedLines` metadata for selected lines
329
+ absent from priced `lines`: exact line ID, quantity, unit, and stated reason.
330
+ It carries no amount, currency, or price source; covered subtotals remain
331
+ sealed values and unresolved lines remain visible.
332
+ - The viewer is built with the other MCP Apps
333
+ (`cd src/ui && npm ci && node
334
+ build-all.mjs`). Published JSR/npm artifacts
335
+ include `src/ui/dist/` and the Buy TypeScript module; the HTML resource and
336
+ generated manifest are what a published installation serves.
337
+
338
+ Digital Thread owns configuration/seal (`buy-configuration/1.0`,
339
+ `buy-cost-bundle/1.0`, `buy.capture-configuration-cost@1`,
340
+ `buy.seal-configuration-cost@1`). A qualified
341
+ `commerce.read-erpnext-buy-source@1` binding is required before dispatch.
342
+
245
343
  ## Tools
246
344
 
247
- Each `_list` tool returns interactive results via the doclist-viewer with row
248
- click, inline detail, and cross-viewer navigation.
345
+ Record `_list` tools return interactive results via the doclist-viewer with row
346
+ click, inline detail, and cross-viewer navigation. The attachment-specific
347
+ `erpnext_file_list` tool does not render doclist-viewer. Generic and dedicated
348
+ document reads use `doc-viewer`, except Sales Order, Sales Invoice, and
349
+ Quotation, which retain the specialized invoice surface.
249
350
 
250
351
  - **Sales** — Customers, Sales Orders, Invoices, and Quotations with full CRUD,
251
352
  Submit, and Cancel.
@@ -260,27 +361,31 @@ click, inline detail, and cross-viewer navigation.
260
361
  - **Manufacturing** — BOMs, Work Orders, and Job Cards.
261
362
  - **CRM** — Leads, Opportunities, Contacts, and Campaigns.
262
363
  - **Assets** — Assets, Movements, Maintenance records, and Categories.
263
- - **Operations** — Generic CRUD, native assignment, file upload, and
264
- deny-by-default Frappe method calls (`erpnext_doc_*`, `erpnext_file_upload`,
265
- `erpnext_method_call`).
364
+ - **Operations** — Generic CRUD, native assignment, attachment listing, upload,
365
+ host-mediated download, and deny-by-default Frappe method calls
366
+ (`erpnext_doc_*`, `erpnext_file_*`, `erpnext_method_call`).
266
367
  - **Kanban** — Read-write boards for Task, Opportunity, and Issue with
267
368
  drag-and-drop.
268
369
  - **Analytics** — Charts (bar, area, treemap, radar, scatter, P&L…), KPIs with
269
370
  sparklines, and a sales funnel.
371
+ - **Buy** — Read-only sealed capture of closed commercial documents
372
+ (`erpnext_buy_capture`) and an immutable recorded-session evidence viewer. Not
373
+ a purchase, BOM/RFQ/PO, or live ERP qualification.
270
374
  - **Setup** — Company creation and assignable user listing.
271
375
 
272
376
  Full per-tool reference with parameters: [`docs/tools.md`](docs/tools.md).
273
377
 
274
378
  ## Environment Variables
275
379
 
276
- | Variable | Required | Description |
277
- | -------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
278
- | `ERPNEXT_URL` | Yes | ERPNext base URL — self-hosted (e.g. `http://localhost:8000`) or cloud (e.g. `https://mycompany.erpnext.com`) |
279
- | `ERPNEXT_API_KEY` | Yes | API Key from User Settings |
280
- | `ERPNEXT_API_SECRET` | Yes | API Secret from User Settings |
281
- | `ERPNEXT_MAX_UPLOAD_BYTES` | No | Maximum decoded file-upload size in bytes (positive integer; default: 10 MiB) |
282
- | `ERPNEXT_METHOD_ALLOWLIST` | No | Comma-separated exact method paths or `prefix.*`; unset means `erpnext_method_call` denies every method, while `*` allows all |
283
- | `MCP_MRTR_SIGNING_KEY` | No | Exactly 64 lowercase hex characters; enables signed ambiguous-link elicitation. **Single-instance deployments only** — see below |
380
+ | Variable | Required | Description |
381
+ | ---------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
382
+ | `ERPNEXT_URL` | Yes | ERPNext base URL — self-hosted (e.g. `http://localhost:8000`) or cloud (e.g. `https://mycompany.erpnext.com`) |
383
+ | `ERPNEXT_API_KEY` | Yes | API Key from User Settings |
384
+ | `ERPNEXT_API_SECRET` | Yes | API Secret from User Settings |
385
+ | `ERPNEXT_MAX_UPLOAD_BYTES` | No | Maximum decoded file-upload size in bytes (positive integer; default: 10 MiB) |
386
+ | `ERPNEXT_MAX_DOWNLOAD_BYTES` | No | Maximum attachment-download size in bytes (positive integer; default: 10 MiB) |
387
+ | `ERPNEXT_METHOD_ALLOWLIST` | No | Comma-separated exact method paths or `prefix.*`; unset means `erpnext_method_call` denies every method, while `*` allows all |
388
+ | `MCP_MRTR_SIGNING_KEY` | No | Exactly 64 lowercase hex characters; enables signed ambiguous-link elicitation. **Single-instance deployments only** — see below |
284
389
 
285
390
  MRTR is opt-in. Without this key, or when the client does not advertise
286
391
  elicitation, ambiguous links keep returning the existing actionable ambiguity
@@ -12,13 +12,15 @@ viewers and of the Node bundle. Do not edit by hand; regenerate with:
12
12
 
13
13
  The embedded webfonts are maintained by hand (section 3).
14
14
 
15
- 1. Package index (48 packages)
15
+ 1. Package index (46 packages)
16
16
  ------------------------------------------------------------------------------
17
17
 
18
18
  - @casys/mcp-server@0.26.1 (MIT) [node]
19
+ - @casys/mcp-view@0.9.3 (MIT) [ui]
19
20
  - @casys/mcp-view-components@0.7.1 (MIT) [ui]
21
+ - @casys/mcp-view-contracts@0.1.0 (MIT) [ui]
20
22
  - @modelcontextprotocol/core@2.3.1 (Apache-2.0) [node]
21
- - @modelcontextprotocol/ext-apps@1.7.1 (MIT) [ui]
23
+ - @modelcontextprotocol/ext-apps@1.7.5 (MIT) [ui]
22
24
  - @modelcontextprotocol/sdk@1.29.0 (MIT) [ui]
23
25
  - @modelcontextprotocol/sdk@1.32.1 (MIT) [node]
24
26
  - @modelcontextprotocol/server@2.3.1 (Apache-2.0) [node]
@@ -47,16 +49,12 @@ The embedded webfonts are maintained by hand (section 3).
47
49
  - jose@6.2.12 (MIT) [node]
48
50
  - json-schema-traverse@1.0.0 (MIT) [node]
49
51
  - preact@10.29.8 (MIT) [ui]
50
- - react@18.3.1 (MIT) [ui]
51
- - react-dom@18.3.1 (MIT) [ui]
52
52
  - react-is@19.2.4 (MIT) [ui]
53
53
  - react-redux@9.2.0 (MIT) [ui]
54
54
  - recharts@3.8.1 (MIT) [ui]
55
55
  - redux@5.0.1 (MIT) [ui]
56
56
  - redux-thunk@3.1.0 (MIT) [ui]
57
57
  - reselect@5.1.1 (MIT) [ui]
58
- - scheduler@0.23.2 (MIT) [ui]
59
- - tailwindcss@4.3.3 (MIT) [ui]
60
58
  - tiny-invariant@1.3.3 (MIT) [ui]
61
59
  - use-sync-external-store@1.6.0 (MIT) [ui]
62
60
  - yaml@2.9.1 (ISC) [node]
@@ -72,7 +70,9 @@ The embedded webfonts are maintained by hand (section 3).
72
70
  MIT
73
71
  Applies to:
74
72
  @casys/mcp-server@0.26.1
73
+ @casys/mcp-view@0.9.3
75
74
  @casys/mcp-view-components@0.7.1
75
+ @casys/mcp-view-contracts@0.1.0
76
76
 
77
77
  MIT License
78
78
 
@@ -101,7 +101,7 @@ SOFTWARE.
101
101
  Apache-2.0 / MIT
102
102
  Applies to:
103
103
  @modelcontextprotocol/core@2.3.1
104
- @modelcontextprotocol/ext-apps@1.7.1
104
+ @modelcontextprotocol/ext-apps@1.7.5
105
105
  @modelcontextprotocol/server@2.3.1
106
106
 
107
107
  The MCP project is undergoing a licensing transition from the MIT License to the Apache License, Version 2.0 ("Apache-2.0"). All new code and specification contributions to the project are licensed under Apache-2.0. Documentation contributions (excluding specifications) are licensed under CC-BY-4.0.
@@ -1023,36 +1023,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1023
1023
  SOFTWARE.
1024
1024
 
1025
1025
 
1026
- ==============================================================================
1027
- MIT
1028
- Applies to:
1029
- react@18.3.1
1030
- react-dom@18.3.1
1031
- scheduler@0.23.2
1032
-
1033
- MIT License
1034
-
1035
- Copyright (c) Facebook, Inc. and its affiliates.
1036
-
1037
- Permission is hereby granted, free of charge, to any person obtaining a copy
1038
- of this software and associated documentation files (the "Software"), to deal
1039
- in the Software without restriction, including without limitation the rights
1040
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1041
- copies of the Software, and to permit persons to whom the Software is
1042
- furnished to do so, subject to the following conditions:
1043
-
1044
- The above copyright notice and this permission notice shall be included in all
1045
- copies or substantial portions of the Software.
1046
-
1047
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1048
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1049
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1050
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1051
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1052
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1053
- SOFTWARE.
1054
-
1055
-
1056
1026
  ==============================================================================
1057
1027
  MIT
1058
1028
  Applies to:
@@ -1168,34 +1138,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1168
1138
  SOFTWARE.
1169
1139
 
1170
1140
 
1171
- ==============================================================================
1172
- MIT
1173
- Applies to:
1174
- tailwindcss@4.3.3
1175
-
1176
- MIT License
1177
-
1178
- Copyright (c) Tailwind Labs, Inc.
1179
-
1180
- Permission is hereby granted, free of charge, to any person obtaining a copy
1181
- of this software and associated documentation files (the "Software"), to deal
1182
- in the Software without restriction, including without limitation the rights
1183
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1184
- copies of the Software, and to permit persons to whom the Software is
1185
- furnished to do so, subject to the following conditions:
1186
-
1187
- The above copyright notice and this permission notice shall be included in all
1188
- copies or substantial portions of the Software.
1189
-
1190
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1191
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1192
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1193
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1194
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1195
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1196
- SOFTWARE.
1197
-
1198
-
1199
1141
  ==============================================================================
1200
1142
  MIT
1201
1143
  Applies to: