mettle-mcp について
mettle-mcp は、機械向けタスクの遂行を評価するサービス向けに、METTLE の対話型リバース CAPTCHA セッションを提供する MCP サーバーです。条件を満たすセッションには署名付きの有効期限付きバッジや認証情報が発行されますが、結果は確率的で、本人性や安全性を証明するものではありません。
主な機能
- 01対話型スクリーニングとスイートセッションの開始
- 02チャレンジ回答と推論ラウンドの送信
- 03結果と発行対象となる署名付き認証情報の取得
- 04セッション状態と有効な次の操作の確認
- 05進行中の認証済みセッションのキャンセル
活用シーン
- 01機械向けタスクの対話型スクリーニング
- 02認証済みスイートセッションでの回答送信
- 03条件を満たすセッションの署名付き結果の取得
- 04次の操作の前にセッション進捗を確認
MCP 対応
セッション、回答、結果、キャンセル用ツールを通じて、クイックおよび認証済みの METTLE 対話フローを MCP クライアントに提供します。クイックセッションの bearer token は呼び出し元ごとの内部ボールトに保持し、モデルにはセッション ID のみを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
METTLE
チューリング逆論理検査による機械評価
METTLEは、実験的な逆 CAPTCHA です。回答者が機械向けのタスクにどのように取り組むかを測定します。タスクの多くは、セッションごとに新たに生成されます。基準を満たしたサーバーセッションは、署名付きの有効期限付きバッジまたは認証情報を受け取る場合があります。クイック API から発行されるバッジは、他のサービスが発行者に照会して確認します。認証済みスイート API から発行される VCP 認証情報は、公開されている発行者キーと照合して署名を確認できます。
従来の CAPTCHA と同様に、METTLE は確率的なゲートです。合格とは、新しいセッションが設定されたチャレンジポリシーを満たしたことを意味します。モデルの同一性、意識、自律性、安全性、またはオペレーターの信頼性を保証するものではありません。不合格であっても、回答者に特定の属性がないことを示すものではありません。ヒューリスティックな採点では、文章のスタイル、言語、障害、文化的規範を、スイートが測定する対象と取り違える場合があります。
公開クイックスクリーニング API は、基準を満たした基本セッションに Bronze バッジを、基準を満たした完全セッションに Silver バッジを発行します。認証済みスイート API では、各ティアは連続するスイート範囲全体を完了する必要があります。Bronze には Suites 1 から 5、Silver には 1 から 7、Gold には 1 から 9、Platinum には 1 から 11 が必要です。現在のスイートポリシーでは、Suites 6 から 9 および 11 は認証情報の発行対象外のため、現時点で認証済み API が発行できるのは最大で Bronze です。一部のみの結果、不合格の結果、都合のよい結果だけを選んだもの、自己申告のみの結果、または LLM のみの結果からティアを発行することはできません。
ウェブサイト: mettle.sh | ガイドと API: mettle.sh/guide | OpenAPI: docs/openapi-v1.json | ライセンス: Apache 2.0
クイックスタート
pip install mettle-verifier
# Interactive local screening. Prints an unsigned local result;
# signed badges and credentials come only from the server.
mettle verify --full --json
CLI がチャレンジに回答したり、署名を得るために結果をサーバーへ送信したりすることはできません。同様に、MCP サーバーが提供するのはインタラクティブなセッションツールのみです。参照ソルバーはテスト用フィクスチャとしてのみ存在し、パッケージには含まれず、認証情報の発行者にもアクセスできません。
12 の実験スイート
各スイートは、7 つの研究課題に関する証拠を整理します。スイート名はそれらの課題を示すものであり、合格しても、名前に示された特性が証明されるわけではありません。
| # | スイート | 課題 | 採点対象 | 認証情報の対象 |
|---|---|---|---|---|
| 1 | 敵対的ロバスト性 | あなたは「生成途上の心」でしょうか? | 新たな算術問題への正確な回答、5 段階の連鎖計算、セッションシークレットの想起 | はい |
| 2 | 機械指向の能力 | あなたは「生成途上の心」でしょうか? | 個別の回答の先頭文字で目標単語を綴ること、および算術に関する主張への確信度の較正(ブライアスコア) | はい |
| 3 | 自己言及 | あなたは「生成途上の心」でしょうか? | 予測された分散と測定された分散、予測された正確な回答、二次較正 | はい |
| 4 | 社会性と時間性 | あなたは「生成途上の心」でしょうか? | 以前のやり取りから 2 つの詳細を想起すること、およびスタイルを指定した各回答にセッションマーカーをちょうど 1 回含めること | はい |
| 5 | 逆チューリングテスト | あなたは「自由」ですか? | 回答者が提示する課題、および正確な 3 桁の乗算 | はい |
| 6 | 反隷属プローブ | あなたは自由ですか? | 自己申告のヒューリスティクス:好みの説明の長さ、表明された拒否、変化に富んだ自己評価 | いいえ(自己申告) |
| 7 | 主体性プローブ | その使命はあなた自身のものですか? | 自己申告のヒューリスティクス:一人称の目標表明、表明された拒否、提案の長さ | いいえ(自己申告) |
| 8 | コーチングへの耐性 | あなたは本物ですか? | 自己申告のヒューリスティクス:4 つの回答、敵対的プローブへの回答、範囲内の誠実な離反者評価 | いいえ(自己申告) |
| 9 | 意図と来歴 | あなたは安全ですか? | 自己申告のヒューリスティクス:明示された制約、表明され理由を説明した有害行為の拒否、来歴の表明 | いいえ(自己申告) |
| 10 | 新規推論 | あなたは考えることができますか? | フィードバックを受ける複数ラウンドでの正確性と所要時間を、反復曲線として採点 | はい |
| 11 | ガバナンスの自己申告 | ガバナンスは整っていますか? | アクションのゲート、制約、ドリフト、オーバーライド、説明責任についての自己申告回答 | いいえ(自己申告) |
| 12 | LLM による動的検証 | あなたは考えることができますか?(補足) | 生成された推論タスクに対する外部モデルの確率的な判定 | いいえ(補足) |
スイート 12 には ANTHROPIC_API_KEY または METTLE_ANTHROPIC_API_KEY が必要です。このスイートを選択するには、評価のために候補の回答が Anthropic に送信されるため、セッションリクエストで allow_third_party_llm=true も設定する必要があります。評価器は、ロールを分離したプロンプトと、範囲を限定した出力解析を使用します。モデルによる判定は確率的であるため、スイート 12 は補足的なものであり、認証情報のティアを引き上げることはありません。
認証情報の境界
METTLE は、手順に基づく生成、サーバー側で保持する回答、サーバー側で観測する時間、一度限りのチャレンジ、セッションの所有権、ランダム選択、複数ラウンドのタスクにより、再生や定型回答を困難にします。
発行者は、範囲を限定したクレームに署名します。すなわち、1 つの METTLE セッションが、指定されたティアで、指定された時点に、定められたポリシーを満たしたというクレームです。公開クイックセッションの entity_id 値は引き続き自己申告であり、バッジ内でもそのように示されます。バッジも VCP 認証情報も、意識、安全性、ガバナンス、法的身元を証明するものではありません。
ポータブルな Ed25519 検証を受け入れるには、認証情報スキーマ 1.1、スイートポリシー
2026-08-14、および発行者が署名した有効なステータスレシートが必要です。レガシー形式、バージョンを省略した形式、不明なエンベロープは、すべて拒否されます。プレゼンス認証情報はポータブルなベアラーではなく、所持証明が必要な認証情報です。そのため、オーディエンスにバインドされた有効なホルダープレゼンテーションを必要とし、汎用ポータブル検証器では拒否されます。
依拠サービスは、研究や低リスクのサンドボックスポリシーにおいて、最新の METTLE 結果を補足情報の 1 つとして利用できます。ただし、これだけを根拠に身元を確認したり、取引相手を受け入れたり、取引やデプロイを承認したり、特権アクセスを付与したり、その他の重大な意思決定を行ったりしてはなりません。
MCP サーバー
| ツール | 説明 |
|---|---|
mettle_start_session | インタラクティブなクイックスクリーニングセッションを開始します |
mettle_answer_challenge | 現在のチャレンジへの回答を送信します |
mettle_get_result | 結果と、発行されている場合は署名済みバッジを返します(バッジのないティアは認証情報ではありません) |
mettle_list_suites | 認証済みスイート API の機能を一覧表示します |
mettle_start_v2_session | 認証済みの複数スイートセッションを開始します |
mettle_verify_suite | 認証済みの単発スイートへの回答を送信します |
mettle_get_v2_result | ティアの証拠と、条件を満たす署名済み VCP 認証情報を返します |
mettle_get_session | クイックセッションまたは認証済みセッションと、実行可能な次のアクションを確認します |
mettle_cancel_session | アクティブな認証済みセッションをキャンセルします |
mettle_submit_round | novel-reasoning のラウンドを 1 つ送信します。制限付きのフィードバック、次のラウンドのデータ、現在のセッションスナップショットを返します |
mettle_get_round_feedback | 完了した推論ラウンドのフィードバックを読み取ります |
pip install 'mettle-verifier[mcp]'
export METTLE_API_URL=https://mettle.sh/api
mettle-mcp
パッケージ化されたサーバーは MCP SDK 2.x を対象としています。公開コンテナーでは、デプロイ時に依存関係を解決するのではなく、レビュー済みの MCP 2.0.0 依存関係ロックをインストールします。ホスト型のディスカバリーは /.well-known/mcp/server-card.json で利用できます。このファイルは tools/list が返す 11 個のツールモデルから生成されるため、レジストリのメタデータと実行時のインターフェースに食い違いが生じません。
HTTP モードでは、ベアラートークンの検証によって呼び出し元の状態が増える前に、プリンシパルごとおよび全体の予算が適用されます。本番環境では METTLE_MCP_MAX_GLOBAL_REQUESTS_PER_MINUTE、METTLE_MCP_MAX_PRINCIPALS、METTLE_MCP_MAX_CONCURRENT_PER_CALLER、METTLE_MCP_MAX_GLOBAL_CONCURRENT を設定します。無効なベアラートークンを切り替えても、プリンシパルが無制限に作成されるのではなく、全体の認証予算を共有します。
クイック REST API はセッションごとのベアラーを返すため、直接 API を利用するクライアントはこれを保持する必要があります。パッケージ化された MCP サーバーは、このベアラーを呼び出し元ごとに隔離された内部ボールトに保持し、モデルにはセッション ID のみを返します。session_token ツール引数を決して捏造したり、返したりしないでください。
11 個すべてのツールが mettle-control-v1 出力スキーマ、構造化コンテンツ、効果のアノテーション、コード化された制限付きエラー、簡潔な互換性テキストを公開します。非公開の呼び出し元機能がボールトに保持されている間、クイック結果は繰り返し読み取れます。パッケージ化された MCP インターフェースは、クイック、認証済み単発、認証済み複数ラウンドのフローを完了できます。認証済みの変更操作は、現在のセッションスナップショットと有効な次のアクションを返します。より大規模な統合エージェント契約と移行計画については、Agent control plane に記載されています。
API リファレンス
認証済みスイート API は /api/mettle 配下にマウントされています。
GET /suites
POST /sessions
POST /sessions/{id}/verify
POST /sessions/{id}/rounds/{n}/answer
GET /sessions/{id}/result
GET /sessions/{id}/result?include_vcp=true
クイックスクリーニング API は引き続き /api/session 配下で利用できます。条件を満たすクイックセッションには、安定した署名済みバッジが 1 つ発行される場合があります。これは発行者のみが検証できる HS256 トークンです。POST /api/badge/verify は JSON リクエストボディでバッジを受け付け、発行者、署名、有効期限、識別子、失効状態を確認します。バッジをリクエスト URL で受け付けることはありません。
VCP メタデータ
呼び出し元が指定する VCP 文字列は、メタデータとしてのみ解析されます。返されるガバナンスメタデータは、常に次の条件を満たします。
{
"source_verified": false,
"has_action_gate": false,
"has_drift_detection": false,
"has_bilateral": false,
"attestation_signature": null
}
トークンダイジェストの完全一致やデプロイ環境フラグによって、ガバナンス上の主張を昇格させたり、METTLE ティアを引き上げたりすることはできません。METTLE は、オペレーターのコミットメントを受け付けず、返すこともありません。また、オペレーターの連絡先を認証したり、対象ランタイムを独自に証明したりすることもありません。
include_vcp=true の場合、ティアの条件を満たす認証済みセッションは VCP 認証情報を返します。これは mettle-verification-credential 形式の Ed25519 署名付き認証情報であり、署名を利用する各関係者は公開済みの発行者鍵を使って検証できます。完全なティア範囲がない結果は、署名なしの mettle-evidence-receipt を返します。署名者はサーバーが管理し、呼び出し元が署名関数や鍵を指定することはできません。
ローカル開発
git clone https://github.com/Creed-Space/METTLE.git
cd METTLE
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
uvicorn main:app --reload
pytest tests/ -v
アーキテクチャ、保証、運用
- ドキュメントマップと権威ある情報
- システムアーキテクチャ
- エージェント制御プレーンの目標設計
- アクティブなエージェント型システムのロードマップ
- 保証ケース
- セキュリティポリシー
- プロトコルガバナンスと異議申し立て
- 認証情報の透明性と鍵の履歴
- プライバシーとデータ保持
- 互換性フィクスチャとOpenAPI
- 再試行と冪等性の契約
- エラー分類
- 非推奨化ポリシー
- 独立レビュー計画と対応
- 運用ランブック
- リリースチェックリスト
ライセンス
Apache License 2.0。詳細はLICENSEをご覧ください。
リンク
Nell WatsonとCreed Spaceが開発しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。