Spider MCP 是一个基于纯爬虫技术构建的网页搜索 MCP 服务,采用 Node.js 搭建,能够在不依赖官方 API 的情况下,实现网页和新闻的智能搜索。
npm install
或者使用 pnpm
:
pnpm install
npx puppeteer browsers install chrome
复制并配置环境变量文件:
cp .env.example .env
根据需求编辑 .env
文件。
开发模式:
npm run dev
生产模式:
npm start
服务将在 http://localhost:3000
启动。
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
:批量抓取多个网页在 Chatbox 中创建 mcp-config.json
文件:
{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["src/mcp/server.js"],
"env": {
"NODE_ENV": "production"
},
"description": "Spider MCP - 网页搜索和网页抓取工具",
"capabilities": {
"tools": {}
}
}
}
}
{
"mcpServers": {
"spider-mcp": {
"command": "node",
"args": ["path/to/spider-mcp/src/mcp/server.js"]
}
}
}
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 则负责记录项目运行过程中的各种日志,便于问题排查和系统监控。
robots.txt
和网站使用条款。本项目采用 MIT 许可证。
欢迎提交问题和拉取请求!