ScrapeGraph MCP Server
Готовый к продакшену сервер Model Context Protocol (MCP), обеспечивающий бесшовную интеграцию с API ScrapeGraph AI. Сервер позволяет языковым моделям задействовать продвинутые возможности веб-скрейпинга на базе ИИ с надёжностью корпоративного уровня.
Содержание
-
Ключевые возможности
-
Быстрый старт
-
Доступные инструменты
-
Инструкция по настройке
-
Использование удалённого сервера
-
Локальное использование
-
Интеграция с Google ADK
-
Примеры использования
-
Обработка ошибок
-
Частые проблемы
-
Разработка
-
Участие в проекте
-
Документация
-
Технологический стек
-
Лицензия
API v2
Этот MCP-сервер работает с ScrapeGraph API v2 (https://v2-api.scrapegraphai.com/api) и один в один соответствует
scrapegraph-py PR #84. Аутентификация выполняется через заголовок
SGAI-APIKEY. Переменные окружения повторяют соглашения Python SDK:
-
SGAI_API_URL— переопределяет базовый URL (по умолчаниюhttps://v2-api.scrapegraphai.com/api) -
SGAI_TIMEOUT— таймаут запросов в секундах (по умолчанию120) -
SGAI_API_KEY— API-ключ (также можно передать через MCP-параметрscrapegraphApiKeyили заголовокX-API-Key)
Устаревшие псевдонимы (по-прежнему поддерживаются):
SCRAPEGRAPH_API_BASE_URLвместоSGAI_API_URL,SGAI_TIMEOUT_SвместоSGAI_TIMEOUT.
Ключевые возможности
-
Скрейпинг и извлечение:
scrape(POST /scrape, несколько форматов),extract(POST /extract, URL + промпт) -
Поиск:
search(POST /search;num_resultsограничивается диапазоном 3–20) -
Краулинг: асинхронный обход нескольких страниц с помощью
crawl_start/crawl_get_status/crawl_stop/crawl_resume -
Схемы:
schema(POST /schema) — генерация или дополнение JSON Schema на основе промпта -
Мониторы: запланированные задачи через
monitor_create,monitor_list,monitor_get, пауза/возобновление/удаление,monitor_activity(постраничная история проверок) -
Аккаунт:
credits,history -
Простая интеграция: Claude Desktop, Cursor, Smithery, HTTP-транспорт
-
Документация для разработчиков: папка
.agent/
Миграция: v2 → v3
В v3 переименованы все MCP-инструменты, названия которых расходились с документацией API v2. Жёсткое переименование, без псевдонимов.
| v2 (старое) | v3 (новое) |
|---|---|
smartscraper | extract |
searchscraper | search |
smartcrawler_initiate | crawl_start |
smartcrawler_fetch_results | crawl_get_status |
sgai_history | history |
generate_schema | schema |
markdownify | удалён — используйте scrape с output_format="markdown" |
Быстрый старт
1. Получите API-ключ
Зарегистрируйтесь и получите API-ключ в ScrapeGraph Dashboard
2. Установите через Smithery (рекомендуется)
npx -y @smithery/cli install @ScrapeGraphAI/scrapegraph-mcp --client claude
3. Начните работу
Попросите Claude или Cursor:
-
«Конвертируй https://scrapegraphai.com в markdown»
-
«Извлеки все цены на товары с этой страницы интернет-магазина»
-
«Изучи последние новости в области ИИ и обобщи результаты»
Готово! Теперь сервер доступен вашему ИИ-ассистенту.
Доступные инструменты
| Инструмент | Назначение |
|---|---|
scrape | POST /scrape (output_format: markdown, html, screenshot, branding, links, images, summary) |
extract | POST /extract (требуются website_url и user_prompt; опционально output_schema) |
search | POST /search (num_results 1–20; поддерживает country_search, time_range, output_schema) |
crawl_start | POST /crawl — extraction_mode: markdown / html / links / images / summary / branding / screenshot |
crawl_get_status | GET /crawl/:id (опрос до status: completed) |
crawl_stop, crawl_resume | POST /crawl/:id/stop | resume |
schema | POST /schema (генерация или дополнение JSON Schema по промпту) |
credits | GET /credits |
history | GET /history (с пагинацией, фильтр service) |
monitor_create, monitor_list, monitor_get, monitor_pause, monitor_resume, monitor_delete | API /monitor |
monitor_activity | GET /monitor/:id/activity (постраничная история проверок: id, createdAt, status, changed, elapsedMs, diffs) |
Удалены: sitemap, agentic_scrapper, опрос асинхронных статусов и (в v3) markdownify — вместо них используйте scrape с output_format="markdown".
Инструкция по настройке
Для работы с сервером потребуется API-ключ ScrapeGraph. Получить его можно следующим образом:
-
Перейдите в ScrapeGraph Dashboard
-
Создайте аккаунт и сгенерируйте API-ключ
Автоматическая установка через Smithery
Для автоматической установки сервера интеграции ScrapeGraph API с помощью Smithery:
npx -y @smithery/cli install @ScrapeGraphAI/scrapegraph-mcp --client claude
Конфигурация Claude Desktop
Обновите файл конфигурации Claude Desktop следующими настройками (находится в правом верхнем углу страницы Cursor):
(не забудьте вписать свой API-ключ в конфигурацию)
{
"mcpServers": {
"@ScrapeGraphAI-scrapegraph-mcp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@ScrapeGraphAI/scrapegraph-mcp",
"--config",
"\"{\\\"scrapegraphApiKey\\\":\\\"YOUR-SGAI-API-KEY\\\"}\""
]
}
}
}
Файл конфигурации расположен по пути:
-
Windows:
%APPDATA%/Claude/claude_desktop_config.json -
macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json
Интеграция с Cursor
Добавьте MCP-сервер ScrapeGraphAI в настройках:
Использование удалённого сервера
Подключайтесь к нашему хостинговому MCP-серверу — локальная установка не требуется!
Внимание
Устаревший MCP-эндпоинт https://mcp.scrapegraphai.com/mcp скоро будет выведен из эксплуатации. Для новых интеграций используйте заменяющий MCP-эндпоинт:
https://sgai-mcp-main.onrender.com.
Конфигурация Claude Desktop (удалённый сервер)
Добавьте этот блок в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):
{
"mcpServers": {
"scrapegraph-mcp": {
"command": "npx",
"args": [
"mcp-remote@0.1.25",
"https://sgai-mcp-main.onrender.com",
"--header",
"X-API-Key:YOUR_API_KEY"
]
}
}
}
Конфигурация Cursor (удалённый сервер)
Cursor поддерживает нативные HTTP-подключения к MCP. Добавьте следующее в настройки MCP Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"scrapegraph-mcp": {
"url": "https://sgai-mcp-main.onrender.com",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
Преимущества удалённого сервера
-
Не требует локальной настройки — просто сконфигурируйте и начните работу
-
Всегда актуален — последние обновления применяются автоматически
-
Кроссплатформенность — работает на любой ОС с Node.js
Локальное использование
Чтобы запустить MCP-сервер локально для разработки или тестирования, выполните следующие шаги:
Предварительные требования
-
Python 3.13 или новее
-
Менеджер пакетов pip или uv
-
API-ключ ScrapeGraph
Установка
- Клонируйте репозиторий (если ещё не сделали этого):
git clone https://github.com/ScrapeGraphAI/scrapegraph-mcp
cd scrapegraph-mcp
- Установите пакет:
# Using pip
pip install -e .
# Or using uv (faster)
uv pip install -e .
- Задайте API-ключ:
# macOS/Linux
export SGAI_API_KEY=your-api-key-here
# Windows (PowerShell)
$env:SGAI_API_KEY="your-api-key-here"
# Windows (CMD)
set SGAI_API_KEY=your-api-key-here
Запуск сервера локально
Сервер можно запустить напрямую:
# Using the installed command
scrapegraph-mcp
# Or using Python module
python -m scrapegraph_mcp.server
Сервер запустится и будет обмениваться данными через stdio (стандартный ввод/вывод) — это стандартный транспортный метод MCP.
Тестирование с помощью MCP Inspector
Протестируйте локальный сервер с помощью инструмента MCP Inspector:
npx @modelcontextprotocol/inspector python -m scrapegraph_mcp.server
Он предоставляет веб-интерфейс для интерактивного тестирования всех доступных инструментов.
Настройка Claude Desktop для локального сервера
Чтобы использовать ваш локально запущенный сервер с Claude Desktop, обновите файл конфигурации:
macOS/Linux (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"scrapegraph-mcp-local": {
"command": "python",
"args": [
"-m",
"scrapegraph_mcp.server"
],
"env": {
"SGAI_API_KEY": "your-api-key-here"
}
}
}
}
Windows (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"scrapegraph-mcp-local": {
"command": "python",
"args": [
"-m",
"scrapegraph_mcp.server"
],
"env": {
"SGAI_API_KEY": "your-api-key-here"
}
}
}
}
Примечание: убедитесь, что Python добавлен в переменную PATH. Проверить это можно командой python --version в терминале.
Настройка Cursor для локального сервера
В настройках MCP в Cursor добавьте новый сервер со следующими параметрами:
-
Command:
python -
Args:
["-m", "scrapegraph_mcp.server"] -
Environment Variables:
{"SGAI_API_KEY": "your-api-key-here"}
Устранение неполадок локальной установки
Сервер не запускается:
-
Убедитесь, что Python установлен:
python --version -
Проверьте, что пакет установлен:
pip list | grep scrapegraph-mcp -
Убедитесь, что задан API-ключ:
echo $SGAI_API_KEY(macOS/Linux) илиecho %SGAI_API_KEY%(Windows)
Инструменты не отображаются:
-
Проверьте логи Claude Desktop:
-
macOS:
~/Library/Logs/Claude/ -
Windows:
%APPDATA%\Claude\Logs\
-
-
Убедитесь, что сервер запускается без ошибок при прямом запуске
-
Проверьте корректность JSON-конфигурации
Ошибки импорта:
-
Переустановите пакет:
pip install -e . --force-reinstall -
Проверьте зависимости:
pip install -r requirements.txt(если файл доступен)
Интеграция с Google ADK
MCP-сервер ScrapeGraph можно интегрировать с Google ADK (Agent Development Kit), чтобы создавать AI-агентов с возможностями веб-скрапинга.
Предварительные требования
-
Python 3.13 или выше
-
Установленный Google ADK
-
API-ключ ScrapeGraph
Установка
- Установите Google ADK (если ещё не установлен):
pip install google-adk
- Задайте ваш API-ключ:
export SGAI_API_KEY=your-api-key-here
Базовый пример интеграции
Создайте файл агента (например, agent.py) со следующей конфигурацией:
import os
from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters
# Path to the scrapegraph-mcp server directory
SCRAPEGRAPH_MCP_PATH = "/path/to/scrapegraph-mcp"
# Path to the server.py file
SERVER_SCRIPT_PATH = os.path.join(
SCRAPEGRAPH_MCP_PATH,
"src",
"scrapegraph_mcp",
"server.py"
)
root_agent = LlmAgent(
model='gemini-2.0-flash',
name='scrapegraph_assistant_agent',
instruction='Help the user with web scraping and data extraction using ScrapeGraph AI. '
'You can convert webpages to markdown, extract structured data using AI, '
'perform web searches, crawl multiple pages, and automate complex scraping workflows.',
tools=[
MCPToolset(
connection_params=StdioConnectionParams(
server_params=StdioServerParameters(
command='python3',
args=[
SERVER_SCRIPT_PATH,
],
env={
'SGAI_API_KEY': os.getenv('SGAI_API_KEY'),
},
),
timeout=300.0,)
),
# Optional: Filter which tools from the MCP server are exposed
# tool_filter=['scrape', 'extract', 'search']
)
],
)
Параметры конфигурации
Настройки тайм-аута:
-
По умолчанию тайм-аут составляет 5 секунд — этого может не хватить для операций веб-скрапинга
-
Рекомендуется: установить `timeout=300.0
-
Подбирайте значение под ваш сценарий (операции обхода страниц могут потребовать ещё большего тайм-аута)
Фильтрация инструментов:
-
По умолчанию агенту доступны все зарегистрированные инструменты MCP (см. раздел «Доступные инструменты»)
-
Используйте
tool_filter, чтобы ограничить список доступных инструментов:
tool_filter=['scrape', 'extract', 'search']
Настройка API-ключа:
-
Через переменную окружения:
export SGAI_API_KEY=your-key -
Либо напрямую в словаре
env:'SGAI_API_KEY': 'your-key-here' -
В целях безопасности рекомендуется использовать переменную окружения
Пример использования
После настройки агент сможет взаимодействовать с инструментами веб-скрапинга на естественном языке:
# The agent can now handle queries like:
# - "Convert https://example.com to markdown"
# - "Extract all product prices from this e-commerce page"
# - "Search for recent AI research papers and summarize them"
# - "Crawl this documentation site and extract all API endpoints"
Дополнительную информацию о Google ADK можно найти в официальной документации.
Примеры сценариев использования
Сервер позволяет выполнять сложные запросы в самых разных сценариях скрапинга:
Скрапинг одной страницы
-
Markdownify: «Преобразуй страницу документации ScrapeGraph в markdown»
-
Extract: «Извлеки названия, цены и рейтинги всех товаров с этой страницы интернет-магазина»
-
Extract с прокруткой: «Собери данные с этой страницы с бесконечной прокруткой, выполнив 5 прокруток, и извлеки все элементы»
-
Basic Scrape: «Получи HTML-содержимое этой страницы с большим объёмом JavaScript и полным рендерингом»
Поиск и исследования
-
Search: «Изучи и обобщи последние разработки в области веб-скрапинга на базе AI»
-
Search: «Найди 5 лучших статей о фреймворках машинного обучения и извлеки ключевые выводы»
-
Search: «Найди свежие новости о GPT-4 и подготовь структурированное резюме»
-
Search: v2 не применяет
time_range; вместо этого формулируйте запросы так, чтобы они естественным образом смещали результаты в сторону свежести
Анализ сайтов
- Используйте
crawl_startвместе сcrawl_get_status, чтобы составить карту и собрать контент с нескольких страниц; отдельного инструмента sitemap в v2 нет.
Обход нескольких страниц
-
Crawl: «Обойди блог в режиме markdown и опрашивай статус до завершения»
-
Для структурированных полей по каждой странице запускайте
extractна отдельных URL (либоmonitor_createпо расписанию)
Мониторы и аккаунт
-
Monitor: «Запускай этот extract-промпт на https://example.com каждый день в 9:00» (
monitor_createс интервалом) -
Credits / history:
credits,history -
Agentic Scraper: «Выполни сложный сценарий: авторизуйся, перейди к отчётам, скачай данные и извлеки сводную статистику»
Обработка ошибок
Сервер реализует надёжную обработку ошибок с подробными и практичными сообщениями для следующих ситуаций:
-
Проблемы с аутентификацией в API
-
Некорректная структура URL
-
Сбои сетевого соединения
-
Ограничения по частоте запросов и управление квотами
Частые проблемы
Подключение в Windows
При работе в системах Windows может потребоваться следующая команда для подключения к MCP-серверу:
C:\Windows\System32\cmd.exe /c npx -y @smithery/cli@latest run @ScrapeGraphAI/scrapegraph-mcp --config "{\"scrapegraphApiKey\":\"YOUR-SGAI-API-KEY\"}"
Это обеспечивает корректное выполнение в среде Windows.
Другие частые проблемы
«ScrapeGraph client not initialized»
-
Причина: отсутствует API-ключ
-
Решение: задайте переменную окружения
SGAI_API_KEYили передайте ключ через--config
«Error 401: Unauthorized»
-
Причина: недействительный API-ключ
-
Решение: проверьте свой API-ключ в панели управления ScrapeGraph
«Error 402: Payment Required»
-
Причина: недостаточно кредитов
-
Решение: пополните баланс кредитов в вашем аккаунте ScrapeGraph
Crawl не возвращает результаты
-
Причина: операция всё ещё обрабатывается (асинхронный процесс)
-
Решение: продолжайте опрашивать
crawl_get_status()до получения статуса «completed»
Инструменты не отображаются в Claude Desktop
-
Причина: сервер не запускается или ошибка в конфигурации
-
Решение: проверьте логи Claude по пути
~/Library/Logs/Claude/(macOS) или%APPDATA%\Claude\Logs\(Windows)
Подробное руководство по устранению неполадок см. в документации .agent.
Разработка
Предварительные требования
-
Python 3.13 или выше
-
менеджер пакетов pip или uv
-
API-ключ ScrapeGraph
Установка из исходного кода
# Clone the repository
git clone https://github.com/ScrapeGraphAI/scrapegraph-mcp
cd scrapegraph-mcp
# Install dependencies
pip install -e ".[dev]"
# Set your API key
export SGAI_API_KEY=your-api-key
# Run the server
scrapegraph-mcp
# or
python -m scrapegraph_mcp.server
Тестирование с помощью MCP Inspector
Протестируйте сервер локально с помощью инструмента MCP Inspector:
npx @modelcontextprotocol/inspector scrapegraph-mcp
Он предоставляет веб-интерфейс, в котором можно проверить все доступные инструменты.
Качество кода
Линтинг:
ruff check src/
Проверка типов:
mypy src/
Проверка форматирования:
ruff format --check src/
Структура проекта
scrapegraph-mcp/
├── src/
│ └── scrapegraph_mcp/
│ ├── __init__.py # Package initialization
│ └── server.py # Main MCP server (all code in one file)
├── .agent/ # Developer documentation
│ ├── README.md # Documentation index
│ └── system/ # System architecture docs
├── assets/ # Images and badges
├── pyproject.toml # Project metadata & dependencies
├── smithery.yaml # Smithery deployment config
└── README.md # This file
Участие в разработке
Мы приветствуем любой вклад в проект! Вот как вы можете помочь:
Добавление нового инструмента
- Добавьте метод в класс
ScapeGraphClientв файле server.py:
def new_tool(self, param: str) -> Dict[str, Any]:
"""Tool description."""
url = f"{self.BASE_URL}/new-endpoint"
data = {"param": param}
response = self.client.post(url, headers=self.headers, json=data)
if response.status_code != 200:
raise Exception(f"Error {response.status_code}: {response.text}")
return response.json()
- Добавьте декоратор MCP-инструмента:
@mcp.tool()
def new_tool(param: str) -> Dict[str, Any]:
"""
Tool description for AI assistants.
Args:
param: Parameter description
Returns:
Dictionary containing results
"""
if scrapegraph_client is None:
return {"error": "ScrapeGraph client not initialized. Please provide an API key."}
try:
return scrapegraph_client.new_tool(param)
except Exception as e:
return {"error": str(e)}
- Протестируйте с помощью MCP Inspector:
npx @modelcontextprotocol/inspector scrapegraph-mcp
-
Обновите документацию:
-
Добавьте инструмент в этот README
-
Обновите документацию .agent
-
-
Отправьте pull request
Процесс разработки
-
Сделайте форк репозитория
-
Создайте ветку для новой функциональности (
git checkout -b feature/amazing-feature) -
Внесите необходимые изменения
-
Запустите линтинг и проверку типов
-
Протестируйте с помощью MCP Inspector и Claude Desktop
-
Обновите документацию
-
Закоммитьте изменения (
git commit -m 'Add amazing feature') -
Отправьте ветку в удалённый репозиторий (
git push origin feature/amazing-feature) -
Откройте Pull Request
Стиль кода
-
Длина строки: 100 символов
-
Аннотации типов: обязательны для всех функций
-
Docstrings: оформляются в стиле Google
-
Обработка ошибок: возвращайте словари с описанием ошибки вместо выбрасывания исключений в инструментах
-
Версия Python: 3.13 и выше
Подробные рекомендации по разработке приведены в документации .agent.
Документация
Полная документация для разработчиков доступна по следующим ссылкам:
-
.agent/README.md — полный указатель документации для разработчиков
-
.agent/system/project_architecture.md — архитектура системы и проектные решения
-
.agent/system/mcp_protocol.md — детали интеграции с протоколом MCP
Технологический стек
Основной фреймворк
-
Python 3.13+ — современный Python с поддержкой аннотаций типов
-
FastMCP — лёгковесный фреймворк для создания MCP-серверов
-
httpx 0.24.0+ — современный асинхронный HTTP-клиент
Инструменты разработки
-
Ruff — быстрый линтер и форматировщик для Python
-
mypy — статическая проверка типов
-
Hatchling — современный бэкенд для сборки пакетов
Развёртывание
-
Smithery — автоматизированное развёртывание MCP-сервера
-
Docker — контейнеризация на базе Alpine Linux
-
stdio transport — стандартный механизм обмена данными в MCP
Интеграция с API
-
ScrapeGraph AI API — корпоративный сервис веб-скрейпинга
-
Базовый URL:
https://v2-api.scrapegraphai.com/api -
Аутентификация: с использованием API-ключа
Лицензия
Проект распространяется по лицензии MIT. С подробными условиями использования можно ознакомиться в файле LICENSE.
Благодарности
Особая благодарность tomekkorbak за реализацию oura-mcp-server, которая послужила отправной точкой при создании этого репозитория.
Ресурсы
Официальные ссылки
-
Панель управления ScrapeGraph — получите свой API-ключ
Ресурсы MCP
-
Model Context Protocol — официальная спецификация MCP
-
Фреймворк FastMCP — фреймворк, на котором построен этот сервер
-
MCP Inspector — инструмент для тестирования
-
Smithery — платформа для распространения MCP-серверов
-
mcp-name: io.github.ScrapeGraphAI/scrapegraph-mcp
Интеграция с AI-ассистентами
-
Claude Desktop — настольное приложение с поддержкой MCP
-
Cursor — редактор кода с поддержкой AI
Поддержка
-
GitHub Issues — сообщить об ошибке или предложить новую функцию
-
Документация для разработчиков — полная документация по разработке
Сделано с ❤️ командой ScrapeGraphAI