网页抓取服务器

一个模块化、生产就绪的MCP服务器,用于网页搜索和内容抓取,适用于数据采集和自动化任务。

  • by Aniruddha1202
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Aniruddha1202/mcp-web-scraper

使用说明

🚀 生产MCP Web刮刀服务器

使用官方MCP Python SDK构建的模块化、生产就绪的MCP服务器。针对Render部署进行了优化,实现了清晰的关注点分离。

📁 项目结构

mcp-web-scraper/
├── server.py              # Main server entry point
├── tools/
│   ├── __init__.py       # Tools package initialization
│   ├── search.py         # Search tools (web_search, news_search, etc.)
│   └── scraping.py       # Scraping tools (scrape_html, extract_article, etc.)
├── utils/
│   ├── __init__.py       # Utils package initialization
│   └── helpers.py        # Helper functions (clean_text, validate_url)
├── requirements.txt       # Python dependencies
├── render.yaml           # Render deployment configuration
├── .gitignore            # Git ignore rules
├── README.md             # This file
└── config.example.json   # Claude Desktop config example

✨ 特性

🔍 搜索工具(tools/search.py)

  • 网络搜索 -DuckDuckGo网络搜索
  • 新闻搜索 -带有元数据的新闻文章
  • 搜索与抓取 -搜索+内容提取
  • 智能搜索 -自适应搜索(快速/标准/全面)

📄 报废工具(tools/scraping.py)

  • scrap_html -使用CSS选择器进行HTML抓取
  • 提取物_颗粒 -清洁物品提取
  • 提取链接 -链接提取与过滤
  • 提取元数据 -页面元数据和打开图形
  • scrape_table -表数据提取

🚀 快速部署以渲染

步骤1:创建项目结构

mkdir mcp-web-scraper
cd mcp-web-scraper

# Create directory structure
mkdir -p tools utils

# Create all files (copy from artifacts above):
# - server.py
# - tools/__init__.py
# - tools/search.py
# - tools/scraping.py
# - utils/__init__.py
# - utils/helpers.py
# - requirements.txt
# - render.yaml
# - .gitignore
# - README.md

第二步:推送到GitHub

git init
git add .
git commit -m "Initial commit: Modular MCP Web Scraper"
git remote add origin https://github.com/YOUR_USERNAME/mcp-web-scraper.git
git push -u origin main

步骤3:在渲染上部署

  1. 首选 render.com
  2. 点击 新 → “Web服务”
  3. 连接您的GitHub存储库
  4. 渲染自动检测 render.yaml
  5. 点击 “创建Web服务”
  6. 等待2-3分钟✨

步骤4:获取您的URL

您的服务: https://your-app.onrender.com MCP端点: https://your-app.onrender.com/mcp

🔌 连接到克劳德桌面

配置位置

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

配置

{
  "mcpServers": {
    "web-scraper": {
      "type": "streamable-http",
      "url": "https://your-app.onrender.com/mcp"
    }
  }
}

重新启动克劳德桌面 更新配置后!

💻 本地开发

# Clone and setup
git clone https://github.com/YOUR_USERNAME/mcp-web-scraper.git
cd mcp-web-scraper

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run server
python server.py

服务器运行于 http://localhost:8000/mcp

本地测试

# List tools
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Test web search
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0",
    "id":2,
    "method":"tools/call",
    "params":{
      "name":"web_search",
      "arguments":{"query":"AI news","max_results":3}
    }
  }'

🛠️ 添加新工具

1.搜索工具示例

编辑 tools/search.py:

@mcp.tool()
def my_custom_search(query: str) -> dict:
    """Your custom search tool"""
    # Implementation here
    return {"success": True, "data": []}

2.报废工具示例

编辑 tools/scraping.py:

@mcp.tool()
def my_custom_scraper(url: str) -> dict:
    """Your custom scraper"""
    # Implementation here
    return {"success": True, "content": ""}

3.部署更改

git add .
git commit -m "Add new tools"
git push origin main
# Render auto-deploys!

📊 监控

查看日志

  1. 渲染仪表板→ 您的服务
  2. 点击 “日志” 标签
  3. 查看实时日志

健康检查

curl https://your-app.onrender.com/health

🎯 架构优势

✅ 模块化设计

  • 关注点分离 -每个文件都有一个责任
  • 易于维护 -快速查找和更新代码
  • 可扩展的 -在不接触现有代码的情况下添加新工具

✅ 清洁代码

  • 类型提示 -更好的IDE支持和错误捕获
  • 日志记录 -跟踪所有操作
  • 错误处理 -有详细错误的优雅失败

✅ 生产就绪

  • 官方MCP SDK -FastMCP框架
  • 流式HTTP -单端点通信
  • 无状态 -横向可扩展
  • 健康检查 -自动监控

💬 Claude中的示例用法

  • “搜索最新的量子计算新闻”
  • “文章摘录自https://example.com/post"
  • “查找并抓取关于人工智能安全的前5篇文章”
  • “从获取所有链接https://news.ycombinator.com"
  • “全面研究可再生能源”

🐛 故障排除

导入错误

# Ensure you're in project root
cd mcp-web-scraper

# Check Python path
export PYTHONPATH="${PYTHONPATH}:$(pwd)"

# Run server
python server.py

工具未注册

检查日志中的“正在注册X工具…”消息

未找到模块

确保所有 __init__.py 文件存在于:

  • tools/__init__.py
  • utils/__init__.py

📚 资源

📄 许可证

MIT许可证-免费使用和修改!


模块化 ✅ | 生产就绪 ✅ | 易于扩展 ✅