mcpField
R
Refinery MCP

Refinery MCP

ローカル
github.com/LareLabsブラウザ自動化018 週間前に更新

Refinery MCP について

Refinery MCPは、取得したURLや生HTMLをエージェントやRAG向けのテキストに整えるMCPサーバーです。単語数やトークン削減量の推定も返し、ページのレンダリングやクロールは別のツールに任せます。

主な機能

  1. 01Refinery Apify ActorによるURLのクリーニング
  2. 02他のツールで取得したHTMLのクリーニング
  3. 03整形済みテキストと単語数の返却
  4. 04トークン削減量のローカル推定

活用シーン

  1. 01RAG取り込み用のページ準備
  2. 02LLMコンテキスト内のHTMLノイズ削減
  3. 03埋め込み前のトークン削減量の確認

MCP 対応

`clean_url`、`clean_html`、`estimate_savings`をMCPツールとして公開します。URLのクリーニングにはRefinery Apify Actorを使い、削減量の推定はローカルで実行します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"larelabs-refinery": {
"command": "npx",
"args": [
"-y",
"@larelabs/refinery-mcp"
],
"env": {
"APIFY_TOKEN": "<APIFY_TOKEN>"
}
}
}
}
起動コマンドnpx -y @larelabs/refinery-mcp
設定が必要な環境変数
APIFY_TOKENシークレットApify API token for the Refinery HTML cleaner actor

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@larelabs/refinery-mcp0.1.6

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringはいクリーニングする公開 URL。
removeStylesbooleanいいえ
removeScriptsbooleanいいえ

詳細

Refinery MCP

エージェントがトークンを消費する前に、HTML をクリーンアップします。

ランディングページ · Apify Actor

Refinery MCP は、Refinery Apify Actor を MCP サーバーとしてラップし、Claude、Cursor、その他のエージェントが生の HTML や URL を、クリーンな LLM 対応テキストと word_count に変換できるようにします。

エージェントのパイプライン:取得、Refinery MCP、クリーンテキスト、RAG

flowchart LR
  A[Agent needs web context] --> B[Fetch URL or raw HTML]
  B --> C[Refinery MCP]
  C --> D[Refinery Apify Actor]
  D --> E[Clean text + word_count]
  E --> F[RAG / embeddings / LLM context]

問題点

エージェントはウェブページの取得が得意になってきています。問題は、取得した内容です。

<html>
  <head>
    <script>gtag("event", "page_view")</script>
    <style>.nav,.cookie,.footer{display:block}</style>
  </head>
  <body>
    <nav>Home · Pricing · Login · Docs · Blog · Careers</nav>
    <aside>Subscribe to our newsletter</aside>
    <article>
      <h1>How ACME cut support ticket routing time by 63%</h1>
      <p>ACME routes 40,000 monthly support tickets through an AI triage system.</p>
      <p>The team reduced retrieval noise by cleaning HTML before chunking.</p>
    </article>
    <footer>Legal · Privacy · Cookie settings · LinkedIn · X</footer>
  </body>
</html>

モデルにその大半は必要ありません。必要なのはこちらです。

How ACME cut support ticket routing time by 63%

ACME routes 40,000 monthly support tickets through an AI triage system.
The team reduced retrieval noise by cleaning HTML before chunking.

変換前と変換後:肥大化した HTML とクリーンな LLM 対応テキスト、トークン節約量

Refinery MCP は、この中間ステップ用のツールをエージェントに提供します。

fetch page -> refine HTML -> send clean text to RAG / embeddings / LLM

理由

エージェントはページを取得できますが、生の HTML はノイズが多く、コストもかかります。

  • スクリプト、スタイル、トラッキングタグ
  • ナビゲーション、フッター、Cookie バナー
  • 重複したリンクやレイアウト用マークアップ
  • モデルが実際のコンテンツを見る前に大量のトークンを消費

Refinery は、エージェントがウェブのコンテキストをプロンプトに詰め込む前に呼び出せる中間ステップです。

fetch/render -> clean/refine -> chunk/embed/answer

これはクローラーではありません。レンダリングが必要な場合は、Firecrawl、Crawl4AI、Playwright、ブラウザー自動化、または独自のフェッチャーを使用してください。URL または生の HTML をすでに取得済みで、LLM に渡す前に低コストでクリーンアップしたい場合は Refinery を使用してください。

使用する場面

次のような場合に Refinery MCP を使用してください。

  • エージェントがページを取得済みだが、肥大化した HTML が得られた
  • RAG に取り込む前に、決定的なクリーンアップのステップを設けたい
  • 埋め込みの前に word_count やトークン削減量を把握したい
  • クローリングとコンテンツのクリーンアップを分離したい

ブラウザーのレンダラー、ボット対策レイヤー、またはサイトクローラーとしては使用しないでください。

ツール

clean_url

Refinery Apify Actor を介して URL を取得し、クリーンなテキストとメタデータを含むデータセットの行を返します。

入力例:

{
  "url": "https://docs.stripe.com/payments",
  "removeScripts": true,
  "removeStyles": true
}
clean_html

エージェント、クローラー、またはブラウザーセッションがすでに取得した生の HTML をクリーンアップします。

入力例:

{
  "html": "<html><body><nav>Home Pricing Login</nav><article><h1>Vendor security update</h1><p>We now support SOC 2 exports for enterprise accounts.</p></article><footer>Legal Privacy Careers</footer></body></html>",
  "extractMentions": false,
  "extractHashtags": false
}

結果の例:

{
  "text": "Vendor security update\n\nWe now support SOC 2 exports for enterprise accounts.",
  "word_count": 10,
  "content_type": "web",
  "language": "en",
  "processing_time_ms": 44.96,
  "success": true
}
estimate_savings

生の HTML とクリーンアップ後のテキストを比較し、トークン削減量を推定するローカルヘルパーです。Apify は呼び出しません。

出力例:

{
  "raw_chars": 168,
  "clean_chars": 41,
  "estimated_raw_tokens": 42,
  "estimated_clean_tokens": 11,
  "estimated_token_savings": 31,
  "reduction_pct": 76
}

インストール

npx -y @larelabs/refinery-mcp

Apify トークンを設定します。

export APIFY_TOKEN=apify_api_xxx
export REFINERY_ACTOR_ID=larelabs/refinery-html-to-llm-cleaner

Cursor / Claude Desktop の設定

公開済みパッケージを使用します。

{
  "mcpServers": {
    "refinery": {
      "command": "npx",
      "args": ["-y", "@larelabs/refinery-mcp"],
      "env": {
        "APIFY_TOKEN": "apify_api_xxx",
        "REFINERY_ACTOR_ID": "larelabs/refinery-html-to-llm-cleaner"
      }
    }
  }
}

または、開発中はソースから実行します。

git clone https://github.com/LareLabs/refinery-mcp
cd refinery-mcp
npm install
npm run build
{
  "mcpServers": {
    "refinery": {
      "command": "npm",
      "args": ["run", "dev", "--prefix", "/absolute/path/to/refinery-mcp"],
      "env": {
        "APIFY_TOKEN": "apify_api_xxx"
      }
    }
  }
}

スモークテスト

npm run build
APIFY_TOKEN=apify_api_xxx npm run smoke

スモークテストでは、stdio 経由で MCP サーバーを起動し、ツールの一覧を取得して、Apify のクレジットを消費せずに estimate_savings を呼び出します。

エージェントプロンプトの例

Use Refinery MCP to clean this docs page before summarizing it:
https://docs.stripe.com/payments

Return the clean text, word_count, and a short summary. Do not summarize raw HTML.

もう 1 つの便利なプロンプト:

I fetched this page HTML with Playwright. Use Refinery MCP clean_html before adding it to my RAG ingestion queue. Return the cleaned text and estimated token savings.

ロードマップ

  • Glama への掲載(glama.json を追加済み — https://glama.ai/mcp/servers から申請)
  • mcp.so ディレクトリへの PR(保留中)
  • ホスト型 HTTP/SSE MCP トランスポート
  • URL 一括クリーンアップツール
  • Glama / PulseMCP / FindMCP / mcp.so への掲載
  • RapidAPI 用のオプションの直接 REST ラッパー
  • トークン削減量のベンチマークページ

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。