ecz-id-mcp-verifier について
ecz-id-mcp-verifierは、対象を分類し、該当する場合に公開ECZ-ID Resolverの状態を確認する、ローカル優先の読み取り専用ツールです。開発者、CI担当者、MCPホスト向けに決定論的な結果と次の手順を示し、ソースコードやテレメトリーは送信しません。
主な機能
- 01LLMを使わず対象を決定論的に分類
- 02有効なECZ-IDの公開Resolver状態を確認
- 03JSON、人間向けレポート、SARIFを出力
- 04ローカルポリシーに基づく決定論的な終了コード
- 05CLI、GitHub Action、Nodeライブラリ、MCPサーバーとして動作
- 06ネットワーク接続なしでオフライン実行
活用シーン
- 01開発環境からECZ-IDを確認
- 02指定ポリシーでCIパイプラインにゲートを設定
- 03MCPホスト経由で対象を確認
- 04オフラインで対象を分類し、次の手順を判断
MCP 対応
stdioサーバーを通じて、対象の分類と確認、結果の報告、次の手順への案内を行う3つの読み取り専用MCPツールを提供します。アーティファクトの内容を調べたり、Resolverに書き込んだりはしません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ECZ-ID MCP Verifier(TM)
CLI、CI、または MCP ホストから、公開 ECZ-ID Resolver の状態を確認できます。サインイン、ソースのアップロード、テレメトリーは不要です。ローカルポリシーによって判断されます。
ローカル優先、プライバシー優先のツールです。対象を分類し、該当する場合は公開 ECZ-ID Resolver の状態を確認し、決定論的な結果を報告して、その結果を説明し、次の手順へ案内します。行うのは読み取り、報告、案内のみです。真実を書き込んだり、証明を有効化したり、何かを BOUND とマークしたり、チェックアウトを実行したり、アーティファクトの内容を調べたりすることはありません。
クイックスタート
npx @ecocitizenz/ecz-id-mcp-verifier check --target ECZ-GB-A93K7Q
check は先頭のサブコマンドとして使用できます。処理は --target が実行します。人が読めるソフトレポートを表示するには --report を、証明がない場合にフェイルクローズするには --policy REQUIRE を、ネットワークに接続せず分類と案内を行うには --offline を追加します。
1 分以内に最初の有用な結果を得られます: 上記のコマンドを実行し、実際の JSON 結果を読み、案内された次のアクションに進んでください。サインイン、アカウント、設定は不要です。
npm install @ecocitizenz/ecz-id-mcp-verifierをそのまま実行してインストールできます。再現性が必要な場合に限り、特定のバージョンを固定してください(再現可能なバージョン固定を参照)。
代表的な結果
--target ECZ-GB-A93K7Q --policy OPEN --offline の実際の出力です(抜粋。完全な JSON には setup_handoff、request_to_resolve および追加の境界フラグも含まれます)。
{
"schema_version": 1,
"verifier": "ECZ-ID MCP Verifier",
"verifier_version": "0.9.1",
"target": "ECZ-GB-A93K7Q",
"target_type": "ecz_id",
"policy_mode": "OPEN",
"result_state": "NO_PUBLIC_RESOLVER_PROOF_FOUND",
"reason_codes": ["NO_PUBLIC_RESOLVER_PROOF_FOUND", "RESOLVER_READ_ONLY", "LOCAL_POLICY_DECIDES"],
"resolver_url": "https://resolver.ecocitizenz.org/p/ECZ-GB-A93K7Q",
"machine_json_url": null,
"local_policy_decides": true,
"recheck_before_reliance": true,
"no_safety_or_approval_inference": true,
"no_source_uploaded": true,
"no_secrets_uploaded": true,
"no_telemetry": true,
"exit_code": 0
}
ここでの NO_PUBLIC_RESOLVER_PROOF_FOUND は、公開された証明が見つからなかったことを意味します(オフラインでの実行)。対象が安全でないという意味ではありません。ローカルポリシーによって判断されます。
次の場所から利用できます
| 利用先 | 方法 |
|---|---|
| CLI | npx @ecocitizenz/ecz-id-mcp-verifier check --target <value> |
| CI / GitHub Action | uses: Ecocitizenz/[email protected] |
| MCP ホスト | ecz-id-mcp-server の stdio バイナリを実行します(読み取り専用ツールが 3 つ) |
| Node ライブラリ | import { verify } from "@ecocitizenz/ecz-id-mcp-verifier" |
次のアクション:対象を確認する · CI に追加する · MCP ホストに追加する · 公開 Resolver の証明を調べる · 運用する対象の状態を改善する · インテグレーションを構築する。
よくあるワークフロー
| あなたの役割… | 実行すること | 得られるもの |
|---|---|---|
| 対象を確認する開発者 | npx @ecocitizenz/ecz-id-mcp-verifier check --target <value> | 決定論的な分類と、案内を含む公開 Resolver の状態。 |
| ゲートを追加する CI オーナー | policy を指定してGitHub Actionを追加するか、--policy REQUIRE を付けて CLI を実行します | パイプライン向けの決定論的な終了コードと JSON/SARIF。 |
| MCP ホストのユーザー | --print-mcp-config → ホストに貼り付けます | stdio 経由で利用できる、読み取り専用の MCP ツールが 3 つ。 |
| Node 開発者 | import { verify } from "@ecocitizenz/ecz-id-mcp-verifier" | プロセス内で、副作用なく利用できる標準の結果コントラクト。 |
| プラットフォームのレビュアー | --capabilities を実行し、公開 Resolver の状態を調べます | 範囲と制限を誠実に示す、機械可読な情報。 |
| 自分が管理する対象を改善するオペレーター | 結果に示された TrustOps の案内に従います | 対象の公開 Resolver の状態を改善するためのガイダンス。 |
| 機械またはエージェント | --capabilities と標準の機械向けディスカバリーのポインターを読み取ります | エージェントが読み取れる機能とディスカバリー情報です。証明として扱われることはありません。 |
対応するターゲット形式
分類器は決定論的です(正規表現のみを使用し、LLM もネットワークも使用しません)。公開 Resolver の照会は、有効な ECZ-ID に対してのみ実行されます。それ以外の形式はすべて分類およびルーティングされますが、解決はされず、どの形式についても、アーティファクトの内容、マニフェスト、ランタイムプロトコルは検査されません。
| ターゲット形式 | 例 | 分類済み | Resolver 照会 | アーティファクト/マニフェスト/ランタイムの検査 |
|---|---|---|---|---|
| ECZ-ID(親) | ECZ-GB-A93K7Q | はい | はい(GET …/api/p/{parent}.json、オンライン) | いいえ/いいえ/いいえ |
| ECZ-ID(子) | ECZ-GB-A93K7Q::AGENT-4F9Q2A | はい | いいえ(人間向け URL のみ。子用のマシンエンドポイントなし) | いいえ/いいえ/いいえ |
| MCP サーバー URL | https://api.example.com/.well-known/ecz-mcp.json | はい | いいえ(直接解決できません) | いいえ/いいえ/いいえ |
| エージェントマニフェスト URL | …/.well-known/ecz-agent.json | はい | いいえ | いいえ/いいえ/いいえ |
| API URL | https://api.example.com/... | はい | いいえ | いいえ/いいえ/いいえ |
| GitHub リポジトリ | https://github.com/org/repo | はい | いいえ | いいえ/いいえ/いいえ |
| npm パッケージ | left-pad または npm:left-pad | はい | いいえ | いいえ/いいえ/いいえ |
| PyPI パッケージ | pypi:requests | はい | いいえ | いいえ/いいえ/いいえ |
| コンテナイメージ | ghcr.io/org/img@sha256:… | はい | いいえ | いいえ/いいえ/いいえ |
| その他 | 自由入力、空白、不正な ECZ-ID | unsupported_target に分類 | いいえ | いいえ/いいえ/いいえ |
ECZ-ID 以外の形式の場合、検証ツールは resolver_url: null を含む NO_PUBLIC_RESOLVER_PROOF_FOUND を返します(Resolver のパスを捏造することはありません)。分類はセキュリティ検査ではありません。
このパッケージが行うこと
- ターゲットを決定論的に分類します(LLM は使用しません)。
- 有効な ECZ-ID の場合、公開 Resolver のマシン向け投影を GET で(読み取り専用で)取得し、その状態を報告します。
- 正規の
ResultStateと大文字のReasonCodeを報告します。 - JSON、任意の人間向けソフトレポート、任意のローカル Action Envelope(ルーティング専用のメタデータ)、任意の SARIF 2.1.0 ファイルを出力します。
- CI 連携用の決定論的な終了コードを提供します。
- GitHub Action ラッパーと、読み取り専用の MCP stdio サーバーを同梱しています。
このパッケージが行わないこと
- 真実を書き込みません。
- 証明を有効化しません。
- 何かを BOUND としてマークしません。
- いずれのターゲットについても、アーティファクトの内容、マニフェスト、ランタイムプロトコルを検査しません。
- いかなるサーバー、エージェント、製品、API の安全性も認定しません。
- エージェントを承認しません。
- グローバルな信頼を判断しません。
- ソースコードをアップロードしません。
- シークレット、API キー、プロンプト、ツールのペイロードをアップロードしません。
- テレメトリー、分析データ、Sentry、PostHog のビーコンを送信しません。
- Backend/Core を呼び出しません。
- Resolver に書き込みません。
- 検証バックエンドとして TrustOps を呼び出しません。
- チェックアウトを実行しません。
- クライアント側の信頼バッジを作成しません。
- 再利用可能な信頼資格情報を発行しません。
- npm または Official MCP Registry への掲載を ECZ-ID の証明として扱いません。
- サードパーティの安全性や承認状態を推測しません。
- 自律的な LLM またはエージェントの動作を実行しません。
プライバシー
検証ツールは次のとおりです。
- ソースコードをアップロードしません。
- シークレット(API キー、環境変数を含む)をアップロードしません。
- プロンプトやツールのペイロードをアップロードしません。
- 非公開ログや未加工のテレメトリーをアップロードしません。
- 顧客データをアップロードしません。
- Resolver にリクエストボディを送信しません(GET のみ)。
- 非公開ヘッダーを送信しません。
- 分析データ、Sentry、PostHog のビーコンを送信しません。
- ホームへ通信しません。
- 自動更新しません。
ネットワーク通信は --offline / --no-network でオプトアウトできます。通常のチェックにサインインは不要です。公開 Resolver が証明の確認先です。パッケージと Registry のメタデータは検出にのみ使用され、証明にはなりません。
インストール
公開レジストリからインストールします(これにより、現行リリースを取得できます)。
npm install @ecocitizenz/ecz-id-mcp-verifier
# or global: npm install -g @ecocitizenz/ecz-id-mcp-verifier
または、インストールせずに必要に応じて実行します。
npx @ecocitizenz/ecz-id-mcp-verifier check --target ECZ-GB-A93K7Q
ソースから実行する場合(コントリビューター向け):
git clone https://github.com/Ecocitizenz/ecz-id-mcp-verifier.git
cd ecz-id-mcp-verifier
npm install
npm run build
node dist/bin/cli.js --help
CLI
ecz-mcp-verify --target <value> [options]
同等のコマンド名が2つインストールされます。ecz-id-mcp-verifier と ecz-mcp-verify(どちらも同じ CLI を実行します)。3つ目のバイナリ ecz-id-mcp-server は、MCP stdio サーバーを起動します。
オプション
| フラグ | デフォルト | 説明 |
|---|---|---|
--target | (必須) | URL、パッケージ、リポジトリ、イメージ、または ECZ-ID。 |
--target-type | auto | mcp_server | agent_manifest | api_url | github_repo | npm_package | pypi_package | container_image | ecz_id | auto |
--policy | OPEN | OPEN | PREFER | REQUIRE |
--operator | unknown | self | third_party | unknown(自動推定は行われません)。 |
--json | オン | JSON 出力を出力します。 |
--report | オフ | 人間が読みやすいソフトレポートを出力します。 |
--actions | オフ | JSON 出力にアクションエンベロープを含めます。 |
--resolver-base | https://resolver.ecocitizenz.org | リゾルバーのベース URL を上書きします。 |
--trustops-url | https://trustops.ecocitizenz.com/start | TrustOps の URL を上書きします。 |
--developer-base | https://developers.ecocitizenz.com | Developer Gateway を上書きします。 |
--offline | オフ | オフラインモード(ネットワークなし)。 |
--no-network | オフ | --offline と同じです。 |
--timeout-ms | 試行ごとに 10000 | 試行ごとの検索タイムアウト(ms)。合計32秒の予算内で最大3回試行します。値を低く設定すると、Core が起動直後の場合に、正常なレコードが利用不可として報告されることがあります。 |
--output <path> | stdout | 出力をファイルに書き込みます。 |
--sarif <path> | オフ | 最小限の SARIF 2.1.0 ファイルも書き込みます。 |
--capabilities | 機械可読な機能プロファイル(JSON)を出力して終了します。 | |
--print-mcp-config | すぐに貼り付けられる MCP ホスト設定(JSON)を出力して終了します。 | |
--doctor | ローカルのセルフテストを実行します(ネットワーク不要、シークレット不要)。人間向けの出力には --report を追加します。 | |
--version | バージョンを出力して終了します。 | |
--help | ヘルプを出力して終了します。 |
CLI の使用例
# Offline classification + JSON output
ecz-mcp-verify --target "ECZ-GB-A93K7Q" --offline
# REQUIRE policy with action envelope
ecz-mcp-verify --target "https://api.example.com/.well-known/ecz-mcp.json" \
--policy REQUIRE --actions
# Human-readable soft report
ecz-mcp-verify --target "https://github.com/org/repo" --report
# Write JSON + SARIF files for CI
ecz-mcp-verify --target "ECZ-GB-A93K7Q" --output result.json --sarif result.sarif
セルフテスト、機能、MCP 設定
セットアップと統合をすばやく行える、決定的なオフラインヘルパーが3つあります。いずれもターゲット、ネットワーク呼び出し、シークレットは不要です。
# Confirm a healthy install (no network, no secret):
ecz-id-mcp-verifier --doctor
# Print the machine-readable capability profile (what it does and does not do):
ecz-id-mcp-verifier --capabilities
# Print a ready-to-paste MCP host configuration:
ecz-id-mcp-verifier --print-mcp-config
--capabilities は、サポートされるターゲットタイプ、結果の状態、出力、終了コード、MCP ツール、プライバシーに関する方針、明示的なスコープフラグ(artifact_binding_performed: false、manifest_inspection_performed: false、runtime_protocol_inspection_performed: false、local_policy_decides: true)を含む、安定した capability_profile(ecz-resolver-posture-v1)を返します。これは、このツールを正確に説明する、エージェントが読み取り可能な情報です。
オペレーターのモード
--operator は自動推定されません。呼び出し元は、ターゲットを運用する立場なのか、第三者として閲覧する立場なのかを宣言します。検証ツールは、案内の振り分け(オペレーターには TrustOps、第三者の閲覧者には Developer Gateway)のみにこの情報を使用します。
# You operate the target -> routes to TrustOps setup.
ecz-mcp-verify --target "https://api.example.com/.well-known/ecz-mcp.json" \
--operator self --actions
# You are a third party reader -> routes to Developer Gateway guidance.
ecz-mcp-verify --target "https://api.example.com/.well-known/ecz-mcp.json" \
--operator third_party --actions
ポリシーモード
| モード | 公開証明が見つからない場合 | 不一致/失効/停止/有効期限切れ |
|---|---|---|
OPEN | 情報提供のみ、終了コード 0 | 決定論的なゼロ以外の終了コード |
PREFER | stderr に警告、終了コード 0 | 決定論的なゼロ以外の終了コード |
REQUIRE | フェイルクローズ(終了コード 1、ネットワーク障害の場合は終了コード 5) | 決定論的なゼロ以外の終了コード |
判断するのはローカルポリシーです。検証ツールはグローバルなゲートを強制しません。
結果状態と理由コード
RESOLVER_VERIFIABLE、NO_PUBLIC_RESOLVER_PROOF_FOUND、DEGRADED、MISMATCH、EXPIRED、SUSPENDED、REVOKED、NOT_APPLICABLE、UNSUPPORTED_TARGET など、18 個の正規の result_state 値があります。HTTP 200 だけでは決して証明になりません。明示的に有効/最新である Resolver の投影だけが RESOLVER_VERIFIABLE になります。不正な形式、不明なスキーマ、対象との不一致、取り消し、停止、有効期限切れ、古い情報、または不正使用フラグ付きの本文は、決定論的に肯定的でない状態に分類され、証明としてキャッシュされることはありません。
理由コードは大文字のスネークケースです(例:NO_PUBLIC_RESOLVER_PROOF_FOUND、RESOLVER_READ_ONLY、RESOLVER_RESPONSE_UNVERIFIABLE、PULSEGUARD_STALE、LOCAL_POLICY_DECIDES)。ecz_explain_result(MCP)を使用するか、ライブラリからエクスポートされた正規の一覧を参照してください。
終了コード
| コード | 意味 |
|---|---|
| 0 | OK/情報提供/Resolver で検証可能/OPEN で証明なし |
| 1 | REQUIRE でポリシー上必要な証明がない、または未解決 |
| 2 | 決定論的な不一致 |
| 3 | 取り消し/停止/有効期限切れ |
| 4 | 未対応の対象または無効な入力 |
| 5 | ポリシー上フェイルクローズが必要な場合のネットワーク/タイムアウトエラー |
| 6 | 内部検証ツールエラー |
機械可読出力
デフォルトの出力は JSON です(上記の代表的な結果を参照)。主なフィールド:schema_version、verifier、verifier_version、target、target_type、policy_mode、result_state、reason_codes、resolver_url、machine_json_url、trustops_action_url、developer_guidance_url、境界フラグ(local_policy_decides、recheck_before_reliance、no_safety_or_approval_inference、no_source_uploaded、no_secrets_uploaded、no_telemetry)、timestamp、exit_code。
--sarif <path>は、コードスキャン用の最小限の SARIF 2.1.0 ファイルも書き出します。--actionsはaction_envelopeを追加します(ルーティング/ガイダンスのメタデータのみで、証明の権威ではありません)。
Node ライブラリ
import { verify, RESULT_STATES, REASON_CODES } from "@ecocitizenz/ecz-id-mcp-verifier";
const result = await verify({ target: "ECZ-GB-A93K7Q", policy: "OPEN", noNetwork: true });
console.log(result.result_state, result.reason_codes);
パッケージのインポートによる副作用はありません。CLI が実行されたり、インポート時にネットワークリクエストが行われたりすることはありません。正規の RESULT_STATES、REASON_CODES、終了コード定数、結果型がインテグレーター向けにエクスポートされています。
MCP stdio サーバー
パッケージには、正規の検証コアにすべて処理を委譲する、読み取り専用の stdio 経由 MCP サーバーが含まれています。ツールはちょうど 3 つです。起動に必要なシークレットや環境変数はなく、情報を書き込むことも、リモートトランスポートを公開することもありません。ecz-id-mcp-verifier --print-mcp-config を実行すると、ホスト用の以下のブロックが出力されます。
| ツール | 目的 |
|---|---|
ecz_check_target | 対象を分類し、正規の結果コントラクトを返します。 |
ecz_recheck_resolver | 公開されている Resolver の状態を読み取り専用で再確認します(GET のみ)。 |
ecz_explain_result | 既存の result_state/reason_codes を安全に公開できる形で説明します。 |
MCP ホストの設定
MCP ホストに追加します(例:mcpServers ブロック)。インストール済み/グローバルのバイナリを使用する場合:
{
"mcpServers": {
"ecz-id": {
"command": "ecz-id-mcp-server",
"args": []
}
}
}
グローバルインストールせずに npx を使う場合:
{
"mcpServers": {
"ecz-id": {
"command": "npx",
"args": ["-y", "-p", "@ecocitizenz/ecz-id-mcp-verifier", "ecz-id-mcp-server"]
}
}
}
これはローカル stdioでの使用です。Official MCP Registry は別の検出経路であり、Registry での検出はECZ-ID の証明ではありません。証明は公開 Resolver によってのみ得られます。
Official MCP Registry(検出)
Official MCP Registry では io.github.Ecocitizenz/ecz-id-mcp-verifier として検出できます:
Registry での検出は ECZ-ID の証明ではありません。依拠する前に、公開 Resolver で再確認してください。
GitHub Action
このリポジトリには、同じ CLI をラップする node24 アクションが含まれています。
name: ECZ-ID MCP Verifier
on: [push]
# Minimum recommended permissions. The Action only reads and reports — it never
# writes to the repository, opens PRs/issues, or needs any write scope.
permissions:
contents: read
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: Ecocitizenz/[email protected]
with:
target: "ECZ-CC-ABC123"
target-type: "ecz_id"
policy: "PREFER"
resolver-base: "https://resolver.ecocitizenz.org"
no-network: "false"
# timeout-ms: left unset so the bounded-retry defaults apply
出力:result-state、reason-codes、action-envelope-json、setup-handoff-json、mcp-action-envelope-json、request-to-resolve-json、primary-action、trustops-action-url、developer-guidance-url。この Action は簡潔な GitHub ステップサマリーも書き込みます。
最小権限: contents: read。このアクションはソースをアップロードしません。シークレットをアップロードしません。真実を書き込みません。リポジトリを変更したり、PR や issue を開いたりしません。TrustOps checkout を呼び出しません。公開チェックに ECZ-ID トークンは必要ありません。
オフラインモード
--offline(別名 --no-network)は、ネットワーク呼び出しなしで決定論的な分類とルーティングを行います。Resolver の検索はスキップされ、ECZ-ID はすべて NO_PUBLIC_RESOLVER_PROOF_FOUND として報告されます(検証ツールが証明を捏造することはありません)。エアギャップ環境の CI や、分類とルーティングだけが必要な場合はオフラインモードを使用してください。
人間向けレポート
人間向けレポートでは、承認済みのソフトコピーのみを使用します。公開 Resolver の証明が見つからない場合、検証ツールは次の文言をそのまま出力します:
この MCP ターゲットの公開 Resolver の証明は、まだ見つかっていません。これは、ターゲットが安全でないことを意味するものではありません。ECZ-ID が、責任を負う運用者について機械可読な公開証明を見つけられなかったことを意味します。どのような対応を取るかは、お客様のローカルポリシーに従ってください。
続いて、運用者への案内が表示されます:
このサーバーを運用していますか?Resolver の状態を改善してください:https://trustops.ecocitizenz.com/start
最後に、次の注意書きが表示されます:「依拠する前に再確認してください。」「判断はローカルポリシーに従ってください。」ターゲットを運用していない場合は、Resolver に関する案内を運用者と共有してください。
トラブルシューティング
- 出力がありませんか?
npx @ecocitizenz/ecz-id-mcp-verifier --doctorを実行して、インストールが正常であることを確認してください。各コマンドは JSON(または--reportを指定した場合はレポート)を出力し、決定論的な終了コードを返します。 UNSUPPORTED_TARGET(終了コード 4): ターゲットが空、空白を含む、または形式が正しくない ECZ-ID です。ターゲットを引用符で囲み、サポート対象の形式を示す表を確認してください。- オフライン時に
REQUIREが終了コード 1 を返す: 想定どおりです。公開証明が確認できない場合、REQUIREは安全側に倒して失敗します。情報提供のみの実行ではOPEN/PREFERを使用するか、--offlineを外してください。 - ECZ-ID 以外のターゲットで
resolver_url: nullが表示される: 想定どおりです。Resolver で解決できるのは ECZ-ID のみです。それ以外の形式は分類とルーティングの対象であり、解決されません。 REQUIREでネットワークエラーが発生する: 終了コードは 5 です。検索では、応答の遅い Core や一時的に応答しない Core に対して、32 秒の制限時間内に最大 3 回まで再試行します。そのため、ここで失敗した場合は、制限時間全体にわたって Core が利用できなかったことを意味します。Core の応答がそれより遅い場合に限り--timeout-msを引き上げてください。または--offlineを実行してください。利用不可という結果は、決してその ID に対する判断ではありません。
公開ルート
- リゾルバー(公開証明):
https://resolver.ecocitizenz.org - 開発者ゲートウェイ(ドキュメント/統合):
https://developers.ecocitizenz.com - TrustOps(運用者向けセットアップ):
https://trustops.ecocitizenz.com/start - 正規のマシン検出先:
https://machine.ecocitizenz.org/.well-known/ecz-machine.json(エージェントとマシン向けの読み取り専用ポインターです。検出専用であり、証明には使用しません)
セットアップが必要な場合、検証ツールは運用者を TrustOps に誘導します。セットアップ自体は行いません。ドキュメントやガイダンスが必要な場合は、開発者ゲートウェイに誘導します。検証ツールはリゾルバーから GET のみを行い、HTTPS を必須とし、2xx 以外の応答は証明がないものとして扱います。証明を捏造することはなく、POST、PUT、PATCH、DELETE も行いません。
対象を運用している場合、TrustOps がセットアップとセキュリティ態勢の改善を案内します。検証ツールの実行に購入は必要ありません。また、第三者に ECZ-ID の購入を求めることもありません。公開証明がないからといって「安全でない」という意味にはなりません。判断はローカルポリシーに委ねられます。
役割分担
| コンポーネント | 担当範囲 | この検証ツールができること |
|---|---|---|
| Backend / Core | 真実を書き込むことです。 | 書き込みは一切行いません。 |
| Resolver | 公開証明を提示することです。 | 読み取りのみ(GET)です。 |
| TrustOps | セットアップ、取得、ライフサイクルです。 | ユーザーを誘導します。 |
| Developer Gateway | 開発者への説明と誘導です。 | ユーザーを誘導します。 |
| MCP Verifier | ローカルチェック、レポート、誘導です。 | これらを行います。 |
Backend が最終的な権限を持ちます。判断はローカルポリシーに委ねられます。この検証ツールは真実を書き込みません。
認証/安全性/承認/コンプライアンス/保険に関する主張は行いません
この検証ツールは、対象が信頼できる、リスクが低い、認可されている、保険に加入している、またはレジストリ、プラットフォーム、規制当局から推奨されていると主張しません。対象について、安全性、認証、承認、コンプライアンスに関する主張は行いません。すべてのレポートには、依拠する前に再確認すること、判断はローカルポリシーに委ねられること、Backend が最終的な権限を持つことを記載します。
ECZ-ID 形式
厳密に有効な識別子のみが ecz_id として分類され、Resolver URL が構築され、検索が実行されます。不正な識別子はサポート対象外または無効なターゲットとして報告され、Resolver リクエストは発行されません。
| 形式 | テンプレート | 例 |
|---|---|---|
| 親(オペレーター) | ECZ-CC-XXXXXX | ECZ-GB-A93K7Q |
| 子(パスポートインスタンス) | ECZ-CC-XXXXXX::PASSPORT_CODE-YYYYYY | ECZ-GB-A93K7Q::AGENT-4F9Q2A |
CCは大文字アルファベット2文字(オペレーターの国/クラスコード)です。XXXXXXとYYYYYYは、それぞれ大文字のBase36文字(0-9A-Z)6文字ちょうどです。PASSPORT_CODEは、以下の33個の公開パスポート番号コードのいずれかです。ハイフンを含めることができ、6文字のインスタンスサフィックスは最後のハイフンで切り分けます。これらの公開コードのみが有効です。その他の識別子や廃止されたコードは、有効な公開子コードではありません。
Resolver のルート:親は …/p/{parent} に解決され、子は …/p/{parent}/{passport_code}/{instance_suffix} に解決されます。
公開パスポート番号コード(33個)
| # | パスポート | 公開コード |
|---|---|---|
| 1 | エージェント認証情報 | AGENT |
| 2 | サイバーレジリエンス | CYBER |
| 3 | API パスポート | API |
| 4 | AI モデル | AI |
| 5 | データセット | DATASET |
| 6 | IoT デバイス | IOT |
| 7 | ソフトウェアサプライチェーン | SSCM |
| 8 | 製品 | PRODUCT |
| 9 | 保管移転 | CUSTODY |
| 10 | リスクポリシー | RISKPOL |
| 11 | 産業用ロボット | ROBOT-IND |
| 12 | 公共空間ロボット | ROBOT-PUB |
| 13 | 家庭用ロボット | ROBOT-DOM |
| 14 | ロボットタクシー | ROBOTAXI |
| 15 | 自動運転車 | AUTO-CAR |
| 16 | 自動運転運搬トラック | AUTO-TRUCK |
| 17 | 越境運搬トラック | XHAUL |
| 18 | 高価値貨物トラック | HV-CARGO |
| 19 | D1 ドローン | D1-DRONE |
| 20 | D2 ドローン | D2-DRONE |
| 21 | D3 ドローン | D3-DRONE |
| 22 | D4 ドローン | D4-DRONE |
| 23 | 複合一貫輸送移転 | INTERMODAL |
| 24 | 産業施設 | IND-SITE |
| 25 | 重要インフラ | CRITICAL-INFRA |
| 26 | 金融当局・資金フロー | FUNDS-FLOW |
| 27 | 船舶 | MARINE-VESSEL |
| 28 | 貨物コンテナ | CARGO-CONTAINER |
| 29 | 航空機 | AIRCRAFT |
| 30 | 航空機部品 | AVIATION-COMP |
| 31 | プラットフォームのセーフハーバー | SAFE-HARBOUR |
| 32 | アイデンティティの継続性 | ID-CONTINUITY |
| 33 | ライセンスを受けたインフラオペレーター | LIC-INFRA |
公開されているパスポート名とコードのみを表示しています。子の machine_json_url は null です(子のマシンエンドポイントは実証されていません)。親のマシン投影 …/api/p/{parent}.json は読み取り専用です。
セキュリティと責任ある開示
脆弱性の疑いがある場合は、リポジトリのGitHub Security タブから非公開で報告してください — https://github.com/Ecocitizenz/ecz-id-mcp-verifier/security(Report a vulnerability/非公開アドバイザリを使用)。セキュリティ報告を公開課題として投稿しないでください。影響を受けるバージョンと再現手順を記載してください。 docs/PRIVACY.md と docs/ROLE_SPLIT.md も参照してください。
サポートとアンインストール
- サポート/課題: https://github.com/Ecocitizenz/ecz-id-mcp-verifier/issues
- アンインストール:
npm uninstall -g @ecocitizenz/ecz-id-mcp-verifier(グローバルインストールの場合)を実行するか、プロジェクトから削除してnode_modulesを削除してください。GitHub Action の場合は、uses:ステップを削除してください。バックグラウンドサービス、デーモン、キャッシュされた認証情報は残りません。
再現可能なバージョン固定
通常のインストールでは最新リリースが使用されます。再現性が必要な場合に限り、正確なリリースを固定してください。
npm install @ecocitizenz/[email protected]
npx @ecocitizenz/[email protected] --doctor
公開状況
- npm:
@ecocitizenz/ecz-id-mcp-verifierは公開レジストリで公開されており、通常のnpm install(またはnpx)では最新リリースが使用されます。 - GitHub Action: GitHub Actions Marketplace で
Ecocitizenz/[email protected]として公開されています。 - 信頼された公開: npm のリリースでは、GitHub の
npm-release環境を通じて、公開されたプロベナンスを伴う保護された OIDC 信頼済み公開を使用します。正規の Git リモート(https://github.com/Ecocitizenz/ecz-id-mcp-verifier.git)が設定されており、package.jsonのrepository/bugsURL はこの URL と完全に一致しています。 - 公開済みのパッケージバージョンと Action のリリースタグは変更できません。
ライセンス
公式の未変更のパッケージと付属の GitHub Action は、ECZ-ID Proprietary Limited-Use License(LICENSE.md)のもと、永久に無料です。個人利用、組織での利用、開発、CI/CD、社内業務で、無料でインストールして実行できます。
これはオープンソースではありません。ソースが公開されていること(透明性の確保やインストールのため)によって、再配布、変更、派生物の作成、競合製品の開発の権利が付与されることはありません。LICENSE.md をご確認ください。
バックエンドが真実を書き込みます。TrustOps がセットアップを担当します。Resolver が証明します。マシンが再確認します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。