AI エージェントのためのクローラー。
Crawl, watch, keep it fresh.

AI は既に検索できます。Marrow はその先へ ── データを取って、見張って、何が変わったかを正確に把握します。 セクション単位で変化を追跡し、モニタリングは定額です。

$ npx -y marrow-setup --email you@example.com
Marrow

AI は既に検索できる。では、なぜ Marrow?

👁️

変化を見張る

検索では何が変わったのかわかりません。Marrow ならわかります。 ページの追加・変更・移動・削除をセクション単位で追跡します。

📦

スニペットでなく、クリーンなデータ

Marrow はクリーンな Markdownを返します ── 人間も AI も読めます。

🪙

トークン効率&安い

scout → read: marrow_scout でリンク・構造を見て、marrow_read で精読します ── 無駄なトークンを抑えます。キャッシュも標準装備で、二度目からは速くて安い。監視は定額です。

RAG を組んでいる方へ: セクションごとに安定した id が振られるので、ベクトル DB への upsert がそのまま使えます。

使い方

1 · 偵察してから精読

「Marrow で検索して」というと、marrow_scoutmarrow_read でクリーンな markdown を取得します。

2 · 変化追跡

AI に「このURLの更新を見て」と頼めば、前回読んだ時点とのセクション単位 diff が返ります ── 差分に追加課金はありません。

3 · 巡回する

スキルにウォッチリストを持たせて、AI に「今日の巡回をして」と言うだけです。

土砂を運ぶのは、もうやめよう。「髄」を抜き出せ。

多くのクローラーは、ブルドーザーのようにクローリングします ── ナビも広告もフッターも 関連商品カルーセルも全部。Marrow は髄(マロウ)を狙います。ページのバックエンドから本質を抜き、 描画されたフロントエンドを検証に使います。骨ではなく、栄養のある 髄だけをお届けします ── それが名前の由来です。

ページトークン(vs Firecrawl・同一URL)
クリーンな記事(Wikipedia)同等 ── 削る土砂が少ない
ニュース記事(BBC)約 30% 少ない
重い EC(Shopify 製品)約 75% 少ない
そのページの裏にある製品フィード最大 26× 小

余計なものが多いページほど効きます。 Firecrawl と Marrow で 同一 URL で直接実測しました。しかもこれは1ページあたりの話で ── scout → read が「読まなくていいページを読まない」ことで、さらにトークンを節約します。 (バックエンドのソース JSON が取れないページは、フロントエンドからの Markdown 化にフォールバックします)。

Watch. チェックは無料。

Firecrawl は URL 監視をper-check で課金します ── 1ページ1クレジット。 URL と間隔が増えるほど積み上がります。Marrow は定額。頻繁にチェックしても無料です。

あなた

今日の巡回をして ── 変わったところだけ教えて。

あなたのエージェント · Marrow

ウォッチリストの5ページを確認しました。2件、動きがありました:

  • competitor-a.com/pricing ── Pro プラン $49$39 1 セクション変更
  • rival.io/careers ── シニアバックエンド職が2件追加 2 セクション追加

残りの3つは、昨日から変化ありません。

ウォッチリストはスキルに置いて、AI に聞くだけです。 1 read = 1クレジット、一日数回ならプランをほとんど消費しません。

自動化したい場合は モニター + Webhook

URL を登録するだけ ── Marrow が定期的にチェックし、変化があれば Webhook を叩きます。 ダッシュボードも配線も不要です。定額で、チェック数は数えません。

試算例: 100 ページを 30 分間隔で監視 = 月 約 144,000 チェック。

項目FirecrawlMarrow
課金per-check(1/ページ/チェック)定額 ── チェックは数えない
必要プランGrowth(Standard の 10万クレジットでは足りない)Pro ── 100監視
コスト$333/月$29.99/月 ── 約 11× 安い

間隔を5分ごとに上げても同じ値段です。 Webhook は署名付きで、Firecrawl 互換形式です。(Firecrawl の金額は同社の掲載プランです)

スクレイプした中身は、あなたのもの。

何を見張っているか ── 競合の価格・採用ページ・規約改定 ── それはあなたの戦略そのものです。 クローラーが知る話ではありません。Marrow は漏れるものが無いように作ってあります。

🔑

アカウントもパスワードも無い

API キーそのものが資格情報です ── gh authstripe login と同じ。 登録するものが無いので、フィッシングされるものもありません。キーを捨てれば、消えます。

💳

課金は Stripe

カード情報は Stripe に直行します ── Marrow は一切見ませんし、名前も住所も保存しません。 手元にあるのは、メールのハンドルとクレジット残高だけです。

🙈

アクティビティログ無し

抽出ワーカーはステートレス、キャッシュは内容アドレス方式です ── 「ページが存在する」ことは記録しても 誰が引いたかは記録しません。あなたが引いた URL の一覧ダッシュボードは存在しません。

多くのクローラーは、まさにそのダッシュボードを持っています。あなたのウォッチリストは企業秘密 ── Marrow は持ちません。

エージェントに導入

ワンコマンド ── 無料キーを発行して、使っている全エージェントに Marrow を配線します。

$ npx -y marrow-setup --email you@example.com

または手動で設定

claude mcp add marrow \
  -e MARROW_API_KEY=mrw_xxx \
  -- npx -y @marrowdev/mcp
{
  "mcpServers": {
    "marrow": {
      "command": "npx",
      "args": ["-y", "@marrowdev/mcp"],
      "env": { "MARROW_API_KEY": "mrw_xxx" }
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.marrow]
command = "npx"
args = ["-y", "@marrowdev/mcp"]
env = { MARROW_API_KEY = "mrw_xxx" }

ツール: marrow_scout · marrow_read · marrow_search · marrow_crawl · marrow_screenshot · marrow_monitor_*

または API を叩く

Bearer キー付きの素の HTTP です。REST API は Firecrawl 互換です。

import requests

BASE = "https://api.marrow.navii.online"
H = {"Authorization": "Bearer mrw_xxx", "Content-Type": "application/json"}

# 精読 + 変化追跡 → 前回とのチャンク単位 diff も返る
r = requests.post(f"{BASE}/v1/scrape", headers=H, json={
    "url": "https://example.com/pricing",
    "formats": ["markdown", "changeTracking"],
})
ct = r.json()["data"]["changeTracking"]
print(ct["changeStatus"])          # new / same / changed
for c in ct["chunks"]:             # delta
    print(c["status"], c["anchor"])

# 見張る: 定額監視 → 変化を webhook へ
requests.post(f"{BASE}/v1/monitor", headers=H, json={
    "url": "https://example.com/pricing",
    "interval_minutes": 30,
    "webhook_url": "https://you.example/hook",
})
const BASE = "https://api.marrow.navii.online";
const H = { Authorization: "Bearer mrw_xxx", "Content-Type": "application/json" };

// 精読 + 変化追跡
const res = await fetch(`${BASE}/v1/scrape`, {
  method: "POST", headers: H,
  body: JSON.stringify({
    url: "https://example.com/pricing",
    formats: ["markdown", "changeTracking"],
  }),
});
const { data } = await res.json();
console.log(data.changeTracking.changeStatus);   // new / same / changed
for (const c of data.changeTracking.chunks) {
  console.log(c.status, c.anchor);               // delta
}

// 見張る
await fetch(`${BASE}/v1/monitor`, {
  method: "POST", headers: H,
  body: JSON.stringify({
    url: "https://example.com/pricing",
    interval_minutes: 30,
    webhook_url: "https://you.example/hook",
  }),
});
# 精読 + 変化追跡
curl -X POST https://api.marrow.navii.online/v1/scrape \
  -H "Authorization: Bearer mrw_xxx" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/pricing","formats":["markdown","changeTracking"]}'

# 見張る
curl -X POST https://api.marrow.navii.online/v1/monitor \
  -H "Authorization: Bearer mrw_xxx" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/pricing","interval_minutes":30,"webhook_url":"https://you.example/hook"}'

Firecrawl から乗り換える

REST API は Firecrawl 互換です。そのまま差し替え可能です。

機能FirecrawlMarrow
キャッシュなし標準 ── 再読込ほぼ無料(0.1cr)
変化追跡ページ単位 diffチャンク単位 + 安定 id → ベクトル upsert
監視per-check クレジット定額 ── 好きなだけチェック
トークンマークダウン全量ダンプ30〜75% 少ない(実測・裏取り+scout→read)
プライバシーアカウント + アクティビティ・ダッシュボードアカウント不要 ── キーが資格情報・クエリは記録しない
移行drop-in: base URL を変えるだけ

キーは無料発行・カード不要。npx marrow-setup で今すぐ試せます。

料金

プラン 月次クレジット 同時監視URL 日次レート
Free · $05001100 / 日無料で始める
Developer · $9.995,000102,000 / 日申し込む
Pro · $29.9950,00010020,000 / 日申し込む

scrape/search 1 · scout 0.5 · crawl 2/page · screenshot 2 · Cache-hit 0.1 クレジット。 失敗は無料です。監視は定額 ── per-check 課金なし。