Skip to content

Commit 64f288f

Browse files
Merge pull request #5 from etsd-tech/changeset-release/main
Version Packages
2 parents 8e652dd + f5ffb5c commit 64f288f

File tree

7 files changed

+182
-14
lines changed

7 files changed

+182
-14
lines changed

.changeset/config-override-and-improvements.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

mcp-pointer-chrome-extension.zip

34.3 KB
Binary file not shown.

packages/chrome-extension/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# @mcp-pointer/chrome-extension
22

3+
## 0.4.1
4+
5+
### Patch Changes
6+
7+
- e232269: Fix config override and improve UI
8+
9+
- Fix MCP server configuration to override existing configurations by removing before adding
10+
- Add comprehensive tests for config override scenarios
11+
- Update border color to use CSS custom property for better theming
12+
- Fix GitHub Actions badge URLs in README
13+
- Add README copying to npm package in release workflow
14+
315
## 0.4.0
416

517
### Minor Changes

packages/chrome-extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mcp-pointer/chrome-extension",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/etsd-tech/mcp-pointer.git",

packages/server/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# @mcp-pointer/server
22

3+
## 0.4.1
4+
5+
### Patch Changes
6+
7+
- e232269: Fix config override and improve UI
8+
9+
- Fix MCP server configuration to override existing configurations by removing before adding
10+
- Add comprehensive tests for config override scenarios
11+
- Update border color to use CSS custom property for better theming
12+
- Fix GitHub Actions badge URLs in README
13+
- Add README copying to npm package in release workflow
14+
315
## 0.4.0
416

517
### Minor Changes

packages/server/README.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
![MCP Pointer banner](/docs/banner.png)
2+
3+
[![CI](https://github.com/etsd-tech/mcp-pointer/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/etsd-tech/mcp-pointer/actions/workflows/ci.yml)
4+
[![Release](https://github.com/etsd-tech/mcp-pointer/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/etsd-tech/mcp-pointer/actions/workflows/release.yml)
5+
6+
# 👆 MCP Pointer
7+
8+
**Point to browser DOM elements for agentic coding tools via MCP!**
9+
10+
MCP Pointer is a *local* tool combining an MCP Server with a Chrome Extension:
11+
12+
1. **🖥️ MCP Server** (Node.js package) - Bridges between the browser and AI tools via the Model Context Protocol
13+
2. **🌐 Chrome Extension** - Captures DOM element selections in the browser using Option+Click
14+
15+
The extension lets you visually select DOM elements in the browser, and the MCP server makes this **textual context** available to agentic coding tools like Claude Code, Cursor, and Windsurf through standardized MCP tools.
16+
17+
## ✨ Features
18+
19+
- 🎯 **Option+Click Selection** - Simply hold Option (Alt on Windows) and click any element
20+
- 📋 **Complete Element Data** - Text content, CSS classes, HTML attributes, positioning, and styling
21+
- ⚛️ **React Component Detection** - Component names and source files via Fiber (experimental)
22+
- 🔗 **WebSocket Connection** - Real-time communication between browser and AI tools
23+
- 🤖 **MCP Compatible** - Works with Claude Code and other MCP-enabled AI tools
24+
25+
## 🎬 Usage example (video)
26+
27+
https://github.com/user-attachments/assets/98c4adf6-1f05-4c9b-be41-0416ab784e2c
28+
29+
See MCP Pointer in action: Option+Click any element in your browser, then ask your agentic coding tool about it (in this example, Claude Code). The AI gets complete textual context about the selected DOM element including CSS properties, url, selector, and more.
30+
31+
## 🚀 Getting Started
32+
33+
> **Note:** Chrome extension is not yet published on Chrome Web Store. You'll need to build and install it manually for now.
34+
35+
### 1. Configure the MCP Server
36+
37+
Use npx to automatically configure the MCP server with your AI tool:
38+
39+
```bash
40+
# Configure MCP Pointer for your AI tool
41+
npx -y @mcp-pointer/server config claude # Automatically configures Claude Code
42+
npx -y @mcp-pointer/server config cursor # Opens Cursor deeplink for automatic installation
43+
npx -y @mcp-pointer/server config windsurf # Automatically updates Windsurf config file
44+
npx -y @mcp-pointer/server config manual # Shows manual configuration for other tools
45+
```
46+
47+
> **Optional:** You can install globally with `npm install -g @mcp-pointer/server` to use `mcp-pointer` instead of `npx -y @mcp-pointer/server`
48+
49+
### 2. Install Chrome Extension
50+
51+
**Option A: Download from Releases (Recommended)**
52+
53+
1. Go to [GitHub Releases](https://github.com/etsd-tech/mcp-pointer/releases)
54+
2. Download `mcp-pointer-chrome-extension.zip` from the latest release
55+
3. Extract the zip file to a folder on your computer
56+
4. Open Chrome → Settings → Extensions → Developer mode (toggle ON)
57+
5. Click "Load unpacked" and select the extracted folder
58+
6. The MCP Pointer extension should appear in your extensions list
59+
60+
**Option B: Build from Source**
61+
62+
1. Clone this repository
63+
2. Follow the build instructions in [CONTRIBUTING.md](./CONTRIBUTING.md)
64+
3. Open Chrome → Settings → Extensions → Developer mode (toggle ON)
65+
4. Click "Load unpacked" and select the `packages/chrome-extension/dist/` folder
66+
67+
### 3. Start Using
68+
69+
1. **Navigate to any webpage**
70+
2. **Option+Click** any element to select it
71+
3. **Ask your AI** to analyze the targeted element!
72+
73+
Your AI tool will automatically start the MCP server when needed using the `npx -y @mcp-pointer/server start` command.
74+
75+
**Available AI Tools:**
76+
- `getTargetedElement` - Get comprehensive info about the selected element
77+
- `clearTargetedElement` - Clear the current selection
78+
- `getPointerStatus` - Check system status and statistics
79+
80+
## 🎯 How It Works
81+
82+
1. **Element Selection**: Content script captures Option+Click events
83+
2. **Data Extraction**: Analyzes element structure, CSS, and framework info
84+
3. **WebSocket Transport**: Sends data to MCP server on port 7007
85+
4. **MCP Protocol**: Makes data available to AI tools via MCP tools
86+
5. **AI Analysis**: Your assistant can now see and analyze the element!
87+
88+
## 🎨 Element Data Extracted
89+
90+
- **Basic Info**: Tag name, ID, classes, text content
91+
- **CSS Properties**: Display, position, colors, dimensions
92+
- **Component Info**: React component names and source files (experimental)
93+
- **Attributes**: All HTML attributes
94+
- **Position**: Exact coordinates and dimensions
95+
- **Source Hints**: File paths and component origins
96+
97+
## 🔍 Framework Support
98+
99+
- ⚛️ **React** - Component names and source files via Fiber (experimental)
100+
- 📦 **Generic HTML/CSS/JS** - Full support for any web content
101+
- 🔮 **Planned** - Vue component detection (PRs appreciated)
102+
103+
## 🌐 Browser Support
104+
105+
-**Chrome** - Full support (tested)
106+
- 🟡 **Chromium-based browsers** - Should work (Edge, Brave, Arc - load built extension manually)
107+
108+
## 🐛 Troubleshooting
109+
110+
### Extension Not Connecting
111+
112+
1. Make sure MCP server is running: `npx -y @mcp-pointer/server start`
113+
2. Check browser console for WebSocket errors
114+
3. Verify port 7007 is not blocked by firewall
115+
116+
### MCP Tools Not Available
117+
118+
1. Restart your AI assistant after installing
119+
2. Check MCP configuration: `mcp-pointer config <your-tool>`
120+
3. Verify server is running: `npx -y @mcp-pointer/server start`
121+
122+
### Elements Not Highlighting
123+
124+
1. Some pages block content scripts (chrome://, etc.)
125+
2. Try refreshing the page
126+
3. Check if targeting is enabled (click extension icon)
127+
128+
## 🚀 Roadmap
129+
130+
### 1. **Dynamic Context Control**
131+
- LLM-configurable detail levels (visible text only, all text, CSS levels)
132+
- Progressive refinement options
133+
- Token-conscious data fetching
134+
135+
### 2. **Enhanced Framework Support**
136+
- Vue.js component detection
137+
- Better React support (React 19 removed `_debugSource`, affecting source mapping in dev builds)
138+
139+
### 3. **Visual Content Support** (for multimodal LLMs)
140+
- Base64 encoding for images (img tags)
141+
- Screenshot capture of selected elements
142+
- Separate MCP tool for direct visual content retrieval
143+
144+
## 📝 License
145+
146+
MIT License - see LICENSE file for details
147+
148+
## 🤝 Contributing
149+
150+
We welcome contributions! Please see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide for development setup and guidelines.
151+
152+
---
153+
154+
**Made with ❤️ for AI-powered web development**
155+
156+
*Now your AI can analyze any element you point at! 👆*

packages/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mcp-pointer/server",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"description": "MCP Server for DOM element pointing - WebSocket bridge for element targeting",
55
"repository": {
66
"type": "git",

0 commit comments

Comments
 (0)