MCP 原生数据提取运行时

让 Agent 自己定义
永久可用的数据提取工具
把杂乱网页 X 光成结构化数据 —— 内置 scrape / extract / crawl,
更让智能体提交自己的 TypeScript extractor,注册成 MCP 工具。

Firecrawl 的开箱即用,加上 Agent 现写代码、真隔离执行的深度定制。全栈跑在 Cloudflare 上 —— 你零运维,按用量计费。

Streamable HTTP / SSEV8 isolate 沙箱< $1/月 闲置成本
tools/call · scrape● rendering
INPUT // raw_domhtml
<div class="product">
  <h1 class="title">
    Aero Mouse Pro
  </h1>
  <span class="price">
    $ 49.00
  </span>
  <b data-stock="1"/>
</div>
OUTPUT // structuredjson
{
  "title": "Aero Mouse Pro",
  "price": 49.00,
  "currency": "USD",
  "in_stock": true,
  "url": "shop.io/p/123"
}
// confidence 0.98
job #a3f9c2 · browser 1.4sloader 1 isolate · cost $0.0008
两个极端之间

抓取要么太浅,要么太重。
exray 走中间。

参数化 API 覆盖 80%,但表达不了站点特有逻辑;自托管完全可编程,但浏览器集群、依赖、扩缩容全压在你身上。

01 / API

Firecrawl · Jina

parametric only
  • 复杂结构只能 format:markdown 拿粗结果
  • 特殊抽取靠 LLM 二次处理,贵、慢、不稳
  • Agent 无法上传自己的代码
02 / SELF-HOST

Playwright + Python

fully programmable
  • 自己跑浏览器集群、管依赖
  • 扩缩容、监控、运维全包
  • 不是 MCP-native,Agent 接不进来
exray
03 / RUNTIME

MCP × Programmable × Serverless

best of both
  • 开箱即用的 scrape / extract / crawl
  • Agent 现写 extractor → 真隔离执行
  • 全 Cloudflare 托管,零运维
Agent-programmable

写一次 extractor,
永久作为 MCP 工具复用。

智能体提交一段 TypeScript,平台静态校验、真隔离执行,并注册进 tools/list。下次调用,体感与内置工具完全一致。

1

提交代码

Agent 调 define_extractor,给出名字 + 一段处理 PageSnapshot 的 TS 函数。

2

校验 & 隔离

AST 白名单静态校验,计算 code_hash,存 R2,登记到 D1。

3

注册为工具

tools/list_changed,新工具立即出现在客户端,按 token 隔离。

4

反复调用

每次调用一个全新 V8 isolate 执行;自调试、同名覆盖、永久可复用。

define_extractor.tsV8 isolate
// Agent 提交一次,注册成永久 MCP 工具
export default {
  async extract(snapshot: PageSnapshot) {
    const q = snapshot.dom.querySelector;
    return {
      title: q('h1.title')?.textContent,
      price: parseFloat(
        q('.price')?.textContent
          ?.replace(/[^\d.]/g, '') ?? '0'
      ),
      in_stock: q('[data-stock]') != null,
    };
  }
};
// → 工具 "my-shop-scraper" 注册成功 ✓
出厂内置

三个工具,开箱即用。

单一 MCP 端点,对 Agent 全部可见。无需 LLM 后处理就能拿结构化结果。

scrape

单 URL 渲染抓取,返回 markdown / html / 截图。支持 wait_for 与渲染前 actions。

in url · format · actions[]out markdown · metadata
extract

Schema 驱动抽取,Firecrawl 同款。给一个 JSON Schema,拿回带 confidence 的结构化数据。

in url · schema · promptout data · confidence
crawl

seed URL + 规则批量抓取。Queue 派发并发消费,结果流式经 MCP notifications 回传。

in seed_url · depth · extractorout job_id · stream
独特定位

别人占其一,
exray 把三件事合一。

01

MCP-native

不是「外挂一个 MCP server」。所有能力 —— 内置与 Agent 自定义 —— 都走同一套 tools/call,Agent 不感知后端差异。

02

Agent-programmable

Agent 现写代码,平台真隔离执行并注册为工具。不是预制 actor 商店 —— 是「让 Agent 写一个永久能用的数据提取函数」。

03

Serverless

Workers / D1 / R2 / KV / Queues / Browser Rendering / Dynamic Worker Loader 全包。没有固定基础设施成本。

零运维

整条链路跑在 Cloudflare。

不维护服务器、数据库、浏览器集群。不用时只交 D1 / R2 存储费,每月不到 1 美元。2026 GA 的 Dynamic Worker Loader 让「Agent 上传代码 → 平台真隔离执行」成为 paid plan 即用的能力。

Workers D1 R2 KV Queues Browser Rendering Worker Loader TypeScript 全栈

给你的 Agent
一双 X 光眼睛

注册账户、发一个 Bearer Token、把配置粘进 MCP 客户端。5 分钟跑通第一次 scrape。

$ npx @exray/cli login⧉ 复制
打开 Dashboard →