by olostep
Provides live web search, scraping, and crawling capabilities for any MCP‑compatible AI agent, returning structured, LLM‑ready data in real time.
Olostep MCP Server delivers a unified API that enables AI agents to perform live web searches, scrape individual pages, run batch extractions, and conduct autonomous site crawls. The service returns data in formats such as HTML, Markdown, JSON, or plain text, ready for immediate consumption by language models.
https://mcp.olostep.com/mcp or a locally‑run instance.Authorization: Bearer <API_KEY>).scrape_website, search_web, answers, batch_scrape_urls, create_crawl, create_map, get_batch_results, get_crawl_results) via any MCP‑compatible client (Gemini CLI, Cursor, Claude, VS Code, etc.).Quick local run
env OLOSTEP_API_KEY=your-key npx -y olostep-mcp
Q: Do I need to run the server locally? A: No. You can use the hosted endpoint with an API key. Local deployment is optional for private networks or custom environments.
Q: How many requests can I make? A: The service scales to millions of requests per month; limits are enforced per account and can be increased on request.
Q: What formats are supported for scraped content?
A: html, markdown, json, and text. JSON output is never truncated; other formats respect a configurable max_characters limit.
Q: How are authentication errors handled?
A: The server returns a clear error payload with isError: true and details about invalid or missing API keys.
Q: Can I filter search results by domain?
A: Yes, using include_domains and exclude_domains parameters in the search_web tool.
Q: Is there a way to retrieve full content when it’s truncated?
A: Truncated responses include a hosted URL (*_hosted_url) where the complete text can be downloaded.
Q: What client integrations are available? A: Official extensions exist for Gemini CLI, Cursor, Claude Desktop/Code, VS Code, GitHub Copilot CLI, Zed, Replit, and more.
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.
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.
There are multiple ways to connect to the Olostep MCP Server. Choose the one that best fits your workflow.
Connect to the hosted server and sign in with your Olostep account (OAuth). No API key or local setup needed.
Or from the terminal:
# Claude Code
claude 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.
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.
Pull and run the official Docker image:
docker pull olostep/mcp-server
docker run -i --rm \
-e OLOSTEP_API_KEY="your-api-key" \
olostep/mcp-server
If you prefer to build the image yourself from source:
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
Run without any installation using npx:
env OLOSTEP_API_KEY=your-api-key npx -y olostep-mcp
On Windows (PowerShell):
$env:OLOSTEP_API_KEY = "your-api-key"; npx -y olostep-mcp
On Windows (CMD):
set OLOSTEP_API_KEY=your-api-key && npx -y olostep-mcp
Or install globally:
npm install -g olostep-mcp
Install the Olostep extension in Gemini CLI (requires an Olostep API key):
gemini extensions install https://github.com/olostep/olostep-mcp-server
Configure your API key through Gemini CLI's sensitive extension settings:
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:
gemini extensions list
gemini 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.
The easiest way is to use the remote endpoint. Create or edit .cursor/mcp.json in your project root:
{
"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":
olostepcommandenv OLOSTEP_API_KEY=your-api-key npx -y olostep-mcpAdd this to your claude_desktop_config.json:
{
"mcpServers": {
"mcp-server-olostep": {
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Alternative (Docker):
{
"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:
npx -y @smithery/cli install @olostep/olostep-mcp-server --client claude
Add the remote endpoint to your Claude Code MCP configuration:
{
"mcpServers": {
"olostep": {
"url": "https://mcp.olostep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
Alternative (local):
{
"mcpServers": {
"olostep": {
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Add this to your ./codeium/windsurf/model_config.json:
{
"mcpServers": {
"olostep": {
"serverUrl": "https://mcp.olostep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
Alternative (local):
{
"mcpServers": {
"mcp-server-olostep": {
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Add this to your cline_mcp_settings.json (Cline → MCP Servers → Configure):
{
"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.
Add this to your .vscode/mcp.json:
{
"servers": {
"olostep": {
"type": "http",
"url": "https://mcp.olostep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
Alternative (local):
{
"servers": {
"olostep": {
"type": "stdio",
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Inside Copilot CLI, run /mcp add and enter:
olostephttps://mcp.olostep.com/mcpSave 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:
{
"mcpServers": {
"olostep": {
"type": "http",
"url": "https://mcp.olostep.com/mcp",
"tools": ["*"]
}
}
}
Add this to your Zed settings.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.
Option 1: One-Click Installation (Recommended)
Option 2: Manual Configuration
Add this to your Metorial MCP server configuration:
{
"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.
OLOSTEP_API_KEY: Your Olostep API key (required)ORBIT_KEY: An optional key for using Orbit to route requests.scrape_website)Use this when you have a URL and need what is on the page. Returns markdown (default), html or text with the page's url and title, after rendering JavaScript. Long pages are cut at max_characters (default 20,000) and link to their full text.
{
"name": "scrape_website",
"arguments": {
"url_to_scrape": "https://example.com",
"output_format": "markdown",
"country": "US",
"wait_before_scraping": 1000,
"parser": "@olostep/amazon-it-product"
}
}
url_to_scrape: The URL of the website you want to scrape (required)output_format: Choose format (html, markdown, json, or text) - default: markdowncountry: Optional country code (e.g., US, GB, CA) for location-specific scrapingwait_before_scraping: Wait time in milliseconds before scraping (0-10000)parser: Optional parser ID for specialized extractionmax_characters: Max characters of page content to return (default: 20000). Raise it to read more of a long page.The page's url and title come first. When the content is longer than max_characters, it is cut and truncated gives the full length and a full_text_url. JSON output is never cut: it is returned whole up to 100,000 characters. Above that, json_content is left out and json_content_omitted gives its size and a json_url to fetch the full JSON.
{
"url": "https://en.wikipedia.org/wiki/Web_scraping",
"title": "Web scraping - Wikipedia",
"markdown_content": "Web scraping - Wikipedia ...",
"markdown_hosted_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/markDown_....txt",
"truncated": [
{ "field": "markdown_content", "returned_characters": 20000, "total_characters": 57235, "full_text_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/markDown_....txt" }
],
"truncation_note": "Content was cut at 20000 characters. ..."
}
search_web)Search the web for a query and get each result's URL, title and description. Optionally get each result page's content as markdown in the same call.
{
"name": "search_web",
"arguments": {
"query": "your search query",
"limit": 10,
"include_domains": ["docs.olostep.com"],
"scrape_results": true
}
}
query: Search query in natural language (required)limit: Number of results, from 1 to 25 (default: 10)include_domains: Only return results from these domains (optional)exclude_domains: Never return results from these domains (optional)scrape_results: Also return each result page's content as markdown (default: false). Each scraped page uses extra credits.max_characters: With scrape_results, the maximum characters of content per page (default: 20000)query, search_id, total_results and results: each result has url, title and description, plus markdown_content when scrape_results is true. Cut pages list the cut fields under truncated.answers)Search the web and return AI-powered answers in the JSON structure you want, with sources and citations.
{
"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: Question or task to answer using web data (required)json: Optional JSON schema/object or a short description of the desired output shapeanswer_id, object, task, result (JSON if provided), sources, createdbatch_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 info@olostep.com can lift this.
{
"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"
}
}
batch_id, status, total_urls, created_at, formats, country, parser, urlscreate_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).
{
"name": "create_crawl",
"arguments": {
"start_url": "https://example.com/docs",
"max_pages": 25,
"output_format": "markdown",
"country": "US",
"parser": "@olostep/doc-parser"
}
}
crawl_id, object, status, start_url, max_pages, created, formats, country, parserPair this call with
get_crawl_results— do not pass acrawl_idtoget_batch_results(crawls and batches are separate resources).
create_map)Get all URLs on a website. Extract all URLs for discovery and analysis.
{
"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_nget_batch_results)Retrieve the results of a previously submitted batch scrape job using its batch_id.
{
"name": "get_batch_results",
"arguments": {
"batch_id": "batch_abc123"
}
}
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)max_characters: Max characters of content per URL (default: 20000). Longer pages are cut and link to their full text.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.
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)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.
{
"name": "get_crawl_results",
"arguments": {
"crawl_id": "crawl_abc123",
"formats": ["markdown"],
"items_limit": 20,
"cursor": 0
}
}
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 querymax_characters: Max characters of content per page (default: 20000). Longer pages are cut and link to their full text.crawl_id, status (in_progress), pages_completed, pages_total, and a message prompting you to call again in ~10 seconds.crawl_id, status (completed), pages_returned, next_cursor, has_more, and a pages array where each entry has url, title, custom_id, and the requested content fields (markdown_content, html_content, json_content, text_content).get_webpage_content and get_website_urls duplicated scrape_website and create_map. They are no longer listed to clients, so models choose between fewer, clearer tools, but calls to them still work. Use scrape_website and create_map instead.
The server provides robust error handling:
Example error response:
{
"isError": true,
"content": [
{
"type": "text",
"text": "Olostep API Error: 401 Unauthorized. Details: {\"error\":\"Invalid API key\"}"
}
]
}
The MCP server is available as a Docker image:
[olostep/mcp-server](https://hub.docker.com/r/olostep/mcp-server)mcp/olostep (coming soon - enhanced security with signatures & SBOMs)ghcr.io/olostep/olostep-mcp-serverThe Olostep MCP Server is being added to Docker Desktop's official MCP Toolkit, which means users will be able to:
Status: Submission in progress to Docker MCP Registry
linux/amd64linux/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
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.
ISC License
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A Model Context Protocol server that provides web content fetching capabilities.
by microsoft
Provides fast, lightweight browser automation using Playwright's accessibility tree, enabling LLMs to interact with web pages through structured snapshots instead of screenshots.
by firecrawl
Provides powerful web scraping capabilities for LLM clients such as Cursor, Claude, and others, enabling content extraction, crawling, search, and batch processing through a Model Context Protocol server.
by firecrawl
Provides web scraping, crawling, search, and structured data extraction for LLM clients through a Model Context Protocol server.
by epiral
Enables AI agents to interact with any website through the user's logged‑in Chrome instance, exposing site‑specific commands via a CLI or MCP server.
by brightdata
Provides real-time web access for AI models, delivering search, markdown‑ready scraping, and optional browser automation while bypassing geo‑restrictions, rate limits, and CAPTCHAs.
by tavily-ai
Provides real‑time web search, intelligent data extraction, structured website mapping, and systematic crawling through an MCP server, ready to be integrated with AI coding assistants and other tools.
by zcaceres
Fetches web content and returns it in HTML, JSON, plain‑text, or Markdown formats, optionally applying custom request headers.
by hyperbrowserai
Provides tools to scrape, extract structured data, crawl webpages, and access general‑purpose browser agents such as OpenAI CUA, Anthropic Claude Computer Use, and lightweight Browser Use via a Model Context Protocol server.
{
"mcpServers": {
"olostep": {
"command": "npx",
"args": [
"-y",
"olostep-mcp"
],
"env": {
"API_KEY": "<YOUR_API_KEY>"
}
}
}
}claude mcp add olostep npx -y olostep-mcp