想象一下,你正在用AI助手分析一家公司的商业模式。你需要从它的官网获取产品介绍,从新闻网站收集媒体报道,从论坛抓取用户评价,甚至还要搜索竞争对手的信息。手动打开十几个网页,复制粘贴内容,然后再整理给AI,这个过程既繁琐又容易遗漏。
现在,有一个专业的解决方案可以把这一切自动化。olostep-mcp-server是一个MCP服务器,它连接了Olostep这个被顶级AI公司使用的网页采集基础设施。配置好之后,你只需要用自然语言告诉AI你的需求,比如“帮我抓取这个网站的所有博客文章,提取标题和发布日期”,它就会自动完成从发现URL到提取内容的整个流程。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | olostep-mcp-server |
| GitHub地址 | https://github.com/olostep/olostep-mcp-server |
| 项目描述 | MCP server for Olostep — the web scraping, crawling, and search infrastructure used by top AI companies. Gives any MCP-compatible AI agent the ability to scrape, crawl, batch-extract, and search the web in real time. |
| 作者 | olostep |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript 78.8%, JavaScript 11.6%, Shell 7.1%, Dockerfile 2.5% |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-22 |
一、项目介绍
olostep-mcp-server是一个MCP协议的服务器实现,它把Olostep强大的网页采集能力封装成了AI可以直接调用的工具。Olostep本身是一个专业的网页采集、爬取和搜索基础设施,被许多顶级AI公司所使用。而这个MCP服务器则是连接AI模型(如Claude、Cursor等)和Olostep服务的桥梁。
这个服务器提供了十个核心工具,覆盖了从简单抓取到复杂爬虫的各种场景:
scrape_website:抓取单个网页的内容。你可以选择输出格式(HTML、Markdown、JSON或纯文本),可以指定地理位置(例如从美国IP访问),还可以设置等待时间让JavaScript页面完全加载。此外,它还支持使用预定义的解析器,比如专门解析亚马逊产品页的@olostep/amazon-product。
search_web:执行网络搜索并返回结构化的结果。这不是AI生成的答案,而是基于解析器的原始搜索结果,适合需要客观数据而不是AI总结的场景。
answers:这是AI驱动的智能搜索。你提出一个问题或任务,它会搜索网络并用AI生成带引用来源的答案。最强大的是,你可以用json参数指定输出的结构,比如“返回一个包含公司名称和市值的列表”,它就会返回格式化的JSON。
batch_scrape_urls:批量抓取,一次可以处理多达1万个URL。每个URL都可以有一个自定义的ID,方便你后续识别。提交后会返回一个batch_id,你需要用另一个工具来获取结果。
get_batch_results:查询批量抓取任务的状态并获取结果。因为批量任务可能耗时较长,它是异步处理的。
create_crawl:启动一个自动化的爬虫任务。给它一个起始URL,它会自动发现链接并爬取整个网站,你可以限制最大页面数。返回一个crawl_id用于后续查询。
get_crawl_results:查询爬虫任务的状态并获取爬取到的页面内容。爬虫是异步运行的,你需要用这个工具轮询结果。
create_map:发现网站上的所有URL。你可以用搜索查询来过滤,或者用包含/排除模式来限定范围。比如只提取博客部分,排除管理后台。
get_webpage_content:这是一个简化版的抓取工具,专门用于快速获取Markdown格式的内容。它不会返回JSON metadata,直接给你干净的文本。
get_website_urls:在一个网站内搜索相关URL,并按相关性排序。非常适合在深入抓取之前先发现目标页面。
这些工具组合在一起,等于给AI装上了一套完整的网页采集工具箱。从单页抓取到全站爬虫,从简单搜索到AI问答,从少量数据到万级批量,都能应对。
二、核心优势
企业级的基础设施
Olostep本身就是被顶级AI公司信任的采集服务商。使用这个MCP服务器,你等于站在了巨人的肩膀上。不需要自己维护代理池、处理反爬策略、管理请求队列,这些复杂的事情都交给了专业服务。
多种部署方式的灵活性
这个项目提供了非常灵活的连接方式。你可以使用Olostep托管的远程端点(https://mcp.olostep.com/mcp),零安装直接使用,通过Bearer token认证。也可以本地运行,支持npx一键执行、npm全局安装,还有官方Docker镜像。无论你喜欢轻量级还是完全本地化,都有对应的选项。
异步任务的完善设计
批量抓取和全站爬虫都可能需要较长时间。这个服务器的设计很周到:提交任务后立即返回一个ID,然后你通过另一个工具来轮询状态。这种模式避免了长时间等待导致的超时,也让你可以在任务完成后才处理结果。
AI友好的输出格式
它非常懂AI需要什么。Markdown是默认的输出格式,干净且结构清晰。answers工具甚至可以让你自定义JSON输出结构,这让后续的数据处理变得异常简单。你告诉AI“给我一个包含标题、价格、库存的列表”,它就能直接返回可用的JSON。
精准的网站映射能力
create_map和get_website_urls这两个工具很有特色。它们不是为了抓取内容,而是为了发现内容的位置。在你决定大规模爬取之前,可以先探索网站的URL结构,用搜索查询找出最相关的页面,甚至可以基于URL模式进行筛选。这节省了大量的带宽和处理时间。
三、适用场景
AI训练数据的规模化采集
如果你在训练一个垂直领域的语言模型,需要大量特定类型的数据,可以用batch_scrape_urls一次性提交数千个URL。配合预定义的解析器,可以自动提取出所需的结构化信息,高效地构建训练数据集。
实时信息的检索与问答
answers工具特别适合需要最新信息的场景。你可以让AI“搜索过去24小时内关于某个产品的负面评价,并总结主要问题”。它会实时搜索网络,生成带引用的答案。这对于舆情监测、竞品分析等场景非常有用。
全站文档的备份与迁移
当你想把一个开源的文档站点完整保存到本地时,可以用create_crawl从文档首页开始爬取。设置好max_pages和过滤器,它就能把整个文档树抓取下来,转换成Markdown格式,然后你可以直接导入到Obsidian或Notion中。
电商数据的监控
配合Amazon等网站的专用解析器,你可以定期抓取产品页面的价格、库存、评分等信息。batch_scrape_urls很适合这种场景:维护一个产品URL列表,每天提交一次批量任务,然后分析价格变化趋势。
SEO与内容策略研究
用create_map可以完整地发现一个竞争对手网站的所有公开URL。然后你可以分析他们的内容结构、博客发布频率、哪些页面获得了最多的链接(通过页面间的引用关系判断)。这些数据对于制定SEO策略很有价值。
法律与合规性的监测
律师事务所或合规部门可以用search_web和answers来监控特定法规的变更、相关案件的新闻报道。设置好关键词和国家/地区,就可以持续获取相关信息。
四、安装教程
前置准备
在使用之前,你需要一个Olostep API密钥。访问Olostep官网(www.olostep.com)注册账号,在控制台中获取API密钥。Olostep通常提供免费试用额度,你可以先测试功能。
最推荐的方式:使用远程端点(零安装)
这是最简单的方法,不需要在本地安装任何东西。只需要在你使用的客户端中配置MCP服务器指向远程端点。
对于Cursor用户,在项目的根目录下创建或编辑.cursor/mcp.json文件:
{
"mcpServers": {
"olostep": {
"url": "https://mcp.olostep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}对于Claude Desktop用户,编辑配置文件(macOS位于~/Library/Application Support/Claude/claude_desktop_config.json,Windows位于%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"mcp-server-olostep": {
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}保存文件后,完全退出并重启Claude Desktop。
对于VS Code用户,在项目根目录下创建.vscode/mcp.json:
{
"servers": {
"olostep": {
"type": "http",
"url": "https://mcp.olostep.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}使用Docker(适合喜欢容器化的用户)
如果你已经安装Docker,可以通过以下命令拉取并运行:
docker pull olostep/mcp-server
docker run -i --rm -e OLOSTEP_API_KEY="your-api-key" olostep/mcp-server然后在客户端的配置中,使用docker命令来启动服务器。以Claude Desktop为例:
{
"mcpServers": {
"olostep": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "OLOSTEP_API_KEY=YOUR_API_KEY_HERE",
"olostep/mcp-server"
]
}
}
}使用npx(无需安装包)
如果你有Node.js环境,可以用npx直接运行,跳过本地安装步骤。在Claude Desktop的配置中:
{
"mcpServers": {
"olostep": {
"command": "npx",
"args": ["-y", "olostep-mcp"],
"env": {
"OLOSTEP_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}对于Windows PowerShell,环境变量的设置方式稍有不同,但npx命令是一样的。
通过Smithery一键安装
Smithery是一个MCP服务器的市场。对于Claude Desktop用户,你可以在终端中运行:
npx -y @smithery/cli install @olostep/olostep-mcp-server --client claude它会自动完成下载和配置。
五、使用示例
配置完成后,你就可以在AI助手中用自然语言调用这些工具了。注意,你不需要手动编写JSON参数,只需要描述你的需求,AI会自动选择合适的工具并填充参数。
示例一:抓取单个网页
你可以这样告诉AI:
“Scrape the content of https://docs.olostep.com/introduction in markdown format”
AI会调用scrape_website工具,返回干净的Markdown内容。你接着可以说:“把这个内容保存成一个本地文件”,AI会响应。
示例二:用AI答案进行研究
“Use the answers tool to research: What are the main features of Olostep MCP server compared to other scraping solutions? Return the answer as JSON with an array of features, each containing a name and a description.”
这里你指定了输出格式,answers工具会返回类似下面的结构:
{
"features": [
{
"name": "Batch scraping",
"description": "Can scrape up to 10,000 URLs simultaneously"
}
]
}示例三:批量抓取产品信息
假设你有一个CSV文件,里面是100个产品的URL。你可以这样请求:
“I have a list of 100 product URLs from Amazon. Please use batch_scrape_urls to scrape them all with the Amazon product parser. Use markdown as the output format, and assign the ASIN as the custom_id for each URL.”
AI会构造一个批量任务提交给Olostep,返回一个batch_id。然后你可以继续问:“What is the status of batch job [batch_id]?” 来查询进度。
示例四:发现并爬取整个网站
你想完整地爬取一个文档站点,但不确定它的URL结构。你可以分两步走:
“First, use create_map to discover all URLs under https://example.com/docs. Only include URLs that match the pattern '/docs/**' and exclude anything with '/api/'. Then, based on the map results, create a crawl starting from the root of the docs section with max_pages set to 50.”
AI会先调用create_map探索站点结构,然后用create_crawl启动爬虫,最后你再用get_crawl_results获取内容。
示例五:搜索并分析
对于快速的信息检索,可以用search_web获取原始结果,或者用answers获取AI加工过的答案:
“Search the web for 'latest trends in serverless computing 2026' and give me the top 5 results with titles and URLs.”
或者更高级的:
“Use answers to find out the current market share of major cloud providers. Return the result as a JSON object with provider names as keys and market share percentages as values.”
六、常见问题
API Key无效或认证失败
请确认你在配置中正确设置了OLOSTEP_API_KEY环境变量或Authorization头。注意不要有多余的空格。另外,检查一下你的Olostep账户是否还有剩余额度,免费试用可能有限制。
抓取或搜索没有返回结果
可能的原因有几个。目标网站可能封锁了Olostep的IP(虽然Olostep会轮换代理,但极少数网站可能有特别严格的封锁)。也可能是等待时间设置太短,JavaScript页面没有完全加载。对于SPA应用,尝试增加wait_before_scraping参数到2000毫秒或更多。另外,检查一下URL是否完整且可公开访问。
批量任务或爬虫任务一直处于处理中状态
batch_scrape_urls和create_crawl是异步任务,提交后需要轮询结果。大型任务可能需要几分钟甚至更长时间。建议使用get_batch_results或get_crawl_results每隔10-30秒查询一次状态。对于超过1万URL的批量任务,可能需要更长时间。
answers返回的结果不符合预期的JSON结构
answers工具的json参数既接受一个JSON Schema对象,也接受一段自然语言描述。如果你给了自然语言描述,AI会尽力理解并生成相应的结构,但可能不够精确。为了稳定获得特定结构,建议提供一个示例JSON对象作为json参数的值。
{
"json": {
"company": "string",
"revenue": "number",
"growth_rate": "string"
}
}create_map返回的URL数量很少或不相关
检查search_query是否准确。这个查询是用来排序URL相关性的,map工具会返回整个网站的URL但按相关性排序。如果你想获取所有URL,可以省略search_query参数。另外,include_url_patterns和exclude_url_patterns支持glob模式,比如/blog/*匹配博客列表页,/blog/**匹配所有博客文章。
在不同客户端之间切换配置很麻烦
建议使用远程端点方式(https://mcp.olostep.com/mcp),因为所有客户端都支持HTTP类型的MCP服务器。你只需要复制同样的URL和Authorization头配置,不需要重复设置环境变量或构建步骤。
七、总结
olostep-mcp-server是目前MCP生态中功能最完整、最专业的网页采集解决方案之一。它把Olostep强大的采集能力与AI模型无缝地连接起来,让“AI自主获取实时网络信息”这个愿景变成了现实。
我最欣赏的是这个项目的设计思路。它没有试图把一切功能都塞进一个单一的工具,而是提供了十个语义清晰、各司其职的工具。从简单的单页抓取到复杂的全站爬虫,从同步查询到异步批处理,每个场景都有对应的最佳工具。而且它充分考虑了AI的使用习惯,Markdown输出、自定义JSON结构、远程零安装端点,这些都是为了让人与AI的交互更顺畅。
当然,这不是一个完全免费的方案。Olostep是商业服务,虽然提供免费试用额度,但大规模使用需要付费。不过考虑到它所解决的问题的复杂性(动态渲染、反爬绕过、全球代理、智能解析),这个成本对于需要可靠网页采集能力的团队来说是完全合理的。而且MCP服务器本身是开源的(ISC许可证),你可以在自己的基础设施上运行它。
如果你是AI应用开发者,正在寻找一种让AI获取实时网络信息的方式,或者你是数据科学家,需要自动化采集网络数据,olostep-mcp-server值得你花时间研究。
The error messages are very clear. When my API key expired, it told me exactly what was wrong.
The wait_before_scraping parameter is crucial for SPAs. Setting it to 2000ms solved my rendering issues.
I'm using batch_scrape with the Amazon parser to monitor 500 products daily. Works flawlessly.
The two-step pattern for batch and crawl (submit then poll) is well thought out for long-running tasks.
Would be great if there was a way to get webhook notifications when batch jobs complete. Polling works but is inefficient.