Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OLOSTEP_API_KEYYesAPI key required to use the Olostep MCP server

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Olostep gives you live web data. Pick the tool by goal:

  • Find pages on a topic, no URL yet: search_web.

  • Read one known URL: scrape_website.

  • A factual answer with sources: answers.

  • List a site's URLs without their content: create_map.

  • Content of many pages from one site: create_crawl.

  • Content of a known list of URLs: batch_scrape_urls.

create_crawl and batch_scrape_urls return the content if the job finishes within wait_for_completion_seconds; otherwise they return a crawl_id or batch_id. Fetch it with get_crawl_results or get_batch_results, and do not start a new job for the same URLs. Page content is cut at 20,000 characters per page by default. A cut page says so and links to its full text; call scrape_website with a higher max_characters to read more. For structured fields from a page, call scrape_website with output_format "json" and an llm_extract schema. For a list of items on one page (latest posts, a price table), scrape that page rather than using answers.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_mapA

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.

create_crawlA

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.

get_crawl_resultsA

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.

batch_scrape_urlsA

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.

get_batch_resultsA

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.

answersA

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.

search_webA

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.

scrape_websiteA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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