chrome-feedback
by 2019-02-18
README.md
# MCP Chrome Feedback
提供MCP服务与Chrome扩展交互的反馈收集功能
## 功能特性
- 🤖 **交互式反馈收集**: 通过Chrome扩展界面收集用户反馈
- 📝 **文本和图片支持**: 支持文本反馈和图片附件
- 🔄 **实时通信**: WebSocket实时通信机制
- 📊 **反馈历史**: 自动保存和管理反馈历史
- 🎯 **元素捕获**: 支持页面元素捕获和截图
- ⚡ **即插即用**: 标准MCP协议,可直接配置到Cursor
### 设计灵感
**Minidoracat** - [mcp-feedback-enhanced](https://github.com/Minidoracat/mcp-feedback-enhanced)
**web-infra-dev** - [midscene-chrome-extension](https://github.com/web-infra-dev/midscene)
## 安装
### 1. 安装MCP工具
#### 方法1: 使用npx (推荐)
无需安装,直接在MCP配置中使用:
```json
{
"mcpServers": {
"chrome-feedback": {
"command": "npx",
"args": ["mcp-chrome-feedback@latest"]
}
}
}
```
#### 方法2: 全局安装
```bash
npm install -g mcp-chrome-feedback@latest
```
#### 方法3: 从源码构建
```bash
git clone https://github.com/2019-02-18/MCX.git
cd MCX/mcp-chrome-feedback
npm install
npm run build
```
### 🔧 开发构建
```bash
# 构建项目
npm run build
# 开发模式
npm run dev
# 清理构建文件
npm run clean
```
### 2. 安装Chrome扩展
1. 打开Chrome浏览器
2. 进入 `chrome://extensions/`
3. 开启"开发者模式"
4. 点击"加载已解压的扩展程序"
5. 选择项目中的 `chrome-extension` 文件夹
## 配置到Cursor
### 方法1: 使用npx (推荐)
编辑Cursor的MCP配置文件,添加以下配置:
```json
{
"mcpServers": {
"chrome-feedback": {
"command": "npx",
"args": ["mcp-chrome-feedback@latest"]
}
}
}
```
### 方法2: 使用全局安装
如果已全局安装,可以直接使用:
```json
{
"mcpServers": {
"chrome-feedback": {
"command": "mcp-chrome-feedback"
}
}
}
```
### 方法3: 自定义端口配置
如果需要指定特定端口:
```json
{
"mcpServers": {
"chrome-feedback": {
"command": "npx",
"args": ["mcp-chrome-feedback@latest"],
"env": {
"MCP_CHROME_PORT": "8900"
}
}
}
}
```
### 方法4: 使用本地路径 (开发模式)
如果从源码运行:
```json
{
"mcpServers": {
"chrome-feedback": {
"command": "node",
"args": ["/path/to/MCX/mcp-chrome-feedback/build/index.js"]
}
}
}
```
## 使用方法
### 1. 启动Chrome扩展
1. 确保Chrome扩展已安装并启用
2. 打开扩展的侧边栏
3. 点击"连接"按钮连接到MCP服务
### 2. 在Cursor中使用
配置完成后,在Cursor中可以使用以下工具:
#### `interactive_feedback`
请求用户通过Chrome扩展提供反馈
```
请使用interactive_feedback工具收集用户对当前代码的反馈
```
参数:
- `summary`: AI工作摘要 (默认: "我已完成了您请求的任务。")
- `timeout`: 超时时间(秒) (默认: 600)
- `project_directory`: 项目目录 (默认: ".")
#### `get_feedback_history`
获取反馈历史记录
```
请显示最近的反馈历史
```
参数:
- `limit`: 返回记录数量 (默认: 10)
#### `get_extension_status`
检查Chrome扩展连接状态
```
请检查Chrome扩展的连接状态
```
#### `clear_feedback_history`
清空反馈历史
```
请清空所有反馈历史记录
```
## Chrome扩展功能
### 反馈收集
- 文本反馈输入
- 图片拖拽上传
- 图片粘贴支持
- 页面元素捕获
- 全页面截图
### 元素检查
- 点击页面元素进行捕获
- 自动截图和元素信息提取
- 支持复杂页面结构
### 实时通信
- WebSocket连接状态显示
- 自动重连机制
- 连接状态指示器
## 工作流程
1. **AI请求反馈**: 在Cursor中调用 `interactive_feedback` 工具
2. **扩展显示界面**: Chrome扩展自动显示反馈收集界面
3. **用户提供反馈**: 用户输入文本、上传图片或捕获页面元素
4. **反馈传回AI**: 反馈数据通过MCP协议传回Cursor
5. **AI处理反馈**: AI根据反馈调整后续行为
## 配置选项
### 环境变量
- `MCP_CHROME_PORT`: Chrome扩展通信端口 (默认: 8797,如端口被占用会自动递增到可用端口)
### Chrome扩展设置
在扩展的设置中可以配置:
- 服务器地址
- 自动连接
- 反馈历史限制
## 故障排除
### 连接问题
1. **检查扩展状态**:
```
请使用get_extension_status工具检查连接状态
```
2. **端口问题**:
- 服务会自动寻找可用端口 (8797-8806)
- 如需指定端口,使用环境变量 `MCP_CHROME_PORT`
- 清理npx缓存: `rm -rf ~/.npm/_npx` (Unix) 或删除 `%USERPROFILE%\.npm\_npx` (Windows)
3. **依赖问题**:
- 确保使用最新版本: `mcp-chrome-feedback@latest`
- 清理npm缓存: `npm cache clean --force`
4. **重启服务**: 重启Cursor或重新加载扩展
### 反馈收集问题
1. **超时设置**: 增加timeout参数值
2. **网络连接**: 检查本地网络连接
3. **扩展权限**: 确认扩展有必要的权限
## 开发
### 构建项目
```bash
npm run build
```
### 开发模式
```bash
npm run dev
```
### 测试
```bash
npm test
```
## 许可证
MIT License
## 贡献
欢迎提交Issue和Pull Request!
## 更新日志
### v1.0.4
- 🚀 **重大改进**: 升级MCP SDK到v1.13.0
- 🔧 **端口管理**: 添加自动端口分配功能 (8797-8806)
- 🛠️ **依赖修复**: 解决npx安装和运行问题
- 📦 **打包优化**: 改进npm包结构和依赖管理
- 🐛 **错误处理**: 增强错误日志和调试信息
### v1.0.3
- 🔄 **端口冲突修复**: 初步解决端口占用问题
- 📝 **文档更新**: 改进安装和配置说明
### v1.0.0
- 🎉 **初始版本**: 基础反馈收集功能
- 🔌 **Chrome扩展集成**: 完整的浏览器扩展支持
- 🤖 **MCP协议支持**: 标准MCP工具实现
- 💬 **实时通信**: WebSocket双向通信
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues