Skip to main content
Glama

ONS Open Knowledge Format

okf-ons は、英国国家統計局(Office for National Statistics)のサービスを通じて公開される公的統計のための、メタデータのみのディスカバリレイヤーです。これは、人またはエージェントが正確なデータセットを見つけ、混同しやすい代替案を確認し、利用可能な統計品質の証拠を理解し、ダウンストリームサービスが取得前にライブ検証と承認を行わなければならない非実行の候補計画を準備するのに役立つように設計されています。

このプロジェクトは、4つの役割を意図的に分離しています。

  1. 静的OKFバンドルは、 データセット、バージョン、ディメンション、来歴、標準の証拠、および代替案を発見し説明します。

  2. OKF Explorerは、 LLMやホスト型検索サービスなしで、大規模な静的コーパスを絞り込み比較します。

  3. リポジトリのローカルMCPブローカーは、 AIクライアントに同じ凍結メタデータへの制限付きアクセスを提供し、非実行の選択計画を準備します。

  4. ダウンストリームのライブデータMCPサーバーは、 必要なデータセット固有の選択が完了した後にのみ、ONSまたはNomisクエリを実行します。

ローカルブローカーはダウンストリームのライブデータサーバーではありません。ネットワーク呼び出しを行わず、観測値を返しません。バンドルには、観測値、APIキー、またはプライベートデータは保存されません。

OKF 0.2 コアと Explorer 拡張機能

チェックインされたバンドルは、Open Knowledge Format 0.2 をターゲットにしています。生成されたポータブルコアは index.md から始まり、okf_version: "0.2" を宣言し、カタログ、凍結スナップショット、4つのソースレーン、プロバイダー状態、ガバナンス、標準、MCP選択のための型付き概念に段階的にリンクします。

すべての概念は generated と sources を使用します。verified イベントは主張されません。自動チェックは、構造的適合性と凍結入力の整合性を証明するものであり、人間によるレビューや統計的真実を証明するものではありません。ガバナンスされた鮮度ポリシーが未定義の間、stale_after 値は発明されません。したがって、ライフサイクルステータスは明示的であり、ライブ実行は引き続きプロバイダーの再検証を必要とします。

大規模コーパス記述子、JSON/YAML-LD、静的検索、ファセット、リレーションシップ、フェデレーション、整合性カタログ、プロバイダーデータパックは、追加のExplorer拡張機能のままです。新しい概念は、v0.1の timestamp と # Citations フォールバックも保持するため、古いコンシューマーはベストエフォートのディスカバリを継続でき、v0.2コンシューマーは generated と sources を優先します。

Related MCP server: ONS + Nomis MCP server

アクセスとドキュメント

これらは、main からのPagesデプロイメントの正規のエントリポイントです。不変のアプリケーションリリース v0.2.0 はOKF仕様0.2移行より前のものであり、履歴リリースの証拠として引き続き利用可能です。

ライブおよび機械可読アクセス

リソース

URL

人間向けディスカバリUI

https://chris-page-gov.github.io/okf-ons/

OKF 0.2 ルートインデックス

https://chris-page-gov.github.io/okf-ons/index.md

OKF 概念インデックス

https://chris-page-gov.github.io/okf-ons/concepts/

このバンドルをOKF Explorerで直接開く

https://chris-page-gov.github.io/okf-explorer/?bundle=https%3A%2F%2Fchris-page-gov.github.io%2Fokf-ons%2Fokf-explorer.json

バンドルをプリロードしないOKF Explorer

https://chris-page-gov.github.io/okf-explorer/

OKF バンドル記述子

https://chris-page-gov.github.io/okf-ons/okf-explorer.json

セマンティックJSON-LDバンドル

https://chris-page-gov.github.io/okf-ons/okf-bundle.jsonld

セマンティックYAML-LDバンドル

https://chris-page-gov.github.io/okf-ons/okf-bundle.yamlld

固定ローカルJSON-LDコンテキスト

https://chris-page-gov.github.io/okf-ons/context/okf-ons.jsonld

データおよびシャードマニフェスト

https://chris-page-gov.github.io/okf-ons/data/manifest.json

概要インデックス

https://chris-page-gov.github.io/okf-ons/data/overview.json

分析概要

https://chris-page-gov.github.io/okf-ons/data/analysis/overview.json

カバレッジ台帳

https://chris-page-gov.github.io/okf-ons/data/coverage/ledger.json

クロスソース調整

https://chris-page-gov.github.io/okf-ons/data/reconciliation/report.json

ガバナンスされたリリースメタデータ

https://chris-page-gov.github.io/okf-ons/data/governance/release.json

ダイジェストバインドコンテキストセット

https://chris-page-gov.github.io/okf-ons/data/governance/context-set.json

チェックサム

https://chris-page-gov.github.io/okf-ons/checksums.json

検索マニフェスト

https://chris-page-gov.github.io/okf-ons/data/search/manifest.json

標準評価

https://chris-page-gov.github.io/okf-ons/data/standards/evaluation.json

OKF 0.2 適合性レポート

https://chris-page-gov.github.io/okf-ons/data/standards/okf-v0.2.json

SDMX 証拠

https://chris-page-gov.github.io/okf-ons/data/standards/sdmx.json

評価レポート

https://chris-page-gov.github.io/okf-ons/data/evaluation/report.json

MCP バインディングインデックス

https://chris-page-gov.github.io/okf-ons/data/ons/mcp-bindings.json

空間インデックス

https://chris-page-gov.github.io/okf-ons/data/ons/spatial-index.json

ライブデモガイド

https://chris-page-gov.github.io/okf-ons/demo-guide.html

アクセシビリティステートメント

https://chris-page-gov.github.io/okf-ons/accessibility.html

下位のデータセット、リソース、検索、選択オプションのシャードは、上記のデータおよび検索マニフェストを通じて発見されます。それらの生成されたパスは、独立した安定したエントリポイントではありません。

リポジトリ、リリース、来歴

ドキュメントマップ

OKF Explorerは、上記の直接リンクから今日バンドルを読み込むことができます。バンドルがURLを貼り付けなくても提案され、新しい権限、権利、ガバナンスフィールドが生のJSONだけでなくファーストクラスのUIとして表示されるように、別のExplorerレジストリとプレゼンテーションの更新が推奨されます。

SDMXサポート

バンドルはSDMX 3.1(ISO 17369)を登録し、7つの正規のOKFフィールドをSDMXコンセプトにマッピングし、NomisレーンのSDMXエージェンシー、識別子、バージョン、次元順序、コンポーネントロール、コードリスト参照を保持します。Nomisの選択は、その証拠が使用可能な場合、制限されたFREQコードラベルオプションと厳密な利用可能なTIME範囲も保持します。FREQは統計/参照頻度であり、公開頻度ではなく、TIME期間の改訂注釈はデータセットの改訂ステータスではありません。他のすべての必須次元は、ライブ検証と選択がまだ必要です。完了したライブ実行はMCP-Geoのnomis_queryを使用します。

バンドル自体はSDMXメッセージではありません。DCAT 3、SKOS、PROV-O、RDF Data Cubeの用語を使用してJSON-LDとしてシリアライズされ、そのコンテキストにはSDMX名前空間はありません。生成されたdata/standards/sdmx.jsonは、上流の適合性や認証を主張することなく、正確なマッピングとNomisの証拠数を報告します。

Mondayデモンストレーター

ハッカソン前のデモンストレーターは、ライブ取得を変更するのではなく、再現可能でレビュー可能なスナップショットを月曜日のプレゼンテーションで使用できるように凍結されています。以下を公開します:

  • 不完全性を明示するソースとカバレッジの台帳

  • ONS Data API(337)、Nomis(1,617)、ONS Open Geography(3,035)、ONS Explore Local Statistics(108)からの凍結された5,097レコードのメタデータスナップショット

  • 明示的な非推奨を伴う、資格のあるソースプロデューサー、サービスオペレーター、バンドルパブリッシャー、セマンティックオーソリティの役割

  • 決定的な検索とファーストクラスのフィルターポスティング

  • 証拠に基づく代替/対比関係

  • ONS Data APIとNomis間の正確な国勢調査テーブルコードの調整

  • 誤った保証の主張なしの統計品質と標準の証拠

  • MCP選択プラン契約

  • 再現可能な取得およびメタデータ品質評価レポート

不変のスナップショットID monday-2026-07-17-r2 は、固定されたELSメタデータプロジェクションで7月17日金曜日のフリーズを拡張します。r2サフィックスは、拡張されたコーパスが元のv0.1スナップショットIDを再利用するのを防ぎます。「monday」はデモンストレーターの名前であり、7月17日が月曜日であるという主張ではありません。

Explore Local Statisticsレーンは、固定されたアプリケーションサブモジュールの決定的で許可リスト化されたプロジェクションです。24の帰属プロデューサーからの108のONSキュレーションされた指標を運び、12の未公開マニフェストエントリを説明し、46の有効な履歴エイリアスを保持し、観測値、ステータス配列、値ドメイン、バイナリ、ジオメトリを削除します。これは、内部ELS APIが安定した公開実行契約であるという主張ではなく、開発フィクスチャです。検証済みのGit commitAsOfは取得時間とは別に保持されます。凍結されたフィクスチャは、記録されていない取得タイムスタンプを発明しません。

バンドルはまた、再現性を弱めることなくELSスナップショット/ライブの区別を可視化するプロバイダーデータパックを公開します。管理されたスナップショットは、2026年7月17日の795eaf2に固定されたままです。d5f0ac9で個別にレビューされた上流参照は、既知の例の違いを記録しています:平均住宅価格はスナップショットでは2026年4月で終了し、レビューされた参照では2026年5月で終了します。その参照は2026年7月23日に最後にチェックされ、明示的に外部であり、ライブ検証ではありません。その比較は非網羅的なレビュー済みの例であり、108の指標すべてが比較されたという主張ではありません。記述子はプロバイダーマニフェストをハッシュし、マニフェストはパックをハッシュするため、日付入りレビューはExplorerの整合性チェックに失敗せずに同じスナップショットIDの下で置き換えることはできません。プロバイダーデータパック契約を参照してください。

この実験的なバンドルは、OKF ONSプロジェクトによって独立して公開されています。ソースの帰属は、ONSまたは他のプロデューサーによる推奨を意味するものではありません。

ビルド

Python 3.11以降が必要です。通常のGitHubソースアーカイブには固定されたELSサブモジュールが含まれていないため、再帰的クローンが必要です。上記のリンクされたリリースバンドルZIPは、自己完結型の公開アーティファクトです。

okf.publication.jsonは、リポジトリの公開方法v1契約を記録します:凍結されたソースファミリー、作成および生成された境界、依存関係プレーン、レビュー済みコマンド宣言、ドキュメントのロックステップ、Pagesターゲット。契約内のコマンド文字列は信頼されていない宣言であり、使用前にこのガイドと照合する必要があります。ローカルパス、相互参照、非循環プレーングラフを以下で検証します:

python scripts/check_publication_contract.py

管理されたソース、ジェネレーター、アプリケーション、またはワークフローパスへの変更は、同じ変更で関連ドキュメントとCHANGELOG.mdを更新する必要があります。不明なパスはフェイルクローズし、依存関係の更新には包括的な免除はありません。

Pagesワークフローは、無視されたbundle/ディレクトリを一度ビルドし、それから同じワークスペースバイトを検証、アセンブル、アップロードします。生成されたバンドルベースラインが追跡されていないため、クリーンなビルド前の--checkは不可能です。別の不変ベースラインまたはリリースアーティファクトを導入することが記録された将来のオプションです。ワークフローは、結果を自分自身と比較するためだけに2回目の同一ビルドを実行しません。

チェックインされた凍結スナップショットからv0.2.0を再現するには:

git clone --recurse-submodules --branch v0.2.0 \
  https://github.com/chris-page-gov/okf-ons.git
cd okf-ons
python scripts/project_els_snapshot.py \
  --submodule-dir vendor/explore-local-statistics-app \
  --output output/ons-explore-local-statistics.json
cmp output/ons-explore-local-statistics.json \
  source/demo-snapshot/ons-explore-local-statistics.json
python scripts/build_bundle.py \
  --snapshot-dir source/demo-snapshot \
  --output bundle
python scripts/build_bundle.py \
  --snapshot-dir source/demo-snapshot \
  --output bundle \
  --check
python scripts/check_okf_v02.py bundle

メタデータエンリッチメントキャンペーンには、不変の後継スナップショットmetadata-enrichment-2026-07-21-r6も含まれます。v0.2.0スナップショットと比較して、r3は制限されたONS Data APIカタログを更新し、r4は制限されたメタデータのみのNomisコンパクト概要を追加し、r5は各凍結されたONS最新バージョンURLからレビュー済みの次元プロジェクションのみを追加します。r6は、凍結されたr5 Nomisコホート内の正確なFREQおよびTIMEコードリスト参照に従い、コードラベルメタデータと明示的な期間改訂ステータス注釈のみを保持します。r6のONS Data API、Explore Local Statistics、Open Geographyソースエンベロープはr5とバイト単位で同一です。ネットワークアクセスなしでr6を再ビルドしてプロファイルします:

python scripts/build_bundle.py \
  --snapshot-dir source/metadata-enrichment-2026-07-21-r6 \
  --output bundle
python scripts/build_bundle.py \
  --snapshot-dir source/metadata-enrichment-2026-07-21-r6 \
  --output bundle \
  --check
python scripts/profile_metadata_gaps.py \
  --bundle bundle \
  --output evaluation/metadata-completeness/current.json

上記のライブPagesおよびExplorer URLは、引き続き管理されたリリースv0.2.0を提供します。r6キャンペーンスナップショットは管理されたキャンペーン証拠としてチェックインされていますが、リリースメタデータとPages選択スナップショットが意図的に切り替えられるまで、未デプロイのリリース候補のままです。

測定されたバッチ履歴、メトリック定義、タイミング、機械可読プロファイルは、メタデータエンリッチメントキャンペーンからリンクされており、停止監査も含まれます。

既存のクローンの場合、プロジェクターの前にgit submodule update --init --recursiveを実行します。将来のスナップショットを取得するには、生のキャッシュをリポジトリの外に保持し、--mode refreshを使用し、新しい不変のIDを選択します—既存のスナップショットを上書きしないでください。他の検証済みソースエンベロープを引き継ぎながらONSカタログのみを更新するには:

python scripts/acquire_snapshot.py \
  --cache-dir /path/to/raw-cache \
  --output-dir source \
  --snapshot-id NEW_UNIQUE_SNAPSHOT_ID \
  --base-snapshot source/metadata-enrichment-2026-07-21-r4 \
  --source ons-data-api \
  --mode refresh \
  --page-size 1000 \
  --maximum-pages 1 \
  --require-complete

制限されたNomisコンパクト概要を再現または更新するには、検証済みの事前エンリッチメントr3スナップショットをベースとして使用します:置換エンベロープはその正確なコホートにダイジェストバインドされ、エンリッチメントスナップショットは取得ベースとしてチェーンされません。まず外部の置換エンベロープに取得し、次にそのエンベロープをr3の上に構成します。取得スクリプトは、凍結されたNomisソースから独立してコホートを導出し、生の応答もキャッシュパスも公開しません:

python scripts/acquire_nomis_overviews.py \
  --snapshot-dir source/metadata-enrichment-2026-07-21-r3 \
  --cache-dir /path/to/raw-cache \
  --output /path/to/nomis-overviews.json \
  --limit 1617 \
  --mode refresh \
  --request-interval 0.2
python scripts/acquire_snapshot.py \
  --cache-dir /path/to/raw-cache \
  --output-dir source \
  --snapshot-id NEW_UNIQUE_SNAPSHOT_ID \
  --base-snapshot source/metadata-enrichment-2026-07-21-r3 \
  --replacement-acquisition /path/to/nomis-overviews.json \
  --require-complete

制限されたONS最新バージョン次元プロジェクションを再現または更新するには、検証済みの事前エンリッチメントベースとしてr4を使用します。取得は、r4で凍結された337の正確なlinks.latest_version.href値のみに従い、許可リスト化されたプロジェクションのみを外部キャッシュに保存し、観測、次元オプション、コードリスト、ダウンロードを取得しません:

python scripts/acquire_ons_version_metadata.py \
  --snapshot-dir source/metadata-enrichment-2026-07-21-r4 \
  --cache-dir /path/to/external-cache \
  --output /path/to/ons-version-metadata.json \
  --limit 337 \
  --mode refresh \
  --request-interval 0.5
python scripts/acquire_snapshot.py \
  --cache-dir /path/to/external-cache \
  --output-dir source \
  --snapshot-id NEW_UNIQUE_SNAPSHOT_ID \
  --base-snapshot source/metadata-enrichment-2026-07-21-r4 \
  --replacement-acquisition /path/to/ons-version-metadata.json \
  --require-complete

制限されたNomis FREQ/TIMEコードリストプロジェクションを再現または更新するには、正確なベースとしてr5を使用します。取得は、3,234の凍結されたメタデータのみのコードリスト参照を順次追跡し、分母に明示的な失敗結果を保持し、許可リスト化されたプロジェクションのみをバージョン管理された外部キャッシュに保存します:

python scripts/acquire_nomis_codelists.py \
  --snapshot-dir source/metadata-enrichment-2026-07-21-r5 \
  --cache-dir /path/to/external-cache \
  --output /path/to/nomis-codelists.json \
  --limit 1617 \
  --mode refresh \
  --request-interval 0.2
python scripts/acquire_snapshot.py \
  --cache-dir /path/to/external-cache \
  --output-dir source \
  --snapshot-id NEW_UNIQUE_SNAPSHOT_ID \
  --base-snapshot source/metadata-enrichment-2026-07-21-r5 \
  --replacement-acquisition /path/to/nomis-codelists.json \
  --require-complete

登録済みソースの完全な更新の場合、まず固定されたローカルELSプロジェクションを生成し、次にすべてのHTTPレーンを取得して含めます:

python scripts/project_els_snapshot.py \
  --submodule-dir vendor/explore-local-statistics-app \
  --output /path/to/els-projection.json
python scripts/acquire_snapshot.py \
  --cache-dir /path/to/raw-cache \
  --output-dir /path/to/public-snapshots \
  --snapshot-id NEW_UNIQUE_SNAPSHOT_ID \
  --mode refresh \
  --projected-acquisition /path/to/els-projection.json \
  --require-complete

取得は再開可能で外部です。bundle/は検証済みの凍結スナップショットから決定的です。

送信可能なONSハッカソンブリーフは、ワークパッケージ、デモルート、ONSへの質問を説明しています。標準レジスタ、評価方法、スコープと分母も参照してください。

AIアクセス研究と評価

このリポジトリは、Claude Desktop Cowork、Google Antigravity CLI、Microsoft 365 Copilot Researcher による2026年7月18日の試験結果を保存し、SHA-256でピン留めしています(research/ 内)。公開されるのは、技術的にレビューされ、サニタイズされた公開DOCX派生資料のみです。元のOfficeパッケージはGitの外部に保持され、ピン留めされたソースハッシュによってのみ識別されます。正規化された観察結果は、公開派生資料、セッション報告によるアイデンティティ、その後の検証、および当社の解釈を明確に区別します。

このケーススタディは現在、プロバイダーに依存せず、フィクスチャに安全なハーネスを準備します:

python3 scripts/ai_client_harness.py validate
python3 scripts/ai_client_harness.py validate-research
python3 scripts/ai_client_harness.py clients --initial-only
python3 scripts/ai_client_harness.py probe-clients
python3 scripts/ai_client_harness.py tasks

このハーネスは、OKF、オープンウェブ、および生APIのアームを定義します。8つの開発スモークタスク、6つのONS固有のペルソナと8つのジャーニー、10項目の観察済み問題レジスタ、共通の構造化回答、回答に紐づく独立した評価、決定的なコンポーネントスコアリング、強制と自己報告の分離、およびブロックされたクライアントが誤答としてスコアリングされないようにする個別の準備状況結果を備えています。CIはライブ、認証付き、または有料のモデル呼び出しを一切行いません。

依存関係のない、メタデータのみのMCPブローカーが、決定的なディスクリプタ、検索、正確なレコード、比較、読み取り専用のMCPプラン、および回答提出ツールを公開するようになりました。Antigravity CLI(agy)は、リポジトリスコープの.agents/mcp_config.jsonからこれを読み込むことができます。この設定は、保存されたAntigravity試験の後に追加されました。新しい有料またはライブモデルの実行は主張されていません。ブローカーは凍結されたコーパスを使用し、ネットワーク呼び出しを行わず、認証情報を保存せず、観察値を返しません。

AIシステム接続マップ

MCPロールアウトガイドは、評価レジストリ内のすべてのAIサーフェスに対する標準的なセットアップおよびステータスガイドです。4つのアクセスおよびデプロイメント層を区別しています:

  • 静的バンドルアクセス: 許可されたHTTPクライアントはPagesディスクリプタとJSONを読み取れますが、ネイティブのfetch制限はホストによって異なります。

  • ローカルメタデータMCP: ローカルstdio MCPをサポートするコマンドラインおよびデスクトップクライアントは、scripts/okf_ons_mcp.pyを起動できます。コミットされたAGYワークスペース設定は、リポジトリスコープの唯一のクライアント設定です。ガイドは、Codex、Claude、Gemini、VS Code/Copilot、Inspectorの各ルートを個別に示していますが、インストールを成功した試験として扱うことはありません。

  • 計画中のリモートメタデータMCP: ChatGPTカスタムアプリには、サポートされているリモートエンドポイントまたはトンネルルートが必要です。Claude Research、リモートセッションのCowork、Microsoft 365 Copilot Researcherには、認証付きのリモートエンドポイントが必要です。デスクトップローカルのCoworkは、デバイスポリシーに従ってローカルMCPを使用できます。このリポジトリは、リモートエンドポイントもトンネルもデプロイしません。M365フェデレーテッドコネクタルートは文書化されていますが、テナント向けに作成または有効化されていません。

  • ダウンストリームのライブMCP: 選択が完了すると、別のONSまたはNomis統合がプランを実行できます。リポジトリブローカーは意図的にこれを決して行いません。

機械可読なclient-profiles.jsonは、完全な16プロファイルのクライアントレジストリです。study.jsonは評価設計をピン留めします。公開されているtasks.json、personas-and-journeys.json、issue-register.jsonは、タスク、ユーザー、ジャーニー、観察された障害、および是正措置をその設計と同期させます。

クロスクライアント試験分析で、エビデンス、問題/是正マトリックス、ペルソナ、効率プロトコル、優先順位付けされた作業パッケージを参照してください。

「すべて」の意味

このリポジトリは、source/source-register.json内のすべての対象ソースが測定された分母を持ち、生成されたカバレッジ台帳がunexplained_omissions = 0を報告する場合にのみ、すべての公開ONSメタデータをカバーすると記述できます。

観察セル、セキュアなマイクロデータ、および重複するバイナリペイロードは、意図的にスコープ外です。スコープと分母を参照してください。

ライセンス

コードはMITライセンスです。ソースメタデータは、記載された上流のライセンス(多くの場合、Open Government Licence v3.0)の対象となります。バンドルは包括的なライセンス主張を行いません。ELSレコードの権利は、ソースごとのレビューが完了するまでnot-evaluatedのままとなり、生成されたレコードは利用可能なソースおよび権利のエビデンスを保持します。

Available Tools

4 tools
okf.compareCompare exact ONS metadata recordsA
Read-onlyIdempotent

Return evidence-backed field contrasts for two to five exact records. Never asserts statistical equivalence.

NameRequiredDescriptionDefault
record_idsYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the behavioral caveat 'Never asserts statistical equivalence,' which goes beyond annotations. However, it does not disclose error handling or behavior with missing records.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the primary action front-loaded. Every sentence adds value, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and rich annotations, the description is adequate but could be more complete by explaining the output format or providing an example. Parameter explanation is minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It adds the context of 'two to five exact records' reinforcing minItems/maxItems constraints but does not explain the format or meaning of the record_ids strings beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares exact ONS metadata records by returning field contrasts. It specifies the range (2-5 records) and differentiates from siblings like okf.get_record which retrieves a single record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing two to five exact records but does not explicitly state when to use this tool versus alternatives like okf.get_record. It provides no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

okf_eval.submit_answerNormalise an AI evaluation answerA
Read-onlyIdempotent

Validate and return a deterministic, non-persisted evaluation envelope. Accepts visible answers, evidence and caveats, never hidden reasoning.

NameRequiredDescriptionDefault
answerYes
task_idYes
evidenceYes
mcp_planNo
contrastsNo
caveat_idsYes
confidenceYes
alternativesYes
substitutionNo
chosen_record_idYes
considered_record_idsYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond annotations: it specifies the tool is non-persisted, deterministic, and never accepts hidden reasoning. Annotations already mark it as readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description reinforces and elaborates on these traits, providing useful behavioral clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that effectively front-loads the core purpose (validate, deterministic, non-persisted) and lists accepted inputs. Every phrase adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, 8 required, no output schema, nested objects), the description is insufficient. It does not explain the structure of the return envelope, the meaning of required parameters, or how inputs like task_id, chosen_record_id, and considered_record_ids should be used. The absence of output schema makes this gap more critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries full responsibility for explaining parameters, but it only mentions 'visible answers, evidence and caveats,' corresponding to answer, evidence, caveat_ids. Eleven parameters exist, including key ones like task_id, chosen_record_id, considered_record_ids, alternatives, mcp_plan, contrasts, substitution, confidence, all unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Validate and return a deterministic, non-persisted evaluation envelope.' It specifies what it accepts (visible answers, evidence, caveats) and excludes (hidden reasoning), distinguishing it from siblings like okf.get_record, okf.compare, and okf.prepare_mcp_plan, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when or when not to use this tool versus alternatives. No explicit context for usage, prerequisites, or exclusions are mentioned, leaving the agent to infer when submit_answer is appropriate given the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

okf.get_recordHydrate one exact ONS metadata recordA
Read-onlyIdempotent

Resolve an exact stable ID, native ID, route or declared evaluation alias and return the complete frozen metadata record.

NameRequiredDescriptionDefault
identifierYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint. Description adds 'frozen' to indicate immutability but does not disclose error behavior (e.g., what happens if identifier not found). Minimal additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, front-loaded with action and resource. All words carry meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description does not explain return structure beyond 'complete frozen metadata record'. Lacks details on pagination, error responses, or data format. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no description for 'identifier' (0% coverage). Description compensates by listing acceptable identifier types: 'exact stable ID, native ID, route or declared evaluation alias', which adds meaningful context beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Resolve' and lists exact resource types (stable ID, native ID, route, alias) and output ('complete frozen metadata record'). Clearly distinguishes from sibling tools like okf.compare or okf_eval.submit_answer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While the purpose implies single-record retrieval, it does not state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

okf.prepare_mcp_planPrepare a non-executing MCP selection planB
Read-onlyIdempotent

Bind the exact frozen identity and snapshot digest to its inspection/query tools, audience, purpose and caller-declared expiry. Preserve unresolved dimensions and reject credential fields. Never authorises or executes a query.

NameRequiredDescriptionDefault
purposeNo
audienceNo
argumentsNo
record_idYes
expires_atNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context by stating it preserves unresolved dimensions, rejects credential fields, and never authorizes or executes, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief (two sentences) but the first sentence is dense with jargon, making it less clear. It lacks a clear breakdown of what the tool does in simpler terms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no output schema, nested objects), the description lacks details on the return value or how the plan is used afterward. It does not cover what the output contains, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description refers to 'audience, purpose and caller-declared expiry,' linking to three parameters, but does not explain 'arguments,' 'record_id,' or their semantics. With 0% schema coverage, the description should provide more parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it binds a frozen identity and snapshot digest to tools, audience, purpose, and expiry, and emphasizes it never executes. The title 'Prepare a non-executing MCP selection plan' reinforces this. However, jargon like 'frozen identity' and 'snapshot digest' may not be universally understood, slightly reducing clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it should be used for preparing a plan without execution ('Never authorises or executes a query') and mentions preserving unresolved dimensions and rejecting credentials. It does not explicitly contrast with siblings like okf.get_record or okf_eval.submit_answer, but the distinct roles are inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.2.0
    • First observedokf_eval.submit_answer
    • First observedokf.compare
    • First observedokf.get_record
    • First observedokf.prepare_mcp_plan

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct operation: record retrieval, comparison, plan preparation, and answer submission. No functional overlap exists.

Naming Consistency3/5

Names mix dot notation (okf.get_record) and underscore (okf_eval.submit_answer), with inconsistent prefixes (okf vs okf_eval) and verb forms (compare vs prepare_mcp_plan).

Tool Count3/5

4 tools is on the lower side but may be appropriate for a narrow domain. However, the descriptions suggest a more complex system that could benefit from additional tools.

Completeness2/5

Missing fundamental operations such as creating, updating, listing, or searching records. The tool set feels incomplete for the implied workflow.

Maintenance

ActivitySlowing
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables querying UK Office for National Statistics datasets and their editions through natural language, with no authentication required.
    203 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to UK economic, social, and labour-market statistics via the ONS beta and Nomis APIs, enabling discovery and retrieval of time series, datasets, and census data.
    18
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables users to discover and recommend Korea public datasets by describing their project idea, searching a static catalog of 96,056 datasets without API calls.
    7
    15
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to DataCite DOIs for research datasets, enabling searching and retrieval of dataset metadata.
    485 npm
    MIT