You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,9 +23,11 @@ The MCP servers in this demo highlight how each tool can light up widgets by com
23
23
24
24
-`src/` – Source for each widget example.
25
25
-`assets/` – Generated HTML, JS, and CSS bundles after running the build step.
26
+
-`sample-data/` – Shared catalog data used by the widgets and MCP servers.
26
27
-`pizzaz_server_node/` – MCP server implemented with the official TypeScript SDK.
27
28
-`pizzaz_server_python/` – Python MCP server that returns the Pizzaz widgets.
28
29
-`solar-system_server_python/` – Python MCP server for the 3D solar system widget.
30
+
-`ecommerce_server_python/` – Python server that powers the ecommerce carousel sample.
29
31
-`build-all.mts` – Vite build orchestrator that produces hashed bundles for every widget entrypoint.
30
32
31
33
## Prerequisites
@@ -64,23 +66,23 @@ pnpm run dev
64
66
65
67
## Serve the static assets
66
68
67
-
If you want to preview the generated bundles without the MCP servers, start the static file server after running a build:
69
+
All of the MCP servers expect the bundled HTML, JS, and CSS to be served from the local static file server. After every build, start the server before launching any MCP processes:
68
70
69
71
```bash
70
72
pnpm run serve
71
73
```
72
74
73
75
The assets are exposed at [`http://localhost:4444`](http://localhost:4444) with CORS enabled so that local tooling (including MCP inspectors) can fetch them.
74
76
77
+
> **Note:** The Python Pizzaz server caches widget HTML with `functools.lru_cache`. If you rebuild or manually edit files in `assets/`, restart the MCP server so it picks up the updated markup.
78
+
75
79
## Run the MCP servers
76
80
77
81
The repository ships several demo MCP servers that highlight different widget bundles:
78
82
79
83
-**Pizzaz (Node & Python)** – pizza-inspired collection of tools and components
80
84
-**Solar system (Python)** – 3D solar system viewer
81
85
82
-
Every tool response includes plain text content, structured JSON, and `_meta.openai/outputTemplate` metadata so the Apps SDK can hydrate the matching widget.
0 commit comments