Перейти к содержанию

MCP и плагины

MCP-сервер NormalDance Protocol открывает протокол музыкальных прав ИИ-агентам: идентификация треков по перцептивному отпечатку ADNA (переживает перекодирование, ремиксы и миксы), NDT-манифесты прав, верификация артистов, роялти и паспорта субъектов — 21 инструмент.

Публичный контур — https://mcp.normaldance.ru. Транспорты: remote (SSE / Streamable HTTP) и stdio через npm-пакет @aendykachess/ndp-mcp.

Ключ доступа

Ключи выдаются бесплатно в Telegram @NORMALDANCE. Ключ читается только из переменных окружения (REGISTRY_TOKEN) — в конфиги и файлы проектов его не вписывайте. Без ключа initialize и tools/list работают, обращения к реестру вернут ошибку авторизации.

Установка

Claude Code

claude mcp add --transport sse ndp https://mcp.normaldance.ru/http \
  --header "Authorization: Bearer <ключ>"

ZCode (плагин ndp-mcp)

Плагин запускает опубликованный npm-пакет в stdio-режиме; нужен Node ≥ 18.

  1. Экспортируйте ключ до запуска ZCode: export REGISTRY_TOKEN="<ключ>".
  2. Plugin Marketplace → Add → Add Plugin Marketplace → укажите каталог plugins/ репозитория NDP.
  3. Personal → ndp-mcp dev → плагин ndp-mcp → Install.
  4. Перезапустите сессию — сервер появится под именем ndp.

Другие MCP-клиенты

{
  "mcpServers": {
    "ndp": {
      "type": "sse",
      "url": "https://mcp.normaldance.ru/http",
      "headers": { "Authorization": "Bearer <ключ>" }
    }
  }
}

stdio-вариант (локальный запуск пакета):

npx -y @aendykachess/ndp-mcp
# env: REGISTRY_URL=https://mcp.normaldance.ru, REGISTRY_TOKEN=<ключ>

Инструменты (21)

Верификация и паспорта

Инструмент Что делает
verify_artist артист по имени (реестр Стадии 0) или кошельку
get_artist_passport паспорт артиста
check_artist_tracks число треков артиста
get_label_info карточка лейбла

Идентификация и реестр треков

Инструмент Что делает
identify_track ADNA v1/v2 или ISRC; вердикт ≥0.90 тот же трек, 0.75–0.90 дериват, <0.75 не связан
register_track ISRC + ADNA + сплиты Σ=100; parent_isrc для дериватов
get_track_manifest NDT-манифест: права, сплиты, sonic-dna
check_track_ownership владение по ISRC
get_royalty_balance баланс роялти трека
start_ucp_checkout покупка трека (UCP-совместимый checkout)

Субъекты (Proof of Humanity, §1)

Инструмент Что делает
subject_mint минт паспорта; 3 пути верификации: label / indie_kyc / community
subject_status публичный статус паспорта
subject_keys ключи устройства субъекта
snapshot_epoch снимок статусов субъектов эпохи

Журналы и аудитория (§7.1/§7.7)

Инструмент Что делает
receipt_batch батч подписанных квитанций прослушиваний
stats_journal дневной журнал событий и чарт
audience_summary аудитория артиста (agent-токен со scope read_audience)
audience_superfans суперфанаты из квитанций
opt_in переключение видимости слушателя в сегментации

Служебные: get_system_stats, trigger_n8n_workflow.

Ресурсы: ndp://registry/tracks, ndp://registry/artists, ndp://subjects, ndp://epochs/latest. Промпт: audit_scene (§7.18, аудит сцены).

Как пользоваться

  1. Отпечатки ADNA считаются локально через CLI репозитория (ndp-cli/src/main.py tag|compare) — инструменты принимают готовые base64-отпечатки (adna, v2 начинается с QTI).
  2. identify_track без отпечатка принимает isrc — вернёт данные реестра.
  3. register_track требует isrc, title, adna, splits (сумма 100; каскад деривата: {role: "parent", wallet: "isrc:<ISRC>", share: N}).
  4. Инструменты аудитории требуют Bearer-токен владельца паспорта или agent-токен из POST /subjects/{ndp_id}/scopes/issue — агент не может получить их сам, их выдаёт владелец.

Диагностика

  • 401 от инструментов — ключ не подхватился: экспортирован после старта клиента?
  • Логи stdio-сервера идут в stderr — смотрите их в панели MCP-клиента.