vectorvesper 2.1.1 → 2.4.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
@@ -53,6 +53,37 @@ export default function Page() {
53
53
  }
54
54
  ```
55
55
 
56
+ ## MCP server — motion advice for your coding agent
57
+
58
+ The same CLI runs as an [MCP](https://modelcontextprotocol.io) server, so Claude Code, Cursor, Copilot and friends can ask about motion before they write it.
59
+
60
+ ```bash
61
+ npx vectorvesper mcp install
62
+ ```
63
+
64
+ That configures every supported editor it finds. Restart the editor and run `npx vectorvesper mcp status` to confirm. No account or token is needed — the runtime, its contracts and the linter are free.
65
+
66
+ **Why bother.** Bad motion code does not error. TypeScript passes, the build is green, and the page janks on a mid-range phone six weeks later with nothing connecting the two. An agent has no feedback signal for the one quality dimension that matters here, so this server gives it three:
67
+
68
+ - **`plan_motion`** — describe what you are building and get told whether it needs a primitive **at all**, which ones, in what order, and when that advice would be wrong. It says "use CSS, not this" for a hover state, a fade on mount, a spinner or a one-time scroll reveal, because those are compositor features that cost no main-thread time. Roughly a fifth of its answers recommend the platform over this library.
69
+ - **`get_hook` / `get_pattern` / `get_component`** — the contract, not the source. Does this need a client boundary, does it own the element's transform, what does it conflict with, which frame lane does it run in, and when should you not use it.
70
+ - **`check_motion`** — a static linter for the failure class that ships silently: a private `requestAnimationFrame` loop outside the shared budget, a discarded unsubscribe, `setState` in a frame callback, layout read in the write lane, one transform with two owners, a `<Canvas>` prop that quietly overrules the adapter that set it, a WebGL scene with nothing watching for a lost context, motion with no reduced-motion guard.
71
+
72
+ Prefer to wire it by hand? Add this to your client's MCP config:
73
+
74
+ ```json
75
+ {
76
+ "mcpServers": {
77
+ "vectorvesper": {
78
+ "command": "npx",
79
+ "args": ["-y", "vectorvesper", "mcp"]
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ Full setup notes and the per-client config paths: [vectorvesper.dev/docs/mcp](https://vectorvesper.dev/docs/mcp).
86
+
56
87
  ## CLI Command Reference
57
88
 
58
89
  | Command | Description |
@@ -63,6 +94,9 @@ export default function Page() {
63
94
  | `update [slug]` | Update installed components to the latest version |
64
95
  | `diff [slug]` | Check local files against registry updates |
65
96
  | `remove <slug>` | Safely remove a component's files from the project |
97
+ | `mcp install [client]` | Configure the MCP server for your editor(s) |
98
+ | `mcp status` | Check which clients are wired up |
99
+ | `mcp` | Run the MCP server on stdio (what the editor invokes) |
66
100
  | `info` | Output workspace diagnostics for troubleshooting |
67
101
 
68
102
  Works out of the box with **npm, pnpm, yarn, and bun** by checking your lockfile.