Skip to main content
Glama

MCP-сервер Olostep

Docker Hub Версия npm Лицензия: ISC

Реализация сервера Model Context Protocol (MCP), которая интегрируется с Olostep для веб-скрейпинга, извлечения контента и возможностей поиска. Для настройки MCP-сервера Olostep вам понадобится API-ключ. Вы можете получить его, зарегистрировавшись на сайте Olostep.

Возможности

  • Скрейпинг контента веб-сайтов в форматах HTML, Markdown, JSON или обычного текста (с дополнительными парсерами)

  • Веб-поиск на основе парсеров со структурированными результатами

  • AI-ответы с цитатами и опциональным выводом в формате JSON

  • Пакетный скрейпинг до 10 тыс. URL-адресов

  • Автономный обход сайтов, начиная с заданного URL

  • Обнаружение и отображение URL-адресов веб-сайтов (с фильтрами включения/исключения)

  • Маршрутизация запросов по странам для получения геотаргетированного контента

  • Настраиваемое время ожидания для сайтов с активным использованием JavaScript

  • Комплексная обработка ошибок и отчетность

  • Простая настройка API-ключа

Related MCP server: Parallel Task MCP

Установка

Существует несколько способов подключения к MCP-серверу Olostep. Выберите тот, который лучше всего подходит для вашего рабочего процесса.

☁️ Удаленная конечная точка (рекомендуется)

Самый простой способ — локальная установка не требуется. Подключайтесь напрямую к нашему размещенному MCP-серверу:

https://mcp.olostep.com/mcp

Аутентификация выполняется через токен Bearer в заголовке Authorization с использованием вашего API-ключа Olostep. Примеры конфигурации см. в разделе Настройка клиента ниже.

🐳 Docker Hub

Скачайте и запустите официальный образ Docker:

docker pull olostep/mcp-server

docker run -i --rm \
  -e OLOSTEP_API_KEY="your-api-key" \
  olostep/mcp-server

🔧 Локальная сборка Docker

Если вы предпочитаете собирать образ самостоятельно из исходного кода:

git clone https://github.com/olostep/olostep-mcp-server.git
cd olostep-mcp-server
npm install
npm run build
docker build -t olostep/mcp-server:local .

docker run -i --rm -e OLOSTEP_API_KEY="your-api-key" olostep/mcp-server:local

📦 npx

Запуск без установки с помощью npx:

env OLOSTEP_API_KEY=your-api-key npx -y olostep-mcp

В Windows (PowerShell):

$env:OLOSTEP_API_KEY = "your-api-key"; npx -y olostep-mcp

В Windows (CMD):

set OLOSTEP_API_KEY=your-api-key && npx -y olostep-mcp

Или установите глобально:

npm install -g olostep-mcp

Настройка клиента

Cursor

Самый простой способ — использовать удаленную конечную точку. Создайте или отредактируйте файл .cursor/mcp.json в корне вашего проекта:

{
  "mcpServers": {
    "olostep": {
      "url": "https://mcp.olostep.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY_HERE"
      }
    }
  }
}

Альтернатива (локально): Перейдите в Cursor Settings > Features > MCP Servers, нажмите «+ Add New MCP Server»:

  • Name: olostep

  • Type: command

  • Command: env OLOSTEP_API_KEY=your-api-key npx -y olostep-mcp

Claude Desktop

Добавьте это в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-server-olostep": {
      "command": "npx",
      "args": ["-y", "olostep-mcp"],
      "env": {
        "OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Альтернатива (Docker):

{
  "mcpServers": {
    "olostep": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "OLOSTEP_API_KEY=YOUR_API_KEY_HERE",
        "olostep/mcp-server"
      ]
    }
  }
}

Или установите через Smithery CLI в терминале вашего устройства:

npx -y @smithery/cli install @olostep/olostep-mcp-server --client claude

Claude Code

Добавьте удаленную конечную точку в конфигурацию MCP Claude Code:

{
  "mcpServers": {
    "olostep": {
      "url": "https://mcp.olostep.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY_HERE"
      }
    }
  }
}

Альтернатива (локально):

{
  "mcpServers": {
    "olostep": {
      "command": "npx",
      "args": ["-y", "olostep-mcp"],
      "env": {
        "OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Windsurf

Добавьте это в ваш ./codeium/windsurf/model_config.json:

{
  "mcpServers": {
    "olostep": {
      "serverUrl": "https://mcp.olostep.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY_HERE"
      }
    }
  }
}

Альтернатива (локально):

{
  "mcpServers": {
    "mcp-server-olostep": {
      "command": "npx",
      "args": ["-y", "olostep-mcp"],
      "env": {
        "OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

VS Code

Добавьте это в ваш .vscode/mcp.json:

{
  "servers": {
    "olostep": {
      "type": "http",
      "url": "https://mcp.olostep.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY_HERE"
      }
    }
  }
}

Альтернатива (локально):

{
  "servers": {
    "olostep": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "olostep-mcp"],
      "env": {
        "OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Metorial

Вариант 1: Установка в один клик (рекомендуется)

  1. Откройте панель управления Metorial

  2. Перейдите в каталог MCP Servers

  3. Найдите "Olostep"

  4. Нажмите "Install" и введите свой API-ключ

Вариант 2: Ручная настройка

Добавьте это в конфигурацию MCP-сервера Metorial:

{
  "olostep": {
    "command": "npx",
    "args": ["-y", "olostep-mcp"],
    "env": {
      "OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
    }
  }
}

Инструменты Olostep станут доступны в ваших чатах с ИИ в Metorial.

Конфигурация

Переменные окружения

  • OLOSTEP_API_KEY: Ваш API-ключ Olostep (обязательно)

  • ORBIT_KEY: Дополнительный ключ для использования Orbit при маршрутизации запросов.

Доступные инструменты

1. Скрейпинг веб-сайта (scrape_website)

Извлечение контента с одного URL. Поддерживает несколько форматов и рендеринг JavaScript.

{
  "name": "scrape_website",
  "arguments": {
    "url_to_scrape": "https://example.com",
    "output_format": "markdown",
    "country": "US",
    "wait_before_scraping": 1000,
    "parser": "@olostep/amazon-product"
  }
}

Параметры:

  • url_to_scrape: URL веб-сайта, который вы хотите проскрейпить (обязательно)

  • output_format: Выберите формат (html, markdown, json или text) — по умолчанию: markdown

  • country: Дополнительный код страны (например, US, GB, CA) для скрейпинга с учетом местоположения

  • wait_before_scraping: Время ожидания в миллисекундах перед скрейпингом (0-10000)

  • parser: Дополнительный ID парсера для специализированного извлечения

Ответ (пример):

{
  "content": [
    {
      "type": "text",
      "text": "{\n  \"id\": \"scrp_...\",\n  \"url\": \"https://example.com\",\n  \"markdown_content\": \"# ...\",\n  \"html_content\": null,\n  \"json_content\": null,\n  \"text_content\": null,\n  \"status\": \"succeeded\",\n  \"timestamp\": \"2025-11-14T12:34:56Z\",\n  \"screenshot_hosted_url\": null,\n  \"page_metadata\": { }\n}"
    }
  ]
}

2. Поиск в Интернете (search_web)

Поиск в Интернете по заданному запросу и получение структурированных результатов (не ИИ, на основе парсера).

{
  "name": "search_web",
  "arguments": {
    "query": "your search query",
    "country": "US"
  }
}

Параметры:

  • query: Поисковый запрос (обязательно)

  • country: Дополнительный код страны для локализованных результатов (по умолчанию: US)

Ответ:

  • Структурированный JSON (в виде текста), представляющий результаты на основе парсера

3. Ответы (ИИ) (answers)

Поиск в Интернете и получение ответов от ИИ в нужной вам структуре JSON, с источниками и цитатами.

{
  "name": "answers",
  "arguments": {
    "task": "Who are the top 5 competitors to Acme Inc. in the EU?",
    "json": "Return a list of the top 5 competitors with name and homepage URL"
  }
}

Параметры:

  • task: Вопрос или задача для ответа с использованием веб-данных (обязательно)

  • json: Дополнительная схема/объект JSON или краткое описание желаемой структуры вывода

Ответ включает:

  • answer_id, object, task, result (JSON, если предоставлен), sources, created

4. Пакетный скрейпинг URL-адресов (batch_scrape_urls)

Скрейпинг до 10 тыс. URL-адресов одновременно. Идеально подходит для крупномасштабного извлечения данных.

{
  "name": "batch_scrape_urls",
  "arguments": {
    "urls_to_scrape": [
      {"url": "https://example.com/a", "custom_id": "a"},
      {"url": "https://example.com/b", "custom_id": "b"}
    ],
    "output_format": "markdown",
    "country": "US",
    "wait_before_scraping": 500,
    "parser": "@olostep/amazon-product"
  }
}

Ответ включает:

  • batch_id, status, total_urls, created_at, formats, country, parser, urls

5. Создание обхода (create_crawl)

Запуск асинхронного обхода, который автономно обнаруживает и скрейпит целые веб-сайты, переходя по ссылкам. Возвращает crawl_id — обход выполняется в фоновом режиме и не возвращает контент в этом ответе. Затем вы должны вызвать get_crawl_results с crawl_id, чтобы опросить статус и получить проскрейпленные страницы (та же схема из двух шагов, что и batch_scrape_urls + get_batch_results).

{
  "name": "create_crawl",
  "arguments": {
    "start_url": "https://example.com/docs",
    "max_pages": 25,
    "follow_links": true,
    "output_format": "markdown",
    "country": "US",
    "parser": "@olostep/doc-parser"
  }
}

Ответ включает:

  • crawl_id, object, status, start_url, max_pages, follow_links, created, formats, country, parser

Сочетайте этот вызов с get_crawl_results — не передавайте crawl_id в get_batch_results (обходы и пакеты — это разные ресурсы).

6. Создание карты (create_map)

Получение всех URL-адресов на веб-сайте. Извлечение всех URL для обнаружения и анализа.

{
  "name": "create_map",
  "arguments": {
    "website_url": "https://example.com",
    "search_query": "blog",
    "top_n": 200,
    "include_url_patterns": ["/blog/**"],
    "exclude_url_patterns": ["/admin/**"]
  }
}

Ответ включает:

  • map_id, object, url, total_urls, urls, search_query, top_n

7. Получение контента веб-страницы (get_webpage_content)

Извлекает контент веб-страницы в чистом формате markdown с поддержкой рендеринга JavaScript.

{
  "name": "get_webpage_content",
  "arguments": {
    "url_to_scrape": "https://example.com",
    "wait_before_scraping": 1000,
    "country": "US"
  }
}

Параметры:

  • url_to_scrape: URL веб-страницы для скрейпинга (обязательно)

  • wait_before_scraping: Время ожидания в миллисекундах перед началом скрейпинга (по умолчанию: 0)

  • country: Страна проживания, из которой выполняется запрос (например, US, CA, GB) (опционально)

Ответ:

{
  "content": [
    {
      "type": "text",
      "text": "# Example Website\n\nThis is the markdown content of the webpage..."
    }
  ]
}

8. Получение URL-адресов веб-сайта (get_website_urls)

Поиск и получение релевантных URL-адресов с веб-сайта, отсортированных по релевантности вашему запросу.

{
  "name": "get_website_urls",
  "arguments": {
    "url": "https://example.com",
    "search_query": "your search term"
  }
}

Параметры:

  • url: URL веб-сайта для отображения (обязательно)

  • search_query: Поисковый запрос для сортировки URL-адресов (обязательно)

Ответ:

{
  "content": [
    {
      "type": "text",
      "text": "Found 42 URLs matching your query:\n\nhttps://example.com/page1\nhttps://example.com/page2\n..."
    }
  ]
}

9. Получение результатов пакета (get_batch_results)

Получение результатов ранее отправленного задания пакетного скрейпинга с использованием его batch_id.

{
  "name": "get_batch_results",
  "arguments": {
    "batch_id": "batch_abc123"
  }
}

Параметры:

  • batch_id: ID пакета, возвращенный из batch_scrape_urls (обязательно)

Ответ включает:

  • batch_id, status (processing или completed), total_urls, completed_urls, items (массив проскрейпленных результатов для каждого URL с url, custom_id, markdown_content, html_content, json_content, text_content, status, page_metadata)

10. Получение результатов обхода (get_crawl_results)

Получение статуса и проскрейпленных страниц для асинхронного обхода, запущенного с помощью create_crawl. Это обязательный компаньон для create_crawl — create_crawl только запускает задание и возвращает crawl_id; этот инструмент — способ, которым вы фактически получаете обнаруженные страницы и их контент.

{
  "name": "get_crawl_results",
  "arguments": {
    "crawl_id": "crawl_abc123",
    "formats": ["markdown"],
    "items_limit": 20,
    "cursor": 0
  }
}

Параметры:

  • crawl_id: ID обхода, возвращенный из create_crawl (обязательно)

  • formats: Массив форматов для получения каждой страницы — markdown, html, json, text (по умолчанию: ["markdown"])

  • items_limit: Максимальное количество страниц для получения контента, 1–100 (по умолчанию: 20)

  • cursor: Курсор пагинации для списка обнаруженных страниц (по умолчанию: 0)

  • search_query: Дополнительный фильтр для ранжирования/выбора страниц по релевантности запросу

Ответ включает:

  • В процессе: crawl_id, status (in_progress), pages_completed, pages_total и message с предложением повторить вызов примерно через 10 секунд.

  • После завершения: crawl_id, status (completed), pages_returned, next_cursor, has_more и массив pages, где каждая запись содержит url, custom_id и запрошенные поля контента (markdown_content, html_content, json_content, text_content).

Обработка ошибок

Сервер обеспечивает надежную обработку ошибок:

  • Подробные сообщения об ошибках для проблем с API

  • Отчеты о сетевых ошибках

  • Обработка сбоев аутентификации

  • Информация об ограничении скорости (rate limit)

Пример ответа с ошибкой:

{
  "isError": true,
  "content": [
    {
      "type": "text",
      "text": "Olostep API Error: 401 Unauthorized. Details: {\"error\":\"Invalid API key\"}"
    }
  ]
}

Распространение

Образы Docker

MCP-сервер доступен в виде образа Docker:

  • Docker Hub: [olostep/mcp-server](https://hub.docker.com/r/olostep/mcp-server)

  • Официальный реестр Docker MCP: mcp/olostep (скоро — повышенная безопасность с подписями и SBOM)

  • Реестр контейнеров GitHub: ghcr.io/olostep/olostep-mcp-server

Docker Desktop MCP Toolkit

MCP-сервер Olostep добавляется в официальный набор инструментов MCP Toolkit для Docker Desktop, что означает, что пользователи смогут:

  • Обнаруживать его в пользовательском интерфейсе MCP Toolkit в Docker Desktop

  • Устанавливать его в один клик

  • Настраивать его визуально

  • Использовать его с любым MCP-совместимым клиентом (Claude Desktop, Cursor и т. д.)

Статус: Отправка на рассмотрение в Docker MCP Registry

Поддерживаемые платформы

  • linux/amd64

  • linux/arm64

Локальная сборка

# Clone the repository
git clone https://github.com/olostep/olostep-mcp-server.git
cd olostep-mcp-server

# Build the image
npm install
npm run build
docker build -t olostep/mcp-server .

# Run locally
docker run -i --rm -e OLOSTEP_API_KEY="your-key" olostep/mcp-server

Лицензия

Лицензия ISC

Available Tools

8 tools
answersAnswersA
Read-onlyIdempotent
Inspect

Use this when the user asks a factual question the live web can answer in a sentence or a few fields, such as a company's founding year, a CEO's name or a product's current price. Searches and reads the pages itself and returns the answer with its source URLs, optionally as a flat JSON object of the fields you list in json. For a list of items from one page (latest blog posts, a price table), call scrape_website on that page instead.

Inputs: task (required), json.

batch_scrape_urlsBatch Scrape URLsA
Read-only
Inspect

Use this when you have a known list of URLs to scrape, such as URLs from a CSV or from search results (up to 100k in one batch). Waits up to wait_for_completion_seconds (default 45) and returns the content if the batch finishes in that time. Larger batches usually take 5-8 min and return a batch_id: get their content with get_batch_results, a set at a time, passing next_cursor for the rest. For one or a few URLs, scrape_website is faster; to discover a site's pages, use create_crawl.

Inputs: urls, parser, country, output_format, +3 more.

create_crawlCreate CrawlA
Read-only
Inspect

Use this when you need the content of many pages from one website, such as a docs section or a blog: it follows links from a start URL and scrapes each page it finds, up to max_pages. Waits up to wait_for_completion_seconds (default 45) and returns the pages if the crawl finishes in that time; otherwise returns a crawl_id to pass to get_crawl_results (not get_batch_results). For a known list of URLs use batch_scrape_urls; for one page use scrape_website.

Inputs: url, parser, country, max_pages, +3 more.

create_mapCreate MapA
Read-onlyIdempotent
Inspect

Use this when you need the list of URLs on a website, not their content: to see a site's pages, find a section, or pick pages to scrape. Can rank URLs by search_query and filter them with glob patterns. Returns URLs only. To get the content of many pages from the site, use create_crawl.

Inputs: url, top_n, website_url, search_query, +2 more.

get_batch_resultsGet Batch ResultsA
Read-onlyIdempotent
Inspect

Use this to get the content of a batch started with batch_scrape_urls, using its batch_id. While the batch is in_progress it returns the status: call again in about 10 seconds. Once completed it returns each URL's url, title and content, up to items_limit per call; when has_more is true, pass next_cursor for the rest. Do not start a new batch to check on one that is still running.

Inputs: batch_id (required), cursor, formats, items_limit, +1 more.

get_crawl_resultsGet Crawl ResultsA
Read-onlyIdempotent
Inspect

Use this to get the pages of a crawl started with create_crawl, using its crawl_id. While the crawl is in_progress it returns the status: call again in about 10 seconds. Once completed it returns each page's url, title and content, up to items_limit per call; when has_more is true, pass next_cursor for the rest. Do not start a new crawl to check on one that is still running.

Inputs: crawl_id (required), cursor, formats, items_limit, +2 more.

scrape_websiteScrape WebsiteA
Read-onlyIdempotent
Inspect

Use this when you have a URL and need what is on the page. Returns the page as clean markdown (default), html or text, with its url and title, after rendering JavaScript. For structured fields, set output_format to "json" with an llm_extract schema or a parser. Long pages are cut at max_characters (default 20,000) with a link to the full text. For many known URLs use batch_scrape_urls; for many pages of one site use create_crawl.

Inputs: url, parser, country, llm_extract, +4 more.

search_webSearch WebA
Read-onlyIdempotent
Inspect

Use this when you need web pages on a topic and do not have a URL yet. Returns up to limit results (1-25), each with its URL, title and description. Set scrape_results to true to also get each result page's content as markdown in the same call (each scraped page costs extra credits); otherwise pass the URLs you need to scrape_website, or to batch_scrape_urls for many. Use include_domains to search one site. For a direct factual answer with sources, use answers.

Inputs: query (required), limit, max_characters, scrape_results, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a clearly distinct role, and the descriptions explicitly disambiguate near-neighbors (create_map for URLs vs create_crawl for content, batch_scrape_urls vs scrape_website by cardinality, answers vs search_web by intent). The paired async polling tools are also explicitly separated ("pass to get_crawl_results (not get_batch_results)").

    Naming Consistency4/5

    Most names follow a verb_noun snake_case pattern (create_map, create_crawl, get_crawl_results, search_web, scrape_website). `answers` breaks the pattern as a bare noun/verb with no object, and `batch_scrape_urls` uses a modifier prefix not seen elsewhere, but overall the convention is readable and predictable.

    Tool Count5/5

    Eight tools is well within the sweet spot for a web-scraping/extraction server. Every tool earns its place: two discovery methods, two fetch modes, two async result retrievers, search, and direct Q&A, with no redundant entries.

    Completeness4/5

    The surface covers the full pipeline: discover (create_map, create_crawl, search_web), fetch (scrape_website, batch_scrape_urls), extract (answers), and retrieve async results with pagination. Minor gaps exist around job lifecycle management (listing or cancelling runs) and no explicit retry/status-check-by-id beyond the two result tools.

    Maintenance

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers