mcpField
J
jmunch-mcp

jmunch-mcp

ローカル
github.com/jgravelleAI・エージェント338 週間前に更新

jmunch-mcp について

jmunch-mcp は、単一の上流 MCP サーバーをラップする透過型 MCP プロキシです。大きなツール応答をクエリ可能なハンドルに変換し、トークン消費を抑えます。大量のツール結果を扱うエージェント利用者向けです。

主な機能

  1. 01上流 MCP 呼び出しの透過的な転送
  2. 02大きな応答のハンドル化
  3. 03peek、slice、search などのクエリ動詞
  4. 04SQLite と JSON ツリーへのコンテンツ別ルーティング
  5. 05ローカルの読み取り専用ダッシュボード
  6. 06OpenAI と Anthropic HTTP API 向けゲートウェイモード

活用シーン

  1. 01GitHub MCP サーバーの大量の issue 一覧によるトークン消費の削減
  2. 02Firecrawl によるページ取得後のコンテキスト使用量の抑制
  3. 03LangChain や Aider などのアプリケーションにおけるツール結果のハンドル化

MCP 対応

jmunch-mcp は上流の MCP サーバーの前段で動くプロキシです。クライアントは上流ではなく本ツールに接続し、各呼び出しを転送しつつ peek や slice などの動詞をクライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"jgravelle-jmunch": {
"command": "uvx",
"args": [
"jmunch-mcp"
]
}
}
}
起動コマンドuvx jmunch-mcp

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

パッケージ
pypijmunch-mcp0.2.3

ツール

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

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

詳細

jmunch-mcp

ほぼあらゆるMCPサーバーに対応する、透過的なMCPプロキシです。上流のツール応答が大きい場合に、トークンコストを削減します。単一の上流MCPをラップしてすべての呼び出しを転送し、大きなペイロードを、エージェントが共通の動詞(peek、slice、search、aggregate、describe、list_handles)で照会できる、コンテンツ対応バックエンドのハンドルに変換します。

ベンチマーク

実際に使われている2つの人気MCPサーバーを対象に、エンドツーエンドで測定しました。各実行では、固定のツール呼び出しスクリプトを2回実行します。1回目は直接、2回目はjmunch-mcp経由です。プロキシ側では、エージェントが大きな結果を丸ごと読み込むのではなく、掘り下げて調べる状況を想定し、jmunch.* の動詞を3回追加で呼び出します。

スイート上流直接のトークン数jmunch-mcp経由削減数
GitHub(facebook/react のissue/PR/コミット)@modelcontextprotocol/server-github379,87844,328335,550(88.3%)
Firecrawl(Wikipediaのスクレイピング+サイトマップ+検索)firecrawl-mcp259,5742,928256,646(98.9%)

追加の動詞呼び出しがあるにもかかわらず、どちらのスイートでもプロキシ経由のほうが実行時間も短縮されました。エージェントが大きなペイロードをページ送りで確認する必要がないためです。

スイート直接jmunch-mcp経由差分
GitHub8.4s6.8s−1.6s(−19.0%)
Firecrawl16.4s9.2s−7.2s(−43.9%)

表形式のコンテンツ(GitHub)はSQLiteバックエンドにルーティングされ、peek/slice/aggregate に応答します。JSONコンテンツ(Firecrawlのスクレイピング/マップ)はJSONツリーバックエンドにルーティングされ、peek/slice(JSONPath)/search に応答します。再現方法は bench/README.md を参照してください。

インストール

pip install jmunch-mcp

ソースからインストールする場合:

git clone https://github.com/jgravelle/jmunch-mcp
cd jmunch-mcp
pip install -e .

クイックスタート

jmunch-mcp init

init は3つの情報源(MCPクライアントの設定(Claude Desktop、Claude Code、Cursor、Windsurf、Continue)、実行中のプロセス、人気の上流サービスの小規模なカタログ(GitHub、Firecrawl、filesystem、fetch、Brave Search、Slack))をスキャンし、チェックリストを表示します。ラップする上流サービスを選択すると、選択ごとに ./configs/ に <name>.toml を1つずつ書き込みます。非対話型のフラグ:--yes(クライアントにすでに登録されているものをすべて選択)、--dry-run、--overwrite、--out <dir>、--no-running、--no-catalog。

手動設定
jmunch-mcp --config examples/config.toml

上流サーバーを直接起動する代わりに、jmunch-mcp --config <path> を起動するようMCPクライアントを設定してください。終了時にセッションの概要を出力するには、--report を追加します。

ゲートウェイモード(v2 — ユニバーサルプロキシ)

上記のMCPプロキシは、MCPクライアントのトークンを節約します。ゲートウェイは、OpenAIまたはAnthropicのHTTP APIに対応するあらゆるAIアプリケーション(LangChain、LlamaIndex、CrewAI、AutoGen、Continue、Cline、Aider、または生のSDK)のトークンを節約します。アプリ側のコード変更は不要です。base_url をjmunchに向けるだけです。

pip install 'jmunch-mcp[gateway]'
jmunch-mcp gateway --config configs/gateway.example.toml
# listening on http://127.0.0.1:7879

アプリを接続します:

# OpenAI SDK, LangChain, Aider, Continue, Cline, Ollama-compat apps:
export OPENAI_API_BASE=http://127.0.0.1:7879/v1

# Native Anthropic SDK / Claude Code:
export ANTHROPIC_BASE_URL=http://127.0.0.1:7879

透過的に、次の処理を行います。

  • 大きなtool_resultsをハンドル化して、送信リクエスト内で変換します。アプリのツールが100KBのJSONを返しても、モデルに表示されるのは1KBの要約と不透明なハンドルです。
  • jmunchの動詞(peek、slice、search、aggregate、describe、summarize、list_handles)をリクエストの tools 配列に挿入し、モデルが詳細を調べられるようにします。
  • 動詞の呼び出しをショートサーキットします。モデルが jmunch_peek を呼び出すと、ゲートウェイはハンドルレジストリを使ってローカルで解決し、後続のターンを合成します。アプリにjmunchのtool_callsが渡されることはなく、これらの補完に上流トークンは一切かかりません。
  • 設定可能なTTLを使って ~/.jmunch/handles.db にハンドルを永続化し、再起動後やセッションをまたいだ読み取りでも利用できるようにします。
  • 双方向にストリーミングします。OpenAI SSEとAnthropicのイベントストリームは、バッファリングしてから再送され、動詞の解決も正しく行われます。

ヘッダーを使ってリクエストごとに制御できます。

  • X-Jmunch-Upstream: <name> — 設定済みの上流サービスを上書きします。
  • X-Jmunch-Inject: false — この呼び出しではツールの挿入を無効にします(パススルーし、リクエスト側のハンドル化のみ行います)。

メトリクスはMCPプロキシと同じダッシュボードに送られます。/api/stats と /api/calls で ?surface=gateway または ?surface=mcp を指定して絞り込めます。

ダッシュボード

各プロキシが書き込むメトリクスデータベースを表示する、読み取り専用のローカル Web UI です。累計値、上流ごとの内訳、転送された呼び出しの時系列を表示します。

jmunch-mcp dashboard              # http://127.0.0.1:7878
jmunch-mcp dashboard --open       # also open in your default browser

フラグ:--port(デフォルトは 7878)、--host(デフォルトは 127.0.0.1)、デフォルト以外のメトリクスデータベースを指定する --db <path>、ブラウザーを起動する --open。メトリクスはプロキシが呼び出しを記録してから反映されるため、まずクライアントからラップした上流に接続して実行してください。

ライセンス

jmunch-mcp は MIT License のもとで公開されており、商用製品での使用、変更、配布、組み込みを自由に行えます。

jmunch-mcp を介してプロキシする上流 MCP サービスのライセンスは、各サービス独自の規約に準拠します。これにはサードパーティの MCP サーバー(GitHub、ファイルシステムプロバイダー、ベンダー API)や、組み合わせて使用する可能性のある、より広範な検索エコシステム内の関連ツールが含まれます。再配布する前に、各上流のライセンスを確認してください。

コメント

MCP は初めてですか?

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

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