Olostep MCP Server

io.github.olostep由 GitHub 帳號 olostep 發布v1.0.19更新於 Nov 3, 2026

Live web search, scraping and crawling API for AI. Get structured, LLM-ready data from any site.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶

概覽

AI 產生的概覽

Olostep 讓助理進行即時網頁搜尋、單頁擷取、批次擷取、網站爬取與 URL 對應,回傳乾淨的 markdown、HTML、JSON 或純文字。

可以做什麼
  • 搜尋網頁並取得結構化的解析結果,或提出事實性問題並獲得附來源與引用的回答
  • 擷取單一 URL,或以乾淨的 markdown 取得網頁,可選擇格式、JavaScript 等待時間與國家路由
  • 在一次非同步工作中批次擷取一組 URL,並分頁讀取結果
  • 從起始 URL 爬取網站,並輪詢取得發現的頁面及其內容
  • 對應網站的 URL,或依與查詢的相關度找出站內 URL
適用情境
適合助理需要最新網頁資料而非訓練知識時使用:擷取文件或部落格章節、從已知 URL 清單取出內容,或回答有範圍的事實性問題並附引用。託管端點方便快速接入,本機套件適合偏好 stdio 的用戶端。
執行需求
可使用 mcp.olostep.com 託管端點,透過 OAuth 登入或 Authorization bearer 權杖驗證;也可用 npx olostep-mcp 或 Docker 映像在本機執行。本機執行需要 Node.js,並在 OLOSTEP_API_KEY 提供 Olostep API 金鑰;選用的 ORBIT_KEY 可讓請求經 Orbit 路由。需要網路存取。
安裝前請注意
需要 Olostep 帳號與 API 金鑰,用量由服務商計費,大規模爬取或批次工作可能產生費用;新帳號每批從 100 個 URL 起。API 金鑰透過 OLOSTEP_API_KEY 或 Authorization 標頭傳遞,應避免寫入共用設定檔。擷取的頁面內容與查詢會傳送到 Olostep 的伺服器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Olostep MCP Server,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.olostep%2Folostep-mcp-server/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "olostep": {
      "type": "http",
      "url": "https://mcp.olostep.com/mcp"
    }
  }
}

README

Olostep MCP Server

Docker Hub npm version License: ISC

Live web search, scraping and crawling API for AI. Get structured, LLM-ready data from any site. Scale to 1M requests with 10 parallel batches at low cost.

Olostep is web data infrastructure for AI agents and enterprise AI workflows. Its APIs provide live web search, scraping and crawling to extract, clean and structure data from the web. This is the official Olostep Model Context Protocol (MCP) server, which gives any MCP-compatible AI agent those capabilities.

Use the hosted server at https://mcp.olostep.com/mcp (sign in with OAuth, or use an API key), or run it locally with an API key from the Olostep website.

Why Olostep

  • Web data infrastructure for developers and enterprises
  • Scales to hundreds of millions to billions of requests per customer per month
  • The most performant, reliable and cost-effective API on the market
  • Used by the fastest-growing AI companies

From extracting data from a handful of URLs to crawling hundreds of millions of pages, Olostep gives developers and AI companies reliable, scalable and highly cost-effective access to clean, structured web data.

Features

  • Scrape website content in HTML, Markdown, JSON or Plain Text (with optional parsers)
  • Parser-based web search with structured results
  • AI Answers with citations and optional JSON-shaped outputs
  • Batch scraping of up to 100k URLs
  • Autonomous site crawling from a start URL
  • Website URL discovery and mapping (with include/exclude filters)
  • Country-specific request routing for geo-targeted content
  • Configurable wait times for JavaScript-heavy websites
  • Comprehensive error handling and reporting
  • Simple API key configuration

Installation

There are multiple ways to connect to the Olostep MCP Server. Choose the one that best fits your workflow.

One-click install

Connect to the hosted server and sign in with your Olostep account (OAuth). No API key or local setup needed.

[Install in Cursor] [Install in VS Code] [Add to Replit] [Add to Claude] [Add to ChatGPT]

Or from the terminal:

bash
# Claude Codeclaude mcp add --transport http olostep https://mcp.olostep.com/mcp
# Gemini CLI (prompts for your API key)gemini extensions install https://github.com/olostep/olostep-mcp-server

For other clients, see Client Setup.

☁️ Remote Endpoint (Recommended)

The simplest way — no local installation required. Connect directly to our hosted MCP server:

https://mcp.olostep.com/mcp

Authentication is done via a Bearer token in the Authorization header using your Olostep API key. See the Client Setup section below for configuration examples.

🐳 Docker Hub

Pull and run the official Docker image:

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

🔧 Local Docker Build

If you prefer to build the image yourself from source:

bash
git clone https://github.com/olostep/olostep-mcp-server.gitcd olostep-mcp-servernpm installnpm run builddocker build -t olostep/mcp-server:local .
docker run -i --rm -e OLOSTEP_API_KEY="your-api-key" olostep/mcp-server:local

📦 npx

Run without any installation using npx:

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

On Windows (PowerShell):

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

On Windows (CMD):

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

Or install globally:

bash
npm install -g olostep-mcp

Client Setup

Gemini CLI

Install the Olostep extension in Gemini CLI (requires an Olostep API key):

bash
gemini extensions install https://github.com/olostep/olostep-mcp-server

Configure your API key through Gemini CLI's sensitive extension settings:

bash
gemini extensions config olostep OLOSTEP_API_KEY

Gemini CLI stores this value in your system keychain. Restart Gemini CLI, then verify the extension and MCP server:

bash
gemini extensions listgemini mcp list

For authentication errors, configure the key again. For connection errors, restart Gemini CLI and run gemini mcp list. See the official Gemini CLI extensions documentation for details.

Cursor

The easiest way is to use the remote endpoint. Create or edit .cursor/mcp.json in your project root:

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

Alternative (local): Go to Cursor Settings > Features > MCP Servers, click "+ Add New MCP Server":

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

Claude Desktop

Add this to your claude_desktop_config.json:

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

Alternative (Docker):

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

Or install via the Smithery CLI in your device terminal:

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

Claude Code

Add the remote endpoint to your Claude Code MCP configuration:

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

Alternative (local):

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

Windsurf

Add this to your ./codeium/windsurf/model_config.json:

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

Alternative (local):

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

Cline

Add this to your cline_mcp_settings.json (Cline → MCP Servers → Configure):

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

Cline can also set this up for you: ask it to install the MCP server from this repository, and it follows llms-install.md.

VS Code

Add this to your .vscode/mcp.json:

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

Alternative (local):

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

GitHub Copilot CLI

Inside Copilot CLI, run /mcp add and enter:

  • Name: olostep
  • Type: HTTP
  • URL: https://mcp.olostep.com/mcp
  • Headers: leave empty

Save with Ctrl+S, then sign in with your Olostep account when prompted (OAuth). Check the connection with /mcp show olostep.

This writes the following to ~/.copilot/mcp-config.json:

json
{  "mcpServers": {    "olostep": {      "type": "http",      "url": "https://mcp.olostep.com/mcp",      "tools": ["*"]    }  }}

Zed

Add this to your Zed settings.json:

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

Alternative (extension): the Olostep Zed extension runs the local server and asks for your API key in Zed's setup screen.

Metorial

Option 1: One-Click Installation (Recommended)

  1. Open Metorial dashboard
  2. Navigate to MCP Servers directory
  3. Search for "Olostep"
  4. Click "Install" and enter your API key

Option 2: Manual Configuration

Add this to your Metorial MCP server configuration:

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

The Olostep tools will then be available in your Metorial AI chats.

Configuration

Environment Variables

  • OLOSTEP_API_KEY: Your Olostep API key (required)
  • ORBIT_KEY: An optional key for using Orbit to route requests.

Available Tools

1. Scrape Website (scrape_website)

Extract content from a single URL. Supports multiple formats and JavaScript rendering.

json
{  "name": "scrape_website",  "arguments": {    "url_to_scrape": "https://example.com",    "output_format": "markdown",    "country": "US",    "wait_before_scraping": 1000,    "parser": "@olostep/amazon-it-product"  }}
Parameters:
  • url_to_scrape: The URL of the website you want to scrape (required)
  • output_format: Choose format (html, markdown, json, or text) - default: markdown
  • country: Optional country code (e.g., US, GB, CA) for location-specific scraping
  • wait_before_scraping: Wait time in milliseconds before scraping (0-10000)
  • parser: Optional parser ID for specialized extraction
Response (example):
json
{  "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 the Web (search_web)

Search the Web for a given query and get structured results (non-AI, parser-based).

json
{  "name": "search_web",  "arguments": {    "query": "your search query",    "country": "US"  }}
Parameters:
  • query: Search query (required)
  • country: Optional country code for localized results (default: US)
Response:
  • Structured JSON (as text) representing parser-based results

3. Answers (AI) (answers)

Search the web and return AI-powered answers in the JSON structure you want, with sources and citations.

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"  }}
Parameters:
  • task: Question or task to answer using web data (required)
  • json: Optional JSON schema/object or a short description of the desired output shape
Response includes:
  • answer_id, object, task, result (JSON if provided), sources, created

4. Batch Scrape URLs (batch_scrape_urls)

Scrape up to 100k URLs in one batch. Perfect for large-scale data extraction. New accounts start at 100 URLs per batch, and [email protected] can lift this.

json
{  "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-it-product"  }}
Response includes:
  • batch_id, status, total_urls, created_at, formats, country, parser, urls

5. Create Crawl (create_crawl)

Start an async crawl that autonomously discovers and scrapes entire websites by following links. Returns a crawl_id — the crawl runs in the background and does not return content in this response. You must then call get_crawl_results with the crawl_id to poll status and retrieve the scraped pages (same two-step pattern as batch_scrape_urls + get_batch_results).

json
{  "name": "create_crawl",  "arguments": {    "start_url": "https://example.com/docs",    "max_pages": 25,    "output_format": "markdown",    "country": "US",    "parser": "@olostep/doc-parser"  }}
Response includes:
  • crawl_id, object, status, start_url, max_pages, created, formats, country, parser

Pair this call with get_crawl_results — do not pass a crawl_id to get_batch_results (crawls and batches are separate resources).

6. Create Map (create_map)

Get all URLs on a website. Extract all URLs for discovery and analysis.

json
{  "name": "create_map",  "arguments": {    "website_url": "https://example.com",    "search_query": "blog",    "top_n": 200,    "include_url_patterns": ["/blog/**"],    "exclude_url_patterns": ["/admin/**"]  }}
Response includes:
  • map_id, object, url, total_urls, urls, search_query, top_n

7. Get Webpage Content (get_webpage_content)

Retrieves webpage content in clean markdown format with support for JavaScript rendering.

json
{  "name": "get_webpage_content",  "arguments": {    "url_to_scrape": "https://example.com",    "wait_before_scraping": 1000,    "country": "US"  }}
Parameters:
  • url_to_scrape: The URL of the webpage to scrape (required)
  • wait_before_scraping: Time to wait in milliseconds before starting the scrape (default: 0)
  • country: Residential country to load the request from (e.g., US, CA, GB) (optional)
Response:
json
{  "content": [    {      "type": "text",      "text": "# Example Website\n\nThis is the markdown content of the webpage..."    }  ]}

8. Get Website URLs (get_website_urls)

Search and retrieve relevant URLs from a website, sorted by relevance to your query.

json
{  "name": "get_website_urls",  "arguments": {    "url": "https://example.com",    "search_query": "your search term"  }}
Parameters:
  • url: The URL of the website to map (required)
  • search_query: The search query to sort URLs by (required)
Response:
json
{  "content": [    {      "type": "text",      "text": "Found 42 URLs matching your query:\n\nhttps://example.com/page1\nhttps://example.com/page2\n..."    }  ]}

9. Get Batch Results (get_batch_results)

Retrieve the results of a previously submitted batch scrape job using its batch_id.

json
{  "name": "get_batch_results",  "arguments": {    "batch_id": "batch_abc123"  }}
Parameters:
  • batch_id: The batch ID returned from batch_scrape_urls (required)
  • items_limit: Max items to retrieve content for per call, 1–100 (default: 20)
  • cursor: Pass next_cursor from the previous result to get the next pages (default: 0)

Large batches return their pages a set at a time. When has_more is true, call again with next_cursor until you have every page.

Response includes:
  • batch_id, status (processing or completed), total_urls, completed_urls, items (array of scraped results per URL with url, custom_id, markdown_content, html_content, json_content, text_content, status, page_metadata)

10. Get Crawl Results (get_crawl_results)

Retrieve the status and scraped pages for an async crawl started with create_crawl. This is the required companion to create_crawl — create_crawl only kicks off the job and returns a crawl_id; this tool is how you actually fetch the discovered pages and their content.

json
{  "name": "get_crawl_results",  "arguments": {    "crawl_id": "crawl_abc123",    "formats": ["markdown"],    "items_limit": 20,    "cursor": 0  }}
Parameters:
  • crawl_id: The crawl ID returned from create_crawl (required)
  • formats: Array of formats to retrieve per page — markdown, html, json, text (default: ["markdown"])
  • items_limit: Max pages to retrieve content for, 1–100 (default: 20)
  • cursor: Pagination cursor into the list of discovered pages (default: 0)
  • search_query: Optional filter to rank/select pages by relevance to a query
Response includes:
  • While in progress: crawl_id, status (in_progress), pages_completed, pages_total, and a message prompting you to call again in ~10 seconds.
  • When completed: crawl_id, status (completed), pages_returned, next_cursor, has_more, and a pages array where each entry has url, custom_id, and the requested content fields (markdown_content, html_content, json_content, text_content).

Error Handling

The server provides robust error handling:

  • Detailed error messages for API issues
  • Network error reporting
  • Authentication failure handling
  • Rate limit information

Example error response:

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

Distribution

Docker Images

The MCP server is available as a Docker image:

  • Docker Hub: [olostep/mcp-server](https://hub.docker.com/r/olostep/mcp-server)
  • Official Docker MCP Registry: mcp/olostep (coming soon - enhanced security with signatures & SBOMs)
  • GitHub Container Registry: ghcr.io/olostep/olostep-mcp-server

Docker Desktop MCP Toolkit

The Olostep MCP Server is being added to Docker Desktop's official MCP Toolkit, which means users will be able to:

  • Discover it in Docker Desktop's MCP Toolkit UI
  • Install it with one click
  • Configure it visually
  • Use it with any MCP-compatible client (Claude Desktop, Cursor, etc.)

Status: Submission in progress to Docker MCP Registry

Supported Platforms

  • linux/amd64
  • linux/arm64

Building Locally

bash
# Clone the repositorygit clone https://github.com/olostep/olostep-mcp-server.gitcd olostep-mcp-server
# Build the imagenpm installnpm run builddocker build -t olostep/mcp-server .
# Run locallydocker run -i --rm -e OLOSTEP_API_KEY="your-key" olostep/mcp-server

About Olostep

Olostep is web data infrastructure for AI. It provides live web search, scraping and crawling API to extract and structure data, used in production by AI companies to give their agents fresh, LLM-ready web data at scale.

License

ISC License

來源:README.md,提交 f4d068f

工具

10

create_map

Create Map

List the URLs on a website without scraping their content. Suited to showing a site's pages, mapping a site, or picking a subset of URLs to scrape. `create_crawl` both discovers and scrapes pages when their content is needed too.

輸入參數urltop_nwebsite_urlsearch_queryexclude_url_patternsinclude_url_patterns

create_crawl

Create Crawl

Crawl a website from a start URL: follows links on the same site and scrapes each page it finds, up to `max_pages`. Suited to getting many pages from one site, such as a docs section or a blog. Waits up to `wait_for_completion_seconds` (default 45) and returns the scraped pages when the crawl finishes in that time. Larger crawls return a crawl_id instead, and `get_crawl_results` returns their pages once done. Crawls and batches are separate resources, so a crawl_id works with `get_crawl_results`, not `get_batch_results`.

輸入參數urlparsercountrymax_pagesstart_urloutput_formatwait_for_completion_seconds

get_crawl_results

Get Crawl Results

Retrieve the status and scraped pages for a crawl job started with create_crawl. While the crawl is in_progress it returns the current status, so call again after about 10 seconds. Once completed, it returns the discovered pages with their scraped content in the requested formats.

輸入參數cursorformatscrawl_id必填items_limitsearch_query

batch_scrape_urls

Batch Scrape URLs

Scrape a known list of URLs (up to 10,000) in one async job, for example URLs from a CSV or from search results. Waits up to `wait_for_completion_seconds` (default 45) and returns the scraped content when the batch finishes in that time. Larger batches (usually 5-8 min) return a batch_id instead, and `get_batch_results` returns their content once done.

輸入參數urlsparsercountryoutput_formaturls_to_scrapewait_before_scrapingwait_for_completion_seconds

get_batch_results

Get Batch Results

Retrieve the status and scraped content for a batch job. Pass the batch_id returned by batch_scrape_urls. If the batch is completed, returns the scraped content for each URL. If still in_progress, returns the current status so you can call again later.

輸入參數formatsbatch_id必填items_limit

answers

Answers

Answer a factual question using web search, optionally shaped into a flat JSON object of fields, with sources and citations. Suited to bounded, factual answers such as a company's founding year or a product's current price. Lists of items on a live page, such as the latest blog posts, come back more reliably from scraping that page.

輸入參數jsontask必填

search_web

Search Web

Search the web for a given query and return structured results (non-AI, parser-based).

輸入參數query必填country

scrape_website

Scrape Website

Extract content from a single URL. Supports multiple formats and JavaScript rendering.

輸入參數urlparsercountryllm_extractoutput_formaturl_to_scrapewait_before_scraping

get_webpage_content

Get Webpage Content

Retrieve content of a webpage in markdown

輸入參數urlcountryurl_to_scrapewait_before_scraping

get_website_urls

Get Website URLs

Find URLs on a website that match a search query, ranked by relevance. Returns links only and does not scrape page content.

輸入參數url必填search_query必填

版本歷史

3
  1. v1.0.19最新Oct 29, 2026
  2. v1.0.18Oct 26, 2026
  3. v1.0.17Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分