Spider Mcp

Spider Mcp

🚀 Spider MCP - 网页搜索爬虫服务

Spider MCP 是一个基于纯爬虫技术构建的网页搜索 MCP 服务,采用 Node.js 搭建,能够在不依赖官方 API 的情况下,实现网页和新闻的智能搜索。

✨ 主要特性

  • 无需官方 API:完全基于爬虫技术,不依赖第三方官方 API。
  • 🔍 智能搜索:支持 Bing 网页和新闻搜索。
  • 📰 新闻搜索:内置新闻搜索功能,支持时间过滤。
  • 🕷️ 纯爬虫实现:不依赖官方 API,使用 Puppeteer 进行网页抓取。
  • 🚀 高性能:支持批量网页抓取。
  • 📊 健康监控:具备完整的健康检查和指标监控功能。
  • 📝 结构化日志:使用 Winston 进行结构化日志记录。
  • 🔒 反检测机制:支持 User-Agent 轮换等反爬虫措施。
  • 🔗 智能 URL 清理:自动清理推广参数,同时保留关键信息。

📦 安装指南

1. 安装依赖

npm install

或者使用 pnpm

pnpm install

2. 下载 Puppeteer 浏览器

npx puppeteer browsers install chrome

3. 环境配置

复制并配置环境变量文件:

cp .env.example .env

根据需求编辑 .env 文件。

4. 启动服务

开发模式:

npm run dev

生产模式:

npm start

服务将在 http://localhost:3000 启动。

💻 使用示例

基础用法

web_search

web_search 是一个统一的搜索工具,支持网页和新闻搜索:

  • 网页搜索searchType: "web"
  • 新闻搜索searchType: "news",支持时间过滤
  • 注意searchType 是必需参数,必须明确指定
# 网页搜索
使用 web_search 工具以 searchType 为 web 搜索 "Node.js 教程",返回 10 条结果

# 新闻搜索
使用 web_search 工具以 searchType 为 news 搜索 "科技新闻",返回过去 24 小时内的 5 条结果

高级用法

除了 web_search 工具,还有其他实用工具:

  • get_webpage_content:获取网页内容并转换为指定格式
  • get_webpage_source:获取网页的原始 HTML 源代码
  • batch_webpage_scrape:批量抓取多个网页

📚 详细文档

MCP 配置

Chatbox 配置

在 Chatbox 中创建 mcp-config.json 文件:

{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["src/mcp/server.js"],
"env": {
"NODE_ENV": "production"
},
"description": "Spider MCP - 网页搜索和网页抓取工具",
"capabilities": {
"tools": {}
}
}
}
}

其他 MCP 客户端

{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["path/to/spider-mcp/src/mcp/server.js"]
}
}
}

技术栈

  • Node.js (>= 18.0.0)
  • Express.js - Web 框架
  • Puppeteer - 浏览器自动化工具
  • Cheerio - HTML 解析器
  • Axios - HTTP 客户端
  • Winston - 日志记录工具
  • @modelcontextprotocol/sdk - MCP 协议支持

项目结构

spider-mcp/
├── src/
│   ├── index.js          # 主入口文件
│   ├── mcp/
│   │   └── server.js     # MCP 服务器
│   ├── routes/           # 路由定义
│   │   ├── search.js     # 搜索路由
│   │   └── health.js     # 健康检查路由
│   ├── services/         # 业务逻辑
│   │   └── searchService.js # 搜索服务
│   └── utils/            # 工具函数
│       └── logger.js     # 日志工具
├── logs/                 # 日志文件目录
├── tests/                # 测试文件
├── package.json          # 项目配置
├── .env.example          # 环境变量示例
├── mcp-config.json       # MCP 配置示例
└── README.md             # 项目文档

🔧 技术细节

本项目使用 Node.js 作为基础运行环境,结合 Express.js 搭建 Web 服务。在网页抓取方面,采用 Puppeteer 模拟浏览器行为,实现对网页的自动化访问和数据提取。同时,使用 Cheerio 对抓取到的 HTML 内容进行解析,方便提取所需信息。Axios 用于处理 HTTP 请求,确保数据的高效传输。Winston 则负责记录项目运行过程中的各种日志,便于问题排查和系统监控。

⚠️ 重要提示

  1. 反爬虫措施:本服务采用多种技术避免被检测,但仍需遵守 robots.txt 和网站使用条款。
  2. 频率限制:建议合理控制请求频率,避免对目标网站造成压力。
  3. 法律合规:使用本服务时,请确保遵守当地法律法规和网站使用条款。
  4. 资源消耗:Puppeteer 会启动 Chrome 浏览器,请留意内存和 CPU 使用情况。
  5. URL 清理:自动清理推广参数可能会影响部分特殊链接的功能。

📄 许可证

本项目采用 MIT 许可证。

贡献

欢迎提交问题和拉取请求!

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 03:45

相似服务问题