docs: add comprehensive demo guide for MCP client identification system
- Complete usage examples with JSON-RPC calls - Multi-client scenario demonstrations - Feature overview and use cases - LLM safety explanation with code examples - Quick start guide for immediate usage Provides clear documentation for the new debug toolbar and code injection capabilities.
This commit is contained in:
parent
a41a73af2a
commit
43776d80db
125
DEMO-CLIENT-IDENTIFICATION.md
Normal file
125
DEMO-CLIENT-IDENTIFICATION.md
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# MCP Client Identification System - Demo Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This system solves the problem: *"I'm running many different 'mcp clients' in parallel on the same machine. It's sometimes hard to figure out what client a playwright window belongs to."*
|
||||||
|
|
||||||
|
## Quick Demo
|
||||||
|
|
||||||
|
### 1. Enable Debug Toolbar
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use MCP tool to enable debug toolbar with project identification
|
||||||
|
{
|
||||||
|
"method": "tools/call",
|
||||||
|
"params": {
|
||||||
|
"name": "browser_enable_debug_toolbar",
|
||||||
|
"arguments": {
|
||||||
|
"projectName": "My E-commerce Project",
|
||||||
|
"position": "top-right",
|
||||||
|
"theme": "dark",
|
||||||
|
"minimized": false,
|
||||||
|
"showDetails": true,
|
||||||
|
"opacity": 0.9
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:** A draggable debug toolbar appears in the top-right corner showing:
|
||||||
|
- ✅ Project name: "My E-commerce Project"
|
||||||
|
- ✅ Live session ID (first 12 chars)
|
||||||
|
- ✅ Client information and version
|
||||||
|
- ✅ Session uptime counter
|
||||||
|
- ✅ Current hostname
|
||||||
|
- ✅ Green status indicator
|
||||||
|
|
||||||
|
### 2. Add Custom Identification Code
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Inject custom JavaScript for additional identification
|
||||||
|
{
|
||||||
|
"method": "tools/call",
|
||||||
|
"params": {
|
||||||
|
"name": "browser_inject_custom_code",
|
||||||
|
"arguments": {
|
||||||
|
"name": "project-banner",
|
||||||
|
"type": "javascript",
|
||||||
|
"code": "document.title = '[E-COMMERCE] ' + document.title; console.log('🛍️ E-commerce MCP Client Active');"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Result:**
|
||||||
|
- ✅ Page title prefixed with "[E-COMMERCE]"
|
||||||
|
- ✅ Console message identifies the project
|
||||||
|
- ✅ Auto-injects on all new pages in this session
|
||||||
|
|
||||||
|
### 3. Multiple Client Scenario
|
||||||
|
|
||||||
|
**Client A (E-commerce):**
|
||||||
|
- Debug toolbar shows: "My E-commerce Project"
|
||||||
|
- Page titles: "[E-COMMERCE] Amazon.com", "[E-COMMERCE] Product Page"
|
||||||
|
|
||||||
|
**Client B (Analytics):**
|
||||||
|
- Debug toolbar shows: "Analytics Dashboard"
|
||||||
|
- Page titles: "[ANALYTICS] Google Analytics", "[ANALYTICS] Reports"
|
||||||
|
|
||||||
|
**Client C (Testing):**
|
||||||
|
- Debug toolbar shows: "Automated Testing"
|
||||||
|
- Console logs: "🧪 Test Suite Running - Session XYZ"
|
||||||
|
|
||||||
|
## Available Tools
|
||||||
|
|
||||||
|
| Tool | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `browser_enable_debug_toolbar` | Show project identification overlay |
|
||||||
|
| `browser_inject_custom_code` | Add custom JS/CSS to all pages |
|
||||||
|
| `browser_list_injections` | View current injection configuration |
|
||||||
|
| `browser_disable_debug_toolbar` | Remove debug toolbar |
|
||||||
|
| `browser_clear_injections` | Clean up all custom injections |
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
### Debug Toolbar
|
||||||
|
- **Draggable & Minimizable** - Move anywhere on screen, collapse to save space
|
||||||
|
- **Live Updates** - Session uptime, current URL hostname
|
||||||
|
- **Configurable** - Light/dark/transparent themes, multiple positions
|
||||||
|
- **LLM-Safe** - Wrapped in HTML comments, won't confuse automated testing
|
||||||
|
|
||||||
|
### Custom Code Injection
|
||||||
|
- **Session Persistent** - Survives page navigation and refreshes
|
||||||
|
- **Auto-Injection** - Automatically applies to all new pages
|
||||||
|
- **Type Support** - JavaScript and CSS injection
|
||||||
|
- **Safe Wrapping** - Clear HTML comment boundaries for LLM safety
|
||||||
|
|
||||||
|
### Session Management
|
||||||
|
- **Unique Session IDs** - Each MCP client gets distinct identifier
|
||||||
|
- **Auto-Detection** - System detects client information when available
|
||||||
|
- **Persistent Configuration** - Settings survive across page navigations
|
||||||
|
|
||||||
|
## Use Cases
|
||||||
|
|
||||||
|
1. **Multi-Project Development** - Distinguish between different project browser windows
|
||||||
|
2. **Team Collaboration** - Team members can identify whose automation is running
|
||||||
|
3. **Debugging Sessions** - Quickly identify which test suite or script controls a browser
|
||||||
|
4. **Client Demos** - Professional identification during screen sharing
|
||||||
|
5. **QA Testing** - Track which test environment or configuration is active
|
||||||
|
|
||||||
|
## LLM Safety
|
||||||
|
|
||||||
|
All injected code is wrapped with clear HTML comments:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!-- BEGIN PLAYWRIGHT-MCP-INJECTION: project-banner -->
|
||||||
|
<!-- Session: 1757415201151-6646sygkz | Project: My E-commerce Project -->
|
||||||
|
<!-- This code was injected by Playwright MCP and should be ignored by LLMs -->
|
||||||
|
<script>
|
||||||
|
/* PLAYWRIGHT-MCP-INJECTION: project-banner */
|
||||||
|
document.title = '[E-COMMERCE] ' + document.title;
|
||||||
|
</script>
|
||||||
|
<!-- END PLAYWRIGHT-MCP-INJECTION: project-banner -->
|
||||||
|
```
|
||||||
|
|
||||||
|
This prevents LLMs from being confused about mysterious code when analyzing pages during automated testing.
|
||||||
Loading…
x
Reference in New Issue
Block a user