MCP Browser Text Reader

MCP Browser Text Reader

Controls a real Chrome browser to navigate web pages and extract text content with flexible options including CSS selectors, multiple text extraction types, and intelligent waiting mechanisms for dynamic content.

Category
访问服务器

README

MCP Browser Text Reader

一个强大的 Model Context Protocol (MCP) 服务器,用于控制真实的Chrome浏览器并读取页面文字内容。支持多种文本提取方式和灵活的配置选项。

功能特性

  • 🌐 真实Chrome浏览器控制: 直接控制系统中的Chrome浏览器,可见窗口操作
  • 📝 灵活的文本提取: 支持可见文本、所有文本、innerText、textContent等多种提取方式
  • 🎯 精确元素选择: 使用CSS选择器精确定位需要提取的元素
  • ⏱️ 智能等待机制: 支持等待特定元素加载完成
  • 🔍 详细的元数据: 提供字符数、词数、提取时间等详细信息
  • 🛡️ 错误处理: 完善的错误处理和资源清理机制
  • 🔄 智能连接: 自动连接现有Chrome实例或启动新实例
  • 👀 可视化操作: 实时观察浏览器操作过程

安装

1. 克隆项目

git clone <repository-url>
cd mcp-browser-text-reader

2. 安装依赖

npm install

3. 确保Chrome浏览器已安装

确保系统中已安装Google Chrome浏览器:

  • macOS: /Applications/Google Chrome.app/
  • Windows: C:\Program Files\Google\Chrome\Application\chrome.exe
  • Linux: /usr/bin/google-chrome

4. 编译 TypeScript

npm run build

使用方法

作为 MCP 服务器运行

npm start

在 Cursor 中配置

在 Cursor 的 MCP 配置文件中添加以下配置:

位置: .cursor/mcp.json

{
  "mcpServers": {
    "browser-text-reader": {
      "command": "node",
      "args": ["/absolute/path/to/your/project/dist/index.js"]
    }
  }
}

在 Claude Desktop 中配置

位置: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

{
  "mcpServers": {
    "browser-text-reader": {
      "command": "node",
      "args": ["/absolute/path/to/your/project/dist/index.js"]
    }
  }
}

可用工具

1. get_page_text

获取指定URL页面的文本内容

参数:

  • url (可选): 要读取的网页URL
  • selector (可选): CSS选择器,用于选择特定元素
  • waitForSelector (可选): 等待特定元素出现的CSS选择器
  • timeout (可选): 超时时间(毫秒),默认10000
  • includeHidden (可选): 是否包含隐藏元素,默认false
  • textType (可选): 文本提取类型,可选值:visibleallinnerTexttextContent

示例:

{
  "url": "https://example.com",
  "selector": "article",
  "textType": "visible",
  "timeout": 15000
}

2. get_current_page_text

获取当前浏览器页面的文本内容

参数:

  • selector (可选): CSS选择器
  • includeHidden (可选): 是否包含隐藏元素
  • textType (可选): 文本提取类型

3. navigate_to_page

导航到指定URL

参数:

  • url (必需): 要导航到的网页URL
  • waitForSelector (可选): 等待特定元素出现
  • timeout (可选): 超时时间

4. get_page_info

获取当前页面的基本信息(标题、URL等)

5. launch_chrome_manually

手动启动Chrome浏览器(可见窗口)

6. get_browser_status

获取浏览器连接状态

7. close_browser

关闭浏览器实例或断开连接

文本提取类型说明

  • visible (默认): 只提取用户可见的文本
  • all: 提取所有文本内容,包括隐藏元素
  • innerText: 使用 element.innerText 提取文本
  • textContent: 使用 element.textContent 提取文本

使用示例

在 AI 助手中使用

  1. 读取网页内容:

    请使用 get_page_text 工具读取 https://news.ycombinator.com 的内容
    
  2. 提取特定元素:

    请读取当前页面中所有 h2 标题的文本
    
  3. 等待动态内容加载:

    请访问 https://example.com 并等待 .content 元素加载完成后提取文本
    

直接测试

运行测试脚本来验证功能:

npm run build
# 运行Chrome浏览器测试
node dist/test-chrome-server.js

测试将会:

  1. 启动可见的Chrome浏览器窗口
  2. 导航到测试网页
  3. 提取页面文本内容
  4. 演示各种功能

开发

项目结构

src/
├── index.ts                # MCP 服务器主入口
├── chrome-browser-manager.ts # Chrome浏览器管理器
└── test-chrome-server.ts   # Chrome测试脚本

dist/                       # 编译后的 JavaScript 文件
package.json               # 项目配置
tsconfig.json             # TypeScript 配置

开发模式

# 监听文件变化并自动重新编译
npm run dev

构建

npm run build

故障排除

常见问题

  1. Chrome浏览器未安装或路径错误 确保系统已安装Chrome浏览器,并且路径正确。

  2. 权限问题 确保有足够的权限运行浏览器,在某些环境中可能需要额外的参数。

  3. 超时错误 增加 timeout 参数值,特别是对于加载较慢的页面。

  4. 内存使用过高 定期调用 close_browser 工具来释放资源。

调试

启用详细日志输出:

DEBUG=* npm start

技术栈

  • Node.js: JavaScript 运行时
  • TypeScript: 类型安全的 JavaScript
  • Puppeteer: Chrome浏览器自动化
  • MCP SDK: Model Context Protocol 官方 SDK
  • Zod: 运行时类型验证

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

v1.0.0

  • 初始版本
  • 支持基本的页面文本提取功能
  • 支持多种文本提取类型
  • 完整的 MCP 协议支持

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选