Skip to main content
Glama

cap-shield MCP サーバー

AI エージェントのためのコンテキスト選択と圧縮 — リコールは 主張ではなく、測定される。

このサーバー自体は標準ライブラリ以外のものをインポートしない。 パッケージとしてインストールするか、単一ファイルとして使うか — どちらでも動作する。

なぜ

コンテキストが多すぎるとエージェントは悪化する。ETH チューリッヒは、コンテキストファイルが、エージェントにリポジトリコンテキストを一切与えない場合と比較してタスク成功率を下げ、しかも推論コストを 20% 以上引き上げることを発見した。本番環境でのエージェント障害の約 3 分の 2 は、モデルが能力不足であることではなく、コンテキストの問題に起因する。

だから問題は、どれだけ削るかではない。残したものが十分だったかどうか — それがここで、私たちが選んだわけではないベンチマークで測定される: LongMemEval-S、500 問。語彙ベースライン 51.9% に対して Recall@10 は 93.8%。

Recall@10 は厳格な指標である: 質問がカウントされるのは、すべてのゴールドセッションが見つかった場合のみ。答えの半分しか見つけられなければ、エージェントは半分の根拠に基づいて自信を持って答えることになる。

5 つのツールのうち 2 つはアカウント不要。 先に測定し、その後で判断する。

Related MCP server: compresh-mcp

インストール

pip install cap-shield
{
  "mcpServers": {
    "cap-shield": {
      "command": "cap-shield-mcp",
      "env": {
        "CAP_SHIELD_API_KEY": "cap_live_..."
      }
    }
  }
}

Python 3.9 以上。env ブロックは remember と assemble_context にのみ必要 — それを省いても、2 つの測定ツールは動作する。

公式 MCP レジストリにも io.github.robinlidberg-dot/cap-shield として公開されている。

パッケージより単一ファイルが好みか?

curl -O https://cap-shield-robin.fly.dev/cap_mcp.py

その場合、コマンドは python で、引数はファイルへのパス。

オプションの SKILL.md は、エージェントにこれらのツールをいつ使うべきか — そして使うべきでないかを伝える。

ツール

measure_traffic · アカウント不要

自分のエージェントトラフィックのうちどれだけを節約できるかを測定する。アカウントもキーも不要 — これを最初に使うこと。ワイヤー上のバイト節約量と、クエリが指定された場合は選択的コンテキスト取得によるトークン節約量を返す。何も保存されない: テキストはメモリ内で圧縮され破棄される。IP あたり 1 時間に 20 コールにレート制限される。

list_packages · アカウント不要

利用可能な辞書を、測定された圧縮率とともに一覧表示する。性能の悪いものも含む。各エントリは、一度に 1 メッセージずつ動作するのかバッチのみなのか、そして何件のメッセージがより大きく出力されたかを示す。キーは不要。

remember · キーが必要

後で取得するためのメモリエントリを保存する。キーが必要。これは言語モデルを呼び出さない — テキストを分離されたテナントごとのアーカイブに保存する。関連エントリを取り戻すには assemble_context を使う。

assemble_context · キーが必要

トークン予算内で、質問に答えるメモリエントリを取得する。キーが必要。返された 'context' を、履歴全体の代わりに言語モデルに送信する。これ自体はモデルを呼び出さない — 送信するものを選択する。予算は上限であり、目標ではない: 選択は関連性が尽きたところで止まり、多くの場合、予算を大幅に下回る。レスポンスには、何件のエントリが残され、その理由が示される。

get_account

アカウントと API キーを取得する。メールアドレスが必要。キーは一度だけ返され、再度表示することはできない — すぐに保存すること。ベータ版のクォータは意図的に低く設定されている。ハードストップであり、超過請求は決して発生しない。

上記の説明はサーバーから逐語的にコピーしたもの。もし tools/list が返す内容と異なる場合は、サーバーが正しく、このファイルは古い。

数値の意味

圧縮はワイヤー上のバイトを節約する。選択はコンテキスト内のトークンを節約する。2 つの異なるメカニズム — これらを足し合わせると、何の意味もない数値になる。

圧縮されたパケットはモデルが見る前に解凍されるため、これは推論コストを削減しない。そう言うことは、このプロジェクトについて間違う最も簡単な方法である。

すべての数値はライブで公開されており、測定されていないものや、性能の悪いパッケージも含まれる:

https://cap-shield-robin.fly.dev/.well-known/cap-shield.json

このファイルを信頼するより、それを取得すること。このファイルは古くなる。ドキュメントは古くならない。

MCP なしでの測定

pip install cap-shield
from cap_shield import measure, print_measurement
print_measurement(measure(texts=[...], query="..."))

アカウント不要、何も保存されない。レスポンスには劣化シェア — メッセージのうち何件がより大きく出力されたか — が含まれる。

バッチ処理にはセキュリティ上の条件がある

バッチ処理は複数のメッセージを同じコンテキストで圧縮するため、CRIME/BREACH 型のサイドチャネルが開く: 秘密と同じバッチに選択したテキストを配置し、バッチサイズを観察できる者は、秘密について何かを知ることができる。

すでに同じ信頼境界を共有しているメッセージのみをバッチ処理すること。オプションのパディングは、1 メッセージあたり 2 バイト未満で漏洩を塞ぎ、デフォルトではオフ — 私たちはそう明言しており、あなたが別の前提を持つままにしない。

個別パッキングにはこの問題はまったくない。

移植性

辞書バージョンは決して削除されず、その保証は私たちがまだ存在していることに依存しない: アーカイブエクスポートには辞書バイナリが含まれ、スタンドアロンのアンパッカーはゲートウェイもネットワークもシステムの他の部分もなしで動作する。

https://cap-shield-robin.fly.dev/cap_unpack.py

これはトークンなしで提供される。なぜなら、それを最も必要とするのは、もはやアカウントを持たない人だからである。

ステータス

ベータ版。サーバーバージョン 0.1.0。

ドキュメント: https://cap-shield-robin.fly.dev/docs/quickstart コンソール: https://cap-shield-console.lovable.app

ライセンス

MIT — LICENSE を参照。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers