mcpField
M
manifestlens

manifestlens

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

manifestlens について

manifestlensは、エージェントやAPI運営者向けのAgent Manifest Protocolクライアントです。APIマニフェストの検出と検証、操作権限の確認に加え、公開レジストリへの登録と状態確認ができます。

主な機能

  1. 01規定のパスからマニフェストを検出
  2. 02マニフェストの構造を検証
  3. 03操作の権限を確認
  4. 04AMPレジストリにAPIを登録
  5. 05登録状況を確認

活用シーン

  1. 01APIが公開するマニフェストの確認
  2. 02予定するAPI呼び出しの権限確認
  3. 03公開前のマニフェスト検証
  4. 04APIを登録して状況を追跡

MCP 対応

Agent Manifest Protocolの検出、検証、権限確認、レジストリ操作をMCPクライアント向けのツールとして提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-manifestlens": {
"command": "npx",
"args": [
"-y",
"@reneturcios/manifestlens"
]
}
}
}
起動コマンドnpx -y @reneturcios/manifestlens

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

パッケージ
npm@reneturcios/manifestlens0.1.0
ocighcr.io/cloudcorprecords/manifestlens:0.1.0

ツール

5

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
domainstringはいこの呼び出しの対象となるドメイン。

詳細

manifestlens

エージェントが利用できるようにしたい API は、Agent Manifest を公開します。これは、その API の概要、エージェントが呼び出せるエンドポイント、 適用される制約を記述した小さな JSON ドキュメントです。manifestlens は、この Agent Manifest Protocol のクライアントです。オリジンの既知の場所からマニフェストを検出し、マニフェストの 形式を検証し、オリジンを公開 AMP レジストリに登録して申請状況を追跡します。そして、 各呼び出しの前に確認する価値がある機能として、手元のマニフェストで予定している操作が 実際に許可されているかを判定します。

API キーは一切不要です。マニフェストの確認とレジストリはどちらも公開されており、 2 つのローカルツールがマシンの外に出ることはありません。

設定

  • AMP_REGISTRY_BASE_URL(任意)— レジストリツールのベース URL です。デフォルトは https://api.agent-manifest.com です。
  • AMP_FETCH_TIMEOUT_MS(任意)— マニフェストの取得に適用されるタイムアウトです。デフォルトは 15000 です。

ツール

  • fetch_manifest_by_domain — domain(ホスト名のみ、またはスキームとパスを除去した URL)を受け取り、 https://<host> 配下の /.well-known/agent-manifest.json、 /.well-known/amp.json、/agent-manifest.json の順にリクエストし、 最初に応答したマニフェストを、該当する manifest_url、origin、 tried_urls リストとともに返します。応答がない場合は、 no AMP manifest found for <host> (tried 3 URLs) で失敗します。
  • validate_manifest_syntax — オブジェクトまたは JSON 文字列として渡されたマニフェストを検証します。 以下で説明する AMP スキーマの構造的なサブセットを適用し、成功トークン amp-schema-valid:<spec_version>:<name> とともに valid: true を返すか、 パスとメッセージからなるエラー一覧とともに valid: false を返します。JSON として 解析できない文字列はツールエラーではなく、検証失敗になります。
  • submit_api_to_amp_registry — domain のオリジンをレジストリの申請エンドポイント (POST /listings/submit)に送信し、レジストリの JSON 応答を変更せずに返します。
  • check_amp_submission_status — GET /listings/submit/<submission_id>/status をポーリングし、 レジストリの JSON 応答を変更せずに返します。
  • check_agent_permissions — POST /baking/validate-mix のような action、 manifest、および任意のブール値 intends_unauthenticated と payment_onboarded(どちらもデフォルトは false)を受け取ります。verdict は compliant、violation、warning、unknown のいずれかで、 構造化された findings と、宣言済みのルートが一致した場合は matched_endpoint も返します。検出コードには、endpoint_not_declared(一致する 宣言済みルートがない)、auth_required(ルートで認証が必要だが、操作では未認証での実行が 意図されている)、payment_onboarding(ルートまたはマニフェストで支払い条件が宣言されているが、 オンボーディングが完了していない)、agent_notes_usage_restriction(マニフェストの agent_notes に「do not」や「only for」などの制限表現が含まれている)があります。 宣言済みルートでは {id} 形式のテンプレートセグメントを使用でき、任意の単一パスセグメントに 一致します。

レジストリの失敗には、次の 2 つの形式があります。2xx 以外の応答では amp registry error: HTTP <status> で失敗し、レジストリに接続できない場合は amp registry unreachable で失敗します。引数の検証はリクエストの前に行われ、該当する場合は domain must be a non-empty string、manifest must be an object or a JSON string、 submission_id must be a non-empty string、action must be a non-empty string、 または manifest must be an object で失敗します。

サブセットと再構成とは

このビルドの3つの部分には、ここでもコード内でも、意図的に次のラベルを付けています。

  • 検証サブセット。 公式のAMP JSON Schema全体は参照可能な記録に含まれていないため、検証では、文書化されている構造上のサブセットを実装しています。値はJSONオブジェクトであること、spec_versionは agentmanifest-0.2またはagentmanifest-0.3であること、nameは 空でない文字列であること、そしてendpointsが指定されている場合は、文字列のpath、 url、またはrouteをそれぞれ含むオブジェクトの配列であることが必要です。
  • 送信の入力と本文。 元のツールの送信入力はREADMEに記載されていません。manifestlensは{domain}を受け取り、{"origin": "https://<host>"}を送信します。これは再構成です。
  • 権限ルールの仕組み。 上記の判定結果と検出コードは文書化されていますが、それらを生成する正確な照合方法と優先順位の仕組みは再構成です。検出コードのうち2つはローカル拡張です。unparseable_action(アクションがHTTPメソッドで始まっていない)とno_endpoints_declared(マニフェストに読み取り可能なエンドポイントがまったく含まれていない)です。どちらの判定結果もunknownです。

CLI

各ツールは、1つのJSON引数文字列を受け取るサブコマンドです。

npx @reneturcios/manifestlens fetch_manifest_by_domain '{"domain":"api.example.com"}'
npx @reneturcios/manifestlens validate_manifest_syntax '{"manifest":{"spec_version":"agentmanifest-0.3","name":"My API"}}'
npx @reneturcios/manifestlens submit_api_to_amp_registry '{"domain":"api.example.com"}'
npx @reneturcios/manifestlens check_amp_submission_status '{"submission_id":"sub_123"}'
npx @reneturcios/manifestlens check_agent_permissions '{"action":"POST /baking/validate-mix","manifest":{"endpoints":[{"method":"POST","path":"/baking/validate-mix"}]}}'
npx @reneturcios/manifestlens --version

出力はツールの結果テキストです。終了コード:成功時は0、実行時エラー(検証エラーや上流の障害を含む)時は1、使用方法のエラー時は2です。

MCP サーバー

npx -y @reneturcios/manifestlens mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "manifestlens": {
      "command": "npx",
      "args": ["-y", "@reneturcios/manifestlens", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/manifestlens
docker run --rm ghcr.io/cloudcorprecords/manifestlens fetch_manifest_by_domain '{"domain":"api.example.com"}'

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

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

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