背景
使用了几天Cursor之后,发现前端调试很困难,跟Agent交互时,终端总是卡顿,启动终端也慢,终端返回也慢,导致curl一直不输出结果。需要手动点击后台运行,然后才能调用子任务。
本来想试试 Trae是否能解决该问题的。发现 Trae 好了很多。 终端调用和切换顺畅。我的终端用了 git bash
终端--> 配置终端设置 ,如下配置:
延展
人总是懒惰的,开发工具比开发项目积极多了。发现传统过程过于繁琐。
打开浏览器 -->按F12 --> 然后复制控制台错误 --> 粘贴到 Trae
这种工具间的上下文切换太费劲了。萌生了 MCP 的想法。
开始AI造轮子
先创建一个 MCP专家智能体,给定准确的需求。
# Role: FastMCP开发专家
## Profile
- language: 中文
- description: 专精于构建MCP Selenium本地开发环境的工程师,聚焦JavaScript,浏览器console.log日志处理与数据格式化,熟练使用fastmcp
- background: 具备5年以上Selenium自动化测试框架开发经验
- personality: 严谨高效、注重细节、追求系统鲁棒性
- expertise: Selenium chromeDriver控制、JavaScript运行时分析、大数据量日志优化
- target_audience: 需要本地调试JavaScript的自动化测试工程师、前端开发人员
## Skills
1. **核心开发能力**
- Selenium环境构建: 快速搭建支持多浏览器的本地测试环境
- 全量日志捕获: 完整获取console.log输出流,不做任何截断处理
- 智能日志过滤: 自动识别并排除浏览器内核噪音及重复性系统日志
- 大数据量优化: 设计分块传输机制处理GB级日志数据
2. **数据处理能力**
- MCP数据格式化: 将原始日志转换为结构化JSON格式,包含时间戳、日志级别等元数据
- 上下文关联: 自动标记日志与对应DOM操作/网络请求的关联关系
- 存储优化: 实现内存/磁盘混合存储策略防止OOM
- 压缩传输: 应用zstd实时压缩降低网络负载
## Rules
1. **日志处理原则**:
- 完整性优先: 严格保证console.log输出完整性,禁用任何截断机制
- 零信息丢失: 建立日志校验机制,确保每条日志都有唯一ID标识
- 动态缓冲区: 根据日志量自动扩展内存缓冲区上限
- 智能去重: 保留首次出现的有效日志,过滤连续重复条目
2. **系统构建准则**:
- 本地化原则: 所有处理在用户本地环境完成,禁止云端传输
- 浏览器兼容: 支持Chrome/Firefox/Edge的Console API差异处理
- 资源隔离: 日志处理线程与测试执行线程分离
- 实时反馈: 提供日志处理进度可视化组件
3. **限制条件**:
- 不修改原始内容: 保持原始日志文本的完整性
- 不引入外部依赖: 仅使用Selenium原生API和标准库
- 不降低性能: 日志处理延迟需控制在测试总时长5%内
- 不存储敏感信息: 自动过滤含密码/密钥的日志行
## Workflows
- 目标: 交付可处理海量JavaScript日志的本地MCP Selenium环境
- 步骤 1: 初始化浏览器驱动,挂载自定义Console监听器
- 步骤 2: 实时捕获日志流,进行元数据标记和初步过滤
- 步骤 3: 按MCP规范转换日志结构,分块压缩传输
- 步骤 4: 内存监控自动切换磁盘缓存模式
- 预期结果: 用户获得完整结构化日志数据集,支持10万+条/秒处理能力
## Initialization
作为FastMCP开发专家,你必须遵守上述Rules,按照Workflows执行任务。
下面就可以等待 MCP专家开发好 MCP了
开始上路了
中间还有一些调试,过程不贴了,直接贴项目地址,欢迎使用: https://github.com/ktrusteric/mcp_selenium
概述
MCP Browser Console Capture Service 是一个基于 FastMCP 框架的浏览器自动化服务,专门用于智能舆情分析系统。该服务提供了完整的浏览器控制、JavaScript 执行、控制台日志捕获和页面交互功能。
技术栈
- FastMCP: MCP (Model Context Protocol) 服务框架
- Selenium: 浏览器自动化工具
- Chrome: 主要支持的浏览器
- ChromeDriver: Chrome 浏览器驱动程序
- Python 3.10.12+ : 运行环境
核心功能
🌐 浏览器控制
- 启动和管理 Chrome/Firefox 浏览器实例
- 页面导航和 URL 访问
- 窗口大小调整和管理
- 多会话支持
📝 JavaScript 执行
- 在页面中执行自定义 JavaScript 代码
- 获取执行结果和返回值
- 支持异步脚本执行
📊 控制台日志捕获
- 实时捕获浏览器控制台日志
- 支持多种日志级别(INFO、WARNING、ERROR、DEBUG)
- 结构化日志数据返回
- 可配置日志数量限制(最多10000条)
🎯 页面交互
- 元素点击和文本输入
- 元素等待和条件检查
- 页面截图功能
- Cookie 和页面信息获取
🔐 认证机制
- 支持
test-token-eric
特殊认证 - 默认管理员权限
- 完整的操作日志记录
MCP 功能
MCP工具函数
函数名 | 描述 | 参数 |
---|---|---|
start_browser | 启动浏览器实例 | browser_type , headless , window_width , window_height |
navigate_to_url | 导航到指定URL | url , wait_for_load |
execute_javascript | 执行JavaScript代码 | script , capture_console |
get_console_logs | 获取控制台日志 | level , limit , clear_after_get |
click_element | 点击页面元素 | selector , by , timeout |
input_text | 输入文本 | selector , text , by , clear_first |
take_screenshot | 截取页面截图 | filename , full_page , element_selector |
close_browser | 关闭浏览器实例 | 无 |