Refinery MCP について
Refinery MCPは、取得したURLや生HTMLをエージェントやRAG向けのテキストに整えるMCPサーバーです。単語数やトークン削減量の推定も返し、ページのレンダリングやクロールは別のツールに任せます。
主な機能
- 01Refinery Apify ActorによるURLのクリーニング
- 02他のツールで取得したHTMLのクリーニング
- 03整形済みテキストと単語数の返却
- 04トークン削減量のローカル推定
活用シーン
- 01RAG取り込み用のページ準備
- 02LLMコンテキスト内のHTMLノイズ削減
- 03埋め込み前のトークン削減量の確認
MCP 対応
`clean_url`、`clean_html`、`estimate_savings`をMCPツールとして公開します。URLのクリーニングにはRefinery Apify Actorを使い、削減量の推定はローカルで実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | クリーニングする公開 URL。 |
| removeStyles | boolean | いいえ | |
| removeScripts | boolean | いいえ |
詳細
Refinery MCP
エージェントがトークンを消費する前に、HTML をクリーンアップします。
Refinery MCP は、Refinery Apify Actor を MCP サーバーとしてラップし、Claude、Cursor、その他のエージェントが生の HTML や URL を、クリーンな LLM 対応テキストと word_count に変換できるようにします。

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.

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