@expressivecss/mcp-server 0.2.1 → 0.3.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/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CHANGELOG.md +92 -0
- package/README.md +492 -7
- package/capability-roadmap.json +1 -1
- package/component-decisions.json +1 -1
- package/component-guides.json +42 -42
- package/contract.json +4 -3
- package/package.json +1 -1
- package/semantics-data.json +1 -1
- package/server.js +506 -55
- package/smoke.mjs +1233 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expressivecss-mcp",
|
|
3
3
|
"displayName": "ExpressiveCSS MCP",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "ExpressiveCSS workflow server with Setup Expert, Rules Enforcer, Creative Director, Page Arcjitect, Component Syntax Expert, and Quality Inspector.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "BaezFJ",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expressivecss-mcp",
|
|
3
3
|
"displayName": "ExpressiveCSS MCP",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "ExpressiveCSS workflow server with Setup Expert, Rules Enforcer, Creative Director, Page Arcjitect, Component Syntax Expert, and Quality Inspector.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "BaezFJ",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,97 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.0 - 2026-10-06
|
|
4
|
+
|
|
5
|
+
- Breaking: guidance tools now cap each result at 64 KiB of UTF-8 by
|
|
6
|
+
default. A response that used to arrive whole can now omit whole
|
|
7
|
+
units and list them in `responseBudget`. To return larger responses, set
|
|
8
|
+
`EXPRESSIVECSS_MCP_MAX_RESPONSE_BYTES` in the server's environment. The
|
|
9
|
+
limit is described in its own entry below.
|
|
10
|
+
|
|
11
|
+
- Add argument completion to the component resource templates. Both templates
|
|
12
|
+
complete canonical slugs by case-insensitive prefix, and
|
|
13
|
+
`component_guide_section` also completes section names. Aliases are not
|
|
14
|
+
matched. Results use the SDK limit of 100 values with `total` and `hasMore`.
|
|
15
|
+
Unknown template references return `-32602`. Completion reads only the
|
|
16
|
+
bundled catalogue and stays outside the response byte budget. Tool arguments
|
|
17
|
+
are not completed.
|
|
18
|
+
|
|
19
|
+
- Add versioned component guide resources for the current bundled snapshot.
|
|
20
|
+
The `component_guide` template returns a whole guide with its complete
|
|
21
|
+
contract, syntax, rules, Options and Methods. `component_guide_section`
|
|
22
|
+
returns one of those sections. `resources/list` lists every whole-guide URI.
|
|
23
|
+
Reads share the operator byte budget and deliver sections whole. A read that
|
|
24
|
+
cannot fit returns `-32001` with the section URIs that fit and the sections
|
|
25
|
+
that need a larger budget. Aliases, unknown names and unavailable snapshot
|
|
26
|
+
identities return `-32002`. Budget errors now name the URI that was read.
|
|
27
|
+
|
|
28
|
+
- Add a read-only `component_catalog` resource for the current bundled snapshot,
|
|
29
|
+
identified by framework version and contract source hash. JSON contents reuse
|
|
30
|
+
the complete compact catalogue and retain unknown consumer compatibility.
|
|
31
|
+
Reads use the existing operator byte budget and deliver every entry whole or
|
|
32
|
+
return protocol error `-32001` with a sufficient restart budget. Discovery
|
|
33
|
+
remains available under small budgets; unknown resource identities return
|
|
34
|
+
`-32002`. Existing tools, QA policy and package versions remain unchanged.
|
|
35
|
+
|
|
36
|
+
- Guidance tools enforce a configurable 64 KiB UTF-8 limit on the complete
|
|
37
|
+
serialized tool result, including text and structured content. Typed
|
|
38
|
+
`responseBudget` metadata accounts for whole-unit omissions and narrower
|
|
39
|
+
recovery requests. Indivisible guidance or accounting that cannot fit produces
|
|
40
|
+
an explicit budget error; impossible minimal results use JSON-RPC error
|
|
41
|
+
`-32001`. Setup, creative, both page aliases, syntax and catalogue share the
|
|
42
|
+
limit; QA limits and evidence behavior remain unchanged. Syntax code is whole
|
|
43
|
+
or omitted, and retained contract-prose limits have explicit disclosure.
|
|
44
|
+
|
|
45
|
+
- `component_syntax_expert` accepts `detail: "compact"` or `"detailed"`, with
|
|
46
|
+
detailed as the backward-compatible default. Compact retains complete rules,
|
|
47
|
+
identity and shared evidence while omitting contract prose and syntax examples.
|
|
48
|
+
Requested Options/Methods and explicit foundations work in both modes.
|
|
49
|
+
`includeCapabilities` overrides component capability detail, which defaults
|
|
50
|
+
off in compact and on in detailed. Effective selectors and schema-validated
|
|
51
|
+
`omittedFields` identify intentional omissions and their reasons. Retrieve
|
|
52
|
+
omitted detail through the supported selectors. Existing version/provenance
|
|
53
|
+
safety checks remain. Contract summaries retain their disclosed prose limit;
|
|
54
|
+
examples now use whole delivery or explicit budget omission.
|
|
55
|
+
|
|
56
|
+
- `component_catalog` accepts optional `query` and `limit` to search existing
|
|
57
|
+
names, aliases and compact descriptions. Exact matches precede labelled
|
|
58
|
+
heuristic matches. Search defaults to 10 results, permits at most 50 and
|
|
59
|
+
reports total/omitted counts, truncation and explicit empty results. Full
|
|
60
|
+
listings and compatibility/provenance evidence remain unchanged.
|
|
61
|
+
|
|
62
|
+
- Add read-only `component_catalog` for complete compact component listings,
|
|
63
|
+
existing aliases and runtime ownership, documentation links and bundled
|
|
64
|
+
version/source hash. Optional explicit targets receive compatibility and
|
|
65
|
+
provenance checks; omitted targets remain unchecked.
|
|
66
|
+
|
|
67
|
+
- `component_syntax_expert` accepts `sections: ["methods"]` or both `"options"`
|
|
68
|
+
and `"methods"` once each. Requested Methods return complete bundled Markdown
|
|
69
|
+
or an explicit absent-section record. Defaults and compatibility/provenance
|
|
70
|
+
evidence remain unchanged.
|
|
71
|
+
- `component_syntax_expert` accepts `sections: ["options"]` to return complete
|
|
72
|
+
bundled Options Markdown or an explicit absent-section record. Existing
|
|
73
|
+
requests omit these records; compatibility and provenance evidence are unchanged.
|
|
74
|
+
- `component_syntax_expert` returns complete component rules in source order,
|
|
75
|
+
including rules previously omitted by the eight-rule cap. Generic fallback
|
|
76
|
+
advice remains unchanged.
|
|
77
|
+
- Bundled framework guidance: ExpressiveCSS 0.12.0.
|
|
78
|
+
|
|
79
|
+
## 0.2.2 - 2026-10-01
|
|
80
|
+
|
|
81
|
+
- Semantics findings from `rules_enforcer`, `quality_inspector`, and
|
|
82
|
+
`expressivecss-lint` report the element's line and column instead of 1:1.
|
|
83
|
+
- Component guides list the API reference subsections they leave out. Their
|
|
84
|
+
examples use real link targets, and menu actions are buttons. The Buttons
|
|
85
|
+
guide calls `circle` a round common button and points icon buttons to
|
|
86
|
+
`.icon-button`.
|
|
87
|
+
- The Lightbox guide includes its options and methods. The app-bar guide's
|
|
88
|
+
Search icon is a button.
|
|
89
|
+
- The Cards guide uses a plain `<p>` for supporting copy. The Date picker and
|
|
90
|
+
Time picker guides use `.date-picker` and `.time-picker`, the Select guide
|
|
91
|
+
describes the `.field` wrapper instead of `.select-wrapper`, and the
|
|
92
|
+
Scrollspy example uses `hide-on-compact-only`.
|
|
93
|
+
- Bundled framework guidance: ExpressiveCSS 0.12.0.
|
|
94
|
+
|
|
3
95
|
## 0.2.1 - 2026-09-30
|
|
4
96
|
|
|
5
97
|
- `rules_enforcer` requires an identifier boundary before a manual `.init(` call,
|