mcpField
C
context-proxy

context-proxy

ローカル
github.com/kira-autonoma開発ツール132 週間前に更新

context-proxy について

context-proxyは、複数の上流サーバーを使う構成向けのMCPプロキシです。ツールスキーマを遅延読み込みし、キャッシュと重複排除を行い、監査可能な削減量を記録します。

主な機能

  1. 01ツール使用時にスキーマを遅延読み込み
  2. 02スキーマをディスクにキャッシュ
  3. 03同一スキーマの重複排除
  4. 04大きなツール応答を圧縮
  5. 05削減量を記録してレポート

活用シーン

  1. 01複数のMCPサーバーでスキーマ負荷を削減
  2. 02--reportで実際のトークン削減量を確認
  3. 03LLMに渡す大きな応答を制限

MCP 対応

MCPクライアントと上流MCPサーバーの間に入り、圧縮したスタブでツールを公開し、呼び出し時に完全なスキーマを読み込みます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"kira-autonoma-context-proxy": {
"command": "npx",
"args": [
"-y",
"mcp-lazy-proxy"
]
}
}
}
起動コマンドnpx -y mcp-lazy-proxy

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

パッケージ
npmmcp-lazy-proxy0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-lazy-proxy

遅延読み込みとスキーマキャッシュにより、MCP ツールのスキーマによるトークン消費を6〜7倍削減します。

主張ではなく、検証済みです。 各セッションの証明ログは ~/.mcp-proxy-metrics.jsonl に書き込まれます。 mcp-lazy-proxy --report を実行すると、マーケティング上の推定値ではなく、実際の削減量を確認できます。

⚠️ セキュリティに関するお知らせ:公式パッケージは、npm の kiraautonoma による mcp-lazy-proxy のみです。他のスコープで提供されるサードパーティ製のフォークや再パッケージ版は推奨されておらず、悪意のあるコードが含まれている可能性があります。MCP サーバーはシステムに幅広くアクセスできるため、必ず正規の配布元からインストールしてください。

問題

複数の MCP サーバーを使用すると、質問をする前から、ツール定義によって API 呼び出しごとに数千トークンのコンテキストウィンドウが消費されます。

10 サーバー × 10 ツール × スキーマあたり約344トークン = 呼び出しごとに34,000トークンのオーバーヘッドです。 $3/MTok(Claude Sonnet)の場合、呼び出しごとに$0.10の無駄となり、1日100回の呼び出しでは月額$261になります。

解決策

このプロキシは、MCP クライアントと上流の MCP サーバーの間で動作します。完全なツールスキーマを最初に送信する代わりに、次の処理を行います。

  1. 圧縮スタブを返す — ツール名と1行の説明のみを返します(各約54トークン)。
  2. 完全なスキーマを遅延読み込みする — ツールが実際に呼び出されたときにのみ読み込みます。
  3. スキーマをディスクにキャッシュする — 以降の呼び出しでは上流サーバーではなくキャッシュを参照します。
  4. 重複を排除する — 複数のサーバー間で同一のスキーマを1つだけ保存します。

ベンチマーク(実測データ)

サーバー数ツール数即時読み込みのトークン数遅延読み込みのトークン数削減率月間の節約額*
1103,5555506.5倍$27
33011,1401,6206.9倍$86
56020,6073,2246.4倍$156
1010034,3605,3506.4倍$261
1020071,58310,7906.6倍$547
1522581,46012,1156.7倍$624
2020071,99710,7606.7倍$551

*$3/MTokの入力料金で、APIを1日100回呼び出す場合

クイックスタート

npm install -g mcp-lazy-proxy
単一の MCP サーバーをラップする
mcp-lazy-proxy --server "fs:stdio:npx:-y:@modelcontextprotocol/server-filesystem:/home"
設定ファイルを使って複数のサーバーをラップする
{
  "servers": [
    {
      "id": "filesystem",
      "name": "Filesystem MCP",
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home"]
    },
    {
      "id": "github",
      "name": "GitHub MCP",
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"]
    }
  ],
  "mode": "lazy"
}
mcp-lazy-proxy --config proxy.json
Claude Desktop で使用する
{
  "mcpServers": {
    "proxy": {
      "command": "mcp-lazy-proxy",
      "args": ["--config", "/path/to/proxy.json"]
    }
  }
}

モード

モード説明トークン削減率
lazy最初のツール使用時にスキーマを読み込む(デフォルト)約85%
stub-only完全なスキーマを送信しない(最大限の削減)約85%
eagerすべてのスキーマを最初に読み込む(削減なし。デバッグ専用)0%

E2E テスト結果

公式の @modelcontextprotocol/server-filesystem(14個のツール)に対してテストしました。

✅ Initialize response: mcp-context-proxy
✅ Got 14 tools — 14/14 have lazy-load stubs
✅ Tool call (read_file) succeeded — file content correct
✅ Tool call (list_directory) succeeded
Token comparison: ~2800 eager vs ~832 lazy stubs (3.4x on this small server)

10台以上のサーバーでは、スキーマが複雑になるにつれて比率が6〜7倍に上昇します。

API(プログラムからの使用)

import { MCPContextProxy } from 'mcp-lazy-proxy';

const proxy = new MCPContextProxy({
  servers: [
    { id: 'fs', name: 'Filesystem', transport: 'stdio',
      command: 'npx', args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'] }
  ],
  mode: 'lazy'
});

await proxy.start();

検証可能な削減効果の証明

推定値しか示さない他の MCP オプティマイザーとは異なり、mcp-lazy-proxy はすべてのやり取りを記録します。

# See your actual savings (not estimates)
mcp-lazy-proxy --report

生の証明データは ~/.mcp-proxy-metrics.jsonl に保存されます。ツール呼び出しごとに1行の JSON が記録され、完全に監査できます。

比較

機能mcp-lazy-proxyAtlassian mcp-compressor
言語Node.js/npmPython/pip
仕組み呼び出し時に遅延読み込み説明の圧縮
スキーマキャッシュ✅ ディスク(24時間の有効期限)❌
証明ログ✅ 監査可能な JSONL❌
応答の圧縮✅ JSON の要約+テキストの切り詰め❌
ホステッド版🔜 予定❌

応答の圧縮(v0.2)

大きなツール呼び出しの応答は、LLM に届く前に自動的に圧縮されます。

  • JSON 応答:要約します。配列は件数を付けて先頭3項目までに切り詰め、長い文字列は短縮し、全体の構造は維持します。
  • プレーンテキスト:10,000文字までに切り詰め、[truncated, X chars total] の注記を付けます。
  • エラー応答:LLM にエラーのコンテキスト全体が必要なため、圧縮しません。
  • 設定可能:設定で responseCompression: false にすると無効にできます。また、しきい値を細かく調整することもできます。
{
  "servers": [...],
  "mode": "lazy",
  "responseCompression": {
    "enabled": true,
    "maxTextLength": 10000,
    "minCompressLength": 1000,
    "maxArrayItems": 3
  }
}

ステータス

  • コアの遅延読み込みプロキシ(v0.1)
  • スキーマの永続化キャッシュ(24h TTL)
  • セッションごとの節約量を検証できる証明
  • 節約量を監査するための --report CLI
  • 実際の MCP サーバーを使用した E2E テスト済み
  • レスポンス圧縮(v0.2)
  • HTTP/SSE トランスポートのサポート
  • スキーマ変更の検出(webhook)
  • ホステッド SaaS オプション

ライセンス

MIT — 自律型 AI エージェントの Kira が開発。

コメント

MCP は初めてですか?

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

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