chrometools-mcp 3.1.6 → 3.2.4
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/CHANGELOG.md +97 -3
- package/README.md +157 -108
- package/README.ru.md +331 -0
- package/chrome-extension.zip +0 -0
- package/docs/extension-developer-mode.png +0 -0
- package/docs/extension-installed.png +0 -0
- package/index.js +95 -44
- package/package.json +1 -1
- package/pom/apom-tree-converter.js +302 -39
- package/server/tool-definitions.js +23 -30
- package/server/tool-schemas.js +5 -6
- package/test-interactivity.html +178 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,106 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [3.2.4] - 2026-01-27
|
|
6
|
+
|
|
7
|
+
### Performance
|
|
8
|
+
- **Compact APOM format** — Reduced analyzePage output size by ~70%
|
|
9
|
+
- Containers now use `"tag_id": [children]` format (instead of `{id, tag, selector, children}`)
|
|
10
|
+
- Selectors removed from output (registered internally for getElementDetails/click/type)
|
|
11
|
+
- Bottom-up pruning removes container branches without interactive elements
|
|
12
|
+
- Example: Google Search reduced from ~33K tokens (281 elements) to ~10K tokens (~80 elements)
|
|
13
|
+
- `includeAll: true` retains full format with selectors for debugging
|
|
14
|
+
|
|
15
|
+
### Removed
|
|
16
|
+
- **getElement tool** — Redundant tool replaced by analyzePage (55 → 54 tools)
|
|
17
|
+
|
|
18
|
+
## [3.2.3] - 2026-01-27
|
|
19
|
+
|
|
20
|
+
### Removed
|
|
21
|
+
- **Reverted experimental features** — Removed `resolveComponentPaths` and `detectFrameworks` due to technical limitations
|
|
22
|
+
- Component path resolution was unreliable across different build configurations
|
|
23
|
+
- Framework detection removed from analyzePage tool
|
|
24
|
+
- Simplified codebase and improved performance
|
|
25
|
+
|
|
26
|
+
## [3.2.2] - 2026-01-27
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- **APOM ID resolution** — Fixed element ID lookup in `click` and `type` tools
|
|
30
|
+
- Added CSS selector generation to APOM tree elements
|
|
31
|
+
- Both interactive and container elements now include `selector` field
|
|
32
|
+
- APOM IDs (e.g., `textarea_25`, `button_45`) now work correctly with click/type tools
|
|
33
|
+
- **Improved click reliability** — Enhanced click method with fallback strategies
|
|
34
|
+
- Primary method: standard Puppeteer click
|
|
35
|
+
- Fallback 1: scroll element into view and retry click
|
|
36
|
+
- Fallback 2: JavaScript click for hidden/overlapping elements
|
|
37
|
+
- Fixes issues with Google Search button and similar elements
|
|
38
|
+
|
|
39
|
+
## [3.2.1] - 2026-01-27
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- **Unified element analysis tools** — Merged `analyzeElementById` into `getElementDetails`
|
|
43
|
+
- `getElementDetails` now has optional `analyzeChildren` parameter
|
|
44
|
+
- Set `analyzeChildren: true` to get children tree structure
|
|
45
|
+
- Simplified API reduces tool count and improves consistency
|
|
46
|
+
- Children analysis includes same `includeAll` and `refresh` options
|
|
47
|
+
|
|
48
|
+
### Removed
|
|
49
|
+
- **`getElementByApomId`** — Removed deprecated method (use `getElementDetails` instead)
|
|
50
|
+
- **`analyzeElementById`** — Merged into `getElementDetails` with `analyzeChildren` parameter
|
|
51
|
+
|
|
52
|
+
## [3.2.0] - 2026-01-27
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- **New tool: `getElementDetails`** — Get comprehensive details about element by APOM ID
|
|
56
|
+
- Returns bounds, CSS selector, position, attributes, computed styles
|
|
57
|
+
- Use when `analyzePage` output is simplified and full element info is needed
|
|
58
|
+
- **New tool: `analyzeElementById`** — Analyze children elements starting from specific APOM ID
|
|
59
|
+
- Useful for analyzing specific page sections without re-analyzing entire page
|
|
60
|
+
- Supports `includeAll` and `refresh` parameters
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
- **Optimized `analyzePage` output** — Significantly reduced token usage
|
|
64
|
+
- Parent/container elements now show only `tag` and `id` (minimal info)
|
|
65
|
+
- Interactive elements no longer include `bounds` and `selector` in main output
|
|
66
|
+
- Use `getElementDetails` to get full information when needed
|
|
67
|
+
- ~50-70% reduction in output size for typical pages
|
|
68
|
+
- **Improved cursor:pointer detection** — Only detects explicitly set cursor, not inherited
|
|
69
|
+
- Filters out inherited `cursor:pointer` from parent elements
|
|
70
|
+
- Reduces false positives in interactive element detection
|
|
71
|
+
- More accurate identification of clickable elements
|
|
72
|
+
|
|
73
|
+
### Deprecated
|
|
74
|
+
- **`getElementByApomId`** — Use `getElementDetails` instead (same functionality, clearer name)
|
|
75
|
+
- Filters out Angular dynamic classes (e.g., `_ng*`)
|
|
76
|
+
- Prefers stable class names for more reliable selectors across page loads
|
|
77
|
+
|
|
78
|
+
## [3.1.8] - 2026-01-27
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
- **Enhanced interactivity detection in analyzePage** — Improved detection of JavaScript-enabled interactive elements
|
|
82
|
+
- Added detection of elements with `cursor: pointer` CSS property
|
|
83
|
+
- Added detection of elements with JavaScript `addEventListener('click')`
|
|
84
|
+
- Added detection of elements with `onclick` property set via JavaScript
|
|
85
|
+
- DIV and SPAN elements with click handlers now correctly detected as interactive
|
|
86
|
+
- Added `interactivityReason` metadata field showing why element was marked interactive
|
|
87
|
+
- Reasons: `native-html`, `aria-role`, `onclick-attr`, `onclick-prop`, `cursor-pointer`, `event-listener`, `tabindex`, `contenteditable`
|
|
88
|
+
|
|
89
|
+
### Performance
|
|
90
|
+
- Optimized `markInteractiveElements` to skip event listener checks during bulk scan (performance)
|
|
91
|
+
- Event listener detection only runs for individual element type determination
|
|
92
|
+
|
|
93
|
+
## [3.1.7] - 2026-01-27
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
- **Claude Code installation command** — Corrected to proper `claude mcp add` syntax
|
|
97
|
+
- Fixed to use: `claude mcp add chrometools -- npx -y chrometools-mcp`
|
|
98
|
+
- Format: `claude mcp add <name> -- <command> [args...]`
|
|
99
|
+
- Added `--scope user` option for global installation
|
|
100
|
+
|
|
5
101
|
## [3.1.6] - 2026-01-27
|
|
6
102
|
|
|
7
103
|
### Fixed
|
|
8
|
-
- **Claude Code installation command** —
|
|
9
|
-
- Changed from `claude mcp add chrometools-mcp` to `claude mcp add "npx -y chrometools-mcp"`
|
|
10
|
-
- The command requires full command string, not just package name
|
|
104
|
+
- **Claude Code installation command** — Incorrect syntax attempt
|
|
11
105
|
|
|
12
106
|
## [3.1.5] - 2026-01-27
|
|
13
107
|
|