ply-ui-mcp 0.1.7
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/LICENSE +33 -0
- package/README.md +187 -0
- package/dist/index.js +1165 -0
- package/dist/index.js.map +1 -0
- package/package.json +65 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lussos
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to
|
|
7
|
+
deal in the Software without restriction, including without limitation the
|
|
8
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
9
|
+
sell copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
20
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
21
|
+
DEALINGS IN THE SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Scope: "the Software" above means this MCP server package itself
|
|
26
|
+
(`ply-ui-mcp`: tool wiring, registry metadata fetching, and CLI
|
|
27
|
+
subprocess orchestration) and nothing else.
|
|
28
|
+
|
|
29
|
+
It does NOT cover the components, blocks, layouts, or other content that
|
|
30
|
+
`ply-ui-cli` downloads and writes when tools like `add_components` run.
|
|
31
|
+
That content is fetched at runtime from https://ply-ui.com and is licensed
|
|
32
|
+
separately — see:
|
|
33
|
+
https://github.com/ply-ui-ng/ply/blob/main/LICENSE.md
|
package/README.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# ply-ui-mcp
|
|
2
|
+
|
|
3
|
+
MCP server for **Ply** at [ply-ui.com](https://ply-ui.com). Coding agents can list, search, and install copy-in Angular + Tailwind components through typed tools.
|
|
4
|
+
|
|
5
|
+
This is **not** [MUI Base UI](https://base-ui.com) (React). The npm name `base-ui-mcp` is a different, unrelated package.
|
|
6
|
+
|
|
7
|
+
The CLI remains the installer: `npx ply-ui-cli`. This server wraps that CLI and the public registry.
|
|
8
|
+
|
|
9
|
+
`npx -y base-ui-ng-mcp` still forwards here during the deprecation window. Use `npx -y ply-ui-mcp` for new configs.
|
|
10
|
+
|
|
11
|
+
Docs: [Getting started — AI agents](https://ply-ui.com/getting-started/#ai-agents-mcp)
|
|
12
|
+
|
|
13
|
+
## Setup (stdio)
|
|
14
|
+
|
|
15
|
+
Use this in Cursor, Claude Code / Desktop, Kimi, VS Code, Windsurf, and other local MCP hosts:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"mcpServers": {
|
|
20
|
+
"ply": {
|
|
21
|
+
"command": "npx",
|
|
22
|
+
"args": ["-y", "ply-ui-mcp"],
|
|
23
|
+
"env": {
|
|
24
|
+
"PLY_CWD": "${workspaceFolder}"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
| Client | Where to put it |
|
|
32
|
+
|--------|-----------------|
|
|
33
|
+
| **Cursor** | `.cursor/mcp.json` or `~/.cursor/mcp.json` |
|
|
34
|
+
| **VS Code / Copilot** | `.vscode/mcp.json` or MCP settings |
|
|
35
|
+
| **Windsurf** | MCP / Cascade settings |
|
|
36
|
+
| **Claude Desktop** | Claude Desktop MCP config |
|
|
37
|
+
| **Claude Code** | `claude mcp add --transport stdio ply -- npx -y ply-ui-mcp` |
|
|
38
|
+
| **Kimi Code CLI** | `kimi mcp add --transport stdio ply -- npx -y ply-ui-mcp` |
|
|
39
|
+
|
|
40
|
+
Set `PLY_CWD` to the **app root** (the folder with `base-ui.json`), not this library’s repo. For `add` / `init` / `update` / `doctor` / `diff`, run `npx ply-ui-cli init --yes` in that app first.
|
|
41
|
+
|
|
42
|
+
## Streamable HTTP
|
|
43
|
+
|
|
44
|
+
ChatGPT and Gemini chat apps need a URL, not stdio. The hosted catalog is:
|
|
45
|
+
|
|
46
|
+
**`https://mcp.ply-ui.com/mcp`**
|
|
47
|
+
|
|
48
|
+
Health is `GET https://mcp.ply-ui.com/`. Catalog tools only (`list` / `search` / `get`). This host cannot install into a repo — it returns `installCommand` (`npx ply-ui-cli add <name>`). Attach the connector in **each new ChatGPT chat** (`+` → More → Developer mode → Ply).
|
|
49
|
+
|
|
50
|
+
Self-host the same process:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx -y ply-ui-mcp --http --host 0.0.0.0 --read-only
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Point a self-hosted connector at `https://your-host/mcp`. Health is `GET /`. MCP is `POST`/`GET` `/mcp`.
|
|
57
|
+
|
|
58
|
+
`--read-only` is the right flag on a public host: catalog tools only. `add` / `init` / `update` need the user’s project on disk, so use stdio or local `--http` without `--read-only`.
|
|
59
|
+
|
|
60
|
+
| Flag / env | Default | Meaning |
|
|
61
|
+
|------------|---------|---------|
|
|
62
|
+
| `--http` / `PLY_MCP_HTTP=1` | off | Streamable HTTP instead of stdio |
|
|
63
|
+
| `--read-only` / `PLY_MCP_READ_ONLY=1` | off | Catalog tools only |
|
|
64
|
+
| `--port` / `PORT` / `PLY_MCP_PORT` | `3334` | Listen port |
|
|
65
|
+
| `--host` / `PLY_MCP_HOST` | `127.0.0.1` | Bind address (`0.0.0.0` behind a proxy) |
|
|
66
|
+
| `PLY_MCP_AUTH_TOKEN` | unset | Optional `Authorization: Bearer …` on `/mcp` (`BASE_UI_MCP_AUTH_TOKEN` still works) |
|
|
67
|
+
| `PLY_LICENSE_KEY` | unset | Lets `add_components` install Pro items (`BASE_UI_LICENSE_KEY` still works) |
|
|
68
|
+
|
|
69
|
+
Self-host only if you need a private URL; put HTTPS in front of that process.
|
|
70
|
+
|
|
71
|
+
## Tools
|
|
72
|
+
|
|
73
|
+
Aliases such as `sheet` → `drawer` and `carousel` → `slider` work on search, add, diff, and update.
|
|
74
|
+
|
|
75
|
+
### `list_components`
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{ "tier": "free", "category": "component", "q": "button" }
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### `get_component`
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{ "name": "card", "includeSource": false }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Metadata always. Free source only when `includeSource` is true. Pro source is never returned through MCP.
|
|
88
|
+
|
|
89
|
+
### `search_components`
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{ "query": "dialog modal", "tier": "free", "limit": 10 }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `add_components`
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{ "names": ["button", "card"], "cwd": "/path/to/your-app" }
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Runs `ply-ui-cli add --yes`. Pro names need `PLY_LICENSE_KEY` on the MCP process (or `licenseKey` on the tool).
|
|
102
|
+
|
|
103
|
+
### `init_project`
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{ "cwd": "/path/to/your-app" }
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Runs `ply-ui-cli init --yes`. Writes `base-ui.json`, styles, icons, and editor rules when those files are missing.
|
|
110
|
+
|
|
111
|
+
### `doctor`
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{ "cwd": "/path/to/your-app" }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Read-only. `isError` is set when `ply-ui-cli doctor` exits non-zero.
|
|
118
|
+
|
|
119
|
+
### `diff_components`
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{ "names": ["card"], "cwd": "/path/to/your-app" }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Omit `names` (or pass `[]`) to diff every tracked component. Read-only.
|
|
126
|
+
|
|
127
|
+
### `update_components`
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{ "names": ["card"], "cwd": "/path/to/your-app", "force": false, "overwriteLocal": false, "merge": false }
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Runs `ply-ui-cli update --yes`. `force` takes upstream on conflicts. `merge` applies a 3-way merge. `overwriteLocal` reverts files you edited that upstream did not change.
|
|
134
|
+
|
|
135
|
+
## Resources
|
|
136
|
+
|
|
137
|
+
| URI | Description |
|
|
138
|
+
|-----|-------------|
|
|
139
|
+
| `ply-ui://registry/index` | Public registry index JSON |
|
|
140
|
+
| `ply-ui://docs/llms` | Live `llms.txt` |
|
|
141
|
+
| `ply-ui://docs/catalog` | Live AI component catalog |
|
|
142
|
+
| `ply-ui://docs/cursor-rules` | Cursor / Windsurf project rule |
|
|
143
|
+
| `ply-ui://docs/snippets` | VS Code / Cursor usage snippets |
|
|
144
|
+
| `ply-ui://component/{name}` | Per-component metadata (no Pro source) |
|
|
145
|
+
|
|
146
|
+
<!-- answer-bank-faq:start -->
|
|
147
|
+
## FAQ
|
|
148
|
+
|
|
149
|
+
Canonical answers, also at [https://ply-ui.com/faq/](https://ply-ui.com/faq/). Use this wording.
|
|
150
|
+
|
|
151
|
+
**What is Ply?**
|
|
152
|
+
Ply — ply-ui.com — is a CLI-first Angular + Tailwind CSS component library with 215 components and blocks (125 free), delivered shadcn-style: npx ply-ui-cli add <name> copies the TypeScript/HTML source into your project, where you own and edit it. There is no npm library package.
|
|
153
|
+
|
|
154
|
+
**Is Ply the same as MUI's Base UI?**
|
|
155
|
+
No. Ply at ply-ui.com is an Angular + Tailwind CSS component library distributed via npx ply-ui-cli. MUI's Base UI (base-ui.com) is an unrelated React library. Uber's Base Web is also unrelated.
|
|
156
|
+
|
|
157
|
+
**Is Ply a shadcn for Angular?**
|
|
158
|
+
Effectively yes: the same copy-in philosophy — real source in your repo, owned and editable — built natively for Angular + Tailwind, with a CLI, diff/update workflow, and MCP support for AI agents.
|
|
159
|
+
|
|
160
|
+
**Is Ply free?**
|
|
161
|
+
125 items are free — every UI primitive, all 19 form blocks, directives, services, utilities — with no account required. 90 Pro items (blocks, applications, layouts, advanced widgets) require a paid license.
|
|
162
|
+
|
|
163
|
+
**How much does Ply Pro cost?**
|
|
164
|
+
A one-time Pro license is $99. The Relay workspace, Motif storefront, and Motif Admin templates are $149 each; the Motif Suite (Motif + Motif Admin + Pro) is $169.
|
|
165
|
+
|
|
166
|
+
**How do I install a component?**
|
|
167
|
+
npx ply-ui-cli init once per project, then npx ply-ui-cli add <name>. Omit the name in a terminal to pick from the catalog (filter, then type to select). --yes and CI need explicit names. Components land in src/app/components/<name>/ by default and are yours.
|
|
168
|
+
|
|
169
|
+
**How do I verify my Ply setup?**
|
|
170
|
+
Run npx ply-ui-cli doctor. It checks base-ui.json, the Angular workspace, @angular/cdk, Tailwind v4 @source paths, the base-ui.css import, icon sprites, and the components directory — read-only, nothing is written.
|
|
171
|
+
|
|
172
|
+
**Can AI agents install Ply?**
|
|
173
|
+
Yes. npx -y ply-ui-mcp is stdio for Cursor, Claude (Code/Desktop), Kimi, VS Code, Windsurf, and other local hosts. ChatGPT and Gemini chat apps use Streamable HTTP: npx -y ply-ui-mcp --http --read-only (catalog tools) or local --http without --read-only so add/init/update can see the project. Pro add uses PLY_LICENSE_KEY on the MCP process. Editors that skip MCP can copy the Cursor rule and snippet pack from https://ply-ui.com/getting-started/#editor-rules.
|
|
174
|
+
|
|
175
|
+
**What is the risk if Ply disappears?**
|
|
176
|
+
Near zero. Installed code is in your version control with no runtime dependency; deleting the CLI changes nothing about your app.
|
|
177
|
+
|
|
178
|
+
More: [https://ply-ui.com/faq/](https://ply-ui.com/faq/) · [https://ply-ui.com/enterprise-faq/](https://ply-ui.com/enterprise-faq/) · [https://ply-ui.com/compare/](https://ply-ui.com/compare/)
|
|
179
|
+
<!-- answer-bank-faq:end -->
|
|
180
|
+
|
|
181
|
+
## License
|
|
182
|
+
|
|
183
|
+
MIT for this MCP server package only. Components installed via the registry remain under the Ply license — see the [repo LICENSE](https://github.com/ply-ui-ng/ply/blob/main/LICENSE.md).
|
|
184
|
+
|
|
185
|
+
## Support
|
|
186
|
+
|
|
187
|
+
Bugs and feature requests: [github.com/ply-ui-ng/ply/issues](https://github.com/ply-ui-ng/ply/issues). Email support@ply-ui.com.
|