cbrowser 18.42.5 → 18.42.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/README.md +192 -274
- package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
- package/dist/analysis/agent-ready-audit.js +6 -1
- package/dist/analysis/agent-ready-audit.js.map +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -1
- package/dist/geo-proxy.d.ts +39 -0
- package/dist/geo-proxy.d.ts.map +1 -0
- package/dist/geo-proxy.js +109 -0
- package/dist/geo-proxy.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +29 -1
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/audit-tools.js +519 -0
- package/dist/mcp-tools/base/audit-tools.js.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.js +66 -7
- package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.js +141 -50
- package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
- package/dist/mcp-tools/tool-categories.d.ts +28 -0
- package/dist/mcp-tools/tool-categories.d.ts.map +1 -0
- package/dist/mcp-tools/tool-categories.js +284 -0
- package/dist/mcp-tools/tool-categories.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +25 -0
- package/dist/types.js.map +1 -1
- package/dist/visual/attention-quality.d.ts +79 -0
- package/dist/visual/attention-quality.d.ts.map +1 -0
- package/dist/visual/attention-quality.js +199 -0
- package/dist/visual/attention-quality.js.map +1 -0
- package/dist/visual/attention-transport.d.ts.map +1 -1
- package/dist/visual/attention-transport.js +16 -5
- package/dist/visual/attention-transport.js.map +1 -1
- package/dist/visual/heatmap-overlay.d.ts +31 -0
- package/dist/visual/heatmap-overlay.d.ts.map +1 -0
- package/dist/visual/heatmap-overlay.js +139 -0
- package/dist/visual/heatmap-overlay.js.map +1 -0
- package/dist/visual/index.d.ts +3 -0
- package/dist/visual/index.d.ts.map +1 -1
- package/dist/visual/index.js +3 -0
- package/dist/visual/index.js.map +1 -1
- package/dist/visual/visual-overlays.d.ts +73 -0
- package/dist/visual/visual-overlays.d.ts.map +1 -0
- package/dist/visual/visual-overlays.js +348 -0
- package/dist/visual/visual-overlays.js.map +1 -0
- package/docs/Tools-Overview.md +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,106 +1,90 @@
|
|
|
1
1
|
# CBrowser — Cognitive Browser Automation
|
|
2
2
|
|
|
3
|
-
> **The browser automation that thinks
|
|
3
|
+
> **The browser automation that thinks like your users.** 108 MCP tools. 26 cognitive traits. 11 disability personas. The only framework that predicts when users give up.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/cbrowser)
|
|
6
6
|
[](https://cbrowser.ai/docs)
|
|
7
|
-
[](docs/STRESS-TEST-v16.14.4.md)
|
|
8
7
|
[](LICENSE)
|
|
9
|
-
[](https://modelcontextprotocol.io)
|
|
10
9
|
[](https://www.typescriptlang.org/)
|
|
11
10
|
[](https://nodejs.org/)
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## What Makes CBrowser Different
|
|
20
|
-
|
|
21
|
-
**91 tools, 17 cognitive personas, 25 research-backed traits.** After rigorous stress testing across production sites including Airbnb and Hacker News:
|
|
22
|
-
|
|
23
|
-
| Capability | Status | Why It Matters |
|
|
24
|
-
|------------|--------|----------------|
|
|
25
|
-
| **Natural Language Tests** | ⭐ Best-in-class | Write tests in plain English. 10-step E2E flows run 100% stable. |
|
|
26
|
-
| **Cognitive User Simulation** | 🔬 Novel | 25 research-backed traits model real human behavior—not just clicks. |
|
|
27
|
-
| **Empathy Accessibility Audits** | 🔬 Novel | Simulate users with tremors, low vision, ADHD. No competitor offers this. |
|
|
28
|
-
| **Self-Healing Selectors** | ✅ Production-ready | ARIA-first with 0.8+ confidence gating. Handles DOM changes automatically. |
|
|
29
|
-
| **Constitutional AI Safety** | 🔬 Novel | Risk-classified actions prevent autonomous agents from doing damage. |
|
|
30
|
-
| **91 MCP Tools** | ✅ Production-ready | Full Claude integration—local and remote servers. |
|
|
12
|
+
```bash
|
|
13
|
+
npm install cbrowser
|
|
14
|
+
npx cbrowser cognitive-effort --url "https://your-site.com" --persona first-timer
|
|
15
|
+
```
|
|
31
16
|
|
|
32
17
|
---
|
|
33
18
|
|
|
34
|
-
##
|
|
19
|
+
## Cognitive Transport Chain
|
|
35
20
|
|
|
36
|
-
|
|
21
|
+
The 6-layer Sequential Transport Chain computes exactly how hard your page is for any persona — and predicts whether they'll abandon:
|
|
37
22
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
| Layer | What It Measures | Research Basis |
|
|
24
|
+
|-------|-----------------|----------------|
|
|
25
|
+
| **Saliency** | Visual attention capture | CIE-Lab W₂ perceptual model |
|
|
26
|
+
| **Cognitive Load** | Information processing demand | Sweller (1988) CLT |
|
|
27
|
+
| **Decision** | Choice complexity and fatigue | Hick-Hyman Law |
|
|
28
|
+
| **Motor** | Physical interaction difficulty | Grossman & Balakrishnan (2005) |
|
|
29
|
+
| **Frustration** | Emotional cost accumulation | Ceaparu et al. (2004) |
|
|
30
|
+
| **Readability** | Text comprehension effort | Perry & Zorzi (2013) reading model |
|
|
43
31
|
|
|
44
|
-
|
|
32
|
+
```bash
|
|
33
|
+
npx cbrowser cognitive-effort --url "https://your-site.com" --persona first-timer
|
|
34
|
+
# → CTC: 0.76, abandonment risk: 42%, bottleneck: decision
|
|
35
|
+
```
|
|
45
36
|
|
|
46
|
-
|
|
47
|
-
|-----------|-------------------|----------|
|
|
48
|
-
| **User behavior** | Simulates clicks and keystrokes | **Simulates human cognition**—patience decay, frustration accumulation, decision fatigue |
|
|
49
|
-
| **Abandonment prediction** | Fails when elements don't exist | **Predicts when users give up** before they do |
|
|
50
|
-
| **AI agent safety** | No guardrails for autonomous agents | **Constitutional AI safety**—risk-classified actions with verification gates |
|
|
51
|
-
| **Selector resilience** | Breaks when DOM changes | **Self-healing ARIA-first selectors** with 0.8+ confidence gating |
|
|
52
|
-
| **Accessibility testing** | WCAG compliance checklists | **Disability empathy simulation**—experience your site as a user with tremors, low vision, or ADHD |
|
|
37
|
+
Returns: total CTC score, per-layer breakdown, bottleneck identification, abandonment risk percentage, and motor accessibility overlay.
|
|
53
38
|
|
|
54
39
|
---
|
|
55
40
|
|
|
56
|
-
##
|
|
41
|
+
## Visual Overlays & Attention Analysis
|
|
57
42
|
|
|
58
|
-
|
|
43
|
+
See where users look, what they miss, and whether your CTAs capture attention — per persona:
|
|
59
44
|
|
|
60
45
|
```bash
|
|
61
|
-
|
|
62
|
-
npx
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### First Commands
|
|
46
|
+
# Full visual cognitive story — 4 annotated images + narrative
|
|
47
|
+
npx cbrowser visual-cognitive-story --url "https://your-site.com" --persona cognitive-adhd
|
|
66
48
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
npx cbrowser navigate "https://your-site.com"
|
|
49
|
+
# Attention heatmap — where does this persona look?
|
|
50
|
+
npx cbrowser attention-analysis --url "https://your-site.com" --persona first-timer
|
|
70
51
|
|
|
71
|
-
#
|
|
72
|
-
npx cbrowser
|
|
52
|
+
# Compare how two personas experience the same page
|
|
53
|
+
npx cbrowser attention-compare --url "https://your-site.com" --persona-a first-timer --persona-b power-user
|
|
54
|
+
```
|
|
73
55
|
|
|
74
|
-
|
|
75
|
-
|
|
56
|
+
**Overlays generated:**
|
|
57
|
+
- **Attention heatmap** — CIE-Lab saliency on grayscale base (red = high attention)
|
|
58
|
+
- **Motor accessibility** — Green/yellow/red per element by P(hit)
|
|
59
|
+
- **Attention quality** — CTAs green, distractors red, headings blue
|
|
60
|
+
- **Comparison diff** — Blue = persona A attention, red = persona B
|
|
76
61
|
|
|
77
|
-
|
|
78
|
-
npx cbrowser cognitive-journey \
|
|
79
|
-
--persona first-timer \
|
|
80
|
-
--start "https://your-site.com" \
|
|
81
|
-
--goal "complete checkout"
|
|
82
|
-
```
|
|
62
|
+
**Metrics:** CTA capture rate, value prop salience, distractor ratio, quality score (0-100), entropy.
|
|
83
63
|
|
|
84
64
|
---
|
|
85
65
|
|
|
86
|
-
##
|
|
66
|
+
## AI Friendliness Suite
|
|
87
67
|
|
|
88
|
-
|
|
68
|
+
Five tools to make your site ready for the AI agent era:
|
|
89
69
|
|
|
90
|
-
|
|
|
91
|
-
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
70
|
+
| Tool | What It Does |
|
|
71
|
+
|------|-------------|
|
|
72
|
+
| `agent_ready_audit` | Score site on findability, stability, accessibility, semantics (A-F grade) |
|
|
73
|
+
| `ai_benchmark` | Compare AI-friendliness across competitor URLs |
|
|
74
|
+
| `webmcp_ready_audit` | Audit MCP server for WebMCP compatibility |
|
|
75
|
+
| `remediation_patches` | Generate actionable code fixes for audit findings |
|
|
76
|
+
| `llms_txt_generate` | Generate AI-readable llms.txt site description |
|
|
96
77
|
|
|
97
|
-
|
|
78
|
+
```bash
|
|
79
|
+
npx cbrowser agent-ready-audit "https://your-site.com" --html
|
|
80
|
+
npx cbrowser ai-benchmark "https://site-a.com,https://site-b.com"
|
|
81
|
+
```
|
|
98
82
|
|
|
99
83
|
---
|
|
100
84
|
|
|
101
85
|
## Cognitive User Simulation
|
|
102
86
|
|
|
103
|
-
|
|
87
|
+
**26 research-backed cognitive traits + 10 motivational values** model how real users think, struggle, and give up:
|
|
104
88
|
|
|
105
89
|
| Trait | Research Basis | What It Models |
|
|
106
90
|
|-------|---------------|----------------|
|
|
@@ -115,82 +99,93 @@ CBrowser models **25 research-backed cognitive traits** across 6 tiers to simula
|
|
|
115
99
|
| **Social Proof** | Cialdini (2001) | Influence of reviews, ratings, popularity indicators |
|
|
116
100
|
| **FOMO** | Przybylski et al. (2013) | Fear of missing out; urgency and scarcity responses |
|
|
117
101
|
|
|
118
|
-
*See [Trait Index](https://
|
|
102
|
+
*See [Trait Index](https://cbrowser.ai/docs/Trait-Index) for all 26 traits including: Persistence, Resilience, Curiosity, Change Blindness, Anchoring Bias, Time Horizon, Attribution Style, Metacognitive Planning, Procedural Fluency, Transfer Learning, Authority Sensitivity, Emotional Contagion, Mental Model Rigidity, Interrupt Recovery, Reading Tendency, and Site Familiarity.*
|
|
119
103
|
|
|
120
|
-
|
|
104
|
+
**Full documentation:** [Research Methodology](https://cbrowser.ai/docs/Research-Methodology) · [Trait Index](https://cbrowser.ai/docs/Trait-Index) · [Bibliography](https://cbrowser.ai/docs/Bibliography)
|
|
121
105
|
|
|
122
|
-
|
|
106
|
+
### 17 Built-in Personas
|
|
123
107
|
|
|
124
|
-
|
|
108
|
+
**6 general:** first-timer, power-user, mobile-user, screen-reader-user, elderly-user, impatient-user
|
|
125
109
|
|
|
126
|
-
|
|
110
|
+
**11 accessibility:** motor-impairment-tremor, low-vision-magnified, cognitive-adhd, dyslexic-user, deaf-user, elderly-low-vision, color-blind-deuteranopia, autism-spectrum, intellectual-disability, aphasia-receptive, dyscalculia
|
|
127
111
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
Reason: Patience depleted (0.08) - "This is taking too long..."
|
|
132
|
-
Friction points:
|
|
133
|
-
1. Password requirements unclear (step 4)
|
|
134
|
-
2. Form validation error not visible (step 6)
|
|
135
|
-
```
|
|
112
|
+
### Values System
|
|
113
|
+
|
|
114
|
+
Beyond cognitive traits, CBrowser models **10 motivational values** from three psychological frameworks:
|
|
136
115
|
|
|
137
|
-
|
|
116
|
+
| Framework | Research Basis |
|
|
117
|
+
|-----------|---------------|
|
|
118
|
+
| **Schwartz's Universal Values** | Schwartz (1992) — 10 core values: Power, Achievement, Hedonism, Stimulation, Self-Direction, Universalism, Benevolence, Tradition, Conformity, Security |
|
|
119
|
+
| **Self-Determination Theory** | Deci & Ryan (1985) — Autonomy, Competence, Relatedness |
|
|
120
|
+
| **Maslow's Hierarchy** | Maslow (1943) — 5 need levels |
|
|
138
121
|
|
|
139
|
-
|
|
122
|
+
See [Values Framework](https://cbrowser.ai/docs/Values-Framework) for full documentation.
|
|
123
|
+
|
|
124
|
+
### Custom Persona Builder
|
|
140
125
|
|
|
141
126
|
```bash
|
|
142
127
|
# Interactive questionnaire (8 core traits)
|
|
143
128
|
npx cbrowser persona-questionnaire start
|
|
144
129
|
|
|
145
|
-
# Comprehensive questionnaire (all
|
|
130
|
+
# Comprehensive questionnaire (all 26 traits)
|
|
146
131
|
npx cbrowser persona-questionnaire start --comprehensive --name "my-tester"
|
|
147
132
|
|
|
148
|
-
#
|
|
149
|
-
npx cbrowser persona-
|
|
150
|
-
|
|
151
|
-
# List all available traits
|
|
152
|
-
npx cbrowser persona-questionnaire list-traits
|
|
133
|
+
# From a description — AI generates trait values
|
|
134
|
+
npx cbrowser persona-create "A 68-year-old retiree who just got their first smartphone"
|
|
153
135
|
```
|
|
154
136
|
|
|
155
|
-
|
|
137
|
+
### Abandonment Detection
|
|
156
138
|
|
|
157
|
-
|
|
139
|
+
The simulation stops when a realistic user would give up:
|
|
158
140
|
|
|
159
|
-
|
|
141
|
+
```bash
|
|
142
|
+
⚠️ ABANDONED after 8 steps
|
|
143
|
+
Reason: Patience depleted (0.08) - "This is taking too long..."
|
|
144
|
+
Friction points:
|
|
145
|
+
1. Password requirements unclear (step 4)
|
|
146
|
+
2. Form validation error not visible (step 6)
|
|
147
|
+
```
|
|
160
148
|
|
|
161
|
-
|
|
162
|
-
|-----------|---------------|----------------|
|
|
163
|
-
| **Schwartz's Universal Values** | Schwartz (1992) | 10 core human values: Power, Achievement, Hedonism, Stimulation, Self-Direction, Universalism, Benevolence, Tradition, Conformity, Security |
|
|
164
|
-
| **Self-Determination Theory** | Deci & Ryan (1985) | Autonomy, Competence, and Relatedness needs that drive intrinsic motivation |
|
|
165
|
-
| **Maslow's Hierarchy** | Maslow (1943) | 5 need levels from Physiological to Self-Actualization |
|
|
149
|
+
---
|
|
166
150
|
|
|
167
|
-
|
|
151
|
+
## Accessibility Empathy Testing
|
|
168
152
|
|
|
169
|
-
|
|
170
|
-
# Look up a persona's values profile
|
|
171
|
-
npx cbrowser persona-values power-user
|
|
153
|
+
Simulate how users with disabilities experience your site:
|
|
172
154
|
|
|
173
|
-
|
|
155
|
+
```bash
|
|
156
|
+
npx cbrowser empathy-audit "https://your-site.com" \
|
|
157
|
+
--goal "complete signup" \
|
|
158
|
+
--disabilities "motor-impairment-tremor" \
|
|
159
|
+
--html
|
|
174
160
|
```
|
|
175
161
|
|
|
176
|
-
|
|
162
|
+
---
|
|
177
163
|
|
|
178
|
-
|
|
164
|
+
## Constitutional AI Safety
|
|
179
165
|
|
|
180
|
-
|
|
181
|
-
|----------|----------------------|
|
|
182
|
-
| **Novice** | High Security, high Conformity, low Self-Direction |
|
|
183
|
-
| **Professional** | High Achievement, high Competence, high Self-Direction |
|
|
184
|
-
| **Elderly** | High Tradition, high Security, moderate Benevolence |
|
|
185
|
-
| **Accessibility** | High Universalism, variable by specific disability |
|
|
166
|
+
AI agents need boundaries. CBrowser classifies every action by risk level:
|
|
186
167
|
|
|
187
|
-
|
|
168
|
+
| Zone | Examples | Behavior |
|
|
169
|
+
|------|----------|----------|
|
|
170
|
+
| 🟢 **Green** | Navigate, read, screenshot | Auto-execute |
|
|
171
|
+
| 🟡 **Yellow** | Click buttons, fill forms | Log and proceed |
|
|
172
|
+
| 🔴 **Red** | Submit, delete, purchase | Requires verification |
|
|
173
|
+
| ⬛ **Black** | Bypass auth, inject scripts | Never executes |
|
|
188
174
|
|
|
189
175
|
---
|
|
190
176
|
|
|
191
|
-
##
|
|
177
|
+
## Site Knowledge System
|
|
192
178
|
|
|
193
|
-
|
|
179
|
+
CBrowser learns your site over time:
|
|
180
|
+
|
|
181
|
+
- **Page Understanding** — DOM analysis, page type classification, available affordances
|
|
182
|
+
- **Site Model Learning** — Persistent knowledge graph across sessions
|
|
183
|
+
- **Cross-Session Profiles** — AES-256-GCM encrypted cookie/state profiles
|
|
184
|
+
- **Goal Decomposition** — Sub-goal trees with fallback strategies
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Natural Language Testing
|
|
194
189
|
|
|
195
190
|
```txt
|
|
196
191
|
# Test: Checkout Flow
|
|
@@ -205,38 +200,24 @@ verify url contains "/confirmation"
|
|
|
205
200
|
|
|
206
201
|
```bash
|
|
207
202
|
npx cbrowser test-suite checkout-test.txt --html
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
### Self-Healing Test Repair
|
|
211
|
-
|
|
212
|
-
When tests break due to site changes:
|
|
213
203
|
|
|
214
|
-
|
|
204
|
+
# Auto-repair broken tests
|
|
215
205
|
npx cbrowser repair-tests broken-test.txt --auto-apply --verify
|
|
216
206
|
```
|
|
217
207
|
|
|
218
|
-
CBrowser analyzes failures, generates alternative selectors, and repairs tests automatically.
|
|
219
|
-
|
|
220
208
|
---
|
|
221
209
|
|
|
222
|
-
## Visual Testing
|
|
223
|
-
|
|
224
|
-
### AI Visual Regression
|
|
225
|
-
|
|
226
|
-
Semantic comparison—understands what changed, not just pixel differences:
|
|
210
|
+
## Visual Testing
|
|
227
211
|
|
|
228
212
|
```bash
|
|
213
|
+
# AI visual regression
|
|
229
214
|
npx cbrowser ai-visual capture "https://your-site.com" --name homepage
|
|
230
215
|
npx cbrowser ai-visual test "https://staging.your-site.com" homepage --html
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Cross-Browser & Responsive
|
|
234
216
|
|
|
235
|
-
|
|
236
|
-
# Compare Chrome, Firefox, Safari rendering
|
|
217
|
+
# Cross-browser (Chrome, Firefox, Safari)
|
|
237
218
|
npx cbrowser cross-browser "https://your-site.com" --html
|
|
238
219
|
|
|
239
|
-
#
|
|
220
|
+
# Responsive (mobile, tablet, desktop)
|
|
240
221
|
npx cbrowser responsive "https://your-site.com" --html
|
|
241
222
|
|
|
242
223
|
# A/B comparison (staging vs production)
|
|
@@ -245,22 +226,7 @@ npx cbrowser ab "https://staging.your-site.com" "https://your-site.com" --html
|
|
|
245
226
|
|
|
246
227
|
---
|
|
247
228
|
|
|
248
|
-
## UX
|
|
249
|
-
|
|
250
|
-
### Agent-Ready Audit
|
|
251
|
-
|
|
252
|
-
Analyze any website for AI-agent friendliness:
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
npx cbrowser agent-ready-audit "https://your-site.com" --html
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
Returns:
|
|
259
|
-
- **Findability score** — Can agents locate elements? (ARIA labels, semantic HTML)
|
|
260
|
-
- **Stability score** — Will selectors break? (hidden inputs, overlays)
|
|
261
|
-
- **Letter grade (A-F)** with prioritized remediation and code examples
|
|
262
|
-
|
|
263
|
-
### Competitive UX Benchmark
|
|
229
|
+
## Competitive UX Benchmark
|
|
264
230
|
|
|
265
231
|
Run identical cognitive journeys across your site and competitors:
|
|
266
232
|
|
|
@@ -272,18 +238,21 @@ npx cbrowser competitive-benchmark \
|
|
|
272
238
|
--html
|
|
273
239
|
```
|
|
274
240
|
|
|
275
|
-
|
|
241
|
+
---
|
|
276
242
|
|
|
277
|
-
|
|
243
|
+
## Geo Proxy
|
|
244
|
+
|
|
245
|
+
Test from 12 global regions via residential proxies:
|
|
278
246
|
|
|
279
247
|
```bash
|
|
280
|
-
npx cbrowser
|
|
281
|
-
--
|
|
282
|
-
--
|
|
283
|
-
--
|
|
248
|
+
npx cbrowser cognitive-journey \
|
|
249
|
+
--start "https://your-site.com" \
|
|
250
|
+
--persona first-timer \
|
|
251
|
+
--goal "sign up" \
|
|
252
|
+
--geo-region uk
|
|
284
253
|
```
|
|
285
254
|
|
|
286
|
-
**
|
|
255
|
+
**Regions:** `us-west`, `us-east`, `us-central`, `uk`, `germany`, `france`, `japan`, `australia`, `brazil`, `india`, `canada`, `singapore`
|
|
287
256
|
|
|
288
257
|
---
|
|
289
258
|
|
|
@@ -293,15 +262,13 @@ CBrowser runs as an MCP server for Claude Desktop and claude.ai.
|
|
|
293
262
|
|
|
294
263
|
### Remote MCP (claude.ai)
|
|
295
264
|
|
|
296
|
-
**Public Demo Server** (rate-limited
|
|
265
|
+
**Public Demo Server** (rate-limited):
|
|
297
266
|
```
|
|
298
267
|
https://demo.cbrowser.ai/mcp
|
|
299
268
|
```
|
|
300
269
|
|
|
301
270
|
Deploy your own: see [Remote MCP Server Guide](https://cbrowser.ai/docs/Remote-MCP-Server)
|
|
302
271
|
|
|
303
|
-
**v18.13.0+:** Screenshots automatically compress to JPEG in remote mode to stay under claude.ai's 200KB tool response limit. Compression is adaptive (quality 85→25, scales down if needed).
|
|
304
|
-
|
|
305
272
|
### Local MCP (Claude Desktop)
|
|
306
273
|
|
|
307
274
|
```json
|
|
@@ -315,19 +282,50 @@ Deploy your own: see [Remote MCP Server Guide](https://cbrowser.ai/docs/Remote-M
|
|
|
315
282
|
}
|
|
316
283
|
```
|
|
317
284
|
|
|
318
|
-
###
|
|
285
|
+
### 108 MCP Tools
|
|
286
|
+
|
|
287
|
+
| Category | Tools | Count |
|
|
288
|
+
|----------|-------|-------|
|
|
289
|
+
| **Navigation** | `navigate`, `screenshot`, `scroll`, `extract`, `analyze_page`, `find_element_by_intent` | 6 |
|
|
290
|
+
| **Interaction** | `click`, `smart_click`, `fill`, `dismiss_overlay` | 4 |
|
|
291
|
+
| **Cognitive Core** | `cognitive_journey_init`, `cognitive_journey_update_state`, `cognitive_journey_autonomous`, `cognitive_effort`, `cognitive_load_estimate`, `site_cognitive_assessment` | 6 |
|
|
292
|
+
| **Cognitive Transport** | `cognitive_distance`, `cognitive_interpolate`, `cognitive_coverage`, `transport_map` | 4 |
|
|
293
|
+
| **Attention & Visual Story** | `attention_analysis`, `attention_compare`, `visual_cognitive_story` | 3 |
|
|
294
|
+
| **Persona** | `list_cognitive_personas`, `compare_personas`, `persona_create_*`, `persona_questionnaire_*`, `persona_trait_lookup`, `persona_values_*` | 15 |
|
|
295
|
+
| **Testing** | `nl_test_inline`, `nl_test_file`, `generate_tests`, `repair_test`, `detect_flaky_tests`, `coverage_map` | 6 |
|
|
296
|
+
| **Visual Testing** | `visual_baseline`, `visual_regression`, `responsive_test`, `cross_browser_test`, `cross_browser_diff`, `ab_comparison` | 6 |
|
|
297
|
+
| **Site Intelligence** | `page_understand`, `site_model_query`, `site_model_status`, `site_profile_*` | 6 |
|
|
298
|
+
| **AI Friendliness** | `agent_ready_audit`, `ai_benchmark`, `webmcp_ready_audit`, `remediation_patches`, `llms_txt_generate`, `llms_txt_validate`, `llms_txt_diff`, `structured_data_suggest` | 8 |
|
|
299
|
+
| **Analysis** | `hunt_bugs`, `chaos_test`, `competitive_benchmark`, `empathy_audit` | 4 |
|
|
300
|
+
| **Performance** | `perf_baseline`, `perf_regression` | 2 |
|
|
301
|
+
| **Marketing** *(Enterprise)* | `marketing_campaign_*`, `marketing_audience_discover`, `marketing_compete`, `marketing_funnel_analyze`, `marketing_influence_matrix`, `marketing_lever_analysis`, `marketing_personas_list`, `list_influence_patterns` | 11 |
|
|
302
|
+
| **Security** | `security_audit`, `web_security_scan` | 2 |
|
|
303
|
+
| **Stealth** *(Enterprise)* | `stealth_enable`, `stealth_disable`, `stealth_status`, `stealth_check`, `stealth_diagnose`, `cloudflare_detect`, `cloudflare_wait` | 7 |
|
|
304
|
+
| **Session & Browser** | `save_session`, `load_session`, `delete_session`, `list_sessions`, `list_baselines`, `browser_health`, `browser_recover`, `reset_browser`, `heal_stats`, `status` | 10 |
|
|
305
|
+
| **Utility** | `assert`, `ask_user`, `set_api_key`, `api_key_status`, `clear_api_key`, `get_api_key_prompt` | 6 |
|
|
306
|
+
|
|
307
|
+
### Token Cost & Selective Loading
|
|
319
308
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
309
|
+
108 MCP tools consume ~45,000 tokens in LLM context. For cost-sensitive use, load selectively:
|
|
310
|
+
|
|
311
|
+
```typescript
|
|
312
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
313
|
+
import {
|
|
314
|
+
registerNavigationTools,
|
|
315
|
+
registerInteractionTools,
|
|
316
|
+
registerExtractionTools,
|
|
317
|
+
} from "cbrowser/mcp-tools";
|
|
318
|
+
|
|
319
|
+
const server = new McpServer({ name: "my-app", version: "1.0.0" });
|
|
320
|
+
const context = { getBrowser: () => browser };
|
|
321
|
+
|
|
322
|
+
// ~5,000 tokens instead of ~45,000
|
|
323
|
+
registerNavigationTools(server, context);
|
|
324
|
+
registerInteractionTools(server, context);
|
|
325
|
+
registerExtractionTools(server, context);
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Categories:** `navigation`, `interaction`, `extraction`, `assertion`, `analysis`, `session`, `healing`, `visualTesting`, `testing`, `bugAnalysis`, `personaComparison`, `cognitive`, `cognitiveTransport`, `attention`, `siteKnowledge`, `values`, `performance`, `audit`, `browserManagement`, `security`, `marketing`, `remediation`, `llmsTxt`.
|
|
331
329
|
|
|
332
330
|
---
|
|
333
331
|
|
|
@@ -344,7 +342,7 @@ jobs:
|
|
|
344
342
|
runs-on: ubuntu-latest
|
|
345
343
|
steps:
|
|
346
344
|
- uses: actions/checkout@v4
|
|
347
|
-
- uses: alexandriashai/cbrowser@
|
|
345
|
+
- uses: alexandriashai/cbrowser@v18
|
|
348
346
|
with:
|
|
349
347
|
test-file: tests/e2e/checkout.txt
|
|
350
348
|
sensitivity: strict
|
|
@@ -359,20 +357,6 @@ docker run --rm -v $(pwd)/tests:/work/tests ghcr.io/alexandriashai/cbrowser:late
|
|
|
359
357
|
|
|
360
358
|
---
|
|
361
359
|
|
|
362
|
-
## Modular Architecture
|
|
363
|
-
|
|
364
|
-
Tree-shakeable imports for minimal bundle size:
|
|
365
|
-
|
|
366
|
-
```typescript
|
|
367
|
-
// Import specific modules
|
|
368
|
-
import { runVisualRegression, runCrossBrowserTest } from 'cbrowser/visual';
|
|
369
|
-
import { runNLTestSuite, detectFlakyTests, repairTest } from 'cbrowser/testing';
|
|
370
|
-
import { huntBugs, runChaosTest, findElementByIntent } from 'cbrowser/analysis';
|
|
371
|
-
import { capturePerformanceBaseline, detectPerformanceRegression } from 'cbrowser/performance';
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
---
|
|
375
|
-
|
|
376
360
|
## API Reference
|
|
377
361
|
|
|
378
362
|
```typescript
|
|
@@ -380,14 +364,14 @@ import { CBrowser } from 'cbrowser';
|
|
|
380
364
|
|
|
381
365
|
const browser = new CBrowser({
|
|
382
366
|
headless: true,
|
|
383
|
-
persistent: true,
|
|
367
|
+
persistent: true,
|
|
384
368
|
});
|
|
385
369
|
|
|
386
370
|
await browser.navigate('https://example.com');
|
|
387
371
|
|
|
388
372
|
const result = await browser.smartClick('Sign In', {
|
|
389
373
|
maxRetries: 3,
|
|
390
|
-
minConfidence: 0.8
|
|
374
|
+
minConfidence: 0.8,
|
|
391
375
|
});
|
|
392
376
|
|
|
393
377
|
const assertion = await browser.assert("page contains 'Welcome'");
|
|
@@ -398,137 +382,71 @@ if (!assertion.passed) {
|
|
|
398
382
|
await browser.close();
|
|
399
383
|
```
|
|
400
384
|
|
|
385
|
+
### Modular Imports
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
import { runVisualRegression, runCrossBrowserTest } from 'cbrowser/visual';
|
|
389
|
+
import { runNLTestSuite, detectFlakyTests, repairTest } from 'cbrowser/testing';
|
|
390
|
+
import { huntBugs, runChaosTest, findElementByIntent } from 'cbrowser/analysis';
|
|
391
|
+
import { capturePerformanceBaseline, detectPerformanceRegression } from 'cbrowser/performance';
|
|
392
|
+
```
|
|
393
|
+
|
|
401
394
|
---
|
|
402
395
|
|
|
403
396
|
## Configuration
|
|
404
397
|
|
|
405
|
-
### Environment Variables
|
|
406
|
-
|
|
407
398
|
| Variable | Default | Description |
|
|
408
399
|
|----------|---------|-------------|
|
|
409
400
|
| `CBROWSER_DATA_DIR` | `~/.cbrowser` | Data storage directory |
|
|
410
401
|
| `CBROWSER_HEADLESS` | `true` | Run headless |
|
|
411
402
|
| `CBROWSER_BROWSER` | `chromium` | Browser engine |
|
|
412
403
|
| `CBROWSER_TIMEOUT` | `30000` | Default timeout (ms) |
|
|
413
|
-
| `CBROWSER_PROXY` | — | Proxy URL
|
|
414
|
-
| `CBROWSER_PROXY_SERVER` | — | Proxy server (alternative to full URL) |
|
|
415
|
-
| `CBROWSER_PROXY_USERNAME` | — | Proxy username (with `CBROWSER_PROXY_SERVER`) |
|
|
416
|
-
| `CBROWSER_PROXY_PASSWORD` | — | Proxy password (with `CBROWSER_PROXY_SERVER`) |
|
|
417
|
-
|
|
418
|
-
### API Key (for Cognitive Journeys)
|
|
404
|
+
| `CBROWSER_PROXY` | — | Proxy URL |
|
|
419
405
|
|
|
420
406
|
```bash
|
|
421
|
-
npx cbrowser config set-api-key
|
|
407
|
+
npx cbrowser config set-api-key # Required for cognitive journeys
|
|
422
408
|
```
|
|
423
409
|
|
|
424
|
-
### Token Cost & Selective Loading
|
|
425
|
-
|
|
426
|
-
CBrowser's 91 MCP tools consume approximately **~38,000 tokens** when loaded into an LLM context. For cost-sensitive applications, use selective tool loading:
|
|
427
|
-
|
|
428
|
-
**Tool Categories (for programmatic use):**
|
|
429
|
-
|
|
430
|
-
| Category | Tools | Use Case |
|
|
431
|
-
|----------|-------|----------|
|
|
432
|
-
| `navigation` | navigate, screenshot, scroll | Basic browsing |
|
|
433
|
-
| `interaction` | click, fill, smart_click | Form automation |
|
|
434
|
-
| `extraction` | extract, analyze_page | Data scraping |
|
|
435
|
-
| `assertion` | assert | Testing validation |
|
|
436
|
-
| `accessibility` | empathy_audit, hunt_bugs | A11y testing |
|
|
437
|
-
| `cognitive` | cognitive_journey_* | User simulation |
|
|
438
|
-
| `visual` | visual_baseline, visual_regression | Visual testing |
|
|
439
|
-
| `performance` | perf_baseline, perf_regression | Performance monitoring |
|
|
440
|
-
| `session` | save_session, load_session | State management |
|
|
441
|
-
|
|
442
|
-
**Programmatic selective loading:**
|
|
443
|
-
|
|
444
|
-
```typescript
|
|
445
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
446
|
-
import {
|
|
447
|
-
registerNavigationTools,
|
|
448
|
-
registerInteractionTools,
|
|
449
|
-
registerExtractionTools,
|
|
450
|
-
} from "cbrowser/mcp-tools";
|
|
451
|
-
|
|
452
|
-
const server = new McpServer({ name: "my-app", version: "1.0.0" });
|
|
453
|
-
const context = { getBrowser: () => browser };
|
|
454
|
-
|
|
455
|
-
// Only load what you need (~5,000 tokens instead of ~38,000)
|
|
456
|
-
registerNavigationTools(server, context);
|
|
457
|
-
registerInteractionTools(server, context);
|
|
458
|
-
registerExtractionTools(server, context);
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
**Full category list:** `navigation`, `interaction`, `extraction`, `assertion`, `analysis`, `session`, `healing`, `visualTesting`, `testing`, `bugAnalysis`, `personaComparison`, `cognitive`, `values`, `performance`, `audit`, `browserManagement`, `security`, `marketing`, `remediation`, `llmsTxt`.
|
|
462
|
-
|
|
463
|
-
---
|
|
464
|
-
|
|
465
|
-
## Examples
|
|
466
|
-
|
|
467
|
-
| Example | Description |
|
|
468
|
-
|---------|-------------|
|
|
469
|
-
| [`examples/basic-usage.ts`](examples/basic-usage.ts) | Navigation, extraction, sessions |
|
|
470
|
-
| [`examples/cognitive-journey.ts`](examples/cognitive-journey.ts) | Cognitive simulation with personas |
|
|
471
|
-
| [`examples/visual-testing.ts`](examples/visual-testing.ts) | Visual regression, cross-browser, A/B |
|
|
472
|
-
| [`examples/workflows/`](examples/workflows/) | E2E recipes for common scenarios |
|
|
473
|
-
| [`examples/ci-cd/`](examples/ci-cd/) | GitHub Actions, GitLab CI setup |
|
|
474
|
-
|
|
475
410
|
---
|
|
476
411
|
|
|
477
412
|
## Enterprise Edition
|
|
478
413
|
|
|
479
|
-
[CBrowser Enterprise](https://
|
|
414
|
+
[CBrowser Enterprise](https://cbrowser.ai/enterprise) adds:
|
|
480
415
|
|
|
481
416
|
| Feature | Description |
|
|
482
417
|
|---------|-------------|
|
|
483
|
-
| **Marketing Suite** |
|
|
418
|
+
| **Marketing Suite** | Test which design/copy/UX patterns influence which buyer segments |
|
|
484
419
|
| **8 Marketing Personas** | B2B (enterprise-buyer, startup-founder, procurement-manager, technical-evaluator) + Consumer (impulse-shopper, price-researcher, loyal-customer, skeptical-first-timer) |
|
|
485
420
|
| **Influence Matrix** | Conversion effectiveness for variant × persona combinations |
|
|
486
421
|
| **Lever Analysis** | Which psychological persuasion patterns work for each persona |
|
|
487
422
|
| **Constitutional Stealth** | Full stealth measures for authorized penetration testing |
|
|
423
|
+
| **Web Security Scan** | OWASP-based security scanning |
|
|
488
424
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
```bash
|
|
492
|
-
# Start Enterprise MCP server
|
|
493
|
-
npx cbrowser-enterprise mcp-server
|
|
494
|
-
|
|
495
|
-
# List marketing personas
|
|
496
|
-
npx cbrowser-enterprise marketing personas list --category b2b
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
See [Marketing Suite Wiki](https://github.com/alexandriashai/cbrowser/wiki/Marketing-Suite) for full documentation.
|
|
425
|
+
All 108 MCP tools included with no rate limits.
|
|
500
426
|
|
|
501
427
|
---
|
|
502
428
|
|
|
503
429
|
## License
|
|
504
430
|
|
|
505
|
-
**MIT License** — Free and open source.
|
|
506
|
-
|
|
507
|
-
Use, modify, and distribute freely for any purpose, including commercial and production use. See [LICENSE](LICENSE) for full terms.
|
|
431
|
+
**MIT License** — Free and open source. See [LICENSE](LICENSE).
|
|
508
432
|
|
|
509
433
|
---
|
|
510
434
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
© 2026 Alexandria Eden
|
|
514
|
-
|
|
515
|
-
Contact: [alexandria.shai.eden@gmail.com](mailto:alexandria.shai.eden@gmail.com)
|
|
516
|
-
Website: [cbrowser.ai](https://cbrowser.ai)
|
|
435
|
+
© 2026 Alexandria Eden · [cbrowser.ai](https://cbrowser.ai) · [alexandria.shai.eden@gmail.com](mailto:alexandria.shai.eden@gmail.com)
|
|
517
436
|
|
|
518
437
|
---
|
|
519
438
|
|
|
520
439
|
## Links
|
|
521
440
|
|
|
522
|
-
- **[
|
|
441
|
+
- **[Documentation](https://cbrowser.ai/docs)** — Full docs, guides, API reference
|
|
523
442
|
- [NPM Package](https://www.npmjs.com/package/cbrowser)
|
|
524
|
-
- [GitHub
|
|
443
|
+
- [GitHub](https://github.com/alexandriashai/cbrowser)
|
|
525
444
|
- [Issue Tracker](https://github.com/alexandriashai/cbrowser/issues)
|
|
526
|
-
- [A+ Assessment Report](https://claude.ai/public/artifacts/0cee560d-60b8-44d6-8eec-e674fbfac9c4)
|
|
527
445
|
- [Roadmap](https://cbrowser.ai/docs/Roadmap)
|
|
528
446
|
|
|
529
|
-
### Research
|
|
447
|
+
### Research
|
|
530
448
|
|
|
531
|
-
- [Research Methodology](https://cbrowser.ai/docs/Research-Methodology) — How
|
|
449
|
+
- [Research Methodology](https://cbrowser.ai/docs/Research-Methodology) — How 26 traits were selected and validated
|
|
532
450
|
- [Trait Index](https://cbrowser.ai/docs/Trait-Index) — All cognitive traits with citations
|
|
533
|
-
- [Bibliography](https://cbrowser.ai/docs/Bibliography) —
|
|
534
|
-
- [Persona Index](https://cbrowser.ai/docs/Persona-Index) — All 17
|
|
451
|
+
- [Bibliography](https://cbrowser.ai/docs/Bibliography) — Academic references
|
|
452
|
+
- [Persona Index](https://cbrowser.ai/docs/Persona-Index) — All 17 cognitive + 8 marketing personas
|