authority-risk-mcp について
authority-risk-mcp は、スマートコントラクトの管理権限、変更遅延、リスクスコアを調べる読み取り専用 MCP サーバーです。Authority Risk Oracle Watch の公開データを読み、回答前に署名済みマニフェストとファイルハッシュを検証します。
主な機能
- 01総合スコアと内訳スコアの取得
- 02管理者、閾値、鍵、遅延の確認
- 03追跡対象コントラクトと低スコアの一覧
- 04複数チェーンにおけるプロトコルの確認
- 05署名済みマニフェストと公開ファイルの検証
活用シーン
- 01コントラクトに依存する前の管理権限の確認
- 02追跡対象コントラクトのスコア比較
- 03各チェーン上のプロトコルコントラクトの確認
- 04データ整合性とスナップショットの鮮度確認
MCP 対応
MCP クライアントに、コントラクトやプロトコルの権限およびスコアを照会する読み取り専用ツールを提供します。回答には整合性情報が含まれ、トランザクションは実行せず、アカウント、鍵、ウォレットも不要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| chain | string | はい | robinhood、ethereum-l1、arbitrum、base、tempo、plasma、monad、hyperliquid または solana |
| address | string | はい |
詳細
authority-risk-mcp
AI エージェントがスマートコントラクトを利用する前に、誰がどのように変更できるのか、どれほどの速さで変更できるのか、また、その仕組みがどれほど強固かを確認できる、読み取り専用のMCPサーバーです。Authority Risk Oracle Watchが6時間ごとに公開するファイルを読み込み、回答する前にWatch の署名付きマニフェストと照合します。
アカウント、キー、ウォレット、トランザクションは不要です。スコアは、各回答に記載されているネットワークのコントラクトについて、テストネットのオラクルで公開されています。スコアは、表示された時点で取得した公開データの読み取り結果であり、監査でも投資助言でもありません。
インストール
uvxを使う場合(Python 3.9以降が必要です。それ以外は不要です):
{ "mcpServers": { "authority-risk": { "command": "uvx", "args": ["authority-risk-mcp"] } } }
npxを使う場合(PATH 上に Node 18以降とpython3 3.9以降が必要です。npm パッケージは同じ Python サーバーを起動する薄いラッパーです):
{ "mcpServers": { "authority-risk": { "command": "npx", "args": ["-y", "authority-risk-mcp"] } } }
このブロックをclaude_desktop_config.json(Claude Desktop)または.cursor/mcp.json(Cursor)に追加してから、クライアントを再起動してください。pip を使う場合は、pip install authority-risk-mcpを実行してから、authority-risk-mcpを実行します。
4つのツール
| ツール | 質問例 | 返される内容 |
|---|---|---|
getScore | 「Robinhood Chain 上の0x1f7d...の権限スコアは?」 | 合計スコアと5つのサブスコア、データが古いかどうか、プッシュおよび読み取りの日時、オラクルとブロック、読み取り結果を再現するためのcast call |
listTargets | 「スコアが40未満の追跡対象コントラクトは?」 | 条件に一致するコントラクト(最も弱いものから順)と、スコアが読み取られていないものの数 |
whoControls | 「このコントラクトを変更できるのは誰で、どれくらいの速さで変更できますか?」 | 管理者の種類(EOA、Safe、タイムロックなど)、しきい値、操作に必要なキーの数、遅延、モジュール、保留中の管理者変更 |
checkProtocol | 「aave-v3は、展開されているすべてのチェーンで60を超えていますか?」 | 最も弱いコントラクト、読み取られたコントラクトの数、データが古いものやアラート対象のもの、判定:ok、fail、unread_part、unread |
すべての回答は、statusを含むJSONです。
ok:回答を読み取れました。not_tracked:Watch はこのコントラクトを追跡していません。この結果は、安全性について何も示しません。not_read:回答に必要なファイルが見つからない、取得できない、または署名と一致しませんでした(integrity_failed: true)。
Watch が読み取らなかった値はnullとなり、not_readに記載されます。0になることも、決して「ok」になることもありません。unread_partは、プロトコルの一部のコントラクトは読み取られたものの、ほかは読み取られていないことを意味します。これは合格ではありません。
呼び出し例(クライアントが送信する内容):
{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "getScore", "arguments": {"chain": "robinhood", "address": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA"}}}
チェーン:robinhood、ethereum-l1、arbitrum、base、tempo、plasma、monad、hyperliquid、solana。
確認内容
Watch はマニフェスト(公開された各ファイルのsha256と、ハッシュチェーン方式のイベントログの先頭)に、Ed25519キーで署名します。このサーバーは次の処理を行います。
signature.jsonを取得し、固定登録済みのキー(11baca3e...f409)で署名を検証します。不明なキー、署名のないマニフェスト、不正な署名は拒否されます。- 必要なファイルをそれぞれ取得し、sha256をマニフェストと照合します。最初のソース(raw.githubusercontent.com)から異なるコピーが配信された場合は、2番目のソース(jsDelivr)を試します。どちらでも一致しない場合は拒否されます。
- 可能な場合は、イベントログの先頭をマニフェストと照合します。
各回答にはintegrityブロックが含まれ、検証済みかどうか、署名したキー、スナップショットの経過時間(72時間を超えるとsnapshot_stale)、イベントログの確認結果を示します。一致しないファイルが値として使われることは決してありません。
これによって証明されないこと:署名キーを保持するのは Watch のワークフローです。そのため、ワークフロー自体が悪意をもって変更された場合、何にでも署名できてしまいます(その変更はリポジトリの履歴で確認できます)。固定登録されたキーは、別のサーバー、侵害されたミラー、改ざんされたダウンロードから保護しますが、メンテナーからは保護しません。
オプション
authority-risk-mcp [--data-dir DIR] [--base-url URL] [--trust-key HEX] [--allow-unsigned] [--allow-unpinned] [--max-age-hours N]
--data-dir DIR:watch-dataブランチのローカルクローンをオフラインで読み込みます(git clone --depth 1 -b watch-data https://github.com/RealSpap/authority-risk-oracle-showcase.git)。フォルダーにsignature.jsonがある場合は、それを使ってフォルダー自体を検証します。ない場合、回答ではverified: falseと表示されます。このモードではネットワークに一切接続しません。--trust-key HEX(またはカンマ区切りのAUTHORITY_RISK_TRUSTED_KEYS):リポジトリで告知されたキーのローテーションに対応するため、別のキーで署名されたマニフェストを受け入れます。- ネットワークモードでは、
raw.githubusercontent.comとcdn.jsdelivr.net(または指定した https の--base-url)にのみ接続し、検証済みファイルをプライベートな一時フォルダーに書き込みます。このフォルダーはサーバーの停止時に削除されます。
ライセンス
MIT。ソース:リポジトリ内の packages/authority-risk-mcp。ツールモジュールは、ビルド時にリポジトリの scripts/ フォルダーからバイト単位でそのままコピーされます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。