🚀 生产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:在渲染上部署
- 首选 render.com
- 点击 新 → “Web服务”
- 连接您的GitHub存储库
- 渲染自动检测
render.yaml - 点击 “创建Web服务”
- 等待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!📊 监控
查看日志
- 渲染仪表板→ 您的服务
- 点击 “日志” 标签
- 查看实时日志
健康检查
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__.pyutils/__init__.py
📚 资源
📄 许可证
MIT许可证-免费使用和修改!
______________________________________________________________________
模块化 ✅ | 生产就绪 ✅ | 易于扩展 ✅
