Skip to main content
Glama
jphittell

Catalog MCP

by jphittell

Catalog MCP

Автономный MCP-сервер только для чтения для просмотра метаданных бизнес-объектов Oracle HDL из локального репозитория загрузки бизнес-объектов.

Индекс каталога использует attributes/*.json в качестве источника истины. manifest.json является дополнительными метаданными, которые используются только в том случае, если они соответствуют индексированному документу атрибута.

Локальная настройка

  1. Создайте виртуальную среду с Python 3.10+.

  2. Установите зависимости.

  3. Укажите CATALOG_MCP_DATA_ROOT на репозиторий загрузки бизнес-объектов, если вы не хотите использовать путь к соседней папке по умолчанию.

'/Users/justin/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3' -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
cp .env.example .env

Вы можете дополнительно ограничить область действия сервера одним или несколькими конкретными бизнес-объектами:

CATALOG_MCP_ALLOWED_OBJECTS=Worker

или:

CATALOG_MCP_ALLOWED_OBJECTS=Worker,Location

Запуск сервера

.venv/bin/python -m catalog_mcp.server

По умолчанию сервер работает через stdio.

Вы также можете использовать встроенный загрузчик, который по умолчанию устанавливает CATALOG_MCP_DATA_ROOT на соседний репозиторий бизнес-объектов на этом ноутбуке:

./scripts/run_catalog_mcp.sh

Регистрация в Codex

Добавьте сервер в локальную конфигурацию Codex MCP:

codex mcp add businessObjectCatalog -- /Users/justin/Documents/Codex/Projects/MCP/scripts/run_catalog_mcp.sh

Проверьте регистрацию:

codex mcp list
codex mcp get businessObjectCatalog

Тестирование

.venv/bin/pytest

Запустите сквозную матрицу нагрузки:

.venv/bin/python scripts/pressure_test_catalog.py

Публичная поверхность MCP

  • Инструменты:

    • catalog_health

    • get_catalog_stats

    • list_catalog_entries

    • get_catalog_entry

    • get_catalog_component

    • get_catalog_attribute

    • search_catalog

    • search_catalog_attributes

    • get_related_entries

    • refresh_catalog_index

  • Ресурсы:

    • catalog://summary

    • catalog://product-areas

    • catalog://stats

    • catalog://entries/{entry_id}

Точное извлечение данных

Если агент уже знает объект, компонент или поле, отдавайте предпочтение точному извлечению, а не широкому поиску.

Примеры:

{"identifier":"Worker"}
{"identifier":"Worker","component_name":"Worker"}
{"identifier":"Worker","component_name":"Worker","attribute_name":"WorkerNumber"}

Related MCP Connectors