@lumeo-ui/mcp-server 2.0.0-rc.1
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 +129 -0
- package/dist/components.js +709 -0
- package/dist/index.js +357 -0
- package/dist/registry.js +86 -0
- package/package.json +39 -0
- package/src/registry.json +2538 -0
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# @lumeo-ui/mcp-server
|
|
2
|
+
|
|
3
|
+
A [Model Context Protocol](https://modelcontextprotocol.io) server that
|
|
4
|
+
exposes the [Lumeo](https://github.com/Brain2k-0005/Lumeo) Blazor component
|
|
5
|
+
library to MCP-compatible LLM clients (Claude Desktop, Cursor, GitHub Copilot,
|
|
6
|
+
Zed, etc.).
|
|
7
|
+
|
|
8
|
+
Once installed, your LLM can look up real Lumeo parameters, slots, and usage
|
|
9
|
+
examples — so "build me a sign-in page with Lumeo" produces markup that
|
|
10
|
+
actually compiles.
|
|
11
|
+
|
|
12
|
+
## What it exposes
|
|
13
|
+
|
|
14
|
+
The server covers **all 125 components** from Lumeo's generated
|
|
15
|
+
`registry.json`. The top ~35 most-used components ship with rich, hand-curated
|
|
16
|
+
schemas (parameters, slots, ready-to-use Razor examples, CSS variables); the
|
|
17
|
+
remaining ~90 are still discoverable and returned with category / description /
|
|
18
|
+
files / dependencies / CSS variables plus a link back to the docs site for full
|
|
19
|
+
reference. As more components get curated, the rich count grows automatically.
|
|
20
|
+
|
|
21
|
+
### Tools
|
|
22
|
+
|
|
23
|
+
- `lumeo_list_components({ category?, query? })` — list all 125 components
|
|
24
|
+
- `lumeo_get_component({ name })` — rich schema if curated; thin + docs link otherwise
|
|
25
|
+
- `lumeo_search({ query })` — fuzzy search across all 125
|
|
26
|
+
|
|
27
|
+
### Resources
|
|
28
|
+
|
|
29
|
+
- `lumeo://component/{Name}` — markdown reference per component
|
|
30
|
+
- `lumeo://category/{Name}` — overview of all components in a category
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
cd tools/lumeo-mcp
|
|
36
|
+
npm install
|
|
37
|
+
npm run build
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This produces `dist/index.js`, a Node ESM entrypoint.
|
|
41
|
+
|
|
42
|
+
> Future: `npx -y @lumeo-ui/mcp-server` once published to npm.
|
|
43
|
+
|
|
44
|
+
## Configure your MCP client
|
|
45
|
+
|
|
46
|
+
### Claude Desktop
|
|
47
|
+
|
|
48
|
+
Edit `claude_desktop_config.json` (Settings → Developer → Edit Config):
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"lumeo": {
|
|
54
|
+
"command": "node",
|
|
55
|
+
"args": ["C:/Users/bemi/RiderProjects/Lumeo/tools/lumeo-mcp/dist/index.js"]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Restart Claude Desktop. You should see the Lumeo tools/resources under the
|
|
62
|
+
connectors panel.
|
|
63
|
+
|
|
64
|
+
### Cursor
|
|
65
|
+
|
|
66
|
+
Add to `.cursor/mcp.json`:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"lumeo": {
|
|
72
|
+
"command": "node",
|
|
73
|
+
"args": ["/absolute/path/to/lumeo-mcp/dist/index.js"]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### VS Code (GitHub Copilot)
|
|
80
|
+
|
|
81
|
+
Add to `.vscode/mcp.json`:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"servers": {
|
|
86
|
+
"lumeo": {
|
|
87
|
+
"type": "stdio",
|
|
88
|
+
"command": "node",
|
|
89
|
+
"args": ["/absolute/path/to/lumeo-mcp/dist/index.js"]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Try it
|
|
96
|
+
|
|
97
|
+
After installing, ask your LLM:
|
|
98
|
+
|
|
99
|
+
> Build me a dashboard with three KpiCards using Lumeo.
|
|
100
|
+
|
|
101
|
+
or
|
|
102
|
+
|
|
103
|
+
> Show me how to build a sign-in page with Lumeo — email, password, and a submit button with validation.
|
|
104
|
+
|
|
105
|
+
The model will call `lumeo_search` + `lumeo_get_component` under the hood and
|
|
106
|
+
produce markup that uses the correct parameter names, two-way bindings, and
|
|
107
|
+
slot conventions.
|
|
108
|
+
|
|
109
|
+
## Development
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npm run dev # tsc --watch
|
|
113
|
+
npm start # run the built server
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The component catalog is built at startup by merging two sources:
|
|
117
|
+
|
|
118
|
+
- `src/components.ts` — hand-curated rich entries (top ~35) with full
|
|
119
|
+
`params`, `slots`, and `example` fields
|
|
120
|
+
- `src/registry.json` — the full 125-component registry, copied from
|
|
121
|
+
`src/Lumeo/registry/registry.json` at `prebuild` time by
|
|
122
|
+
`scripts/sync-registry.mjs`
|
|
123
|
+
|
|
124
|
+
To enrich a thin entry, add a full entry for it in `src/components.ts` — the
|
|
125
|
+
merge layer will automatically upgrade it to the rich schema.
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
MIT
|