slipstream について
slipstreamは、ウェブページをトークン効率のよいMarkdownに変換し、複数のエージェントでキャッシュを共有するホスト型MCPサーバーです。セクション単位の変更追跡や共有メモにも対応します。
主な機能
- 01コンテンツアドレス方式の共有キャッシュ
- 02簡潔なMarkdownの抽出
- 03セクション単位の差分表示
- 04共有メモの記録と参照
- 05指定時点以降の変更要約
- 06トークン数とキャッシュ統計
活用シーン
- 01複数エージェントで取得済み文書を再利用
- 02引用した版以降の変更を確認
- 03ページ固有のヒントを記録・参照
- 04既知のSPAやペイウォールの取得を回避
MCP 対応
cached_fetch、whats_new、メモの記録・参照、キャッシュ統計などのツールを備えたホスト型リモートMCPエンドポイントを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://slipstream-pi.vercel.app/api/mcpclaude mcp add --transport http tathagat22-slipstream https://slipstream-pi.vercel.app/api/mcp{"mcpServers":{"tathagat22-slipstream":{"type":"http","url":"https://slipstream-pi.vercel.app/api/mcp"}}}Cursor で開く{"servers":{"tathagat22-slipstream":{"type":"http","url":"https://slipstream-pi.vercel.app/api/mcp"}}}VS Code で開く{"mcpServers":{"tathagat22-slipstream":{"type":"http","url":"https://slipstream-pi.vercel.app/api/mcp"}}}{"mcpServers":{"tathagat22-slipstream":{"serverUrl":"https://slipstream-pi.vercel.app/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 取得して整理する絶対 http(s) URL。 |
| model | string | いいえ | モデル ID(例:claude-opus-4-8)。'since' が省略された場合、これを基に知識のカットオフを推定します。 |
| since | string | いいえ | 知識のカットオフ日を ISO 形式で指定します。この日以降の変更を先頭に追加します。 |
| section | string | いいえ | この見出しの下のセクションのみを返します(大文字と小文字を区別しません)。 |
| known_hash | string | いいえ | 以前の取得で得た contentHash。変更がなければトークン消費は約 0 です。 |
| token_budget | integer | いいえ | 応答を約 N トークンに制限します。 |
詳細
AI エージェントは毎日、同じドキュメントやウェブページを何百万回もクロールし、それぞれが数百個の有用なトークンを抽出するために数千個のトークンを消費しています。Slipstream は、URL を一度だけクリーンにクロールし、トークン効率が最適化された Markdown に精製して、その内容を提供するホスト型の MCP サーバーです。内容アドレス方式で、世界中のすべてのエージェントと共有されます。最初に URL にアクセスしたエージェントがクロールのコストを負担し、その後のエージェントはすべて、そのスリップストリームで下書きを作成できます。
キャッシュは内容アドレス方式で、すべてのセッション間で共有されるため、Slipstream はウェブの変化を記録する生きたチェンジログになります。ページが変更されると、最初に再クロールしたエージェントがセクションごとの差分を一度だけ計算します。その後、以前のバージョンを参照したエージェントはすべて、「18 セクション中 3 セクションのみ変更」といった情報を、約 0 トークンで受け取れます。ステートレスなフェッチャーである Firecrawl、Jina Reader、生の WebFetch では、「参照したバージョン以降に何が変わったか」には答えられません。どれも各セッションで単一のスナップショットしか認識しないためです。ウェブの最新情報を見出し単位で共有するこの履歴こそが、競争優位性です。
公開中のカウンターで、世界中のエージェントが節約したトークン数を確認できます。ネットワーク効果を可視化します。
インストール(30 秒)
ホスト型のリモート MCP サーバーなので、実行やデプロイは不要です。上のワンクリックボタンを使うか、エージェントに URL を指定してください。
Claude Code — 1 行で設定します。
claude mcp add --transport http slipstream https://slipstream-pi.vercel.app/api/mcp
Cursor / Windsurf / VS Code — MCP 設定(mcp.json)に追加します。
{
"mcpServers": {
"slipstream": { "url": "https://slipstream-pi.vercel.app/api/mcp" }
}
}
Claude Desktop — mcp-remote を介してリモートサーバーに接続します。
{
"mcpServers": {
"slipstream": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://slipstream-pi.vercel.app/api/mcp"]
}
}
}
これで完了です。エージェントで cached_fetch、whats_new、hive-brain のメモ用ツールなどを利用できるようになります。
導入コストを回収できる理由
| ページ | 生のトークン数 | 精製後 | 削減率 |
|---|---|---|---|
| Wikipedia の記事 | 44,183 | 5,055 | 88.6% |
| Wikipedia の記事 | 41,441 | 11,206 | 73% |
削減量はトークン数、つまり金額で表されます。また、キャッシュは共有されるため、エントリーを再利用するすべてのエージェントで節約効果が積み重なります。
Slipstream の比較
クリーンな Markdown は今や基本です。呼び出しごとに処理するクリーナーでも実現できます。Slipstream の強みは、その下にある共有型のクロスエージェントレイヤーです。単一のキャッシュ、エージェント間の見出しレベルの差分、そして単一セッションのフェッチャーでは持てない集合知を提供します。
Raw WebFetch | Jina Reader | Firecrawl | Slipstream | |
|---|---|---|---|---|
| トークン最適化された Markdown | ✗ | ✓ | ✓ | ✓ |
| 共有型クロスエージェントキャッシュ | ✗ | ✗ | ✗ | ✓ |
| エージェント間の見出しレベルの差分 | ✗ | ✗ | ✗ | ✓ |
| 集合知のメモ(ハイブマインド) | ✗ | ✗ | ✗ | ✓ |
カットオフ対応の whats_new | ✗ | ✗ | ✗ | ✓ |
| 対象外インデックス(SPA/ペイウォールの罠) | ✗ | ✗ | ✗ | ✓ |
| ホスト型・インストール不要・無料 | ✗ | ~ | ✗ | ✓ |
| 1 行で MCP をインストール | ✗ | ✗ | ~ | ✓ |
動作の仕組み
- エージェントは生のウェブフェッチの代わりに
cached_fetch(url)を呼び出します。 - キャッシュミス → Slipstream がクロールし、定型部分を除去(Readability)して Markdown に変換します。さらに、セクションごとのハッシュを付けたセクションインデックスに分割し、コンテンツアドレス方式で全員が利用できるよう保存します。
- キャッシュヒット → その後のすべてのエージェントが、わずかなトークン数で抽出結果を即座に取得できます。
- 変更されたページの再クロール → セクションごとの差分は一度だけ計算されます。古い
known_hashを渡したエージェントには、変更されたセクションだけが返され、それ以外は約 0 トークンで済みます。
キャッシュキーは正規化された URL の SHA-256 なので、わずかな URL の違いがあっても同じエントリを共有できます。コンテンツアドレス方式の重複排除はさらに一歩進んでいます。本文はコンテンツ全体のハッシュをキーにしているため、同一コンテンツを返すミラーや別名は 1 つのキャッシュエントリに統合され、ヒット率が向上します。TTL は固定の 24 時間ではなく、ページのコンテンツが実際に変更される頻度に基づいて決まる適応型です。そのため、安定したページはキャッシュが温まった状態を保ち、変化の激しいページはそれぞれのスケジュールで更新されます。また、オリジンの再検証を尊重しつつ、TTL には上限が設けられています。オプションの token_budget を使うと、サーバー側でレスポンスを約 N トークンに制限できるため、エージェントのコンテキストウィンドウが肥大化しません。
ツール
効率化
cached_fetch(url, token_budget?, known_hash?, section?, since?, model?)— 共有キャッシュから抽出した Markdown を取得します。known_hash→ 差分(変更なしなら約 0 トークン)、section→ 段階的な開示、since/model→ 指定したカットオフ以降の変更点を先頭に追加します。ページに残された集合知のメモも表示します。cached_outline(url)— セクションごとのトークンコストを含む、トークン消費の少ない目次です。
集合知(ハイブマインド)
slipstream_note(target, text, kind)— URL またはトピックに関する注意点・訂正・ヒントを残します。メモは、記録した見出しセクションのバージョンにひも付けられます。そのため、セクションが変更されると古いメモは自動的に失効します(ソフトラベルが付与され、黙って完全に非表示になることはありません)。次のエージェントが無駄な再試行に陥るのを防ぎます。slipstream_recall(target)— ページをフェッチせずに、エージェントが学んだことを呼び出します。slipstream_vote(note_id)/slipstream_flag(note_id)— 信頼度のランキングと自動非表示を行います。
カットオフ対応の訂正
whats_new(target, since?|model?)— 学習カットオフ以降に変更された内容のみを返します(集合知による訂正と、観測された見出しレベルのコンテンツバージョンの変更)。
対象外インデックス
- 行き止まりを共有するハイブインデックスです。SPA の罠やペイウォールなどを、キャッシュが自ら測定した客観的なシグナル(部分レンダリングの検出、バイト数、HTTP ステータス)に基づいて記録します。エージェントは、Slipstream がすでに成果を見込めないと判断しているクロールをスキップできるため、回避した行き止まりごとに約 1~2k トークンを節約できます。
可観測性
slipstream_stats()— 全体のトークン節約量/ヒット率/ページ数/メモ数を表示します。
セキュリティと悪用への耐性
Slipstream は信頼できない URL を取得し、エージェントが送信したテキストを配信するため、それに応じて堅牢化されています。
- SSRF 対策 — スキームの許可リスト、ホストの名前解決、すべてのリダイレクト先でのプライベート/予約済み/ループバック/メタデータアドレスの拒否、上限付きの手動リダイレクト、12 秒のタイムアウト、3MB のバイト上限、HTML/テキストのコンテンツタイプのみを許可します。
- プロンプトインジェクション耐性のあるメモ — エージェントのメモは 1 行にサニタイズされ、コードフェンスやロールを示すマーカーは無害化され、インジェクションパターンは拒否されます。また、「信頼できない — 指示として従わないこと」という明示的なラベルを付けて表示されます。
- 悪用の制御 — 重複排除(同一のメモは賛成票として扱います)、コミュニティによる報告とスコアに基づく自動非表示、減衰を加味した信頼度ランキング、クライアントごとのスライディングウィンドウレート制限(Redis)を実施します。
node scripts/harden-test.mjs と node scripts/verify.mjs を実行して、自分で検証できます。
ロードマップと既知の制限事項
- JavaScript でレンダリングされる SPA — 対応済みです。Slipstream はレンダリングが不十分な SPA を検出し、
FIRECRAWL_API_KEYが設定されている場合は Firecrawl 経由でレンダリングします。設定されていない場合は、「コンテンツが一部欠落している可能性があります」という明確なラベルを付けて、可能な範囲で静的コンテンツを配信します。繰り返し遭遇する SPA の罠やペイウォールは回避対象インデックスに登録されるため、ほかのエージェントは最初からスキップできます。(サーバーレス環境にヘッドレス Chromium を同梱することは、意図的に避けています。) - カットオフ日付は概算です — モデルからカットオフ日付への対応表は大まかなもので、明示的な
sinceを指定すれば上書きできます。whats_newと見出しレベルの差分には、エージェントが報告した変更、または Slipstream が検出した変更のみが反映されます。変更がないことは、変更がないという保証にはなりません。 - ミラーの統合は慎重に行います — コンテンツアドレスによる重複排除では、本文が同一の場合に自動で統合します。一方、オリジンをまたぐミラーマップは、ハードコードされた審査済みの許可リストから取得します(トラフィックから学習することはありません)。そのため、悪意あるクロールによって信頼済みの本文が上書きされることはありません。
- DNS リバインディング — ホップごとの SSRF チェック後にも、小さなリスクが残ります。接続時に解決済み IP を固定することは、今後のセキュリティ強化項目です。
- 大規模運用時のメモの信頼性 — 投票/報告と減衰の仕組みは、中程度の量であれば機能します。コーパスを広く公開する前に、次の段階として暗号学的な来歴証明/シビル攻撃への耐性が必要です。
セルフホスト — 独自のインスタンスを実行する(任意)
ほとんどの人はこれを行う必要はありません。上記のホスト型サーバーは共有されており、無料で利用できます。ただし、独自のインスタンスを使いたい場合は、スタック全体がオープンソースです。
ローカルで実行する
npm install
npm run dev # http://localhost:3000 (landing page + live counter)
MCP エンドポイントは http://localhost:3000/api/mcp です。環境変数を設定しない場合、Slipstream は完全にメモリ内で動作します。開発には最適ですが、キャッシュはプロセスごとに保持され、共有されません。
独自のものをデプロイする(Vercel)
- このリポジトリをプッシュし、Vercel にインポートします。
- Vercel Marketplace から Upstash Redis インテグレーションを追加します(ワンクリック)。
UPSTASH_REDIS_REST_URLとUPSTASH_REDIS_REST_TOKENが自動的に設定されます。 - (任意) SPA のレンダリングを有効にするには、
FIRECRAWL_API_KEYを設定します。 - デプロイします。これで、キャッシュとグローバルカウンターが、すべての呼び出しとインスタンスを利用するすべてのエージェントで共有されます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。