Agentoracle について
Agentoracleは、提示された契約条件や支出上限に照らしてオファーを確認するMCPサーバーです。署名付きレシートと判定結果を返し、支払いの判断や条件・上限の管理は呼び出し側に委ねます。
主な機能
- 01提示された条件に基づく価格確認
- 02提示された上限に基づく購入額確認
- 03署名付き確認レシートの返却
- 04APIステータスとマニフェストの提供
活用シーン
- 01ベンダーのオファー受諾前の確認
- 02購入額と残予算の比較
- 03APIステータスと利用可能なルートの確認
MCP 対応
契約価格と支出上限の確認、およびヘルス情報とマニフェストをMCPクライアントに公開します。支払いもレシート署名の検証も行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 自然言語による調査の質問 |
詳細
Tanilo MCP サーバー
Claude Desktop、Cursor、Windsurf、またはその他の MCP クライアントを、https://api.tanilo.io の Tanilo API に接続する MCP サーバーです。
Tanilo は、AI エージェントが行動する前に、前提条件を確認します。このサーバーは、契約価格チェックと支出上限チェックの 2 つのチェック、および 2 つのステータス文書を提供します。呼び出すエンドポイントは、キー不要でレート制限のある無料ベータ版として稼働中です。このサーバーはシークレットを保持せず、支払いも行いません。
Tanilo は 2026 年 9 月まで AgentOracle という名称でした。バージョン 2.1.2 までのバージョンは agentoracle-mcp として公開されていましたが、このパッケージは現在メンテナンスされていません。
この README ではバージョン 3.1.0 について説明します。以下の出力は、稼働中の API に対してツールを実行して取得したものです。契約価格チェックは 2026-10-08、支出上限チェックは 2026-10-13 に取得しました。
インストール
npx tanilo-mcp
Claude Desktop
Claude Desktop の設定ファイルを開きます。
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
以下を追加して、Claude Desktop を再起動します。
{
"mcpServers": {
"tanilo": {
"command": "npx",
"args": ["-y", "tanilo-mcp"]
}
}
}
Cursor(Settings → MCP → Add Server)と Windsurf(Settings → MCP Servers → Add)でも、同じ tanilo ブロックを使用します。
ツール
check-contract-price
このオファーは、指定した条件に合っていますか?エージェントがオファーを受け入れる前に、contract_price_match が、オファーの単価と指定された条件のうち該当するものを比較し、署名に成功した場合は結果に署名します。
モデルは関与しません。結果は算術と厳密な比較によるもので、同じ入力を持つ人なら誰でも再計算できます。条件は利用者が指定します。Tanilo は利用者の契約を保持したり、参照したりしません。結果は「検証済み」「矛盾あり」、または理由付きの「判定不能」の 3 種類です。「検証済み」は、価格が指定された条件と一致することを示します。支払うかどうかは、利用者のポリシーに基づいて判断します。
入力:offer(unit_price、currency、unit、および任意の quantity、seller、sku、offered_at)と terms(リスト。各項目には agreement_id、version、currency、unit、および price_per_unit または tiers のいずれかと、任意の seller、product_scope、effective_from、effective_to、supersedes が含まれます)。価格と数量は "2.00" のような小数文字列です。入力ルール、段階価格、修正に関する詳細は https://tanilo.io/docs/contract-price-check を参照してください。
このツールはチェック結果と署名済みレシートを返します。ドキュメントの例(1 回あたり USD 1.00 の指定条件に対する、1 回あたり USD 2.00 のオファー)で 2026-10-08 にライブで取得した出力を一部抜粋します。
{
"verdict": "halt",
"state": "contradicted",
"outcome": "fail",
"reason": "price_mismatch",
"recommendation": "offer price differs from the applicable term among the supplied terms",
"evidence": {
"rule_id": "contract-price-match/v0.1",
"terms_source": "caller_supplied",
"expected": { "price_per_unit": "1.00", "currency": "USD", "unit": "call" },
"offered": { "unit_price": "2.00", "currency": "USD", "unit": "call", "quantity": "1" },
"difference_per_unit": "1.00",
"offer_is": "above_term_price"
},
"check_mode": "deterministic",
"canonical_sha256": "sha256-…",
"kid": "tanilo-2026-10-ed25519-7d885da9",
"jwks_url": "https://tanilo.io/.well-known/jwks.json",
"receipt": { "payload": "…", "signatures": [ … ] }
}
"terms": [] とすると、同じオファーの state は indeterminate、reason は no_applicable_term、verdict は halt になります。
有効な署名は、どの鍵でこれらのバイト列に署名したか、また署名後に内容が変更されていないことを示します。指定された条件が真正なものであることを示すものではありません。レシートの署名は、tanilo-receipt-verify を使って、https://tanilo.io/.well-known/jwks.json にある鍵セットと照合し、オフラインで検証できます。
pip install tanilo-receipt-verify
python3 -c "import json; from tanilo_receipt_verify import verify; r = verify(json.load(open('receipt.json')), jwks_by_issuer={'https://tanilo.io/.well-known/jwks.json': json.load(open('jwks.json'))}); print(r.status, r.canonical_sha256)"
ここで、receipt.json にはツールの receipt オブジェクトが、jwks.json には鍵セットが格納されています。
check-spend-cap
このオファーは、指定した上限額の範囲内に収まっていますか?エージェントが購入を確定する前に、spend_cap はオファーの単価に数量を正確に掛け、合計額を指定された残りの上限額と比較します。署名に成功した場合は、結果に署名します。
上限額とalready_spentを指定します。このチェックは予算残高を取得したり、残高を継続的に管理したり、資金を確保したりしません。結果は「検証済み」「否定」または理由付きの「判定不能」の3種類です。「検証済み」の結果は、オファーの合計額が残りの上限額以内であることを示します。支払うかどうかは、お客様のポリシーに基づいて判断してください。
入力:offer(unit_price、currency、および任意のquantity、offered_at、seller、sku)と、cap(amount、currency、per_purchaseまたはper_periodのscope。per_periodの場合は、already_spentと、fromおよびtoを含むperiodも指定します。任意のcap_idも指定できます。任意のclaim_hashとagent_idは、check-contract-priceと同様です。形式についてはドキュメントページをご覧ください:https://tanilo.io/docs/spend-cap-check。
ツールはチェック結果と署名済みレシートを返します。ドキュメントの例(USD 100.00の上限額のうちUSD 70.00をすでに使用した状態で、USD 12.50のオファーに対して3回呼び出し)を2026-10-13にライブ環境でキャプチャし、内容を抜粋しました:
{
"verdict": "halt",
"state": "contradicted",
"outcome": "fail",
"reason": "cap_exceeded",
"recommendation": "offer total exceeds the remaining cap the caller supplied",
"offer_total": "37.50",
"remaining": "30.00",
"excess": "7.50",
"cap_already_exhausted": false,
"evidence": {
"rule_id": "spend-cap/v0.1",
"cap_source": "caller_supplied",
"offer_total": "37.50",
"remaining": "30.00",
"excess": "7.50",
"cap_already_exhausted": false,
"offer_sha256": "sha256-…",
"cap_sha256": "sha256-…",
"steps": [ … ]
},
"check_mode": "deterministic",
"canonical_sha256": "sha256-…",
"kid": "tanilo-2026-10-ed25519-7d885da9",
"jwks_url": "https://tanilo.io/.well-known/jwks.json",
"receipt": { "payload": "…", "signatures": [ … ] }
}
"already_spent": "62.50"を指定すると、同じオファーは上限額とちょうど一致します。stateはverified、remainingは37.50、excessはnull、verdictはactです。
署名の検証には、check-contract-priceの場合と同様に、Taniloのものとして認証済みの鍵セットを使用してください。有効な署名は、選択した鍵で署名対象の内容が検証され、改ざんされていないことを証明します。ただし、指定した上限額が真正であること、承認済みまたは最新であること、あるいは購入が許可されていることを証明するものではありません。
check-health
APIのステータスドキュメント(GET /health)を返します。サービスの状態、稼働中のルートとその価格、廃止されたルート、レート制限が含まれます。
get-manifest
APIのディスカバリードキュメント(GET /.well-known/x402-manifest.json)を返します。有料リサーチルートは2026-10-04に廃止されたため、有料リソースは記載されていません。
このサーバーが行わないこと
- Taniloのクレームチェック(
POST /evaluate)用ツールは、まだありません。このルートはベータ期間中は無料で、直接呼び出せます。https://tanilo.io/pricing をご覧ください。 - 何かを支払ったり、ウォレットを保有したり、鍵を読み取ったりすることはありません。以前のバージョンにあったx402決済コードは削除されています。
- 署名を自ら検証することはありません。前述の
tanilo-receipt-verifyを使用してください。
開発
npm install
npm run build
npm test # starts the built server over stdio and calls the live API (free beta route)
TANILO_PYTHONに、tanilo-receipt-verifyがインストールされたPythonを設定すると、テストで返されたレシートのオフライン署名も検証できます。TANILO_API_BASEを設定すると、サーバーの接続先を別のホストに変更できます(テストのみ)。
リンク
- tanilo.io — サイトとドキュメント
- tanilo.io/docs/contract-price-check — このサーバーが提供するチェック
- tanilo.io/docs/spend-cap-check — 上限額チェック
- tanilo.io/trust — 鍵と、署名によって証明されること/されないこと
- tanilo-receipt-spec — レシート形式
- tanilo-receipt-verify — オフライン署名チェック
お問い合わせ:[email protected]
MITライセンス。TK Collective LLC。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。