Skip to main content
Glama

ONS Open Knowledge Format

okf-ons — это слой обнаружения, содержащий только метаданные, для публичной статистики, предоставляемой через сервисы Office for National Statistics. Он предназначен для того, чтобы помочь человеку или агенту найти точный набор данных, увидеть легко перепутываемые альтернативы, понять доступные доказательства статистического качества и подготовить неисполняемый план-кандидат, который нижестоящий сервис должен проверить в реальном времени и авторизовать перед получением.

Проект намеренно разделяет четыре задачи:

  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" и последовательно ссылается на типизированные концепции для каталога, замороженного снимка, четырёх исходных каналов, состояния поставщика, управления, стандартов и выбора 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

Доступ и документация

Это канонические точки входа для развёртывания Pages из main. Неизменяемый релиз приложения v0.2.0 предшествует миграции на спецификацию OKF 0.2 и остаётся доступным как историческое свидетельство релиза.

Живой и машиночитаемый доступ

Ресурс

URL

Пользовательский интерфейс обнаружения

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 может загрузить пакет уже сегодня по прямой ссылке выше. Рекомендуется отдельное обновление реестра и представления Explorer, чтобы пакет предлагался без вставки его URL, а новые поля авторитета, прав и управления отображались как первоклассный интерфейс, а не только в сыром JSON.

Поддержка SDMX

Пакет регистрирует SDMX 3.1 (ISO 17369), сопоставляет семь канонических полей OKF с концепциями SDMX и сохраняет агентство, идентификатор, версию, порядок измерений, роли компонентов и ссылки на списки кодов SDMX для полосы Nomis. Выборки Nomis также сохраняют ограниченные варианты кодов-меток FREQ и строгие доступные диапазоны TIME, где эти доказательства применимы. FREQ — это статистическая/справочная частота, а не периодичность публикации, а аннотации пересмотра периодов TIME не являются статусом пересмотра набора данных. Все остальные обязательные измерения всё ещё требуют живой валидации и выбора; завершённое живое выполнение использует nomis_query из MCP-Geo.

Пакет сам по себе не является сообщением SDMX. Он сериализован как JSON-LD с использованием терминов DCAT 3, SKOS, PROV-O и RDF Data Cube, без пространства имён SDMX в его контексте. Сгенерированный data/standards/sdmx.json сообщает точное сопоставление и количество доказательств Nomis, не утверждая соответствие или сертификацию вышестоящего уровня.

Демонстратор понедельника

Предхакатонный демонстратор заморожен, чтобы презентация в понедельник могла использовать воспроизводимый, проверяемый снимок, а не изменяющиеся живые приобретения. Он публикует:

  • реестр источников и охвата, который делает неполноту явной;

  • замороженный снимок метаданных из 5 097 записей из ONS Data API (337), Nomis (1 617), ONS Open Geography (3 035) и ONS Explore Local Statistics (108);

  • квалифицированные роли производителя источника, оператора сервиса, издателя пакета и семантического авторитета с явным отсутствием одобрения;

  • детерминированный поиск и первоклассные фильтрующие публикации;

  • подтверждённые доказательствами альтернативные/контрастные отношения;

  • точное согласование кодов таблиц переписи между ONS Data API и Nomis;

  • доказательства статистического качества и стандартов без ложных заявлений о гарантиях;

  • контракт плана выбора MCP; и

  • воспроизводимый отчёт об оценке извлечения и качества метаданных.

Неизменяемый идентификатор снимка monday-2026-07-17-r2 расширяет заморозку пятницы 17 июля закреплённой проекцией метаданных ELS. Суффикс r2 предотвращает повторное использование исходной идентичности снимка v0.1 расширенным корпусом; «monday» — это имя демонстратора, а не утверждение, что 17 июля был понедельник.

Полоса Explore Local Statistics — это детерминированная проекция закреплённого подмодуля приложения, допускающая только разрешённые элементы. Она содержит 108 показателей, курируемых ONS, от 24 атрибутированных производителей, объясняет 12 неопубликованных записей манифеста, сохраняет 46 допустимых исторических псевдонимов и удаляет значения наблюдений, массивы статусов, домены значений, двоичные данные и геометрию. Это среда разработки, а не утверждение, что внутренний API ELS является стабильным публичным контрактом выполнения. Его проверенный Git commitAsOf хранится отдельно от времени приобретения; замороженный фикстур не выдумывает временную метку извлечения, которая не была записана.

Пакет также публикует датапак поставщика, который делает различие между снимком ELS и живым состоянием видимым, не ослабляя воспроизводимость. Управляемый снимок остаётся закреплённым на 795eaf2 от 17 июля 2026 года. Отдельно проверенная вышестоящая ссылка на d5f0ac9 фиксирует известное примерное различие: средняя цена дома заканчивается в апреле 2026 года в снимке и в мае 2026 года в проверенной ссылке. Эта ссылка последний раз проверялась 23 июля 2026 года, она явно внешняя и не является живой валидацией. Её сравнение — это неисчерпывающий проверенный пример, а не утверждение, что все 108 показателей были сравнены. Дескриптор хеширует манифест поставщика, а манифест хеширует пакет, поэтому датированная проверка не может быть заменена под тем же идентификатором снимка без сбоя проверок целостности Explorer. См. контракт датапака поставщика.

Этот экспериментальный пакет независимо публикуется проектом 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 невозможна, поскольку не отслеживается базовый сгенерированный пакет. Введение отдельного неизменяемого базового уровня или релизного артефакта — это задокументированный будущий вариант; рабочий процесс не выполняет вторую идентичную сборку только для сравнения результата с самим собой.

Чтобы воспроизвести 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 добавляет только проверенную проекцию измерений из каждого замороженного URL последней версии ONS. r6 следует точным ссылкам на списки кодов FREQ и TIME в замороженной когорте Nomis r5 и сохраняет только метаданные кодов-меток и явные аннотации статуса пересмотра периодов. Обёртки источников ONS Data API, Explore Local Statistics и Open Geography в r6 байт-идентичны 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

Живые URL Pages и Explorer выше по-прежнему обслуживают управляемый релиз v0.2.0. Снимок кампании r6 зафиксирован как управляемое доказательство кампании, но остаётся неразвёрнутым кандидатом на релиз, пока метаданные релиза и выбранный снимок Pages не будут намеренно переключены.

Измеренная история пакетов, определения метрик, тайминги и машиночитаемые профили связаны из кампании по обогащению метаданных, включая аудит остановки.

Для существующего клона выполните git submodule update --init --recursive перед проектором. Чтобы получить будущий снимок, храните сырой кэш вне репозитория, используйте --mode refresh и выберите новую неизменяемую идентичность — никогда не перезаписывайте существующий снимок. Чтобы обновить только каталог 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 в качестве проверенной предварительно обогащённой основы. Приобретение следует только 337 точным значениям links.latest_version.href, замороженным в r4, сохраняет только разрешённую проекцию во внешнем кэше и не загружает наблюдения, опции измерений, списки кодов или загрузки:

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

Чтобы воспроизвести или обновить ограниченную проекцию списков кодов FREQ/TIME Nomis, используйте 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-доступа

Репозиторий сохраняет и SHA-256-пиннирует испытания от 18 июля 2026 года, проведённые с Claude Desktop Cowork, Google Antigravity CLI и Microsoft 365 Copilot Researcher, в 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, открытого веба и raw-API; восемь задач для смоук-тестирования разработки; шесть персонажей, специфичных для ONS, и восемь путешествий; реестр из десяти наблюдаемых проблем; общий структурированный ответ; независимую оценку, привязанную к ответу; детерминированную оценку компонентов; разделение принудительного и самоотчётного; и отдельные результаты готовности, чтобы заблокированный клиент не оценивался как неверный ответ. CI не выполняет живых, аутентифицированных или платных вызовов моделей.

Независимый от зависимостей, только метаданные MCP-брокер теперь предоставляет детерминированные инструменты дескриптора, поиска, точной записи, сравнения, MCP-плана только для чтения и отправки ответов. Antigravity CLI (agy) может загрузить его из ограниченного репозиторием .agents/mcp_config.json. Эта конфигурация была добавлена после сохранённого испытания Antigravity; никакого нового платного или живого запуска модели не заявляется. Брокер использует замороженный корпус, не совершает сетевых вызовов, не хранит учётные данные и не возвращает значений наблюдений.

Карта подключения ИИ-систем

Руководство по развёртыванию MCP является каноническим руководством по настройке и статусу для каждой ИИ-поверхности в реестре оценки. Оно различает четыре уровня доступа и развёртывания:

  • Доступ к статическому пакету: любой разрешённый 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 держат задачи, пользователей, путешествия, наблюдаемые сбои и исправления в синхронизации с этим дизайном.

См. кросс-клиентский анализ испытаний для получения доказательств, матрицы проблема/исправление, персонажей, протокола эффективности и приоритизированных рабочих пакетов.

Что означает «все»

Репозиторий может описывать себя как покрывающий все публичные метаданные ONS только тогда, когда каждый источник, входящий в область действия в source/source-register.json, имеет измеренный знаменатель, а сгенерированный реестр покрытия сообщает unexplained_omissions = 0.

Ячейки наблюдений, защищённые микроданные и дублирующиеся бинарные полезные нагрузки намеренно исключены из области действия. См. область действия и знаменатель.

Лицензирование

Код лицензирован по 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

ActivityMaintained
ResponsivenessUnresponsive

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.
    9 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.
    273 npm
    MIT