Fix Navidrome schemas for llama.cpp

This commit is contained in:
Mikei386 committed 2026-08-23 15:29:46 +02:00
1 parent a8a12d2ec1
commit e5dffbc2ba
3 files changed
+15 -2

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
FROM ghcr.io/blakeem/navidrome-mcp:2.2.0@sha256:047f911a5a8f7cc8f185bb4d6e7ca6c435542edefff4694a00c2f718ab0ee7f5
# llama.cpp's tool-schema converter requires every JSON-Schema regex to be
# fully anchored. Upstream 2.2.0 omits the trailing `$` on exactly two radio
# URL fields. Fail the build if upstream changes instead of patching blindly.
USER root
RUN node -e 'const fs=require("node:fs"); const p="/app/dist/tools/handlers/radio-handlers.js"; let s=fs.readFileSync(p,"utf8"); const a="pattern: '\''^https?://.+'\''"; const b="pattern: '\''^https?://.+$'\''"; const n=s.split(a).length-1; if(n!==2) throw new Error(`expected 2 schema patterns, found ${n}`); fs.writeFileSync(p,s.split(a).join(b));'
USER node
+3 -1
View File
@@ -112,7 +112,9 @@ Nach einer Erstinstallation wird das Modell einmalig im Container mit
## Navidrome ## Navidrome
Der Navidrome-MCP basiert auf `Blakeem/Navidrome-MCP` 2.2.0; das amd64-Image Der Navidrome-MCP basiert auf `Blakeem/Navidrome-MCP` 2.2.0; das amd64-Image
ist per OCI-Digest festgeschrieben. Der Container veröffentlicht keinen ist per OCI-Digest festgeschrieben. Ein kleiner Build-Patch ergänzt bei zwei
Internetradio-URL-Schemas das von llama.cpp verlangte abschließende `$`;
Verhalten und API-Aufrufe bleiben unverändert. Der Container veröffentlicht keinen
Host-Port, besitzt keinen Dateizugriff auf die Musikbibliothek und enthält Host-Port, besitzt keinen Dateizugriff auf die Musikbibliothek und enthält
bewusst kein `mpv`. Er kann daher nicht auf Athena selbst Musik wiedergeben. bewusst kein `mpv`. Er kann daher nicht auf Athena selbst Musik wiedergeben.
+4 -1
View File
@@ -116,7 +116,10 @@ services:
# Version and amd64 manifest are pinned. The image contains no mpv, so it # Version and amd64 manifest are pinned. The image contains no mpv, so it
# cannot play audio on the headless AI host and does not expose playback # cannot play audio on the headless AI host and does not expose playback
# controls. It talks to Navidrome only through its authenticated API. # controls. It talks to Navidrome only through its authenticated API.
image: ghcr.io/blakeem/navidrome-mcp:2.2.0@sha256:047f911a5a8f7cc8f185bb4d6e7ca6c435542edefff4694a00c2f718ab0ee7f5 build:
context: .
dockerfile: Dockerfile.navidrome
image: mike-ai/mcp-navidrome:2.2.0-schemafix1
container_name: mike-ai-mcp-navidrome container_name: mike-ai-mcp-navidrome
profiles: [navidrome] profiles: [navidrome]
env_file: env_file: