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.
- Экспортируйте ключ до запуска ZCode:
export REGISTRY_TOKEN="<ключ>". - Plugin Marketplace → Add → Add Plugin Marketplace → укажите каталог
plugins/репозитория NDP. - Personal → ndp-mcp dev → плагин ndp-mcp → Install.
- Перезапустите сессию — сервер появится под именем
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,
аудит сцены).
Как пользоваться¶
- Отпечатки ADNA считаются локально через CLI репозитория
(
ndp-cli/src/main.py tag|compare) — инструменты принимают готовые base64-отпечатки (adna, v2 начинается сQTI). identify_trackбез отпечатка принимаетisrc— вернёт данные реестра.register_trackтребуетisrc,title,adna,splits(сумма 100; каскад деривата:{role: "parent", wallet: "isrc:<ISRC>", share: N}).- Инструменты аудитории требуют Bearer-токен владельца паспорта или
agent-токен из
POST /subjects/{ndp_id}/scopes/issue— агент не может получить их сам, их выдаёт владелец.
Диагностика¶
401от инструментов — ключ не подхватился: экспортирован после старта клиента?- Логи stdio-сервера идут в stderr — смотрите их в панели MCP-клиента.