diff --git a/apps/docs/content/docs/de/tools/grafana.mdx b/apps/docs/content/docs/de/tools/grafana.mdx
index 8e694f5c97..1747ea5c5a 100644
--- a/apps/docs/content/docs/de/tools/grafana.mdx
+++ b/apps/docs/content/docs/de/tools/grafana.mdx
@@ -321,7 +321,7 @@ Eine Anmerkung auf einem Dashboard oder als globale Anmerkung erstellen
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `text` | string | Ja | Der Textinhalt der Anmerkung |
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
-| `dashboardUid` | string | Nein | UID des Dashboards, zu dem die Anmerkung hinzugefügt werden soll \(optional für globale Anmerkungen\) |
+| `dashboardUid` | string | Ja | UID des Dashboards, zu dem die Anmerkung hinzugefügt werden soll |
| `panelId` | number | Nein | ID des Panels, zu dem die Anmerkung hinzugefügt werden soll |
| `time` | number | Nein | Startzeit in Epochenmillisekunden \(standardmäßig jetzt\) |
| `timeEnd` | number | Nein | Endzeit in Epochenmillisekunden \(für Bereichsanmerkungen\) |
@@ -346,11 +346,11 @@ Anmerkungen nach Zeitraum, Dashboard oder Tags abfragen
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `from` | number | Nein | Startzeit in Epochenmillisekunden |
| `to` | number | Nein | Endzeit in Epochenmillisekunden |
-| `dashboardUid` | string | Nein | Nach Dashboard-UID filtern |
+| `dashboardUid` | string | Ja | Dashboard-UID, von der Anmerkungen abgefragt werden sollen |
| `panelId` | number | Nein | Nach Panel-ID filtern |
-| `tags` | string | Nein | Kommagetrennte Liste von Tags, nach denen gefiltert werden soll |
+| `tags` | string | Nein | Kommagetrennte Liste von Tags zum Filtern |
| `type` | string | Nein | Nach Typ filtern \(alert oder annotation\) |
-| `limit` | number | Nein | Maximale Anzahl von zurückzugebenden Anmerkungen |
+| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Anmerkungen |
#### Ausgabe
@@ -481,12 +481,22 @@ Einen neuen Ordner in Grafana erstellen
#### Ausgabe
-| Parameter | Typ | Beschreibung |
+| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die numerische ID des erstellten Ordners |
| `uid` | string | Die UID des erstellten Ordners |
| `title` | string | Der Titel des erstellten Ordners |
| `url` | string | Der URL-Pfad zum Ordner |
+| `hasAcl` | boolean | Ob der Ordner benutzerdefinierte ACL-Berechtigungen hat |
+| `canSave` | boolean | Ob der aktuelle Benutzer den Ordner speichern kann |
+| `canEdit` | boolean | Ob der aktuelle Benutzer den Ordner bearbeiten kann |
+| `canAdmin` | boolean | Ob der aktuelle Benutzer Administratorrechte für den Ordner hat |
+| `canDelete` | boolean | Ob der aktuelle Benutzer den Ordner löschen kann |
+| `createdBy` | string | Benutzername desjenigen, der den Ordner erstellt hat |
+| `created` | string | Zeitstempel, wann der Ordner erstellt wurde |
+| `updatedBy` | string | Benutzername desjenigen, der den Ordner zuletzt aktualisiert hat |
+| `updated` | string | Zeitstempel, wann der Ordner zuletzt aktualisiert wurde |
+| `version` | number | Versionsnummer des Ordners |
## Notizen
diff --git a/apps/docs/content/docs/de/tools/spotify.mdx b/apps/docs/content/docs/de/tools/spotify.mdx
new file mode 100644
index 0000000000..0be4114350
--- /dev/null
+++ b/apps/docs/content/docs/de/tools/spotify.mdx
@@ -0,0 +1,1453 @@
+---
+title: Spotify
+description: Musik suchen, Playlists verwalten, Wiedergabe steuern und auf deine
+ Bibliothek zugreifen
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+## Nutzungsanleitung
+
+Integriere Spotify in deinen Workflow. Suche nach Titeln, Alben, Künstlern und Playlists. Verwalte Playlists, greife auf deine Bibliothek zu, steuere die Wiedergabe, durchsuche Podcasts und Hörbücher.
+
+## Tools
+
+### `spotify_search`
+
+Suche nach Titeln, Alben, Künstlern oder Playlists auf Spotify. Liefert passende Ergebnisse basierend auf der Anfrage.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `query` | string | Ja | Suchanfrage \(z.B. "Bohemian Rhapsody", "artist:Queen", "genre:rock"\) |
+| `type` | string | Nein | Art der Ergebnisse: track, album, artist, playlist oder durch Komma getrennt \(z.B. "track,artist"\) |
+| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-50\) |
+| `offset` | number | Nein | Index des ersten Ergebnisses für die Paginierung |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode zur Filterung der Ergebnisse \(z.B. "US", "GB"\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste der passenden Titel |
+
+### `spotify_get_track`
+
+Erhalte detaillierte Informationen über einen bestimmten Titel auf Spotify anhand seiner ID.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `trackId` | string | Ja | Die Spotify-ID des Titels |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode für die Verfügbarkeit des Titels |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Track-ID |
+| `name` | string | Trackname |
+| `artists` | array | Liste der Künstler |
+| `album` | object | Album-Informationen |
+| `duration_ms` | number | Trackdauer in Millisekunden |
+| `explicit` | boolean | Ob der Track explizite Inhalte enthält |
+| `popularity` | number | Popularitätswert (0-100) |
+| `preview_url` | string | URL zur 30-Sekunden-Vorschau |
+| `external_url` | string | Spotify-URL |
+| `uri` | string | Spotify-URI für den Track |
+
+### `spotify_get_tracks`
+
+Erhalte detaillierte Informationen über mehrere Tracks auf Spotify anhand ihrer IDs (bis zu 50).
+
+#### Input
+
+| Parameter | Type | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Ja | Kommagetrennte Liste von Spotify-Track-IDs (max. 50) |
+| `market` | string | Nein | ISO 3166-1 Alpha-2-Ländercode für Track-Verfügbarkeit |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste der Tracks |
+
+### `spotify_get_album`
+
+Erhalte detaillierte Informationen über ein Album auf Spotify anhand seiner ID, einschließlich der Trackliste.
+
+#### Input
+
+| Parameter | Type | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | Ja | Die Spotify-ID des Albums |
+| `market` | string | Nein | ISO 3166-1 Alpha-2-Ländercode für Track-Verfügbarkeit |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Album-ID |
+| `name` | string | Albumname |
+| `artists` | array | Liste der Künstler |
+| `album_type` | string | Art des Albums \(album, single, compilation\) |
+| `total_tracks` | number | Gesamtanzahl der Tracks |
+| `release_date` | string | Veröffentlichungsdatum |
+| `label` | string | Plattenlabel |
+| `popularity` | number | Popularitätswert \(0-100\) |
+| `genres` | array | Liste der Genres |
+| `image_url` | string | URL des Albumcovers |
+| `tracks` | array | Liste der Tracks auf dem Album |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_albums`
+
+Ruft Details für mehrere Alben anhand ihrer IDs ab.
+
+#### Input
+
+| Parameter | Type | Required | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Yes | Durch Kommas getrennte Album-IDs \(max. 20\) |
+| `market` | string | No | ISO-Ländercode für den Markt |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste der Alben |
+
+### `spotify_get_album_tracks`
+
+Ruft die Tracks eines Albums ab.
+
+#### Input
+
+| Parameter | Type | Required | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | Yes | Die Spotify-Album-ID |
+| `limit` | number | No | Anzahl der zurückzugebenden Tracks \(1-50\) |
+| `offset` | number | No | Index des ersten zurückzugebenden Tracks |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | json | Liste der Tracks |
+| `total` | number | Gesamtanzahl der Tracks |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_get_saved_albums`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Alben (1-50) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Albums |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste der gespeicherten Alben |
+| `total` | number | Gesamtzahl der gespeicherten Alben |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_save_albums`
+
+Alben für den Benutzer speichern
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Ja | Durch Kommas getrennte Album-IDs (max. 20) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Alben gespeichert wurden |
+
+### `spotify_remove_saved_albums`
+
+Alben vom Benutzer entfernen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Ja | Durch Kommas getrennte Album-IDs (max. 20) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Alben entfernt wurden |
+
+### `spotify_check_saved_albums`
+
+Prüfen, ob Alben in der Bibliothek gespeichert sind.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Ja | Durch Kommas getrennte Album-IDs (max. 20) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jedes Album |
+
+### `spotify_get_artist`
+
+Detaillierte Informationen über einen Künstler auf Spotify anhand seiner ID abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Ja | Die Spotify-ID des Künstlers |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Künstler-ID |
+| `name` | string | Künstlername |
+| `genres` | array | Liste der mit dem Künstler verbundenen Genres |
+| `popularity` | number | Popularitätswert (0-100) |
+| `followers` | number | Anzahl der Follower |
+| `image_url` | string | Künstler-Bild-URL |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_artists`
+
+Details für mehrere Künstler anhand ihrer IDs abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Ja | Durch Kommas getrennte Künstler-IDs (max. 50) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `artists` | json | Liste der Künstler |
+
+### `spotify_get_artist_albums`
+
+Alben eines Künstlers auf Spotify abrufen. Kann nach Albumtyp gefiltert werden.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Ja | Die Spotify-ID des Künstlers |
+| `include_groups` | string | Nein | Nach Albumtyp filtern: album, single, appears_on, compilation \(durch Komma getrennt\) |
+| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Alben \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Albums |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `albums` | array | Künstler |
+
+### `spotify_get_artist_top_tracks`
+
+Die 10 beliebtesten Tracks eines Künstlers auf Spotify abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Ja | Die Spotify-ID des Künstlers |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode \(für diesen Endpunkt erforderlich\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Künstler |
+
+### `spotify_follow_artists`
+
+Einem oder mehreren Künstlern folgen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Ja | Durch Komma getrennte Künstler-IDs zum Folgen (max. 50) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Künstlern erfolgreich gefolgt wurde |
+
+### `spotify_unfollow_artists`
+
+Einem oder mehreren Künstlern entfolgen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Ja | Durch Komma getrennte Künstler-IDs zum Entfolgen (max. 50) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Künstlern erfolgreich entfolgt wurde |
+
+### `spotify_get_followed_artists`
+
+Den Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Künstler (1-50) |
+| `after` | string | Nein | Cursor für Paginierung (letzte Künstler-ID aus vorheriger Anfrage) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `artists` | json | Liste der gefolgten Künstler |
+| `total` | number | Gesamtanzahl der gefolgten Künstler |
+| `next` | string | Cursor für die nächste Seite |
+
+### `spotify_check_following`
+
+Prüfen, ob der Benutzer Künstlern oder anderen Benutzern folgt.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `type` | string | Ja | Zu prüfender Typ: "artist" oder "user" |
+| `ids` | string | Ja | Durch Komma getrennte Künstler- oder Benutzer-IDs (max. 50) |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jede ID |
+
+### `spotify_get_show`
+
+Details zu einer Podcast-Show abrufen.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | Ja | Die Spotify-Show-ID |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Show-ID |
+| `name` | string | Show-Name |
+| `description` | string | Show-Beschreibung |
+| `publisher` | string | Publisher-Name |
+| `total_episodes` | number | Gesamtzahl der Episoden |
+| `explicit` | boolean | Enthält explizite Inhalte |
+| `languages` | json | Sprachen |
+| `image_url` | string | Cover-Bild-URL |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_shows`
+
+Details für mehrere Podcast-Shows abrufen.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Ja | Kommagetrennte Show-IDs \(max. 50\) |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `shows` | json | Liste der Shows |
+
+### `spotify_get_show_episodes`
+
+Episoden einer Podcast-Show abrufen.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | Ja | Die Spotify-Show-ID |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Episoden (1-50) |
+| `offset` | number | Nein | Index der ersten zurückzugebenden Episode |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste der Episoden |
+| `total` | number | Gesamtzahl der Episoden |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_get_saved_shows`
+
+Benutzer abrufen
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Shows (1-50) |
+| `offset` | number | Nein | Index der ersten zurückzugebenden Show |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `shows` | json | Liste der gespeicherten Shows |
+| `total` | number | Gesamtzahl der gespeicherten Shows |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_save_shows`
+
+Podcast-Shows für den Benutzer speichern
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Ja | Durch Kommas getrennte Show-IDs (max. 50) |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Shows gespeichert wurden |
+
+### `spotify_remove_saved_shows`
+
+Podcast-Shows vom Benutzer entfernen
+
+#### Input
+
+| Parameter | Type | Required | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Yes | Durch Komma getrennte Show-IDs (max. 50) |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Shows entfernt wurden |
+
+### `spotify_check_saved_shows`
+
+Prüfen, ob Shows in der Bibliothek gespeichert sind.
+
+#### Input
+
+| Parameter | Type | Required | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Yes | Durch Komma getrennte Show-IDs (max. 50) |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jede Show |
+
+### `spotify_get_episode`
+
+Details für eine Podcast-Episode abrufen.
+
+#### Input
+
+| Parameter | Type | Required | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `episodeId` | string | Yes | Die Spotify-Episode-ID |
+| `market` | string | No | ISO-Ländercode für den Markt |
+
+#### Output
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Episode-ID |
+| `name` | string | Name der Episode |
+| `description` | string | Beschreibung der Episode |
+| `duration_ms` | number | Dauer in ms |
+| `release_date` | string | Veröffentlichungsdatum |
+| `explicit` | boolean | Enthält explizite Inhalte |
+| `show` | json | Informationen zur übergeordneten Show |
+| `image_url` | string | URL des Coverbildes |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_episodes`
+
+Details für mehrere Podcast-Episoden abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Ja | Durch Komma getrennte Episoden-IDs (max. 50) |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste der Episoden |
+
+### `spotify_get_saved_episodes`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Episoden (1-50) |
+| `offset` | number | Nein | Index der ersten zurückzugebenden Episode |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste der gespeicherten Episoden |
+| `total` | number | Gesamtzahl der gespeicherten Episoden |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_save_episodes`
+
+Podcast-Episoden für den Benutzer speichern
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Ja | Durch Komma getrennte Episoden-IDs (max. 50) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Episoden gespeichert wurden |
+
+### `spotify_remove_saved_episodes`
+
+Podcast-Episoden vom Benutzer entfernen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Ja | Kommagetrennte Episoden-IDs \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Episoden entfernt wurden |
+
+### `spotify_check_saved_episodes`
+
+Prüfen, ob Episoden in der Bibliothek gespeichert sind.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Ja | Kommagetrennte Episoden-IDs \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jede Episode |
+
+### `spotify_get_audiobook`
+
+Details für ein Hörbuch abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | Ja | Die Spotify-Hörbuch-ID |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Hörbuch-ID |
+| `name` | string | Hörbuchname |
+| `authors` | json | Autoren |
+| `narrators` | json | Sprecher |
+| `publisher` | string | Verlag |
+| `description` | string | Beschreibung |
+| `total_chapters` | number | Gesamtzahl der Kapitel |
+| `languages` | json | Sprachen |
+| `image_url` | string | Cover-Bild-URL |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_audiobooks`
+
+Erhalte details für mehrere hörbücher.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Ja | Kommagetrennte hörbuch-IDs \(max. 50\) |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Liste der hörbücher |
+
+### `spotify_get_audiobook_chapters`
+
+Erhalte kapitel eines hörbuchs.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | Ja | Die Spotify hörbuch-ID |
+| `limit` | number | Nein | Anzahl der zurückzugebenden kapitel \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden kapitels |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `chapters` | json | Liste der kapitel |
+| `total` | number | Gesamtzahl der kapitel |
+| `next` | string | URL für die nächste seite |
+
+### `spotify_get_saved_audiobooks`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden hörbücher \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden hörbuchs |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Liste der gespeicherten Hörbücher |
+| `total` | number | Gesamtzahl der gespeicherten Hörbücher |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_save_audiobooks`
+
+Hörbücher für den Benutzer speichern
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Ja | Durch Kommas getrennte Hörbuch-IDs \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Hörbücher gespeichert wurden |
+
+### `spotify_remove_saved_audiobooks`
+
+Hörbücher vom Benutzer entfernen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Ja | Durch Kommas getrennte Hörbuch-IDs \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Hörbücher entfernt wurden |
+
+### `spotify_check_saved_audiobooks`
+
+Prüfen, ob Hörbücher in der Bibliothek gespeichert sind.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Ja | Durch Kommas getrennte Hörbuch-IDs \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jedes Hörbuch |
+
+### `spotify_get_playlist`
+
+Detaillierte Informationen über eine Playlist auf Spotify anhand ihrer ID abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-ID der Playlist |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode für die Verfügbarkeit des Tracks |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Playlist-ID |
+| `name` | string | Playlist-Name |
+| `description` | string | Playlist-Beschreibung |
+| `public` | boolean | Ob die Playlist öffentlich ist |
+| `collaborative` | boolean | Ob die Playlist kollaborativ ist |
+| `owner` | object | Informationen zum Playlist-Besitzer |
+| `image_url` | string | URL des Playlist-Coverbildes |
+| `total_tracks` | number | Gesamtanzahl der Tracks |
+| `snapshot_id` | string | Playlist-Snapshot-ID für Versionierung |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_playlist_tracks`
+
+Ruft die Tracks in einer Spotify-Playlist ab.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-ID der Playlist |
+| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Tracks (1-100) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Tracks |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode für die Verfügbarkeit des Tracks |
+
+#### Ausgabe
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste der Titel in der Playlist |
+
+### `spotify_get_playlist_cover`
+
+Eine Playlist abrufen
+
+#### Eingabe
+
+| Parameter | Type | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+
+#### Ausgabe
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `images` | json | Liste der Coverbilder |
+
+### `spotify_get_user_playlists`
+
+Den aktuellen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Type | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Playlists (1-50) |
+| `offset` | number | Nein | Index der ersten zurückzugebenden Playlist |
+
+#### Ausgabe
+
+| Parameter | Type | Beschreibung |
+| --------- | ---- | ----------- |
+| `playlists` | array | Benutzer |
+
+### `spotify_create_playlist`
+
+Eine neue Playlist für den aktuellen Benutzer auf Spotify erstellen.
+
+#### Eingabe
+
+| Parameter | Type | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `name` | string | Ja | Name für die neue Playlist |
+| `description` | string | Nein | Beschreibung für die Playlist |
+| `public` | boolean | Nein | Ob die Playlist öffentlich sein soll |
+| `collaborative` | boolean | Nein | Ob die Playlist kollaborativ sein soll (erfordert, dass öffentlich auf falsch gesetzt ist) |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Playlist-ID |
+| `name` | string | Playlist-Name |
+| `description` | string | Playlist-Beschreibung |
+| `public` | boolean | Ob die Playlist öffentlich ist |
+| `collaborative` | boolean | Ob kollaborativ |
+| `snapshot_id` | string | Playlist-Snapshot-ID |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_update_playlist`
+
+Eine Playlist aktualisieren
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `name` | string | Nein | Neuer Name für die Playlist |
+| `description` | string | Nein | Neue Beschreibung für die Playlist |
+| `public` | boolean | Nein | Ob die Playlist öffentlich sein soll |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Aktualisierung erfolgreich war |
+
+### `spotify_add_playlist_cover`
+
+Ein benutzerdefiniertes Coverbild für eine Playlist hochladen. Das Bild muss im JPEG-Format und unter 256 KB sein.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `imageBase64` | string | Ja | Base64-codiertes JPEG-Bild \(max. 256 KB\) |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob der Upload erfolgreich war |
+
+### `spotify_add_tracks_to_playlist`
+
+Füge einen oder mehrere Tracks zu einer Spotify-Playlist hinzu.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-ID der Playlist |
+| `uris` | string | Ja | Kommagetrennte Spotify-URIs \(z.B. "spotify:track:xxx,spotify:track:yyy"\) |
+| `position` | number | Nein | Position zum Einfügen der Tracks \(0-basiert\). Wenn nicht angegeben, werden Tracks angehängt. |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Neue Playlist-Snapshot-ID nach der Änderung |
+
+### `spotify_remove_tracks_from_playlist`
+
+Entferne einen oder mehrere Tracks aus einer Spotify-Playlist.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-ID der Playlist |
+| `uris` | string | Ja | Kommagetrennte Spotify-URIs zum Entfernen \(z.B. "spotify:track:xxx,spotify:track:yyy"\) |
+
+#### Output
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Neue Playlist-Snapshot-ID nach der Änderung |
+
+### `spotify_reorder_playlist_items`
+
+Verschiebe Tracks an eine andere Position in einer Playlist.
+
+#### Input
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `range_start` | number | Ja | Startindex der umzusortierenden Elemente |
+| `insert_before` | number | Ja | Index, vor dem die Elemente eingefügt werden sollen |
+| `range_length` | number | Nein | Anzahl der umzusortierenden Elemente |
+| `snapshot_id` | string | Nein | Playlist-Snapshot-ID für Nebenläufigkeitskontrolle |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Neue Playlist-Snapshot-ID |
+
+### `spotify_replace_playlist_items`
+
+Ersetzt alle Elemente in einer Playlist durch neue Tracks.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `uris` | string | Ja | Durch Kommas getrennte Spotify-URIs \(max. 100\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Neue Playlist-Snapshot-ID |
+
+### `spotify_follow_playlist`
+
+Einer Playlist folgen (speichern).
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `public` | boolean | Nein | Ob die Playlist in öffentlichen Playlists erscheinen soll |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob das Folgen erfolgreich war |
+
+### `spotify_unfollow_playlist`
+
+Einer Playlist entfolgen (nicht mehr speichern).
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob das Entfolgen erfolgreich war |
+
+### `spotify_check_playlist_followers`
+
+Prüfen, ob Benutzer einer Playlist folgen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | Die Spotify-Playlist-ID |
+| `userIds` | string | Ja | Durch Kommas getrennte Benutzer-IDs zur Überprüfung \(max. 5\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Booleschen Werten für jeden Benutzer |
+
+### `spotify_get_current_user`
+
+Aktuellen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify-Benutzer-ID |
+| `display_name` | string | Anzeigename |
+| `email` | string | E-Mail-Adresse |
+| `country` | string | Ländercode |
+| `product` | string | Abonnement-Stufe \(free, premium\) |
+| `followers` | number | Anzahl der Follower |
+| `image_url` | string | Profilbild-URL |
+| `external_url` | string | Spotify-Profil-URL |
+
+### `spotify_get_user_profile`
+
+Einen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `userId` | string | Ja | Die Spotify-Benutzer-ID |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `id` | string | Benutzer-ID |
+| `display_name` | string | Anzeigename |
+| `followers` | number | Anzahl der Follower |
+| `image_url` | string | Profilbild-URL |
+| `external_url` | string | Spotify-URL |
+
+### `spotify_get_top_tracks`
+
+Aktuellen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | Nein | Zeitraum: short_term \(~4 Wochen\), medium_term \(~6 Monate\), long_term \(Jahre\) |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Tracks \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Tracks |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Benutzer |
+
+### `spotify_get_top_artists`
+
+Aktuellen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | Nein | Zeitraum: short_term \(~4 Wochen\), medium_term \(~6 Monate\), long_term \(Jahre\) |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Künstler \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Künstlers |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `artists` | array | Benutzer |
+
+### `spotify_get_saved_tracks`
+
+Aktuellen Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Tracks \(1-50\) |
+| `offset` | number | Nein | Index des ersten zurückzugebenden Tracks |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `tracks` | array | Benutzer |
+
+### `spotify_save_tracks`
+
+Tracks für den aktuellen Benutzer speichern
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Ja | Durch Kommas getrennte Spotify-Track-IDs zum Speichern \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Tracks erfolgreich gespeichert wurden |
+
+### `spotify_remove_saved_tracks`
+
+Tracks vom Benutzer entfernen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Ja | Durch Kommas getrennte Track-IDs zum Entfernen \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob Tracks erfolgreich entfernt wurden |
+
+### `spotify_check_saved_tracks`
+
+Prüfen, ob ein oder mehrere Tracks beim Benutzer gespeichert sind
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Ja | Durch Kommas getrennte Track-IDs zur Überprüfung \(max. 50\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `results` | json | Array von Track-IDs mit Speicherstatus |
+| `all_saved` | boolean | Ob alle Tracks gespeichert sind |
+| `none_saved` | boolean | Ob keine Tracks gespeichert sind |
+
+### `spotify_get_recently_played`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Tracks (1-50) |
+| `after` | number | Nein | Unix-Zeitstempel in Millisekunden. Gibt Elemente nach diesem Cursor zurück. |
+| `before` | number | Nein | Unix-Zeitstempel in Millisekunden. Gibt Elemente vor diesem Cursor zurück. |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `items` | array | Kürzlich gespielte Tracks |
+
+### `spotify_get_new_releases`
+
+Eine Liste neuer Album-Veröffentlichungen abrufen, die bei Spotify vorgestellt werden.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | Nein | ISO 3166-1 Alpha-2-Ländercode (z.B. "US", "GB") |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Veröffentlichungen (1-50) |
+| `offset` | number | Nein | Index der ersten zurückzugebenden Veröffentlichung |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste neuer Veröffentlichungen |
+| `total` | number | Gesamtzahl neuer Veröffentlichungen |
+| `next` | string | URL für die nächste Seite |
+
+### `spotify_get_categories`
+
+Eine Liste von Browse-Kategorien abrufen, die zur Kennzeichnung von Elementen in Spotify verwendet werden.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | Nein | ISO 3166-1 Alpha-2-Ländercode (z.B. "US", "GB") |
+| `locale` | string | Nein | Locale-Code (z.B. "en_US", "es_MX") |
+| `limit` | number | Nein | Anzahl der zurückzugebenden Kategorien (1-50) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `categories` | json | Liste der Durchsuchkategorien |
+| `total` | number | Gesamtanzahl der Kategorien |
+
+### `spotify_get_markets`
+
+Ruft die Liste der Märkte ab, in denen Spotify verfügbar ist.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `markets` | json | Liste der ISO-Ländercodes |
+
+### `spotify_get_playback_state`
+
+Ruft den aktuellen Wiedergabestatus einschließlich Gerät, Titel und Fortschritt ab.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | Nein | ISO 3166-1 alpha-2 Ländercode |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Ob die Wiedergabe aktiv ist |
+| `device` | object | Informationen zum aktiven Gerät |
+| `progress_ms` | number | Fortschritt in Millisekunden |
+| `currently_playing_type` | string | Art des abgespielten Inhalts |
+| `shuffle_state` | boolean | Ob Zufallswiedergabe aktiviert ist |
+| `repeat_state` | string | Wiederholungsmodus \(off, track, context\) |
+| `track` | object | Aktuell abgespielter Titel |
+
+### `spotify_get_currently_playing`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | Nein | ISO-Ländercode für den Markt |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Ob die Wiedergabe aktiv ist |
+| `progress_ms` | number | Aktuelle Position im Track (ms) |
+| `track` | json | Aktuell spielender Track |
+
+### `spotify_get_devices`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `devices` | array | Verfügbare Wiedergabegeräte |
+
+### `spotify_get_queue`
+
+Benutzer abrufen
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `currently_playing` | json | Aktuell spielender Track |
+| `queue` | json | Kommende Tracks in der Warteschlange |
+
+### `spotify_play`
+
+Starten oder Fortsetzen der Wiedergabe auf Spotify. Kann bestimmte Tracks, Alben oder Playlists abspielen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Nein | Geräte-ID, auf dem abgespielt werden soll. Wenn nicht angegeben, wird auf dem aktiven Gerät abgespielt. |
+| `context_uri` | string | Nein | Spotify-URI des Albums, Künstlers oder der Playlist, die abgespielt werden soll (z.B. "spotify:album:xxx") |
+| `uris` | string | Nein | Kommagetrennte Track-URIs zum Abspielen (z.B. "spotify:track:xxx,spotify:track:yyy") |
+| `offset` | number | Nein | Position im Kontext, an der die Wiedergabe beginnen soll (0-basierter Index) |
+| `position_ms` | number | Nein | Position im Track, von der aus gestartet werden soll (in Millisekunden) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Wiedergabe erfolgreich gestartet wurde |
+
+### `spotify_pause`
+
+Wiedergabe auf Spotify pausieren.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Nein | Geräte-ID zum Pausieren. Wenn nicht angegeben, wird das aktive Gerät pausiert. |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Wiedergabe pausiert wurde |
+
+### `spotify_skip_next`
+
+Zum nächsten Titel auf Spotify springen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Nein | Geräte-ID. Wenn nicht angegeben, wird das aktive Gerät verwendet. |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob das Überspringen erfolgreich war |
+
+### `spotify_skip_previous`
+
+Zum vorherigen Titel auf Spotify springen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Nein | Geräte-ID. Wenn nicht angegeben, wird das aktive Gerät verwendet. |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob das Überspringen erfolgreich war |
+
+### `spotify_seek`
+
+Zu einer Position im aktuell spielenden Titel springen.
+
+#### Eingabe
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `position_ms` | number | Yes | Position in Millisekunden, zu der gesprungen werden soll |
+| `device_id` | string | No | Geräte-ID des Zielgeräts |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob der Sprung erfolgreich war |
+
+### `spotify_add_to_queue`
+
+Einen Track zum Benutzer hinzufügen
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `uri` | string | Yes | Spotify URI des hinzuzufügenden Tracks (z.B. "spotify:track:xxx") |
+| `device_id` | string | No | Geräte-ID. Wenn nicht angegeben, wird das aktive Gerät verwendet. |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob der Track zur Warteschlange hinzugefügt wurde |
+
+### `spotify_set_volume`
+
+Die Wiedergabelautstärke auf Spotify einstellen.
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `volume_percent` | number | Yes | Lautstärke (0 bis 100) |
+| `device_id` | string | No | Geräte-ID. Wenn nicht angegeben, wird das aktive Gerät verwendet. |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Lautstärke eingestellt wurde |
+
+### `spotify_set_repeat`
+
+Den Wiederholungsmodus für die Wiedergabe einstellen.
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `state` | string | Yes | Wiederholungsmodus: "off", "track" oder "context" |
+| `device_id` | string | No | Ziel-Geräte-ID |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob der Wiederholungsmodus erfolgreich eingestellt wurde |
+
+### `spotify_set_shuffle`
+
+Zufallswiedergabe ein- oder ausschalten.
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `state` | boolean | Yes | true für Zufallswiedergabe ein, false für aus |
+| `device_id` | string | No | Ziel-Geräte-ID |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Zufallswiedergabe erfolgreich eingestellt wurde |
+
+### `spotify_transfer_playback`
+
+Wiedergabe auf ein anderes Gerät übertragen.
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Yes | Geräte-ID, auf die die Wiedergabe übertragen werden soll |
+| `play` | boolean | No | Ob die Wiedergabe auf dem neuen Gerät gestartet werden soll |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Ob die Übertragung erfolgreich war |
+
+## Notes
+
+- Category: `tools`
+- Type: `spotify`
diff --git a/apps/docs/content/docs/de/tools/zep.mdx b/apps/docs/content/docs/de/tools/zep.mdx
index 54d0996794..8c35142ba7 100644
--- a/apps/docs/content/docs/de/tools/zep.mdx
+++ b/apps/docs/content/docs/de/tools/zep.mdx
@@ -94,10 +94,7 @@ Benutzerkontext aus einem Thread mit Zusammenfassungs- oder Basismodus abrufen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
-| `context` | string | Der Kontextstring \(Zusammenfassung oder Basis\) |
-| `facts` | array | Extrahierte Fakten |
-| `entities` | array | Extrahierte Entitäten |
-| `summary` | string | Konversationszusammenfassung |
+| `context` | string | Die Kontext-Zeichenfolge \(Zusammenfassung oder Basismodus\) |
### `zep_get_messages`
@@ -137,9 +134,9 @@ Nachrichten zu einem bestehenden Thread hinzufügen
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
-| `context` | string | Aktualisierter Kontext nach dem Hinzufügen von Nachrichten |
-| `messageIds` | array | Array der hinzugefügten Nachrichten-UUIDs |
| `threadId` | string | Die Thread-ID |
+| `added` | boolean | Ob Nachrichten erfolgreich hinzugefügt wurden |
+| `messageIds` | array | Array der hinzugefügten Nachrichten-UUIDs |
### `zep_add_user`
@@ -209,7 +206,7 @@ Alle Konversations-Threads für einen bestimmten Benutzer auflisten
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `threads` | array | Array von Thread-Objekten für diesen Benutzer |
-| `userId` | string | Die Benutzer-ID |
+| `totalCount` | number | Gesamtanzahl der zurückgegebenen Threads |
## Hinweise
diff --git a/apps/docs/content/docs/es/tools/grafana.mdx b/apps/docs/content/docs/es/tools/grafana.mdx
index 8b2d0cd5f2..dec6c45449 100644
--- a/apps/docs/content/docs/es/tools/grafana.mdx
+++ b/apps/docs/content/docs/es/tools/grafana.mdx
@@ -318,10 +318,10 @@ Crear una anotación en un panel o como una anotación global
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Sí | Token de cuenta de servicio de Grafana |
| `baseUrl` | string | Sí | URL de la instancia de Grafana \(p. ej., https://your-grafana.com\) |
-| `organizationId` | string | No | ID de la organización para instancias de Grafana multi-organización |
+| `organizationId` | string | No | ID de organización para instancias Grafana multi-organización |
| `text` | string | Sí | El contenido de texto de la anotación |
| `tags` | string | No | Lista de etiquetas separadas por comas |
-| `dashboardUid` | string | No | UID del panel donde añadir la anotación \(opcional para anotaciones globales\) |
+| `dashboardUid` | string | Sí | UID del panel de control donde añadir la anotación |
| `panelId` | number | No | ID del panel donde añadir la anotación |
| `time` | number | No | Hora de inicio en milisegundos de época \(por defecto es ahora\) |
| `timeEnd` | number | No | Hora de finalización en milisegundos de época \(para anotaciones de rango\) |
@@ -343,11 +343,11 @@ Consultar anotaciones por rango de tiempo, panel o etiquetas
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Sí | Token de cuenta de servicio de Grafana |
| `baseUrl` | string | Sí | URL de la instancia de Grafana \(p. ej., https://your-grafana.com\) |
-| `organizationId` | string | No | ID de la organización para instancias de Grafana multi-organización |
+| `organizationId` | string | No | ID de organización para instancias Grafana multi-organización |
| `from` | number | No | Hora de inicio en milisegundos de época |
| `to` | number | No | Hora de finalización en milisegundos de época |
-| `dashboardUid` | string | No | Filtrar por UID del panel |
-| `panelId` | number | No | Filtrar por ID del panel |
+| `dashboardUid` | string | Sí | UID del panel de control para consultar anotaciones |
+| `panelId` | number | No | Filtrar por ID de panel |
| `tags` | string | No | Lista de etiquetas separadas por comas para filtrar |
| `type` | string | No | Filtrar por tipo \(alerta o anotación\) |
| `limit` | number | No | Número máximo de anotaciones a devolver |
@@ -487,6 +487,16 @@ Crear una nueva carpeta en Grafana
| `uid` | string | El UID de la carpeta creada |
| `title` | string | El título de la carpeta creada |
| `url` | string | La ruta URL a la carpeta |
+| `hasAcl` | boolean | Si la carpeta tiene permisos ACL personalizados |
+| `canSave` | boolean | Si el usuario actual puede guardar la carpeta |
+| `canEdit` | boolean | Si el usuario actual puede editar la carpeta |
+| `canAdmin` | boolean | Si el usuario actual tiene derechos de administrador en la carpeta |
+| `canDelete` | boolean | Si el usuario actual puede eliminar la carpeta |
+| `createdBy` | string | Nombre de usuario de quien creó la carpeta |
+| `created` | string | Marca de tiempo cuando se creó la carpeta |
+| `updatedBy` | string | Nombre de usuario de quien actualizó por última vez la carpeta |
+| `updated` | string | Marca de tiempo cuando se actualizó por última vez la carpeta |
+| `version` | number | Número de versión de la carpeta |
## Notas
diff --git a/apps/docs/content/docs/es/tools/spotify.mdx b/apps/docs/content/docs/es/tools/spotify.mdx
new file mode 100644
index 0000000000..ab1d0693fd
--- /dev/null
+++ b/apps/docs/content/docs/es/tools/spotify.mdx
@@ -0,0 +1,1453 @@
+---
+title: Spotify
+description: Busca música, gestiona listas de reproducción, controla la
+ reproducción y accede a tu biblioteca
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+## Instrucciones de uso
+
+Integra Spotify en tu flujo de trabajo. Busca canciones, álbumes, artistas y listas de reproducción. Gestiona listas de reproducción, accede a tu biblioteca, controla la reproducción, explora podcasts y audiolibros.
+
+## Herramientas
+
+### `spotify_search`
+
+Busca canciones, álbumes, artistas o listas de reproducción en Spotify. Devuelve resultados coincidentes basados en la consulta.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `query` | string | Sí | Consulta de búsqueda \(p. ej., "Bohemian Rhapsody", "artist:Queen", "genre:rock"\) |
+| `type` | string | No | Tipo de resultados: track, album, artist, playlist, o separados por comas \(p. ej., "track,artist"\) |
+| `limit` | number | No | Número máximo de resultados a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer resultado a devolver para paginación |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para filtrar resultados \(p. ej., "US", "GB"\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Lista de canciones coincidentes |
+
+### `spotify_get_track`
+
+Obtén información detallada sobre una canción específica en Spotify mediante su ID.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `trackId` | string | Sí | El ID de Spotify de la canción |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para disponibilidad de la canción |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID de pista de Spotify |
+| `name` | string | Nombre de la pista |
+| `artists` | array | Lista de artistas |
+| `album` | object | Información del álbum |
+| `duration_ms` | number | Duración de la pista en milisegundos |
+| `explicit` | boolean | Si la pista tiene contenido explícito |
+| `popularity` | number | Puntuación de popularidad \(0-100\) |
+| `preview_url` | string | URL para vista previa de 30 segundos |
+| `external_url` | string | URL de Spotify |
+| `uri` | string | URI de Spotify para la pista |
+
+### `spotify_get_tracks`
+
+Obtén información detallada sobre múltiples pistas en Spotify por sus IDs (hasta 50).
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Sí | Lista de IDs de pistas de Spotify separadas por comas \(máx. 50\) |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para disponibilidad de pistas |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Lista de pistas |
+
+### `spotify_get_album`
+
+Obtén información detallada sobre un álbum en Spotify por su ID, incluyendo el listado de pistas.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | Sí | El ID de Spotify del álbum |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para disponibilidad de pistas |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID del álbum de Spotify |
+| `name` | string | Nombre del álbum |
+| `artists` | array | Lista de artistas |
+| `album_type` | string | Tipo de álbum \(álbum, sencillo, compilación\) |
+| `total_tracks` | number | Número total de pistas |
+| `release_date` | string | Fecha de lanzamiento |
+| `label` | string | Sello discográfico |
+| `popularity` | number | Puntuación de popularidad \(0-100\) |
+| `genres` | array | Lista de géneros |
+| `image_url` | string | URL de la imagen de portada del álbum |
+| `tracks` | array | Lista de pistas del álbum |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_albums`
+
+Obtener detalles de múltiples álbumes por sus IDs.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Sí | IDs de álbumes separados por comas \(máx. 20\) |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `albums` | json | Lista de álbumes |
+
+### `spotify_get_album_tracks`
+
+Obtener las pistas de un álbum.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | Sí | El ID del álbum de Spotify |
+| `limit` | number | No | Número de pistas a devolver \(1-50\) |
+| `offset` | number | No | Índice de la primera pista a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | json | Lista de pistas |
+| `total` | number | Número total de pistas |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_get_saved_albums`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de álbumes a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer álbum a devolver |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `albums` | json | Lista de álbumes guardados |
+| `total` | number | Total de álbumes guardados |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_save_albums`
+
+Guardar álbumes para el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Sí | IDs de álbumes separados por comas \(máx. 20\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los álbumes fueron guardados |
+
+### `spotify_remove_saved_albums`
+
+Eliminar álbumes del usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Sí | IDs de álbumes separados por comas \(máx. 20\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si los álbumes fueron eliminados |
+
+### `spotify_check_saved_albums`
+
+Comprobar si los álbumes están guardados en la biblioteca.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Sí | IDs de álbumes separados por comas \(máximo 20\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada álbum |
+
+### `spotify_get_artist`
+
+Obtener información detallada sobre un artista en Spotify mediante su ID.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Sí | El ID de Spotify del artista |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID del artista en Spotify |
+| `name` | string | Nombre del artista |
+| `genres` | array | Lista de géneros asociados con el artista |
+| `popularity` | number | Puntuación de popularidad \(0-100\) |
+| `followers` | number | Número de seguidores |
+| `image_url` | string | URL de la imagen del artista |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_artists`
+
+Obtener detalles de múltiples artistas mediante sus IDs.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Sí | IDs de artistas separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `artists` | json | Lista de artistas |
+
+### `spotify_get_artist_albums`
+
+Obtener álbumes de un artista en Spotify. Puede filtrar por tipo de álbum.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Sí | El ID de Spotify del artista |
+| `include_groups` | string | No | Filtrar por tipo de álbum: album, single, appears_on, compilation \(separados por comas\) |
+| `limit` | number | No | Número máximo de álbumes a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer álbum a devolver |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `albums` | array | Artista |
+
+### `spotify_get_artist_top_tracks`
+
+Obtener las 10 canciones más populares de un artista en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Sí | El ID de Spotify del artista |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 \(obligatorio para este endpoint\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Artista |
+
+### `spotify_follow_artists`
+
+Seguir a uno o más artistas.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Sí | IDs de artistas separados por comas para seguir \(máx. 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los artistas fueron seguidos con éxito |
+
+### `spotify_unfollow_artists`
+
+Dejar de seguir a uno o más artistas.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Sí | IDs de artistas separados por comas para dejar de seguir \(máx. 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si se dejó de seguir a los artistas con éxito |
+
+### `spotify_get_followed_artists`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de artistas a devolver \(1-50\) |
+| `after` | string | No | Cursor para paginación \(último ID de artista de la solicitud anterior\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `artists` | json | Lista de artistas seguidos |
+| `total` | number | Número total de artistas seguidos |
+| `next` | string | Cursor para la siguiente página |
+
+### `spotify_check_following`
+
+Comprobar si el usuario sigue a artistas o usuarios.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `type` | string | Sí | Tipo a comprobar: "artist" o "user" |
+| `ids` | string | Sí | IDs de artistas o usuarios separados por comas \(máx. 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada ID |
+
+### `spotify_get_show`
+
+Obtener detalles de un podcast.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | Sí | El ID del show de Spotify |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID del show |
+| `name` | string | Nombre del show |
+| `description` | string | Descripción del show |
+| `publisher` | string | Nombre del editor |
+| `total_episodes` | number | Total de episodios |
+| `explicit` | boolean | Contiene contenido explícito |
+| `languages` | json | Idiomas |
+| `image_url` | string | URL de la imagen de portada |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_shows`
+
+Obtener detalles de múltiples podcasts.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Sí | IDs de shows separados por comas \(máx. 50\) |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `shows` | json | Lista de shows |
+
+### `spotify_get_show_episodes`
+
+Obtener episodios de un programa de podcast.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | Sí | El ID del programa de Spotify |
+| `limit` | number | No | Número de episodios a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer episodio a devolver |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `episodes` | json | Lista de episodios |
+| `total` | number | Total de episodios |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_get_saved_shows`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de programas a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer programa a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `shows` | json | Lista de programas guardados |
+| `total` | number | Total de programas guardados |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_save_shows`
+
+Guardar programas de podcast para el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Sí | IDs de programas separados por comas \(máx. 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los programas fueron guardados |
+
+### `spotify_remove_saved_shows`
+
+Eliminar programas de podcast del usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Sí | IDs de programas separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los programas fueron eliminados |
+
+### `spotify_check_saved_shows`
+
+Comprobar si los programas están guardados en la biblioteca.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Sí | IDs de programas separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada programa |
+
+### `spotify_get_episode`
+
+Obtener detalles de un episodio de podcast.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `episodeId` | string | Sí | El ID del episodio de Spotify |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID del episodio |
+| `name` | string | Nombre del episodio |
+| `description` | string | Descripción del episodio |
+| `duration_ms` | number | Duración en ms |
+| `release_date` | string | Fecha de lanzamiento |
+| `explicit` | boolean | Contiene contenido explícito |
+| `show` | json | Información del programa principal |
+| `image_url` | string | URL de la imagen de portada |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_episodes`
+
+Obtener detalles de múltiples episodios de podcast.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Sí | IDs de episodios separados por comas (máx. 50) |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `episodes` | json | Lista de episodios |
+
+### `spotify_get_saved_episodes`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de episodios a devolver (1-50) |
+| `offset` | number | No | Índice del primer episodio a devolver |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `episodes` | json | Lista de episodios guardados |
+| `total` | number | Total de episodios guardados |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_save_episodes`
+
+Guardar episodios de podcast para el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Sí | IDs de episodios separados por comas (máx. 50) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los episodios fueron guardados |
+
+### `spotify_remove_saved_episodes`
+
+Eliminar episodios de podcast del usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Sí | IDs de episodios separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si los episodios fueron eliminados |
+
+### `spotify_check_saved_episodes`
+
+Comprobar si los episodios están guardados en la biblioteca.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Sí | IDs de episodios separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada episodio |
+
+### `spotify_get_audiobook`
+
+Obtener detalles de un audiolibro.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | Sí | El ID del audiolibro de Spotify |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID del audiolibro |
+| `name` | string | Nombre del audiolibro |
+| `authors` | json | Autores |
+| `narrators` | json | Narradores |
+| `publisher` | string | Editorial |
+| `description` | string | Descripción |
+| `total_chapters` | number | Total de capítulos |
+| `languages` | json | Idiomas |
+| `image_url` | string | URL de la imagen de portada |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_audiobooks`
+
+Obtener detalles de múltiples audiolibros.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Sí | IDs de audiolibros separados por comas \(máx. 50\) |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Lista de audiolibros |
+
+### `spotify_get_audiobook_chapters`
+
+Obtener capítulos de un audiolibro.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | Sí | El ID del audiolibro de Spotify |
+| `limit` | number | No | Número de capítulos a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer capítulo a devolver |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `chapters` | json | Lista de capítulos |
+| `total` | number | Total de capítulos |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_get_saved_audiobooks`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de audiolibros a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer audiolibro a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Lista de audiolibros guardados |
+| `total` | number | Total de audiolibros guardados |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_save_audiobooks`
+
+Guardar audiolibros para el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Sí | IDs de audiolibros separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los audiolibros fueron guardados |
+
+### `spotify_remove_saved_audiobooks`
+
+Eliminar audiolibros del usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Sí | IDs de audiolibros separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si los audiolibros fueron eliminados |
+
+### `spotify_check_saved_audiobooks`
+
+Comprobar si los audiolibros están guardados en la biblioteca.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Sí | IDs de audiolibros separados por comas \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada audiolibro |
+
+### `spotify_get_playlist`
+
+Obtener información detallada sobre una lista de reproducción en Spotify por su ID.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de Spotify de la lista de reproducción |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para la disponibilidad de pistas |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID de la lista de reproducción de Spotify |
+| `name` | string | Nombre de la lista de reproducción |
+| `description` | string | Descripción de la lista de reproducción |
+| `public` | boolean | Si la lista de reproducción es pública |
+| `collaborative` | boolean | Si la lista de reproducción es colaborativa |
+| `owner` | object | Información del propietario de la lista de reproducción |
+| `image_url` | string | URL de la imagen de portada de la lista de reproducción |
+| `total_tracks` | number | Número total de pistas |
+| `snapshot_id` | string | ID de instantánea de la lista de reproducción para control de versiones |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_playlist_tracks`
+
+Obtener las pistas de una lista de reproducción de Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de Spotify de la lista de reproducción |
+| `limit` | number | No | Número máximo de pistas a devolver \(1-100\) |
+| `offset` | number | No | Índice de la primera pista a devolver |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 para la disponibilidad de pistas |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Lista de pistas en la lista de reproducción |
+
+### `spotify_get_playlist_cover`
+
+Obtener una lista de reproducción
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `images` | json | Lista de imágenes de portada |
+
+### `spotify_get_user_playlists`
+
+Obtener el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número máximo de listas de reproducción a devolver \(1-50\) |
+| `offset` | number | No | Índice de la primera lista de reproducción a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `playlists` | array | Usuario |
+
+### `spotify_create_playlist`
+
+Crear una nueva lista de reproducción para el usuario actual en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `name` | string | Sí | Nombre para la nueva lista de reproducción |
+| `description` | string | No | Descripción para la lista de reproducción |
+| `public` | boolean | No | Si la lista de reproducción debe ser pública |
+| `collaborative` | boolean | No | Si la lista de reproducción debe ser colaborativa \(requiere que public sea false\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID de la lista de reproducción de Spotify |
+| `name` | string | Nombre de la lista de reproducción |
+| `description` | string | Descripción de la lista de reproducción |
+| `public` | boolean | Si la lista de reproducción es pública |
+| `collaborative` | boolean | Si es colaborativa |
+| `snapshot_id` | string | ID de instantánea de la lista de reproducción |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_update_playlist`
+
+Actualizar una lista de reproducción
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `name` | string | No | Nuevo nombre para la lista de reproducción |
+| `description` | string | No | Nueva descripción para la lista de reproducción |
+| `public` | boolean | No | Si la lista de reproducción debe ser pública |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si la actualización tuvo éxito |
+
+### `spotify_add_playlist_cover`
+
+Subir una imagen de portada personalizada para una lista de reproducción. La imagen debe ser JPEG y pesar menos de 256KB.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `imageBase64` | string | Sí | Imagen JPEG codificada en Base64 \(máx. 256KB\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si la subida tuvo éxito |
+
+### `spotify_add_tracks_to_playlist`
+
+Añadir una o más pistas a una lista de reproducción de Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de Spotify de la lista de reproducción |
+| `uris` | string | Sí | URIs de Spotify separadas por comas \(p. ej., "spotify:track:xxx,spotify:track:yyy"\) |
+| `position` | number | No | Posición para insertar pistas \(base 0\). Si se omite, las pistas se añaden al final. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nuevo ID de instantánea de la lista de reproducción después de la modificación |
+
+### `spotify_remove_tracks_from_playlist`
+
+Eliminar una o más pistas de una lista de reproducción de Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de Spotify de la lista de reproducción |
+| `uris` | string | Sí | URIs de Spotify separadas por comas para eliminar \(p. ej., "spotify:track:xxx,spotify:track:yyy"\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nuevo ID de instantánea de la lista de reproducción después de la modificación |
+
+### `spotify_reorder_playlist_items`
+
+Mover pistas a una posición diferente en una lista de reproducción.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `range_start` | number | Sí | Índice inicial de los elementos a reordenar |
+| `insert_before` | number | Sí | Índice donde insertar los elementos |
+| `range_length` | number | No | Número de elementos a reordenar |
+| `snapshot_id` | string | No | ID de instantánea de la lista de reproducción para control de concurrencia |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nuevo ID de instantánea de la lista de reproducción |
+
+### `spotify_replace_playlist_items`
+
+Reemplazar todos los elementos en una lista de reproducción con nuevas pistas.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `uris` | string | Sí | URIs de Spotify separados por comas \(máximo 100\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nuevo ID de instantánea de la lista de reproducción |
+
+### `spotify_follow_playlist`
+
+Seguir (guardar) una lista de reproducción.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `public` | boolean | No | Si la lista de reproducción estará en listas de reproducción públicas |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si el seguimiento tuvo éxito |
+
+### `spotify_unfollow_playlist`
+
+Dejar de seguir (eliminar) una lista de reproducción.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si dejar de seguir tuvo éxito |
+
+### `spotify_check_playlist_followers`
+
+Comprobar si los usuarios siguen una lista de reproducción.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Sí | El ID de la lista de reproducción de Spotify |
+| `userIds` | string | Sí | IDs de usuario separados por comas para verificar \(máximo 5\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de booleanos para cada usuario |
+
+### `spotify_get_current_user`
+
+Obtener el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID de usuario de Spotify |
+| `display_name` | string | Nombre visible |
+| `email` | string | Dirección de correo electrónico |
+| `country` | string | Código de país |
+| `product` | string | Nivel de suscripción \(gratuito, premium\) |
+| `followers` | number | Número de seguidores |
+| `image_url` | string | URL de imagen de perfil |
+| `external_url` | string | URL del perfil de Spotify |
+
+### `spotify_get_user_profile`
+
+Obtener un usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `userId` | string | Sí | El ID de usuario de Spotify |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `id` | string | ID de usuario |
+| `display_name` | string | Nombre visible |
+| `followers` | number | Número de seguidores |
+| `image_url` | string | URL de imagen de perfil |
+| `external_url` | string | URL de Spotify |
+
+### `spotify_get_top_tracks`
+
+Obtener el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | No | Rango de tiempo: short_term \(~4 semanas\), medium_term \(~6 meses\), long_term \(años\) |
+| `limit` | number | No | Número de pistas a devolver \(1-50\) |
+| `offset` | number | No | Índice de la primera pista a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Usuario |
+
+### `spotify_get_top_artists`
+
+Obtener el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | No | Rango de tiempo: short_term \(~4 semanas\), medium_term \(~6 meses\), long_term \(años\) |
+| `limit` | number | No | Número de artistas a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer artista a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `artists` | array | Usuario |
+
+### `spotify_get_saved_tracks`
+
+Obtener el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de pistas a devolver \(1-50\) |
+| `offset` | number | No | Índice de la primera pista a devolver |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `tracks` | array | Usuario |
+
+### `spotify_save_tracks`
+
+Guardar pistas para el usuario actual
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Sí | IDs de pistas de Spotify separados por comas para guardar \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si las pistas se guardaron correctamente |
+
+### `spotify_remove_saved_tracks`
+
+Eliminar pistas del usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Sí | IDs de pistas separados por comas para eliminar \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si las pistas se eliminaron correctamente |
+
+### `spotify_check_saved_tracks`
+
+Comprobar si una o más pistas están guardadas en el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Sí | IDs de pistas separados por comas para comprobar \(máximo 50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `results` | json | Array de IDs de pistas con estado de guardado |
+| `all_saved` | boolean | Si todas las pistas están guardadas |
+| `none_saved` | boolean | Si ninguna pista está guardada |
+
+### `spotify_get_recently_played`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | No | Número de pistas a devolver \(1-50\) |
+| `after` | number | No | Marca de tiempo Unix en milisegundos. Devuelve elementos después de este cursor. |
+| `before` | number | No | Marca de tiempo Unix en milisegundos. Devuelve elementos antes de este cursor. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `items` | array | Pistas reproducidas recientemente |
+
+### `spotify_get_new_releases`
+
+Obtener una lista de nuevos lanzamientos de álbumes destacados en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | No | Código de país ISO 3166-1 alpha-2 \(p. ej., "US", "GB"\) |
+| `limit` | number | No | Número de lanzamientos a devolver \(1-50\) |
+| `offset` | number | No | Índice del primer lanzamiento a devolver |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `albums` | json | Lista de nuevos lanzamientos |
+| `total` | number | Número total de nuevos lanzamientos |
+| `next` | string | URL para la siguiente página |
+
+### `spotify_get_categories`
+
+Obtener una lista de categorías de navegación utilizadas para etiquetar elementos en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | No | Código de país ISO 3166-1 alpha-2 \(p. ej., "US", "GB"\) |
+| `locale` | string | No | Código de localización \(p. ej., "en_US", "es_MX"\) |
+| `limit` | number | No | Número de categorías a devolver \(1-50\) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `categories` | json | Lista de categorías de navegación |
+| `total` | number | Número total de categorías |
+
+### `spotify_get_markets`
+
+Obtener la lista de mercados donde Spotify está disponible.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `markets` | json | Lista de códigos de país ISO |
+
+### `spotify_get_playback_state`
+
+Obtener el estado actual de reproducción incluyendo dispositivo, pista y progreso.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | No | Código de país ISO 3166-1 alpha-2 |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Si la reproducción está activa |
+| `device` | object | Información del dispositivo activo |
+| `progress_ms` | number | Progreso en milisegundos |
+| `currently_playing_type` | string | Tipo de contenido en reproducción |
+| `shuffle_state` | boolean | Si el modo aleatorio está activado |
+| `repeat_state` | string | Modo de repetición (off, track, context) |
+| `track` | object | Pista en reproducción actual |
+
+### `spotify_get_currently_playing`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | No | Código de país ISO para el mercado |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Si la reproducción está activa |
+| `progress_ms` | number | Posición actual en la pista (ms) |
+| `track` | json | Pista reproduciéndose actualmente |
+
+### `spotify_get_devices`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `devices` | array | Dispositivos de reproducción disponibles |
+
+### `spotify_get_queue`
+
+Obtener el usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `currently_playing` | json | Pista reproduciéndose actualmente |
+| `queue` | json | Próximas pistas en la cola |
+
+### `spotify_play`
+
+Iniciar o reanudar la reproducción en Spotify. Puede reproducir pistas, álbumes o listas de reproducción específicas.
+
+#### Entrada
+
+| Parámetro | Tipo | Requerido | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | No | ID del dispositivo para reproducir. Si no se proporciona, reproduce en el dispositivo activo. |
+| `context_uri` | string | No | URI de Spotify del álbum, artista o lista de reproducción a reproducir (p. ej., "spotify:album:xxx") |
+| `uris` | string | No | URIs de pistas separadas por comas para reproducir (p. ej., "spotify:track:xxx,spotify:track:yyy") |
+| `offset` | number | No | Posición en el contexto para comenzar a reproducir (índice basado en 0) |
+| `position_ms` | number | No | Posición en la pista para comenzar (en milisegundos) |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si la reproducción comenzó correctamente |
+
+### `spotify_pause`
+
+Pausar la reproducción en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | No | ID del dispositivo para pausar. Si no se proporciona, pausa el dispositivo activo. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si la reproducción fue pausada |
+
+### `spotify_skip_next`
+
+Saltar a la siguiente pista en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | No | ID del dispositivo. Si no se proporciona, usa el dispositivo activo. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si el salto fue exitoso |
+
+### `spotify_skip_previous`
+
+Saltar a la pista anterior en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | No | ID del dispositivo. Si no se proporciona, usa el dispositivo activo. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si el salto fue exitoso |
+
+### `spotify_seek`
+
+Buscar una posición en la pista que se está reproduciendo actualmente.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `position_ms` | number | Sí | Posición en milisegundos a la que desplazarse |
+| `device_id` | string | No | ID del dispositivo objetivo |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si el desplazamiento fue exitoso |
+
+### `spotify_add_to_queue`
+
+Añadir una pista al usuario
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `uri` | string | Sí | URI de Spotify de la pista a añadir \(p. ej., "spotify:track:xxx"\) |
+| `device_id` | string | No | ID del dispositivo. Si no se proporciona, usa el dispositivo activo. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si la pista fue añadida a la cola |
+
+### `spotify_set_volume`
+
+Establecer el volumen de reproducción en Spotify.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `volume_percent` | number | Sí | Nivel de volumen \(0 a 100\) |
+| `device_id` | string | No | ID del dispositivo. Si no se proporciona, usa el dispositivo activo. |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si el volumen fue establecido |
+
+### `spotify_set_repeat`
+
+Establecer el modo de repetición para la reproducción.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `state` | string | Sí | Modo de repetición: "off", "track", o "context" |
+| `device_id` | string | No | ID del dispositivo objetivo |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si el modo de repetición se estableció correctamente |
+
+### `spotify_set_shuffle`
+
+Activar o desactivar la reproducción aleatoria.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `state` | boolean | Sí | true para activar la reproducción aleatoria, false para desactivarla |
+| `device_id` | string | No | ID del dispositivo objetivo |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si la reproducción aleatoria se estableció correctamente |
+
+### `spotify_transfer_playback`
+
+Transferir la reproducción a un dispositivo diferente.
+
+#### Entrada
+
+| Parámetro | Tipo | Obligatorio | Descripción |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Sí | ID del dispositivo al que transferir la reproducción |
+| `play` | boolean | No | Indica si se debe iniciar la reproducción en el nuevo dispositivo |
+
+#### Salida
+
+| Parámetro | Tipo | Descripción |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indica si la transferencia fue exitosa |
+
+## Notas
+
+- Categoría: `tools`
+- Tipo: `spotify`
diff --git a/apps/docs/content/docs/es/tools/zep.mdx b/apps/docs/content/docs/es/tools/zep.mdx
index 9b9e208361..e0ea11b2fa 100644
--- a/apps/docs/content/docs/es/tools/zep.mdx
+++ b/apps/docs/content/docs/es/tools/zep.mdx
@@ -94,10 +94,7 @@ Recuperar el contexto del usuario de un hilo con modo resumen o básico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
-| `context` | string | La cadena de contexto \(resumen o básico\) |
-| `facts` | array | Hechos extraídos |
-| `entities` | array | Entidades extraídas |
-| `summary` | string | Resumen de la conversación |
+| `context` | string | La cadena de contexto \(modo resumen o básico\) |
### `zep_get_messages`
@@ -137,9 +134,9 @@ Añadir mensajes a un hilo existente
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
-| `context` | string | Contexto actualizado después de añadir mensajes |
-| `messageIds` | array | Array de UUIDs de mensajes añadidos |
| `threadId` | string | El ID del hilo |
+| `added` | boolean | Si los mensajes se agregaron correctamente |
+| `messageIds` | array | Array de UUIDs de mensajes agregados |
### `zep_add_user`
@@ -209,7 +206,7 @@ Listar todos los hilos de conversación para un usuario específico
| Parámetro | Tipo | Descripción |
| --------- | ---- | ----------- |
| `threads` | array | Array de objetos de hilo para este usuario |
-| `userId` | string | El ID del usuario |
+| `totalCount` | number | Número total de hilos devueltos |
## Notas
diff --git a/apps/docs/content/docs/fr/tools/grafana.mdx b/apps/docs/content/docs/fr/tools/grafana.mdx
index 04a8bd0176..c8e23b4510 100644
--- a/apps/docs/content/docs/fr/tools/grafana.mdx
+++ b/apps/docs/content/docs/fr/tools/grafana.mdx
@@ -315,13 +315,13 @@ Créer une annotation sur un tableau de bord ou comme annotation globale
#### Entrée
| Paramètre | Type | Obligatoire | Description |
-| --------- | ---- | ---------- | ----------- |
+| --------- | ---- | -------- | ----------- |
| `apiKey` | chaîne | Oui | Jeton de compte de service Grafana |
| `baseUrl` | chaîne | Oui | URL de l'instance Grafana \(ex., https://your-grafana.com\) |
-| `organizationId` | chaîne | Non | ID d'organisation pour les instances Grafana multi-organisations |
+| `organizationId` | chaîne | Non | ID de l'organisation pour les instances Grafana multi-organisations |
| `text` | chaîne | Oui | Le contenu textuel de l'annotation |
-| `tags` | chaîne | Non | Liste de tags séparés par des virgules |
-| `dashboardUid` | chaîne | Non | UID du tableau de bord auquel ajouter l'annotation \(facultatif pour les annotations globales\) |
+| `tags` | chaîne | Non | Liste d'étiquettes séparées par des virgules |
+| `dashboardUid` | chaîne | Oui | UID du tableau de bord auquel ajouter l'annotation |
| `panelId` | nombre | Non | ID du panneau auquel ajouter l'annotation |
| `time` | nombre | Non | Heure de début en millisecondes d'époque \(par défaut : maintenant\) |
| `timeEnd` | nombre | Non | Heure de fin en millisecondes d'époque \(pour les annotations de plage\) |
@@ -340,15 +340,15 @@ Interroger les annotations par plage de temps, tableau de bord ou tags
#### Entrée
| Paramètre | Type | Obligatoire | Description |
-| --------- | ---- | ---------- | ----------- |
+| --------- | ---- | -------- | ----------- |
| `apiKey` | chaîne | Oui | Jeton de compte de service Grafana |
| `baseUrl` | chaîne | Oui | URL de l'instance Grafana \(ex., https://your-grafana.com\) |
-| `organizationId` | chaîne | Non | ID d'organisation pour les instances Grafana multi-organisations |
+| `organizationId` | chaîne | Non | ID de l'organisation pour les instances Grafana multi-organisations |
| `from` | nombre | Non | Heure de début en millisecondes d'époque |
| `to` | nombre | Non | Heure de fin en millisecondes d'époque |
-| `dashboardUid` | chaîne | Non | Filtrer par UID de tableau de bord |
+| `dashboardUid` | chaîne | Oui | UID du tableau de bord pour interroger les annotations |
| `panelId` | nombre | Non | Filtrer par ID de panneau |
-| `tags` | chaîne | Non | Liste de tags séparés par des virgules pour filtrer |
+| `tags` | chaîne | Non | Liste d'étiquettes séparées par des virgules pour filtrer |
| `type` | chaîne | Non | Filtrer par type \(alerte ou annotation\) |
| `limit` | nombre | Non | Nombre maximum d'annotations à retourner |
@@ -483,10 +483,20 @@ Créer un nouveau dossier dans Grafana
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
-| `id` | nombre | L'ID numérique du dossier créé |
-| `uid` | chaîne | L'UID du dossier créé |
-| `title` | chaîne | Le titre du dossier créé |
-| `url` | chaîne | Le chemin URL vers le dossier |
+| `id` | number | L'identifiant numérique du dossier créé |
+| `uid` | string | L'UID du dossier créé |
+| `title` | string | Le titre du dossier créé |
+| `url` | string | Le chemin URL vers le dossier |
+| `hasAcl` | boolean | Si le dossier possède des permissions ACL personnalisées |
+| `canSave` | boolean | Si l'utilisateur actuel peut enregistrer le dossier |
+| `canEdit` | boolean | Si l'utilisateur actuel peut modifier le dossier |
+| `canAdmin` | boolean | Si l'utilisateur actuel a des droits d'administrateur sur le dossier |
+| `canDelete` | boolean | Si l'utilisateur actuel peut supprimer le dossier |
+| `createdBy` | string | Nom d'utilisateur de la personne qui a créé le dossier |
+| `created` | string | Horodatage de la création du dossier |
+| `updatedBy` | string | Nom d'utilisateur de la personne qui a dernièrement mis à jour le dossier |
+| `updated` | string | Horodatage de la dernière mise à jour du dossier |
+| `version` | number | Numéro de version du dossier |
## Notes
diff --git a/apps/docs/content/docs/fr/tools/spotify.mdx b/apps/docs/content/docs/fr/tools/spotify.mdx
new file mode 100644
index 0000000000..c74a3dba14
--- /dev/null
+++ b/apps/docs/content/docs/fr/tools/spotify.mdx
@@ -0,0 +1,1453 @@
+---
+title: Spotify
+description: Recherchez de la musique, gérez des playlists, contrôlez la lecture
+ et accédez à votre bibliothèque
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+## Instructions d'utilisation
+
+Intégrez Spotify dans votre flux de travail. Recherchez des morceaux, albums, artistes et playlists. Gérez des playlists, accédez à votre bibliothèque, contrôlez la lecture, parcourez les podcasts et les livres audio.
+
+## Outils
+
+### `spotify_search`
+
+Recherchez des morceaux, albums, artistes ou playlists sur Spotify. Renvoie les résultats correspondants basés sur la requête.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `query` | string | Oui | Requête de recherche \(ex. : "Bohemian Rhapsody", "artist:Queen", "genre:rock"\) |
+| `type` | string | Non | Type de résultats : track, album, artist, playlist, ou séparés par virgules \(ex. : "track,artist"\) |
+| `limit` | number | Non | Nombre maximum de résultats à renvoyer \(1-50\) |
+| `offset` | number | Non | Index du premier résultat à renvoyer pour la pagination |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 pour filtrer les résultats \(ex. : "US", "GB"\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste des morceaux correspondants |
+
+### `spotify_get_track`
+
+Obtenez des informations détaillées sur un morceau spécifique sur Spotify par son ID.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `trackId` | string | Oui | L'ID Spotify du morceau |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 pour la disponibilité du morceau |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID de piste Spotify |
+| `name` | string | Nom de la piste |
+| `artists` | array | Liste des artistes |
+| `album` | object | Informations sur l'album |
+| `duration_ms` | number | Durée de la piste en millisecondes |
+| `explicit` | boolean | Si la piste contient du contenu explicite |
+| `popularity` | number | Score de popularité (0-100) |
+| `preview_url` | string | URL vers un aperçu de 30 secondes |
+| `external_url` | string | URL Spotify |
+| `uri` | string | URI Spotify pour la piste |
+
+### `spotify_get_tracks`
+
+Obtenir des informations détaillées sur plusieurs pistes Spotify par leurs identifiants (jusqu'à 50).
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Oui | Liste d'identifiants de pistes Spotify séparés par des virgules (max 50) |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 pour la disponibilité des pistes |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste des pistes |
+
+### `spotify_get_album`
+
+Obtenir des informations détaillées sur un album Spotify par son identifiant, y compris la liste des pistes.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | Oui | L'identifiant Spotify de l'album |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 pour la disponibilité des pistes |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID d'album Spotify |
+| `name` | string | Nom de l'album |
+| `artists` | array | Liste des artistes |
+| `album_type` | string | Type d'album \(album, single, compilation\) |
+| `total_tracks` | number | Nombre total de pistes |
+| `release_date` | string | Date de sortie |
+| `label` | string | Maison de disques |
+| `popularity` | number | Score de popularité \(0-100\) |
+| `genres` | array | Liste des genres |
+| `image_url` | string | URL de l'image de couverture de l'album |
+| `tracks` | array | Liste des pistes de l'album |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_albums`
+
+Obtenir les détails de plusieurs albums par leurs identifiants.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `albumIds` | string | Oui | Identifiants d'albums séparés par des virgules \(max 20\) |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste des albums |
+
+### `spotify_get_album_tracks`
+
+Obtenir les pistes d'un album.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `albumId` | string | Oui | L'identifiant de l'album Spotify |
+| `limit` | number | Non | Nombre de pistes à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première piste à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | json | Liste des pistes |
+| `total` | number | Nombre total de pistes |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_get_saved_albums`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Non | Nombre d'albums à retourner \(1-50\) |
+| `offset` | number | Non | Index du premier album à retourner |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste des albums sauvegardés |
+| `total` | number | Total des albums sauvegardés |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_save_albums`
+
+Sauvegarder des albums pour l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Oui | IDs d'albums séparés par des virgules \(max 20\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si les albums ont été sauvegardés |
+
+### `spotify_remove_saved_albums`
+
+Supprimer des albums de l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Oui | IDs d'albums séparés par des virgules \(max 20\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les albums ont été supprimés |
+
+### `spotify_check_saved_albums`
+
+Vérifier si les albums sont enregistrés dans la bibliothèque.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | Oui | IDs d'albums séparés par des virgules (max 20) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque album |
+
+### `spotify_get_artist`
+
+Obtenir des informations détaillées sur un artiste Spotify à partir de son ID.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Oui | L'ID Spotify de l'artiste |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID de l'artiste Spotify |
+| `name` | string | Nom de l'artiste |
+| `genres` | array | Liste des genres associés à l'artiste |
+| `popularity` | number | Score de popularité (0-100) |
+| `followers` | number | Nombre d'abonnés |
+| `image_url` | string | URL de l'image de l'artiste |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_artists`
+
+Obtenir les détails de plusieurs artistes à partir de leurs IDs.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | Oui | IDs d'artistes séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `artists` | json | Liste des artistes |
+
+### `spotify_get_artist_albums`
+
+Obtenir les albums d'un artiste sur Spotify. Peut filtrer par type d'album.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Oui | L'identifiant Spotify de l'artiste |
+| `include_groups` | string | Non | Filtrer par type d'album : album, single, appears_on, compilation \(séparés par des virgules\) |
+| `limit` | number | Non | Nombre maximum d'albums à retourner \(1-50\) |
+| `offset` | number | Non | Index du premier album à retourner |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `albums` | array | Artiste |
+
+### `spotify_get_artist_top_tracks`
+
+Obtenir les 10 titres les plus populaires d'un artiste sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | Oui | L'identifiant Spotify de l'artiste |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 \(requis pour ce point de terminaison\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Artiste |
+
+### `spotify_follow_artists`
+
+Suivre un ou plusieurs artistes.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `artistIds` | string | Oui | IDs d'artistes séparés par des virgules à suivre (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les artistes ont été suivis avec succès |
+
+### `spotify_unfollow_artists`
+
+Ne plus suivre un ou plusieurs artistes.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `artistIds` | string | Oui | IDs d'artistes séparés par des virgules à ne plus suivre (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les artistes ont été retirés des suivis avec succès |
+
+### `spotify_get_followed_artists`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `limit` | number | Non | Nombre d'artistes à retourner (1-50) |
+| `after` | string | Non | Curseur pour la pagination (dernier ID d'artiste de la requête précédente) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `artists` | json | Liste des artistes suivis |
+| `total` | number | Nombre total d'artistes suivis |
+| `next` | string | Curseur pour la page suivante |
+
+### `spotify_check_following`
+
+Vérifier si l'utilisateur suit des artistes ou d'autres utilisateurs.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `type` | string | Oui | Type à vérifier : "artist" ou "user" |
+| `ids` | string | Oui | IDs d'artistes ou d'utilisateurs séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque ID |
+
+### `spotify_get_show`
+
+Obtenir les détails d'une émission de podcast.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | Oui | L'ID de l'émission Spotify |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID de l'émission |
+| `name` | string | Nom de l'émission |
+| `description` | string | Description de l'émission |
+| `publisher` | string | Nom de l'éditeur |
+| `total_episodes` | number | Nombre total d'épisodes |
+| `explicit` | boolean | Contient du contenu explicite |
+| `languages` | json | Langues |
+| `image_url` | string | URL de l'image de couverture |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_shows`
+
+Obtenir les détails de plusieurs émissions de podcast.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Oui | IDs d'émissions séparés par des virgules \(max 50\) |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `shows` | json | Liste des émissions |
+
+### `spotify_get_show_episodes`
+
+Obtenir les épisodes d'une émission de podcast.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `showId` | string | Oui | L'identifiant Spotify de l'émission |
+| `limit` | number | Non | Nombre d'épisodes à retourner \(1-50\) |
+| `offset` | number | Non | Index du premier épisode à retourner |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste des épisodes |
+| `total` | number | Nombre total d'épisodes |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_get_saved_shows`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `limit` | number | Non | Nombre d'émissions à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première émission à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `shows` | json | Liste des émissions enregistrées |
+| `total` | number | Nombre total d'émissions enregistrées |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_save_shows`
+
+Enregistrer des émissions de podcast pour l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `showIds` | string | Oui | Identifiants d'émissions séparés par des virgules \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les émissions ont été enregistrées |
+
+### `spotify_remove_saved_shows`
+
+Supprimer des émissions de podcast de l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Oui | IDs d'émissions séparés par des virgules \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les émissions ont été supprimées |
+
+### `spotify_check_saved_shows`
+
+Vérifier si les émissions sont enregistrées dans la bibliothèque.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | Oui | IDs d'émissions séparés par des virgules \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque émission |
+
+### `spotify_get_episode`
+
+Obtenir les détails d'un épisode de podcast.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `episodeId` | string | Oui | L'ID de l'épisode Spotify |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID de l'épisode |
+| `name` | string | Nom de l'épisode |
+| `description` | string | Description de l'épisode |
+| `duration_ms` | number | Durée en ms |
+| `release_date` | string | Date de sortie |
+| `explicit` | boolean | Contient du contenu explicite |
+| `show` | json | Informations sur l'émission parente |
+| `image_url` | string | URL de l'image de couverture |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_episodes`
+
+Obtenir les détails de plusieurs épisodes de podcast.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `episodeIds` | chaîne | Oui | IDs d'épisodes séparés par des virgules \(max 50\) |
+| `market` | chaîne | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste des épisodes |
+
+### `spotify_get_saved_episodes`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `limit` | nombre | Non | Nombre d'épisodes à retourner \(1-50\) |
+| `offset` | nombre | Non | Index du premier épisode à retourner |
+| `market` | chaîne | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `episodes` | json | Liste des épisodes enregistrés |
+| `total` | nombre | Total des épisodes enregistrés |
+| `next` | chaîne | URL pour la page suivante |
+
+### `spotify_save_episodes`
+
+Enregistrer des épisodes de podcast pour l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `episodeIds` | chaîne | Oui | IDs d'épisodes séparés par des virgules \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | booléen | Si les épisodes ont été enregistrés |
+
+### `spotify_remove_saved_episodes`
+
+Supprimer des épisodes de podcast de l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Oui | IDs d'épisodes séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les épisodes ont été supprimés |
+
+### `spotify_check_saved_episodes`
+
+Vérifier si les épisodes sont enregistrés dans la bibliothèque.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | Oui | IDs d'épisodes séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque épisode |
+
+### `spotify_get_audiobook`
+
+Obtenir les détails d'un livre audio.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | Oui | L'ID du livre audio Spotify |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID du livre audio |
+| `name` | string | Nom du livre audio |
+| `authors` | json | Auteurs |
+| `narrators` | json | Narrateurs |
+| `publisher` | string | Éditeur |
+| `description` | string | Description |
+| `total_chapters` | number | Nombre total de chapitres |
+| `languages` | json | Langues |
+| `image_url` | string | URL de l'image de couverture |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_audiobooks`
+
+Obtenir les détails de plusieurs livres audio.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `audiobookIds` | chaîne | Oui | IDs de livres audio séparés par des virgules \(max 50\) |
+| `market` | chaîne | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Liste des livres audio |
+
+### `spotify_get_audiobook_chapters`
+
+Obtenir les chapitres d'un livre audio.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `audiobookId` | chaîne | Oui | L'ID Spotify du livre audio |
+| `limit` | nombre | Non | Nombre de chapitres à retourner \(1-50\) |
+| `offset` | nombre | Non | Index du premier chapitre à retourner |
+| `market` | chaîne | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `chapters` | json | Liste des chapitres |
+| `total` | nombre | Total des chapitres |
+| `next` | chaîne | URL pour la page suivante |
+
+### `spotify_get_saved_audiobooks`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `limit` | nombre | Non | Nombre de livres audio à retourner \(1-50\) |
+| `offset` | nombre | Non | Index du premier livre audio à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | Liste des livres audio enregistrés |
+| `total` | number | Nombre total de livres audio enregistrés |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_save_audiobooks`
+
+Enregistrer des livres audio pour l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Oui | IDs de livres audio séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les livres audio ont été enregistrés |
+
+### `spotify_remove_saved_audiobooks`
+
+Supprimer des livres audio de l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Oui | IDs de livres audio séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si les livres audio ont été supprimés |
+
+### `spotify_check_saved_audiobooks`
+
+Vérifier si les livres audio sont enregistrés dans la bibliothèque.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | Oui | IDs de livres audio séparés par des virgules (max 50) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque livre audio |
+
+### `spotify_get_playlist`
+
+Obtenir des informations détaillées sur une playlist Spotify par son ID.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `playlistId` | chaîne | Oui | L'identifiant Spotify de la playlist |
+| `market` | chaîne | Non | Code pays ISO 3166-1 alpha-2 pour la disponibilité des pistes |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | chaîne | Identifiant de la playlist Spotify |
+| `name` | chaîne | Nom de la playlist |
+| `description` | chaîne | Description de la playlist |
+| `public` | booléen | Si la playlist est publique |
+| `collaborative` | booléen | Si la playlist est collaborative |
+| `owner` | objet | Informations sur le propriétaire de la playlist |
+| `image_url` | chaîne | URL de l'image de couverture de la playlist |
+| `total_tracks` | nombre | Nombre total de pistes |
+| `snapshot_id` | chaîne | ID d'instantané de la playlist pour le versionnement |
+| `external_url` | chaîne | URL Spotify |
+
+### `spotify_get_playlist_tracks`
+
+Obtenir les pistes d'une playlist Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `playlistId` | chaîne | Oui | L'identifiant Spotify de la playlist |
+| `limit` | nombre | Non | Nombre maximum de pistes à retourner \(1-100\) |
+| `offset` | nombre | Non | Index de la première piste à retourner |
+| `market` | chaîne | Non | Code pays ISO 3166-1 alpha-2 pour la disponibilité des pistes |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Liste des pistes dans la playlist |
+
+### `spotify_get_playlist_cover`
+
+Obtenir une playlist
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `playlistId` | string | Oui | L'identifiant Spotify de la playlist |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `images` | json | Liste des images de couverture |
+
+### `spotify_get_user_playlists`
+
+Obtenir l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `limit` | number | Non | Nombre maximum de playlists à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première playlist à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `playlists` | array | Utilisateur |
+
+### `spotify_create_playlist`
+
+Créer une nouvelle playlist pour l'utilisateur actuel sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `name` | string | Oui | Nom de la nouvelle playlist |
+| `description` | string | Non | Description de la playlist |
+| `public` | boolean | Non | Si la playlist doit être publique |
+| `collaborative` | boolean | Non | Si la playlist doit être collaborative \(nécessite que public soit défini sur false\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | ID de la playlist Spotify |
+| `name` | string | Nom de la playlist |
+| `description` | string | Description de la playlist |
+| `public` | boolean | Si la playlist est publique |
+| `collaborative` | boolean | Si collaborative |
+| `snapshot_id` | string | ID d'instantané de la playlist |
+| `external_url` | string | URL Spotify |
+
+### `spotify_update_playlist`
+
+Mettre à jour une playlist
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'ID de la playlist Spotify |
+| `name` | string | Non | Nouveau nom pour la playlist |
+| `description` | string | Non | Nouvelle description pour la playlist |
+| `public` | boolean | Non | Si la playlist doit être publique |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si la mise à jour a réussi |
+
+### `spotify_add_playlist_cover`
+
+Télécharger une image de couverture personnalisée pour une playlist. L'image doit être au format JPEG et inférieure à 256 Ko.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'ID de la playlist Spotify |
+| `imageBase64` | string | Oui | Image JPEG encodée en Base64 \(max 256 Ko\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si le téléchargement a réussi |
+
+### `spotify_add_tracks_to_playlist`
+
+Ajouter une ou plusieurs pistes à une playlist Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `playlistId` | string | Oui | L'identifiant Spotify de la playlist |
+| `uris` | string | Oui | URIs Spotify séparées par des virgules \(ex., "spotify:track:xxx,spotify:track:yyy"\) |
+| `position` | number | Non | Position pour insérer les pistes \(à partir de 0\). Si omis, les pistes sont ajoutées à la fin. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nouvel identifiant d'instantané de playlist après modification |
+
+### `spotify_remove_tracks_from_playlist`
+
+Supprimer une ou plusieurs pistes d'une playlist Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `playlistId` | string | Oui | L'identifiant Spotify de la playlist |
+| `uris` | string | Oui | URIs Spotify séparées par des virgules à supprimer \(ex., "spotify:track:xxx,spotify:track:yyy"\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nouvel identifiant d'instantané de playlist après modification |
+
+### `spotify_reorder_playlist_items`
+
+Déplacer des pistes vers une position différente dans une playlist.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `playlistId` | string | Oui | L'identifiant de la playlist Spotify |
+| `range_start` | number | Oui | Index de départ des éléments à réorganiser |
+| `insert_before` | number | Oui | Index avant lequel insérer les éléments |
+| `range_length` | number | Non | Nombre d'éléments à réorganiser |
+| `snapshot_id` | string | Non | Identifiant d'instantané de playlist pour le contrôle de concurrence |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nouvel ID d'instantané de playlist |
+
+### `spotify_replace_playlist_items`
+
+Remplacer tous les éléments d'une playlist par de nouvelles pistes.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'ID de playlist Spotify |
+| `uris` | string | Oui | URIs Spotify séparées par des virgules \(max 100\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | Nouvel ID d'instantané de playlist |
+
+### `spotify_follow_playlist`
+
+Suivre (sauvegarder) une playlist.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'ID de playlist Spotify |
+| `public` | boolean | Non | Si la playlist sera dans les playlists publiques |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si le suivi a réussi |
+
+### `spotify_unfollow_playlist`
+
+Ne plus suivre (désauvegarder) une playlist.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'ID de playlist Spotify |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si le désabonnement a réussi |
+
+### `spotify_check_playlist_followers`
+
+Vérifier si les utilisateurs suivent une playlist.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Oui | L'identifiant de la playlist Spotify |
+| `userIds` | string | Oui | Identifiants d'utilisateurs séparés par des virgules à vérifier \(max 5\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau de booléens pour chaque utilisateur |
+
+### `spotify_get_current_user`
+
+Obtenir l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | Identifiant d'utilisateur Spotify |
+| `display_name` | string | Nom d'affichage |
+| `email` | string | Adresse e-mail |
+| `country` | string | Code pays |
+| `product` | string | Niveau d'abonnement \(gratuit, premium\) |
+| `followers` | number | Nombre d'abonnés |
+| `image_url` | string | URL de l'image de profil |
+| `external_url` | string | URL du profil Spotify |
+
+### `spotify_get_user_profile`
+
+Obtenir un utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `userId` | string | Oui | L'identifiant d'utilisateur Spotify |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `id` | string | Identifiant d'utilisateur |
+| `display_name` | string | Nom d'affichage |
+| `followers` | number | Nombre d'abonnés |
+| `image_url` | string | URL de l'image de profil |
+| `external_url` | string | URL Spotify |
+
+### `spotify_get_top_tracks`
+
+Obtenir l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | Non | Période : short_term \(~4 semaines\), medium_term \(~6 mois\), long_term \(années\) |
+| `limit` | number | Non | Nombre de pistes à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première piste à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Utilisateur |
+
+### `spotify_get_top_artists`
+
+Obtenir l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | Non | Période : short_term \(~4 semaines\), medium_term \(~6 mois\), long_term \(années\) |
+| `limit` | number | Non | Nombre d'artistes à retourner \(1-50\) |
+| `offset` | number | Non | Index du premier artiste à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `artists` | array | Utilisateur |
+
+### `spotify_get_saved_tracks`
+
+Obtenir l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Non | Nombre de pistes à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première piste à retourner |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `tracks` | array | Utilisateur |
+
+### `spotify_save_tracks`
+
+Enregistrer des pistes pour l'utilisateur actuel
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Oui | IDs de pistes Spotify séparés par des virgules à enregistrer \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si les pistes ont été enregistrées avec succès |
+
+### `spotify_remove_saved_tracks`
+
+Supprimer des pistes de l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Oui | IDs de pistes séparés par des virgules à supprimer \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Si les pistes ont été supprimées avec succès |
+
+### `spotify_check_saved_tracks`
+
+Vérifier si une ou plusieurs pistes sont enregistrées chez l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | Oui | IDs de pistes séparés par des virgules à vérifier \(max 50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `results` | json | Tableau d'IDs de pistes avec leur statut d'enregistrement |
+| `all_saved` | boolean | Si toutes les pistes sont enregistrées |
+| `none_saved` | boolean | Si aucune piste n'est enregistrée |
+
+### `spotify_get_recently_played`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | Non | Nombre de pistes à retourner \(1-50\) |
+| `after` | number | Non | Timestamp Unix en millisecondes. Renvoie les éléments après ce curseur. |
+| `before` | number | Non | Timestamp Unix en millisecondes. Renvoie les éléments avant ce curseur. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `items` | array | Pistes écoutées récemment |
+
+### `spotify_get_new_releases`
+
+Obtenir une liste des nouvelles sorties d'albums mises en avant sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | Non | Code pays ISO 3166-1 alpha-2 \(ex., "US", "GB"\) |
+| `limit` | number | Non | Nombre de sorties à retourner \(1-50\) |
+| `offset` | number | Non | Index de la première sortie à retourner |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `albums` | json | Liste des nouvelles sorties |
+| `total` | number | Nombre total de nouvelles sorties |
+| `next` | string | URL pour la page suivante |
+
+### `spotify_get_categories`
+
+Obtenir une liste des catégories de navigation utilisées pour étiqueter les éléments dans Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | Non | Code pays ISO 3166-1 alpha-2 \(ex., "US", "GB"\) |
+| `locale` | string | Non | Code de langue \(ex., "en_US", "es_MX"\) |
+| `limit` | number | Non | Nombre de catégories à retourner \(1-50\) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `categories` | json | Liste des catégories de navigation |
+| `total` | number | Nombre total de catégories |
+
+### `spotify_get_markets`
+
+Obtenir la liste des marchés où Spotify est disponible.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `markets` | json | Liste des codes pays ISO |
+
+### `spotify_get_playback_state`
+
+Obtenir l'état de lecture actuel, y compris l'appareil, la piste et la progression.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `market` | string | Non | Code pays ISO 3166-1 alpha-2 |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Si la lecture est active |
+| `device` | object | Informations sur l'appareil actif |
+| `progress_ms` | number | Progression en millisecondes |
+| `currently_playing_type` | string | Type de contenu en lecture |
+| `shuffle_state` | boolean | Si la lecture aléatoire est activée |
+| `repeat_state` | string | Mode de répétition (off, track, context) |
+| `track` | object | Piste en cours de lecture |
+
+### `spotify_get_currently_playing`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `market` | string | Non | Code pays ISO pour le marché |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | Indique si la lecture est active |
+| `progress_ms` | number | Position actuelle dans la piste (ms) |
+| `track` | json | Piste en cours de lecture |
+
+### `spotify_get_devices`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `devices` | array | Appareils de lecture disponibles |
+
+### `spotify_get_queue`
+
+Obtenir l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `currently_playing` | json | Piste en cours de lecture |
+| `queue` | json | Pistes à venir dans la file d'attente |
+
+### `spotify_play`
+
+Démarrer ou reprendre la lecture sur Spotify. Peut lire des pistes, albums ou playlists spécifiques.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ----------- | ----------- |
+| `device_id` | string | Non | ID de l'appareil sur lequel lancer la lecture. Si non fourni, la lecture se fait sur l'appareil actif. |
+| `context_uri` | string | Non | URI Spotify de l'album, artiste ou playlist à lire (ex. : "spotify:album:xxx") |
+| `uris` | string | Non | URIs des pistes séparées par des virgules à lire (ex. : "spotify:track:xxx,spotify:track:yyy") |
+| `offset` | number | Non | Position dans le contexte pour commencer la lecture (index basé sur 0) |
+| `position_ms` | number | Non | Position dans la piste pour commencer (en millisecondes) |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si la lecture a démarré avec succès |
+
+### `spotify_pause`
+
+Mettre en pause la lecture sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Non | ID de l'appareil à mettre en pause. Si non fourni, met en pause l'appareil actif. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si la lecture a été mise en pause |
+
+### `spotify_skip_next`
+
+Passer à la piste suivante sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Non | ID de l'appareil. Si non fourni, utilise l'appareil actif. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le passage à la piste suivante a réussi |
+
+### `spotify_skip_previous`
+
+Revenir à la piste précédente sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | Non | ID de l'appareil. Si non fourni, utilise l'appareil actif. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le retour à la piste précédente a réussi |
+
+### `spotify_seek`
+
+Se positionner à un moment précis dans la piste en cours de lecture.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `position_ms` | number | Oui | Position en millisecondes vers laquelle se déplacer |
+| `device_id` | string | Non | ID de l'appareil ciblé |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le déplacement a réussi |
+
+### `spotify_add_to_queue`
+
+Ajouter une piste à l'utilisateur
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `uri` | string | Oui | URI Spotify de la piste à ajouter \(ex. : "spotify:track:xxx"\) |
+| `device_id` | string | Non | ID de l'appareil. Si non fourni, utilise l'appareil actif. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si la piste a été ajoutée à la file d'attente |
+
+### `spotify_set_volume`
+
+Régler le volume de lecture sur Spotify.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `volume_percent` | number | Oui | Niveau de volume \(0 à 100\) |
+| `device_id` | string | Non | ID de l'appareil. Si non fourni, utilise l'appareil actif. |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le volume a été réglé |
+
+### `spotify_set_repeat`
+
+Définir le mode de répétition pour la lecture.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `state` | string | Oui | Mode répétition : "off", "track" ou "context" |
+| `device_id` | string | Non | ID de l'appareil ciblé |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le mode répétition a été défini avec succès |
+
+### `spotify_set_shuffle`
+
+Activer ou désactiver la lecture aléatoire.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `state` | boolean | Oui | true pour activer la lecture aléatoire, false pour la désactiver |
+| `device_id` | string | Non | ID de l'appareil ciblé |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si la lecture aléatoire a été définie avec succès |
+
+### `spotify_transfer_playback`
+
+Transférer la lecture vers un autre appareil.
+
+#### Entrée
+
+| Paramètre | Type | Obligatoire | Description |
+| --------- | ---- | ---------- | ----------- |
+| `device_id` | string | Oui | ID de l'appareil vers lequel transférer la lecture |
+| `play` | boolean | Non | Indique s'il faut démarrer la lecture sur le nouvel appareil |
+
+#### Sortie
+
+| Paramètre | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Indique si le transfert a réussi |
+
+## Notes
+
+- Catégorie : `tools`
+- Type : `spotify`
diff --git a/apps/docs/content/docs/fr/tools/zep.mdx b/apps/docs/content/docs/fr/tools/zep.mdx
index ba60852b46..3b107ea1b4 100644
--- a/apps/docs/content/docs/fr/tools/zep.mdx
+++ b/apps/docs/content/docs/fr/tools/zep.mdx
@@ -94,10 +94,7 @@ Récupérer le contexte utilisateur d'un fil de discussion en mode résumé ou b
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
-| `context` | string | La chaîne de contexte \(résumé ou basique\) |
-| `facts` | array | Faits extraits |
-| `entities` | array | Entités extraites |
-| `summary` | string | Résumé de la conversation |
+| `context` | string | La chaîne de contexte \(mode résumé ou basique\) |
### `zep_get_messages`
@@ -137,9 +134,9 @@ Ajouter des messages à un fil de discussion existant
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
-| `context` | chaîne | Contexte mis à jour après l'ajout des messages |
-| `messageIds` | tableau | Tableau des UUID des messages ajoutés |
-| `threadId` | chaîne | L'ID du fil de discussion |
+| `threadId` | string | L'ID du fil de discussion |
+| `added` | boolean | Si les messages ont été ajoutés avec succès |
+| `messageIds` | array | Tableau des UUID des messages ajoutés |
### `zep_add_user`
@@ -208,8 +205,8 @@ Lister tous les fils de conversation pour un utilisateur spécifique
| Paramètre | Type | Description |
| --------- | ---- | ----------- |
-| `threads` | tableau | Tableau d'objets de fils pour cet utilisateur |
-| `userId` | chaîne | L'ID de l'utilisateur |
+| `threads` | array | Tableau d'objets de fil de discussion pour cet utilisateur |
+| `totalCount` | number | Nombre total de fils de discussion retournés |
## Notes
diff --git a/apps/docs/content/docs/ja/tools/grafana.mdx b/apps/docs/content/docs/ja/tools/grafana.mdx
index 50b2531418..bd3f9e9b70 100644
--- a/apps/docs/content/docs/ja/tools/grafana.mdx
+++ b/apps/docs/content/docs/ja/tools/grafana.mdx
@@ -321,9 +321,9 @@ UIDによるアラートルールの削除
| `organizationId` | string | いいえ | マルチ組織Grafanaインスタンス用の組織ID |
| `text` | string | はい | アノテーションのテキスト内容 |
| `tags` | string | いいえ | カンマ区切りのタグリスト |
-| `dashboardUid` | string | いいえ | アノテーションを追加するダッシュボードのUID(全体的なアノテーションの場合はオプション) |
+| `dashboardUid` | string | はい | アノテーションを追加するダッシュボードのUID |
| `panelId` | number | いいえ | アノテーションを追加するパネルのID |
-| `time` | number | いいえ | エポックミリ秒での開始時間(デフォルトは現在) |
+| `time` | number | いいえ | エポックミリ秒での開始時間(デフォルトは現在時刻) |
| `timeEnd` | number | いいえ | エポックミリ秒での終了時間(範囲アノテーション用) |
#### 出力
@@ -346,10 +346,10 @@ UIDによるアラートルールの削除
| `organizationId` | string | いいえ | マルチ組織Grafanaインスタンス用の組織ID |
| `from` | number | いいえ | エポックミリ秒での開始時間 |
| `to` | number | いいえ | エポックミリ秒での終了時間 |
-| `dashboardUid` | string | いいえ | ダッシュボードUIDでフィルタリング |
+| `dashboardUid` | string | はい | アノテーションを取得するダッシュボードのUID |
| `panelId` | number | いいえ | パネルIDでフィルタリング |
| `tags` | string | いいえ | フィルタリングするタグのカンマ区切りリスト |
-| `type` | string | いいえ | タイプでフィルタリング(アラートまたはアノテーション) |
+| `type` | string | いいえ | タイプでフィルタリング(alertまたはannotation) |
| `limit` | number | いいえ | 返すアノテーションの最大数 |
#### 出力
@@ -487,6 +487,16 @@ Grafanaに新しいフォルダを作成
| `uid` | string | 作成されたフォルダのUID |
| `title` | string | 作成されたフォルダのタイトル |
| `url` | string | フォルダへのURLパス |
+| `hasAcl` | boolean | フォルダがカスタムACL権限を持っているかどうか |
+| `canSave` | boolean | 現在のユーザーがフォルダを保存できるかどうか |
+| `canEdit` | boolean | 現在のユーザーがフォルダを編集できるかどうか |
+| `canAdmin` | boolean | 現在のユーザーがフォルダに対して管理者権限を持っているかどうか |
+| `canDelete` | boolean | 現在のユーザーがフォルダを削除できるかどうか |
+| `createdBy` | string | フォルダを作成したユーザーのユーザー名 |
+| `created` | string | フォルダが作成されたときのタイムスタンプ |
+| `updatedBy` | string | フォルダを最後に更新したユーザーのユーザー名 |
+| `updated` | string | フォルダが最後に更新されたときのタイムスタンプ |
+| `version` | number | フォルダのバージョン番号 |
## メモ
diff --git a/apps/docs/content/docs/ja/tools/spotify.mdx b/apps/docs/content/docs/ja/tools/spotify.mdx
new file mode 100644
index 0000000000..3726a2da23
--- /dev/null
+++ b/apps/docs/content/docs/ja/tools/spotify.mdx
@@ -0,0 +1,1452 @@
+---
+title: Spotify
+description: 音楽を検索し、プレイリストを管理し、再生をコントロールし、ライブラリにアクセスする
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+## 使用方法
+
+Spotifyをワークフローに統合しましょう。トラック、アルバム、アーティスト、プレイリストを検索できます。プレイリストの管理、ライブラリへのアクセス、再生のコントロール、ポッドキャストやオーディオブックの閲覧ができます。
+
+## ツール
+
+### `spotify_search`
+
+Spotifyでトラック、アルバム、アーティスト、またはプレイリストを検索します。クエリに基づいて一致する結果を返します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `query` | string | はい | 検索クエリ \(例: "Bohemian Rhapsody"、"artist:Queen"、"genre:rock"\) |
+| `type` | string | いいえ | 結果の種類: track、album、artist、playlist、またはカンマ区切り \(例: "track,artist"\) |
+| `limit` | number | いいえ | 返す結果の最大数 \(1-50\) |
+| `offset` | number | いいえ | ページネーション用の最初の結果のインデックス |
+| `market` | string | いいえ | 結果をフィルタリングするためのISO 3166-1 alpha-2国コード \(例: "US"、"GB"\) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 一致するトラックのリスト |
+
+### `spotify_get_track`
+
+IDによってSpotify上の特定のトラックに関する詳細情報を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `trackId` | string | はい | トラックのSpotify ID |
+| `market` | string | いいえ | トラックの利用可能性のためのISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify トラックID |
+| `name` | string | トラック名 |
+| `artists` | array | アーティストのリスト |
+| `album` | object | アルバム情報 |
+| `duration_ms` | number | トラックの再生時間(ミリ秒) |
+| `explicit` | boolean | トラックに露骨なコンテンツが含まれているかどうか |
+| `popularity` | number | 人気度スコア(0-100) |
+| `preview_url` | string | 30秒プレビューのURL |
+| `external_url` | string | Spotify URL |
+| `uri` | string | トラック用のSpotify URI |
+
+### `spotify_get_tracks`
+
+IDによって複数のSpotifyトラックに関する詳細情報を取得します(最大50件)。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | はい | カンマ区切りのSpotifyトラックIDリスト(最大50件) |
+| `market` | string | いいえ | トラックの利用可能性を確認するためのISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | トラックのリスト |
+
+### `spotify_get_album`
+
+IDによってSpotifyアルバムに関する詳細情報(トラックリストを含む)を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | はい | アルバムのSpotify ID |
+| `market` | string | いいえ | トラックの利用可能性を確認するためのISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify アルバム ID |
+| `name` | string | アルバム名 |
+| `artists` | array | アーティストのリスト |
+| `album_type` | string | アルバムの種類(album、single、compilation) |
+| `total_tracks` | number | トラックの総数 |
+| `release_date` | string | リリース日 |
+| `label` | string | レコードレーベル |
+| `popularity` | number | 人気度スコア(0-100) |
+| `genres` | array | ジャンルのリスト |
+| `image_url` | string | アルバムカバー画像のURL |
+| `tracks` | array | アルバム内のトラックリスト |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_albums`
+
+複数のアルバムの詳細をIDで取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | はい | カンマ区切りのアルバムID(最大20個) |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `albums` | json | アルバムのリスト |
+
+### `spotify_get_album_tracks`
+
+アルバムからトラックを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | はい | Spotify アルバム ID |
+| `limit` | number | いいえ | 返すトラック数(1-50) |
+| `offset` | number | いいえ | 返す最初のトラックのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | json | トラックのリスト |
+| `total` | number | トラックの総数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_get_saved_albums`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すアルバム数(1-50) |
+| `offset` | number | いいえ | 返す最初のアルバムのインデックス |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `albums` | json | 保存されたアルバムのリスト |
+| `total` | number | 保存されたアルバムの総数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_save_albums`
+
+ユーザーにアルバムを保存する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | はい | カンマ区切りのアルバムID(最大20) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | アルバムが保存されたかどうか |
+
+### `spotify_remove_saved_albums`
+
+ユーザーからアルバムを削除する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | はい | カンマ区切りのアルバムID(最大20) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | アルバムが削除されたかどうか |
+
+### `spotify_check_saved_albums`
+
+アルバムがライブラリに保存されているかを確認します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | はい | カンマ区切りのアルバムID(最大20個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各アルバムに対するブール値の配列 |
+
+### `spotify_get_artist`
+
+IDによってSpotify上のアーティストに関する詳細情報を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | はい | アーティストのSpotify ID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | SpotifyアーティストID |
+| `name` | string | アーティスト名 |
+| `genres` | array | アーティストに関連するジャンルのリスト |
+| `popularity` | number | 人気度スコア(0-100) |
+| `followers` | number | フォロワー数 |
+| `image_url` | string | アーティスト画像のURL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_artists`
+
+複数のアーティストの詳細をIDで取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | はい | カンマ区切りのアーティストID(最大50個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `artists` | json | アーティストのリスト |
+
+### `spotify_get_artist_albums`
+
+Spotifyでアーティストのアルバムを取得します。アルバムタイプでフィルタリングできます。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | はい | アーティストのSpotify ID |
+| `include_groups` | string | いいえ | アルバムタイプでフィルタリング: album, single, appears_on, compilation (カンマ区切り) |
+| `limit` | number | いいえ | 返すアルバムの最大数(1-50) |
+| `offset` | number | いいえ | 返す最初のアルバムのインデックス |
+| `market` | string | いいえ | ISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `albums` | array | アーティスト |
+
+### `spotify_get_artist_top_tracks`
+
+Spotifyでアーティストの最も人気のある上位10曲を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | はい | アーティストのSpotify ID |
+| `market` | string | いいえ | ISO 3166-1 alpha-2国コード(このエンドポイントでは必須) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | アーティスト |
+
+### `spotify_follow_artists`
+
+一人または複数のアーティストをフォローします。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | はい | フォローするアーティストIDをカンマ区切りで指定(最大50) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | アーティストのフォローが成功したかどうか |
+
+### `spotify_unfollow_artists`
+
+一人または複数のアーティストのフォローを解除します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | はい | フォロー解除するアーティストIDをカンマ区切りで指定(最大50) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | アーティストのフォロー解除が成功したかどうか |
+
+### `spotify_get_followed_artists`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すアーティストの数(1-50) |
+| `after` | string | いいえ | ページネーション用カーソル(前回リクエストの最後のアーティストID) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `artists` | json | フォロー中のアーティストのリスト |
+| `total` | number | フォロー中のアーティストの総数 |
+| `next` | string | 次ページ用カーソル |
+
+### `spotify_check_following`
+
+ユーザーがアーティストまたは他のユーザーをフォローしているかを確認します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `type` | string | はい | 確認するタイプ:"artist"または"user" |
+| `ids` | string | はい | アーティストまたはユーザーIDをカンマ区切りで指定(最大50) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各IDに対するブール値の配列 |
+
+### `spotify_get_show`
+
+ポッドキャスト番組の詳細を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | はい | Spotify番組ID |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | 番組ID |
+| `name` | string | 番組名 |
+| `description` | string | 番組説明 |
+| `publisher` | string | パブリッシャー名 |
+| `total_episodes` | number | 総エピソード数 |
+| `explicit` | boolean | 露骨なコンテンツを含むかどうか |
+| `languages` | json | 言語 |
+| `image_url` | string | カバー画像のURL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_shows`
+
+複数のポッドキャスト番組の詳細を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | はい | カンマ区切りの番組ID(最大50) |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `shows` | json | 番組のリスト |
+
+### `spotify_get_show_episodes`
+
+ポッドキャスト番組からエピソードを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | はい | Spotify番組ID |
+| `limit` | number | いいえ | 返すエピソード数(1-50) |
+| `offset` | number | いいえ | 返す最初のエピソードのインデックス |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `episodes` | json | エピソードのリスト |
+| `total` | number | 合計エピソード数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_get_saved_shows`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返す番組数(1-50) |
+| `offset` | number | いいえ | 返す最初の番組のインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `shows` | json | 保存された番組のリスト |
+| `total` | number | 保存された番組の合計数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_save_shows`
+
+ポッドキャスト番組をユーザーに保存する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | はい | カンマ区切りの番組ID(最大50) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 番組が保存されたかどうか |
+
+### `spotify_remove_saved_shows`
+
+ユーザーからポッドキャスト番組を削除する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | はい | カンマ区切りの番組ID(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 番組が削除されたかどうか |
+
+### `spotify_check_saved_shows`
+
+ライブラリに番組が保存されているかを確認する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | はい | カンマ区切りの番組ID(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各番組に対するブール値の配列 |
+
+### `spotify_get_episode`
+
+ポッドキャストエピソードの詳細を取得する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `episodeId` | string | はい | Spotify エピソードID |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | エピソードID |
+| `name` | string | エピソード名 |
+| `description` | string | エピソードの説明 |
+| `duration_ms` | number | 再生時間(ミリ秒) |
+| `release_date` | string | 公開日 |
+| `explicit` | boolean | 露骨なコンテンツを含むかどうか |
+| `show` | json | 親番組情報 |
+| `image_url` | string | カバー画像のURL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_episodes`
+
+複数のポッドキャストエピソードの詳細を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | はい | カンマ区切りのエピソードID(最大50件) |
+| `market` | string | いいえ | 市場のISOカントリーコード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `episodes` | json | エピソードのリスト |
+
+### `spotify_get_saved_episodes`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すエピソード数(1-50) |
+| `offset` | number | いいえ | 返す最初のエピソードのインデックス |
+| `market` | string | いいえ | 市場のISOカントリーコード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `episodes` | json | 保存されたエピソードのリスト |
+| `total` | number | 保存されたエピソードの総数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_save_episodes`
+
+ポッドキャストエピソードをユーザーに保存する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | はい | カンマ区切りのエピソードID(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | エピソードが保存されたかどうか |
+
+### `spotify_remove_saved_episodes`
+
+ユーザーからポッドキャストエピソードを削除する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | はい | カンマ区切りのエピソードID(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | エピソードが削除されたかどうか |
+
+### `spotify_check_saved_episodes`
+
+エピソードがライブラリに保存されているかを確認する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | はい | カンマ区切りのエピソードID(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各エピソードに対するブール値の配列 |
+
+### `spotify_get_audiobook`
+
+オーディオブックの詳細を取得する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | はい | Spotifyオーディオブック ID |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | オーディオブックID |
+| `name` | string | オーディオブック名 |
+| `authors` | json | 著者 |
+| `narrators` | json | ナレーター |
+| `publisher` | string | 出版社 |
+| `description` | string | 説明 |
+| `total_chapters` | number | 総チャプター数 |
+| `languages` | json | 言語 |
+| `image_url` | string | カバー画像URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_audiobooks`
+
+複数のオーディオブックの詳細を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | はい | カンマ区切りのオーディオブックID(最大50個) |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | オーディオブックのリスト |
+
+### `spotify_get_audiobook_chapters`
+
+オーディオブックからチャプターを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | はい | SpotifyオーディオブックID |
+| `limit` | number | いいえ | 返すチャプターの数(1-50) |
+| `offset` | number | いいえ | 返す最初のチャプターのインデックス |
+| `market` | string | いいえ | マーケット用のISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `chapters` | json | チャプターのリスト |
+| `total` | number | チャプターの総数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_get_saved_audiobooks`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すオーディオブックの数(1-50) |
+| `offset` | number | いいえ | 返す最初のオーディオブックのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | 保存されたオーディオブックのリスト |
+| `total` | number | 保存されたオーディオブックの合計数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_save_audiobooks`
+
+ユーザーにオーディオブックを保存する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | はい | カンマ区切りのオーディオブックID(最大50個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | オーディオブックが保存されたかどうか |
+
+### `spotify_remove_saved_audiobooks`
+
+ユーザーからオーディオブックを削除する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | はい | カンマ区切りのオーディオブックID(最大50個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | オーディオブックが削除されたかどうか |
+
+### `spotify_check_saved_audiobooks`
+
+オーディオブックがライブラリに保存されているかを確認する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | はい | カンマ区切りのオーディオブックID(最大50個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各オーディオブックに対するブール値の配列 |
+
+### `spotify_get_playlist`
+
+IDによってSpotifyのプレイリストに関する詳細情報を取得する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | プレイリストのSpotify ID |
+| `market` | string | いいえ | トラックの利用可能性を確認するためのISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | SpotifyプレイリストID |
+| `name` | string | プレイリスト名 |
+| `description` | string | プレイリストの説明 |
+| `public` | boolean | プレイリストが公開されているかどうか |
+| `collaborative` | boolean | プレイリストがコラボレーティブかどうか |
+| `owner` | object | プレイリスト所有者の情報 |
+| `image_url` | string | プレイリストのカバー画像URL |
+| `total_tracks` | number | トラックの総数 |
+| `snapshot_id` | string | バージョン管理用のプレイリストスナップショットID |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_playlist_tracks`
+
+Spotifyプレイリスト内のトラックを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | プレイリストのSpotify ID |
+| `limit` | number | いいえ | 返すトラックの最大数(1-100) |
+| `offset` | number | いいえ | 返す最初のトラックのインデックス |
+| `market` | string | いいえ | トラックの利用可能性を確認するためのISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | プレイリスト内のトラックのリスト |
+
+### `spotify_get_playlist_cover`
+
+プレイリストを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリスト ID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `images` | json | カバー画像のリスト |
+
+### `spotify_get_user_playlists`
+
+現在のユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すプレイリストの最大数(1-50) |
+| `offset` | number | いいえ | 返す最初のプレイリストのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `playlists` | array | ユーザー |
+
+### `spotify_create_playlist`
+
+現在のユーザー用に Spotify で新しいプレイリストを作成する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `name` | string | はい | 新しいプレイリストの名前 |
+| `description` | string | いいえ | プレイリストの説明 |
+| `public` | boolean | いいえ | プレイリストを公開するかどうか |
+| `collaborative` | boolean | いいえ | プレイリストをコラボレーティブにするかどうか(public を false にする必要があります) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify プレイリスト ID |
+| `name` | string | プレイリスト名 |
+| `description` | string | プレイリストの説明 |
+| `public` | boolean | プレイリストが公開されているかどうか |
+| `collaborative` | boolean | コラボレーション可能かどうか |
+| `snapshot_id` | string | プレイリストのスナップショット ID |
+| `external_url` | string | Spotify URL |
+
+### `spotify_update_playlist`
+
+プレイリストを更新する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリスト ID |
+| `name` | string | いいえ | プレイリストの新しい名前 |
+| `description` | string | いいえ | プレイリストの新しい説明 |
+| `public` | boolean | いいえ | プレイリストを公開するかどうか |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 更新が成功したかどうか |
+
+### `spotify_add_playlist_cover`
+
+プレイリスト用のカスタムカバー画像をアップロードします。画像はJPEG形式で256KB未満である必要があります。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリスト ID |
+| `imageBase64` | string | はい | Base64エンコードされたJPEG画像(最大256KB) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | アップロードが成功したかどうか |
+
+### `spotify_add_tracks_to_playlist`
+
+Spotifyプレイリストに1つ以上のトラックを追加します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | プレイリストのSpotify ID |
+| `uris` | string | はい | カンマ区切りのSpotify URI(例:"spotify:track:xxx,spotify:track:yyy") |
+| `position` | number | いいえ | トラックを挿入する位置(0ベース)。省略した場合、トラックは末尾に追加されます。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 変更後の新しいプレイリストスナップショットID |
+
+### `spotify_remove_tracks_from_playlist`
+
+Spotifyプレイリストから1つ以上のトラックを削除します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | プレイリストのSpotify ID |
+| `uris` | string | はい | 削除するカンマ区切りのSpotify URI(例:"spotify:track:xxx,spotify:track:yyy") |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 変更後の新しいプレイリストスナップショットID |
+
+### `spotify_reorder_playlist_items`
+
+プレイリスト内のトラックを別の位置に移動します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | SpotifyプレイリストID |
+| `range_start` | number | はい | 並べ替えるアイテムの開始インデックス |
+| `insert_before` | number | はい | アイテムを挿入する前のインデックス |
+| `range_length` | number | いいえ | 並べ替えるアイテムの数 |
+| `snapshot_id` | string | いいえ | 同時実行制御用のプレイリストスナップショットID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 新しいプレイリストのスナップショットID |
+
+### `spotify_replace_playlist_items`
+
+プレイリスト内のすべての項目を新しいトラックに置き換えます。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリストID |
+| `uris` | string | はい | カンマ区切りの Spotify URI(最大100個) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 新しいプレイリストのスナップショットID |
+
+### `spotify_follow_playlist`
+
+プレイリストをフォロー(保存)します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリストID |
+| `public` | boolean | いいえ | プレイリストを公開プレイリストに含めるかどうか |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | フォローが成功したかどうか |
+
+### `spotify_unfollow_playlist`
+
+プレイリストのフォローを解除(保存解除)します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリストID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | フォロー解除が成功したかどうか |
+
+### `spotify_check_playlist_followers`
+
+ユーザーがプレイリストをフォローしているかを確認します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | はい | Spotify プレイリスト ID |
+| `userIds` | string | はい | 確認するユーザー ID(カンマ区切り、最大5件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 各ユーザーに対するブール値の配列 |
+
+### `spotify_get_current_user`
+
+現在のユーザーを取得
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify ユーザー ID |
+| `display_name` | string | 表示名 |
+| `email` | string | メールアドレス |
+| `country` | string | 国コード |
+| `product` | string | サブスクリプションレベル(無料、プレミアム) |
+| `followers` | number | フォロワー数 |
+| `image_url` | string | プロフィール画像 URL |
+| `external_url` | string | Spotify プロフィール URL |
+
+### `spotify_get_user_profile`
+
+ユーザーを取得
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `userId` | string | はい | Spotify ユーザー ID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `id` | string | ユーザー ID |
+| `display_name` | string | 表示名 |
+| `followers` | number | フォロワー数 |
+| `image_url` | string | プロフィール画像 URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_top_tracks`
+
+現在のユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | いいえ | 時間範囲:short_term(約4週間)、medium_term(約6ヶ月)、long_term(数年) |
+| `limit` | number | いいえ | 返すトラック数(1-50) |
+| `offset` | number | いいえ | 返す最初のトラックのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | ユーザー |
+
+### `spotify_get_top_artists`
+
+現在のユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | いいえ | 時間範囲:short_term(約4週間)、medium_term(約6ヶ月)、long_term(数年) |
+| `limit` | number | いいえ | 返すアーティスト数(1-50) |
+| `offset` | number | いいえ | 返す最初のアーティストのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `artists` | array | ユーザー |
+
+### `spotify_get_saved_tracks`
+
+現在のユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すトラック数(1-50) |
+| `offset` | number | いいえ | 返す最初のトラックのインデックス |
+| `market` | string | いいえ | ISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `tracks` | array | ユーザー |
+
+### `spotify_save_tracks`
+
+現在のユーザーにトラックを保存する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | はい | 保存するSpotifyトラックIDをカンマ区切りで指定(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | トラックが正常に保存されたかどうか |
+
+### `spotify_remove_saved_tracks`
+
+ユーザーからトラックを削除する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | はい | 削除するトラックIDをカンマ区切りで指定(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | トラックが正常に削除されたかどうか |
+
+### `spotify_check_saved_tracks`
+
+1つ以上のトラックがユーザーに保存されているかを確認する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | はい | 確認するトラックIDをカンマ区切りで指定(最大50件) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `results` | json | 保存状態を含むトラックIDの配列 |
+| `all_saved` | boolean | すべてのトラックが保存されているかどうか |
+| `none_saved` | boolean | トラックが1つも保存されていないかどうか |
+
+### `spotify_get_recently_played`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | いいえ | 返すトラック数(1-50) |
+| `after` | number | いいえ | ミリ秒単位のUnixタイムスタンプ。このカーソル以降のアイテムを返します。 |
+| `before` | number | いいえ | ミリ秒単位のUnixタイムスタンプ。このカーソル以前のアイテムを返します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `items` | array | 最近再生したトラック |
+
+### `spotify_get_new_releases`
+
+Spotifyで紹介されている新しいアルバムリリースのリストを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | いいえ | ISO 3166-1 alpha-2国コード(例:"US"、"GB") |
+| `limit` | number | いいえ | 返すリリース数(1-50) |
+| `offset` | number | いいえ | 返す最初のリリースのインデックス |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `albums` | json | 新しいリリースのリスト |
+| `total` | number | 新しいリリースの総数 |
+| `next` | string | 次のページのURL |
+
+### `spotify_get_categories`
+
+Spotifyでアイテムにタグ付けするために使用されるブラウズカテゴリのリストを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | いいえ | ISO 3166-1 alpha-2国コード(例:"US"、"GB") |
+| `locale` | string | いいえ | ロケールコード(例:"en_US"、"es_MX") |
+| `limit` | number | いいえ | 返すカテゴリ数(1-50) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `categories` | json | ブラウズカテゴリのリスト |
+| `total` | number | カテゴリの総数 |
+
+### `spotify_get_markets`
+
+Spotifyが利用可能な市場のリストを取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `markets` | json | ISO国コードのリスト |
+
+### `spotify_get_playback_state`
+
+デバイス、トラック、進行状況を含む現在の再生状態を取得します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | いいえ | ISO 3166-1 alpha-2国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | 再生がアクティブかどうか |
+| `device` | object | アクティブなデバイス情報 |
+| `progress_ms` | number | ミリ秒単位の進行状況 |
+| `currently_playing_type` | string | 再生中のコンテンツの種類 |
+| `shuffle_state` | boolean | シャッフルが有効かどうか |
+| `repeat_state` | string | リピートモード(off、track、context) |
+| `track` | object | 現在再生中のトラック |
+
+### `spotify_get_currently_playing`
+
+ユーザーを取得する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | いいえ | 市場のためのISO国コード |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | 再生がアクティブかどうか |
+| `progress_ms` | number | トラック内の現在位置(ミリ秒) |
+| `track` | json | 現在再生中のトラック |
+
+### `spotify_get_devices`
+
+ユーザーを取得
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `devices` | array | 利用可能な再生デバイス |
+
+### `spotify_get_queue`
+
+ユーザーを取得
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `currently_playing` | json | 現在再生中のトラック |
+| `queue` | json | キュー内の次のトラック |
+
+### `spotify_play`
+
+Spotifyで再生を開始または再開します。特定のトラック、アルバム、またはプレイリストを再生できます。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | いいえ | 再生するデバイスID。提供されない場合、アクティブなデバイスで再生します。 |
+| `context_uri` | string | いいえ | 再生するアルバム、アーティスト、またはプレイリストのSpotify URI(例:"spotify:album:xxx") |
+| `uris` | string | いいえ | 再生するトラックURIのカンマ区切りリスト(例:"spotify:track:xxx,spotify:track:yyy") |
+| `offset` | number | いいえ | 再生を開始するコンテキスト内の位置(0ベースのインデックス) |
+| `position_ms` | number | いいえ | トラック内の開始位置(ミリ秒単位) |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 再生が正常に開始されたかどうか |
+
+### `spotify_pause`
+
+Spotifyでの再生を一時停止します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | いいえ | 一時停止するデバイスID。提供されない場合、アクティブなデバイスを一時停止します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 再生が一時停止されたかどうか |
+
+### `spotify_skip_next`
+
+Spotifyで次のトラックにスキップします。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | いいえ | デバイスID。提供されない場合、アクティブなデバイスを使用します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | スキップが成功したかどうか |
+
+### `spotify_skip_previous`
+
+Spotifyで前のトラックにスキップします。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | いいえ | デバイスID。提供されない場合、アクティブなデバイスを使用します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | スキップが成功したかどうか |
+
+### `spotify_seek`
+
+現在再生中のトラックの特定の位置にシークします。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `position_ms` | number | はい | シークする位置(ミリ秒) |
+| `device_id` | string | いいえ | 対象デバイスID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | シークが成功したかどうか |
+
+### `spotify_add_to_queue`
+
+ユーザーにトラックを追加する
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `uri` | string | はい | 追加するトラックのSpotify URI(例:"spotify:track:xxx") |
+| `device_id` | string | いいえ | デバイスID。提供されない場合、アクティブなデバイスを使用します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | トラックがキューに追加されたかどうか |
+
+### `spotify_set_volume`
+
+Spotifyの再生音量を設定する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `volume_percent` | number | はい | 音量レベル(0〜100) |
+| `device_id` | string | いいえ | デバイスID。提供されない場合、アクティブなデバイスを使用します。 |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 音量が設定されたかどうか |
+
+### `spotify_set_repeat`
+
+再生のリピートモードを設定する。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `state` | string | はい | リピートモード: "off"、"track"、または "context" |
+| `device_id` | string | いいえ | 対象とするデバイスID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | リピートモードが正常に設定されたかどうか |
+
+### `spotify_set_shuffle`
+
+シャッフルのオン・オフを切り替えます。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `state` | boolean | はい | シャッフルをオンにする場合はtrue、オフにする場合はfalse |
+| `device_id` | string | いいえ | 対象とするデバイスID |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | シャッフルが正常に設定されたかどうか |
+
+### `spotify_transfer_playback`
+
+再生を別のデバイスに転送します。
+
+#### 入力
+
+| パラメータ | 型 | 必須 | 説明 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | はい | 再生を転送する先のデバイスID |
+| `play` | boolean | いいえ | 新しいデバイスで再生を開始するかどうか |
+
+#### 出力
+
+| パラメータ | 型 | 説明 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 転送が成功したかどうか |
+
+## 注意事項
+
+- カテゴリー: `tools`
+- タイプ: `spotify`
diff --git a/apps/docs/content/docs/ja/tools/zep.mdx b/apps/docs/content/docs/ja/tools/zep.mdx
index 1502da166f..e4c478190a 100644
--- a/apps/docs/content/docs/ja/tools/zep.mdx
+++ b/apps/docs/content/docs/ja/tools/zep.mdx
@@ -94,10 +94,7 @@ Zepから会話スレッドを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
-| `context` | string | コンテキスト文字列(サマリーまたは基本) |
-| `facts` | array | 抽出されたファクト |
-| `entities` | array | 抽出されたエンティティ |
-| `summary` | string | 会話のサマリー |
+| `context` | string | コンテキスト文字列(要約または基本モード) |
### `zep_get_messages`
@@ -137,9 +134,9 @@ Zepから会話スレッドを削除する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
-| `context` | string | メッセージ追加後の更新されたコンテキスト |
-| `messageIds` | array | 追加されたメッセージUUIDの配列 |
| `threadId` | string | スレッドID |
+| `added` | boolean | メッセージが正常に追加されたかどうか |
+| `messageIds` | array | 追加されたメッセージUUIDの配列 |
### `zep_add_user`
@@ -209,7 +206,7 @@ Zepからユーザー情報を取得する
| パラメータ | 型 | 説明 |
| --------- | ---- | ----------- |
| `threads` | array | このユーザーのスレッドオブジェクトの配列 |
-| `userId` | string | ユーザーID |
+| `totalCount` | number | 返されたスレッドの総数 |
## 注意事項
diff --git a/apps/docs/content/docs/zh/tools/grafana.mdx b/apps/docs/content/docs/zh/tools/grafana.mdx
index ada49f5480..530e26109b 100644
--- a/apps/docs/content/docs/zh/tools/grafana.mdx
+++ b/apps/docs/content/docs/zh/tools/grafana.mdx
@@ -320,11 +320,11 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| `baseUrl` | string | 是 | Grafana 实例 URL \(例如:https://your-grafana.com\) |
| `organizationId` | string | 否 | 多组织 Grafana 实例的组织 ID |
| `text` | string | 是 | 注释的文本内容 |
-| `tags` | string | 否 | 以逗号分隔的标签列表 |
-| `dashboardUid` | string | 否 | 要添加注释的仪表板 UID \(全局注释可选\) |
+| `tags` | string | 否 | 逗号分隔的标签列表 |
+| `dashboardUid` | string | 是 | 要添加注释的仪表板 UID |
| `panelId` | number | 否 | 要添加注释的面板 ID |
-| `time` | number | 否 | 起始时间(以 epoch 毫秒为单位,默认为当前时间) |
-| `timeEnd` | number | 否 | 结束时间(以 epoch 毫秒为单位,用于范围注释) |
+| `time` | number | 否 | 开始时间(以纪元毫秒为单位,默认为当前时间) |
+| `timeEnd` | number | 否 | 结束时间(以纪元毫秒为单位,用于范围注释) |
#### 输出
@@ -342,15 +342,15 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 必需 | 描述 |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | 是 | Grafana 服务账户令牌 |
-| ---INLINE-CODE-PLACEHOLDER-42355e89d407292dbef683bcc5a4fc3e--- | string | 是 | Grafana 实例 URL \(例如:https://your-grafana.com\) |
+| `baseUrl` | string | 是 | Grafana 实例 URL \(例如:https://your-grafana.com\) |
| `organizationId` | string | 否 | 多组织 Grafana 实例的组织 ID |
-| `from` | number | 否 | 起始时间(以 epoch 毫秒为单位) |
-| `to` | number | 否 | 结束时间(以 epoch 毫秒为单位) |
-| `dashboardUid` | string | 否 | 按仪表板 UID 过滤 |
+| `from` | number | 否 | 开始时间(以纪元毫秒为单位) |
+| `to` | number | 否 | 结束时间(以纪元毫秒为单位) |
+| `dashboardUid` | string | 是 | 要查询注释的仪表板 UID |
| `panelId` | number | 否 | 按面板 ID 过滤 |
-| `tags` | string | 否 | 按逗号分隔的标签列表过滤 |
-| `type` | string | 否 | 按类型过滤 \(警报或注释\) |
-| `limit` | number | 否 | 返回的最大注释数 |
+| `tags` | string | 否 | 按标签过滤(逗号分隔) |
+| `type` | string | 否 | 按类型过滤 \(alert 或 annotation\) |
+| `limit` | number | 否 | 返回的注释最大数量 |
#### 输出
@@ -483,10 +483,20 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
-| `id` | number | 创建的文件夹的数字 ID |
-| `uid` | string | 创建的文件夹的 UID |
-| `title` | string | 创建的文件夹的标题 |
+| `id` | number | 创建文件夹的数字 ID |
+| `uid` | string | 创建文件夹的 UID |
+| `title` | string | 创建文件夹的标题 |
| `url` | string | 文件夹的 URL 路径 |
+| `hasAcl` | boolean | 文件夹是否具有自定义 ACL 权限 |
+| `canSave` | boolean | 当前用户是否可以保存文件夹 |
+| `canEdit` | boolean | 当前用户是否可以编辑文件夹 |
+| `canAdmin` | boolean | 当前用户是否对文件夹具有管理员权限 |
+| `canDelete` | boolean | 当前用户是否可以删除文件夹 |
+| `createdBy` | string | 创建文件夹的用户名 |
+| `created` | string | 文件夹创建的时间戳 |
+| `updatedBy` | string | 最后更新文件夹的用户名 |
+| `updated` | string | 文件夹最后更新的时间戳 |
+| `version` | number | 文件夹的版本号 |
## 注意事项
diff --git a/apps/docs/content/docs/zh/tools/spotify.mdx b/apps/docs/content/docs/zh/tools/spotify.mdx
new file mode 100644
index 0000000000..7f03b0bdeb
--- /dev/null
+++ b/apps/docs/content/docs/zh/tools/spotify.mdx
@@ -0,0 +1,1452 @@
+---
+title: Spotify
+description: 搜索音乐、管理播放列表、控制播放并访问您的音乐库
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+## 使用说明
+
+将 Spotify 集成到您的工作流程中。搜索曲目、专辑、艺术家和播放列表。管理播放列表,访问您的音乐库,控制播放,浏览播客和有声书。
+
+## 工具
+
+### `spotify_search`
+
+在 Spotify 上搜索曲目、专辑、艺术家或播放列表。根据查询返回匹配的结果。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `query` | string | 是 | 搜索查询 \(例如:"Bohemian Rhapsody", "artist:Queen", "genre:rock"\) |
+| `type` | string | 否 | 结果类型:track, album, artist, playlist 或逗号分隔 \(例如:"track,artist"\) |
+| `limit` | number | 否 | 返回结果的最大数量 \(1-50\) |
+| `offset` | number | 否 | 分页时返回的第一个结果的索引 |
+| `market` | string | 否 | 用于过滤结果的 ISO 3166-1 alpha-2 国家代码 \(例如:"US", "GB"\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 匹配曲目的列表 |
+
+### `spotify_get_track`
+
+通过其 ID 获取 Spotify 上特定曲目的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `trackId` | string | 是 | 曲目的 Spotify ID |
+| `market` | string | 否 | 曲目可用性的 ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify 曲目 ID |
+| `name` | string | 曲目名称 |
+| `artists` | array | 艺术家列表 |
+| `album` | object | 专辑信息 |
+| `duration_ms` | number | 曲目时长(毫秒) |
+| `explicit` | boolean | 曲目是否包含显式内容 |
+| `popularity` | number | 热度评分 \(0-100\) |
+| `preview_url` | string | 30 秒预览的 URL |
+| `external_url` | string | Spotify URL |
+| `uri` | string | 曲目的 Spotify URI |
+
+### `spotify_get_tracks`
+
+通过曲目 ID(最多 50 个)获取 Spotify 上多个曲目的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | 是 | 逗号分隔的 Spotify 曲目 ID 列表 \(最多 50 个\) |
+| `market` | string | 否 | 曲目可用性的 ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 曲目列表 |
+
+### `spotify_get_album`
+
+通过专辑 ID 获取 Spotify 上专辑的详细信息,包括曲目列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | 是 | 专辑的 Spotify ID |
+| `market` | string | 否 | 曲目可用性的 ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify 专辑 ID |
+| `name` | string | 专辑名称 |
+| `artists` | array | 艺术家列表 |
+| `album_type` | string | 专辑类型 \(专辑、单曲、合辑\) |
+| `total_tracks` | number | 曲目总数 |
+| `release_date` | string | 发行日期 |
+| `label` | string | 唱片公司 |
+| `popularity` | number | 热度评分 \(0-100\) |
+| `genres` | array | 流派列表 |
+| `image_url` | string | 专辑封面图片 URL |
+| `tracks` | array | 专辑中的曲目列表 |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_albums`
+
+通过专辑 ID 获取多个专辑的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 是否必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | 是 | 逗号分隔的专辑 ID \(最多 20 个\) |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `albums` | json | 专辑列表 |
+
+### `spotify_get_album_tracks`
+
+获取专辑中的曲目。
+
+#### 输入
+
+| 参数 | 类型 | 是否必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumId` | string | 是 | Spotify 专辑 ID |
+| `limit` | number | 否 | 返回的曲目数量 \(1-50\) |
+| `offset` | number | 否 | 返回的首个曲目的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | json | 曲目列表 |
+| `total` | number | 曲目总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_get_saved_albums`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 要返回的专辑数量 \(1-50\) |
+| `offset` | number | 否 | 要返回的第一个专辑的索引 |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `albums` | json | 已保存专辑列表 |
+| `total` | number | 已保存专辑总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_save_albums`
+
+将专辑保存到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | 是 | 逗号分隔的专辑 ID \(最多 20 个\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否已保存专辑 |
+
+### `spotify_remove_saved_albums`
+
+从用户中移除专辑
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | string | 是 | 逗号分隔的专辑 ID \(最多 20 个\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | 布尔值 | 是否移除了专辑 |
+
+### `spotify_check_saved_albums`
+
+检查专辑是否已保存到库中。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `albumIds` | 字符串 | 是 | 逗号分隔的专辑 ID(最多 20 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | JSON | 每个专辑的布尔值数组 |
+
+### `spotify_get_artist`
+
+通过 Spotify ID 获取艺术家的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | 字符串 | 是 | 艺术家的 Spotify ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | 字符串 | Spotify 艺术家 ID |
+| `name` | 字符串 | 艺术家名称 |
+| `genres` | 数组 | 与艺术家相关的流派列表 |
+| `popularity` | 数字 | 人气评分(0-100) |
+| `followers` | 数字 | 关注者数量 |
+| `image_url` | 字符串 | 艺术家图片 URL |
+| `external_url` | 字符串 | Spotify URL |
+
+### `spotify_get_artists`
+
+通过 ID 获取多个艺术家的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | 字符串 | 是 | 逗号分隔的艺术家 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `artists` | json | 艺术家列表 |
+
+### `spotify_get_artist_albums`
+
+获取 Spotify 上某艺术家的专辑。可以按专辑类型筛选。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | 是 | 艺术家的 Spotify ID |
+| `include_groups` | string | 否 | 按专辑类型筛选:album, single, appears_on, compilation(逗号分隔) |
+| `limit` | number | 否 | 返回的专辑最大数量(1-50) |
+| `offset` | number | 否 | 返回的第一个专辑的索引 |
+| `market` | string | 否 | ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `albums` | array | 艺术家 |
+
+### `spotify_get_artist_top_tracks`
+
+获取 Spotify 上某艺术家的前 10 首最受欢迎的曲目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistId` | string | 是 | 艺术家的 Spotify ID |
+| `market` | string | 否 | ISO 3166-1 alpha-2 国家代码(此端点必需) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 艺术家 |
+
+### `spotify_follow_artists`
+
+关注一个或多个艺术家。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | 是 | 逗号分隔的艺术家 ID 列表(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 艺术家是否成功关注 |
+
+### `spotify_unfollow_artists`
+
+取消关注一个或多个艺术家。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `artistIds` | string | 是 | 逗号分隔的艺术家 ID 列表(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 艺术家是否成功取消关注 |
+
+### `spotify_get_followed_artists`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 返回的艺术家数量(1-50) |
+| `after` | string | 否 | 分页游标(上次请求的最后一个艺术家 ID) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `artists` | json | 已关注艺术家列表 |
+| `total` | number | 已关注艺术家的总数 |
+| `next` | string | 下一页的游标 |
+
+### `spotify_check_following`
+
+检查用户是否关注艺术家或用户。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `type` | string | 是 | 检查的类型:“artist” 或 “user” |
+| `ids` | string | 是 | 逗号分隔的艺术家或用户 ID 列表(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 每个 ID 的布尔值数组 |
+
+### `spotify_get_show`
+
+获取播客节目的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | 是 | Spotify 节目 ID |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | 节目 ID |
+| `name` | string | 节目名称 |
+| `description` | string | 节目描述 |
+| `publisher` | string | 发布者名称 |
+| `total_episodes` | number | 总集数 |
+| `explicit` | boolean | 是否包含显式内容 |
+| `languages` | json | 语言 |
+| `image_url` | string | 封面图片 URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_shows`
+
+获取多个播客节目的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | 是 | 逗号分隔的节目 ID(最多 50 个) |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `shows` | json | 节目列表 |
+
+### `spotify_get_show_episodes`
+
+从播客节目中获取剧集。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showId` | string | 是 | Spotify 节目 ID |
+| `limit` | number | 否 | 要返回的剧集数量 \(1-50\) |
+| `offset` | number | 否 | 要返回的第一个剧集的索引 |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `episodes` | json | 剧集列表 |
+| `total` | number | 剧集总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_get_saved_shows`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 要返回的节目数量 \(1-50\) |
+| `offset` | number | 否 | 要返回的第一个节目的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `shows` | json | 已保存节目的列表 |
+| `total` | number | 已保存节目的总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_save_shows`
+
+将播客节目保存到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | 是 | 逗号分隔的节目 ID \(最多 50 个\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否保存了节目 |
+
+### `spotify_remove_saved_shows`
+
+从用户中移除播客节目
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | 是 | 逗号分隔的节目 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否移除了节目 |
+
+### `spotify_check_saved_shows`
+
+检查节目是否已保存在库中。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `showIds` | string | 是 | 逗号分隔的节目 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 每个节目的布尔值数组 |
+
+### `spotify_get_episode`
+
+获取播客剧集的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `episodeId` | string | 是 | Spotify 剧集 ID |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | 剧集 ID |
+| `name` | string | 剧集名称 |
+| `description` | string | 剧集描述 |
+| `duration_ms` | number | 时长(毫秒) |
+| `release_date` | string | 发布日期 |
+| `explicit` | boolean | 是否包含显式内容 |
+| `show` | json | 父节目信息 |
+| `image_url` | string | 封面图片 URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_episodes`
+
+获取多个播客剧集的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | 是 | 逗号分隔的剧集 ID(最多 50 个) |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `episodes` | json | 剧集列表 |
+
+### `spotify_get_saved_episodes`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 要返回的剧集数量(1-50) |
+| `offset` | number | 否 | 要返回的第一个剧集的索引 |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `episodes` | json | 已保存的剧集列表 |
+| `total` | number | 已保存剧集总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_save_episodes`
+
+将播客剧集保存到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | 是 | 逗号分隔的剧集 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 剧集是否已保存 |
+
+### `spotify_remove_saved_episodes`
+
+从用户中移除播客剧集
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | 是 | 逗号分隔的剧集 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否已移除剧集 |
+
+### `spotify_check_saved_episodes`
+
+检查剧集是否已保存到库中。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `episodeIds` | string | 是 | 逗号分隔的剧集 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 每个剧集的布尔值数组 |
+
+### `spotify_get_audiobook`
+
+获取有声书的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | 是 | Spotify 有声书 ID |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | 有声书 ID |
+| `name` | string | 有声书名称 |
+| `authors` | json | 作者 |
+| `narrators` | json | 旁白 |
+| `publisher` | string | 出版商 |
+| `description` | string | 描述 |
+| `total_chapters` | number | 总章节数 |
+| `languages` | json | 语言 |
+| `image_url` | string | 封面图片 URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_audiobooks`
+
+获取多个有声书的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | 是 | 逗号分隔的有声书 ID(最多 50 个) |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | 有声书列表 |
+
+### `spotify_get_audiobook_chapters`
+
+获取有声书的章节。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookId` | string | 是 | Spotify 有声书 ID |
+| `limit` | number | 否 | 返回的章节数量(1-50) |
+| `offset` | number | 否 | 返回的第一个章节的索引 |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `chapters` | json | 章节列表 |
+| `total` | number | 总章节数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_get_saved_audiobooks`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 返回的有声书数量(1-50) |
+| `offset` | number | 否 | 返回的第一个有声书的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `audiobooks` | json | 已保存有声书的列表 |
+| `total` | number | 已保存有声书的总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_save_audiobooks`
+
+将有声书保存到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | 是 | 逗号分隔的有声书 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否已保存有声书 |
+
+### `spotify_remove_saved_audiobooks`
+
+从用户中移除有声书
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | 是 | 逗号分隔的有声书 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否已移除有声书 |
+
+### `spotify_check_saved_audiobooks`
+
+检查有声书是否已保存到库中。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `audiobookIds` | string | 是 | 逗号分隔的有声书 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 每本有声书的布尔值数组 |
+
+### `spotify_get_playlist`
+
+通过其 ID 获取 Spotify 上播放列表的详细信息。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | 播放列表的 Spotify ID |
+| `market` | string | 否 | 用于曲目可用性的 ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify 播放列表 ID |
+| `name` | string | 播放列表名称 |
+| `description` | string | 播放列表描述 |
+| `public` | boolean | 播放列表是否公开 |
+| `collaborative` | boolean | 播放列表是否为协作 |
+| `owner` | object | 播放列表所有者信息 |
+| `image_url` | string | 播放列表封面图片 URL |
+| `total_tracks` | number | 曲目总数 |
+| `snapshot_id` | string | 用于版本控制的播放列表快照 ID |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_playlist_tracks`
+
+获取 Spotify 播放列表中的曲目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | 播放列表的 Spotify ID |
+| `limit` | number | 否 | 返回的曲目最大数量 \(1-100\) |
+| `offset` | number | 否 | 返回的第一个曲目的索引 |
+| `market` | string | 否 | 用于曲目可用性的 ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 播放列表中的曲目列表 |
+
+### `spotify_get_playlist_cover`
+
+获取播放列表
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `images` | json | 封面图片列表 |
+
+### `spotify_get_user_playlists`
+
+获取当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 要返回的最大播放列表数量 \(1-50\) |
+| `offset` | number | 否 | 要返回的第一个播放列表的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `playlists` | array | 用户 |
+
+### `spotify_create_playlist`
+
+为当前用户在 Spotify 上创建一个新播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `name` | string | 是 | 新播放列表的名称 |
+| `description` | string | 否 | 播放列表的描述 |
+| `public` | boolean | 否 | 播放列表是否应为公开 |
+| `collaborative` | boolean | 否 | 播放列表是否应为协作 \(需要公开设置为 false\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify 播放列表 ID |
+| `name` | string | 播放列表名称 |
+| `description` | string | 播放列表描述 |
+| `public` | boolean | 播放列表是否公开 |
+| `collaborative` | boolean | 是否可协作 |
+| `snapshot_id` | string | 播放列表快照 ID |
+| `external_url` | string | Spotify URL |
+
+### `spotify_update_playlist`
+
+更新播放列表
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `name` | string | 否 | 播放列表的新名称 |
+| `description` | string | 否 | 播放列表的新描述 |
+| `public` | boolean | 否 | 播放列表是否应公开 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 更新是否成功 |
+
+### `spotify_add_playlist_cover`
+
+为播放列表上传自定义封面图片。图片必须为 JPEG 格式且小于 256KB。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `imageBase64` | string | 是 | Base64 编码的 JPEG 图片(最大 256KB) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 上传是否成功 |
+
+### `spotify_add_tracks_to_playlist`
+
+将一首或多首曲目添加到 Spotify 播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | 播放列表的 Spotify ID |
+| `uris` | string | 是 | 逗号分隔的 Spotify URI \(例如:"spotify:track:xxx,spotify:track:yyy"\) |
+| `position` | number | 否 | 插入曲目的位置 \(从 0 开始\)。如果省略,曲目将追加到末尾。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 修改后新的播放列表快照 ID |
+
+### `spotify_remove_tracks_from_playlist`
+
+从 Spotify 播放列表中移除一首或多首曲目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | 播放列表的 Spotify ID |
+| `uris` | string | 是 | 要移除的逗号分隔的 Spotify URI \(例如:"spotify:track:xxx,spotify:track:yyy"\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 修改后新的播放列表快照 ID |
+
+### `spotify_reorder_playlist_items`
+
+将曲目移动到播放列表中的不同位置。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `range_start` | number | 是 | 要重新排序的项目的起始索引 |
+| `insert_before` | number | 是 | 插入项目之前的索引 |
+| `range_length` | number | 否 | 要重新排序的项目数量 |
+| `snapshot_id` | string | 否 | 用于并发控制的播放列表快照 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 新的播放列表快照 ID |
+
+### `spotify_replace_playlist_items`
+
+用新曲目替换播放列表中的所有项目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `uris` | string | 是 | 逗号分隔的 Spotify URI(最多 100 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `snapshot_id` | string | 新的播放列表快照 ID |
+
+### `spotify_follow_playlist`
+
+关注(保存)播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `public` | boolean | 否 | 播放列表是否会出现在公开播放列表中 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否关注成功 |
+
+### `spotify_unfollow_playlist`
+
+取消关注(取消保存)播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否取消关注成功 |
+
+### `spotify_check_playlist_followers`
+
+检查用户是否关注某个播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | 是 | Spotify 播放列表 ID |
+| `userIds` | string | 是 | 逗号分隔的用户 ID(最多 5 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 每个用户的布尔值数组 |
+
+### `spotify_get_current_user`
+
+获取当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | Spotify 用户 ID |
+| `display_name` | string | 显示名称 |
+| `email` | string | 电子邮件地址 |
+| `country` | string | 国家代码 |
+| `product` | string | 订阅级别(免费,付费)|
+| `followers` | number | 关注者数量 |
+| `image_url` | string | 个人资料图片 URL |
+| `external_url` | string | Spotify 个人资料 URL |
+
+### `spotify_get_user_profile`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `userId` | string | 是 | Spotify 用户 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `id` | string | 用户 ID |
+| `display_name` | string | 显示名称 |
+| `followers` | number | 关注者数量 |
+| `image_url` | string | 个人资料图片 URL |
+| `external_url` | string | Spotify URL |
+
+### `spotify_get_top_tracks`
+
+获取当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | 否 | 时间范围:short_term(约4周)、medium_term(约6个月)、long_term(年) |
+| `limit` | number | 否 | 返回的曲目数量(1-50) |
+| `offset` | number | 否 | 返回的第一个曲目的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 用户 |
+
+### `spotify_get_top_artists`
+
+获取当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `time_range` | string | 否 | 时间范围:short_term(约4周)、medium_term(约6个月)、long_term(年) |
+| `limit` | number | 否 | 返回的艺术家数量(1-50) |
+| `offset` | number | 否 | 返回的第一个艺术家的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `artists` | array | 用户 |
+
+### `spotify_get_saved_tracks`
+
+获取当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 返回的曲目数量(1-50) |
+| `offset` | number | 否 | 返回的第一个曲目的索引 |
+| `market` | string | 否 | ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `tracks` | array | 用户 |
+
+### `spotify_save_tracks`
+
+将曲目保存到当前用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | 是 | 逗号分隔的 Spotify 曲目 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 曲目是否成功保存 |
+
+### `spotify_remove_saved_tracks`
+
+从用户中移除曲目
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | 是 | 逗号分隔的曲目 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 曲目是否成功移除 |
+
+### `spotify_check_saved_tracks`
+
+检查一个或多个曲目是否已保存到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `trackIds` | string | 是 | 逗号分隔的曲目 ID(最多 50 个) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `results` | json | 包含保存状态的曲目 ID 数组 |
+| `all_saved` | boolean | 是否所有曲目都已保存 |
+| `none_saved` | boolean | 是否没有曲目被保存 |
+
+### `spotify_get_recently_played`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `limit` | number | 否 | 返回的曲目数量 \(1-50\) |
+| `after` | number | 否 | Unix 时间戳(毫秒)。返回此游标之后的项目。 |
+| `before` | number | 否 | Unix 时间戳(毫秒)。返回此游标之前的项目。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `items` | array | 最近播放的曲目 |
+
+### `spotify_get_new_releases`
+
+获取 Spotify 中推荐的新专辑列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | 否 | ISO 3166-1 alpha-2 国家代码 \(例如:"US", "GB"\) |
+| `limit` | number | 否 | 返回的专辑数量 \(1-50\) |
+| `offset` | number | 否 | 返回的第一个专辑的索引 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `albums` | json | 新专辑列表 |
+| `total` | number | 新专辑的总数 |
+| `next` | string | 下一页的 URL |
+
+### `spotify_get_categories`
+
+获取 Spotify 中用于标记项目的浏览类别列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `country` | string | 否 | ISO 3166-1 alpha-2 国家代码 \(例如:"US", "GB"\) |
+| `locale` | string | 否 | 区域代码 \(例如:"en_US", "es_MX"\) |
+| `limit` | number | 否 | 返回的类别数量 \(1-50\) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `categories` | json | 浏览类别列表 |
+| `total` | number | 类别总数 |
+
+### `spotify_get_markets`
+
+获取 Spotify 可用的市场列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `markets` | json | ISO 国家代码列表 |
+
+### `spotify_get_playback_state`
+
+获取当前播放状态,包括设备、曲目和进度。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | 否 | ISO 3166-1 alpha-2 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | 播放是否处于活动状态 |
+| `device` | object | 活动设备信息 |
+| `progress_ms` | number | 进度(毫秒) |
+| `currently_playing_type` | string | 播放内容的类型 |
+| `shuffle_state` | boolean | 是否启用了随机播放 |
+| `repeat_state` | string | 循环模式(off, track, context) |
+| `track` | object | 当前播放的曲目 |
+
+### `spotify_get_currently_playing`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `market` | string | 否 | 市场的 ISO 国家代码 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `is_playing` | boolean | 播放是否处于活动状态 |
+| `progress_ms` | number | 当前曲目位置(毫秒) |
+| `track` | json | 当前播放的曲目 |
+
+### `spotify_get_devices`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `devices` | array | 可用的播放设备 |
+
+### `spotify_get_queue`
+
+获取用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `currently_playing` | json | 当前播放的曲目 |
+| `queue` | json | 队列中的即将播放曲目 |
+
+### `spotify_play`
+
+在 Spotify 上开始或恢复播放。可以播放特定的曲目、专辑或播放列表。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | 否 | 要播放的设备 ID。如果未提供,则在活动设备上播放。 |
+| `context_uri` | string | 否 | 专辑、艺术家或播放列表的 Spotify URI(例如:"spotify:album:xxx") |
+| `uris` | string | 否 | 逗号分隔的曲目 URI(例如:"spotify:track:xxx,spotify:track:yyy") |
+| `offset` | number | 否 | 开始播放的上下文位置(从 0 开始的索引) |
+| `position_ms` | number | 否 | 从曲目中的位置开始播放(以毫秒为单位) |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | 布尔值 | 播放是否成功启动 |
+
+### `spotify_pause`
+
+暂停 Spotify 上的播放。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | 字符串 | 否 | 要暂停的设备 ID。如果未提供,则暂停活动设备。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | 布尔值 | 播放是否已暂停 |
+
+### `spotify_skip_next`
+
+跳到 Spotify 上的下一首曲目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | 字符串 | 否 | 设备 ID。如果未提供,则使用活动设备。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | 布尔值 | 跳过是否成功 |
+
+### `spotify_skip_previous`
+
+跳到 Spotify 上的上一首曲目。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | 字符串 | 否 | 设备 ID。如果未提供,则使用活动设备。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | 布尔值 | 跳过是否成功 |
+
+### `spotify_seek`
+
+跳到当前播放曲目中的某个位置。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `position_ms` | number | 是 | 要跳转到的位置(以毫秒为单位) |
+| `device_id` | string | 否 | 目标设备 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否成功跳转 |
+
+### `spotify_add_to_queue`
+
+将曲目添加到用户
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `uri` | string | 是 | 要添加的曲目的 Spotify URI \(例如:"spotify:track:xxx"\) |
+| `device_id` | string | 否 | 设备 ID。如果未提供,则使用活动设备。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否将曲目添加到队列 |
+
+### `spotify_set_volume`
+
+设置 Spotify 的播放音量。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `volume_percent` | number | 是 | 音量级别 \(0 到 100\) |
+| `device_id` | string | 否 | 设备 ID。如果未提供,则使用活动设备。 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否设置了音量 |
+
+### `spotify_set_repeat`
+
+设置播放的重复模式。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `state` | string | 是 | 重复模式:"off"、"track" 或 "context" |
+| `device_id` | string | 否 | 目标设备 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否成功设置了重复模式 |
+
+### `spotify_set_shuffle`
+
+打开或关闭随机播放。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `state` | boolean | 是 | true 表示打开随机播放,false 表示关闭 |
+| `device_id` | string | 否 | 目标设备 ID |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否成功设置了随机播放 |
+
+### `spotify_transfer_playback`
+
+将播放转移到其他设备。
+
+#### 输入
+
+| 参数 | 类型 | 必需 | 描述 |
+| --------- | ---- | -------- | ----------- |
+| `device_id` | string | 是 | 要转移播放的目标设备 ID |
+| `play` | boolean | 否 | 是否在新设备上开始播放 |
+
+#### 输出
+
+| 参数 | 类型 | 描述 |
+| --------- | ---- | ----------- |
+| `success` | boolean | 是否成功转移播放 |
+
+## 注意
+
+- 类别:`tools`
+- 类型:`spotify`
diff --git a/apps/docs/content/docs/zh/tools/zep.mdx b/apps/docs/content/docs/zh/tools/zep.mdx
index 3f022d7b18..1a864df3d0 100644
--- a/apps/docs/content/docs/zh/tools/zep.mdx
+++ b/apps/docs/content/docs/zh/tools/zep.mdx
@@ -94,10 +94,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
-| `context` | 字符串 | 上下文字符串(摘要或基本) |
-| `facts` | 数组 | 提取的事实 |
-| `entities` | 数组 | 提取的实体 |
-| `summary` | 字符串 | 会话摘要 |
+| `context` | string | 上下文字符串(摘要或基本模式) |
### `zep_get_messages`
@@ -137,9 +134,9 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
-| `context` | string | 添加消息后的更新上下文 |
-| `messageIds` | array | 添加的消息 UUID 数组 |
| `threadId` | string | 线程 ID |
+| `added` | boolean | 消息是否成功添加 |
+| `messageIds` | array | 添加的消息 UUID 数组 |
### `zep_add_user`
@@ -209,7 +206,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
| 参数 | 类型 | 描述 |
| --------- | ---- | ----------- |
| `threads` | array | 此用户的线程对象数组 |
-| `userId` | string | 用户 ID |
+| `totalCount` | number | 返回的线程总数 |
## 注意
diff --git a/apps/docs/i18n.lock b/apps/docs/i18n.lock
index f0ee3ef0c3..5cf9a4ed6a 100644
--- a/apps/docs/i18n.lock
+++ b/apps/docs/i18n.lock
@@ -5925,7 +5925,7 @@ checksums:
content/25: 371d0e46b4bd2c23f559b8bc112f6955
content/26: 1c1914a63d880607fa1f0ccaa47d6bdc
content/27: bcadfc362b69078beee0088e5936c98b
- content/28: dfba53a44a72ddb05d937ac850642c32
+ content/28: 92c61c22136d02896171fccc6ade1f69
content/29: 25c0139e6dbae0caf7045db76d678057
content/30: c11a5d76541d3111055068edb43d26af
content/31: 371d0e46b4bd2c23f559b8bc112f6955
@@ -5937,7 +5937,7 @@ checksums:
content/37: 371d0e46b4bd2c23f559b8bc112f6955
content/38: 722e870ff0fd01d4bf8abf17bfc56110
content/39: bcadfc362b69078beee0088e5936c98b
- content/40: edf9a72a6b185e4dc921c84774bef409
+ content/40: 4e89b91d0a20c2e0ab0de5f93cfb4382
content/41: ffae7ab7fc862449bf8c47818726e36d
content/42: 31375eb7944dce78bcba23c2e754f9e6
content/43: 371d0e46b4bd2c23f559b8bc112f6955
@@ -5955,7 +5955,7 @@ checksums:
content/55: 371d0e46b4bd2c23f559b8bc112f6955
content/56: 094163dad0578662e2a3197dbf665a4e
content/57: bcadfc362b69078beee0088e5936c98b
- content/58: 74af50eceb2a5f514301c497a8e64030
+ content/58: f2e1fb3bce0b54b10e312b5421f61707
content/59: b3f310d5ef115bea5a8b75bf25d7ea9a
content/60: 549a9bd7ff92264fbd18c9d6e616594b
65891ef7e29a3ad2464222a998549ff5:
@@ -48411,13 +48411,13 @@ checksums:
content/77: 1168e89ec2162f8b1c0f4437e79d683b
content/78: 1175fa4d6a946de24b5fb57d016f68c1
content/79: 371d0e46b4bd2c23f559b8bc112f6955
- content/80: 502dd72a174138e7888c41a31a445bc9
+ content/80: b3d399422a0cc360275321cbf348c3fe
content/81: bcadfc362b69078beee0088e5936c98b
content/82: f194ced69b293f9f8d49d752f44caadb
content/83: 90a2342ab1d3182265f81c9c7b94e800
content/84: a44f8a4284da46f9e6eea1418e4053d5
content/85: 371d0e46b4bd2c23f559b8bc112f6955
- content/86: f0be34514306abc1a6f2d43bba7c4743
+ content/86: 6c0bde07d783bdd9c4dbc9295a9aad23
content/87: bcadfc362b69078beee0088e5936c98b
content/88: 907a7c72c1cb1bbaa476500208058e61
content/89: 77b4c49ac2abbf3177723a26027f4b20
@@ -48455,7 +48455,7 @@ checksums:
content/121: 371d0e46b4bd2c23f559b8bc112f6955
content/122: de3c6dc828985e7145637e03d3749170
content/123: bcadfc362b69078beee0088e5936c98b
- content/124: f5157d6ea024ed45c55f8bed7516220a
+ content/124: fc1646564753a62ca90f9dc1dedd8dd8
content/125: b3f310d5ef115bea5a8b75bf25d7ea9a
content/126: a7a0477ca54d01f3c0d815d727c47143
6bf4a002144862f19cec5ad8c2151fa3:
@@ -49343,3 +49343,481 @@ checksums:
content/16: a064887f5c777b54e029ba6ba1b56848
content/17: b3f310d5ef115bea5a8b75bf25d7ea9a
content/18: a4748f8ce0a4667675ca03e4d9fef87b
+ 69ea9d99d8ef0b139c482d74509ab07b:
+ meta/title: 423cacfcc17c571c411a211fd0229cd4
+ meta/description: 8c462ba6272aef51b1a0ffa7aac37fb5
+ content/0: 1b031fb0c62c46b177aeed5c3d3f8f80
+ content/1: b171b09b3f47764cf7aa827625194864
+ content/2: 821e6394b0a953e2b0842b04ae8f3105
+ content/3: 1670b89782aa1b50d232766d4ddc6ccd
+ content/4: 9c8aa3f09c9b2bd50ea4cdff3598ea4e
+ content/5: f70cf85dcd2c3cf7d46b01dc32aa10d6
+ content/6: cc27d8fa96a722609186b19333d85814
+ content/7: 371d0e46b4bd2c23f559b8bc112f6955
+ content/8: 8bf8c43d7d7ae7278da7ebe6ecd356ac
+ content/9: bcadfc362b69078beee0088e5936c98b
+ content/10: 879f16545eaf9c61e35185b4129b64d4
+ content/11: 8b880d3439aa74c33b9902d27c8a870d
+ content/12: 1467c26def4fe4ecc55fa200b40384b7
+ content/13: 371d0e46b4bd2c23f559b8bc112f6955
+ content/14: cf9b2ad21e039311bca96387146eeb87
+ content/15: bcadfc362b69078beee0088e5936c98b
+ content/16: f61f5faf356f1a6b891cadbed34c84d2
+ content/17: e29d2b102b3f58bd37638ea9210894bf
+ content/18: 378a38c76c0106c7209934794597d5d9
+ content/19: 371d0e46b4bd2c23f559b8bc112f6955
+ content/20: 83824e68c76b4a6e5c4fe62d58ea1c82
+ content/21: bcadfc362b69078beee0088e5936c98b
+ content/22: 966cf37490e58a583d3958368df796fa
+ content/23: 8c81c45fda92e753c0dac4367973eac6
+ content/24: ce0c05074a2bddbd40f5e26485ee5f06
+ content/25: 371d0e46b4bd2c23f559b8bc112f6955
+ content/26: e7c5338c8271763746e8ff8b6369183d
+ content/27: bcadfc362b69078beee0088e5936c98b
+ content/28: 227953269e44083ef3bc39218711cb05
+ content/29: dc170a7f70ce32d5908cb1757103f8f8
+ content/30: f2e6726730cf2f8612e10d0fdd03eaf8
+ content/31: 371d0e46b4bd2c23f559b8bc112f6955
+ content/32: 7ceeaac2d12299cae6e3892d6369ed9f
+ content/33: bcadfc362b69078beee0088e5936c98b
+ content/34: 8d2aeec4a01cda0a03816d9624b117c2
+ content/35: ba00e04a0ff2e1a6a12d7aee62fa33f8
+ content/36: 6d3896e9abe0f44805fecde59e52dfb4
+ content/37: 371d0e46b4bd2c23f559b8bc112f6955
+ content/38: 3310c3cd1e7ad3538d876973c5d4cd74
+ content/39: bcadfc362b69078beee0088e5936c98b
+ content/40: aa4677bf16eb43aae63a4ae9ac57c5e5
+ content/41: 08f5cdb1f569ac004040dbc0a0dfbce7
+ content/42: 543a7893133239c24998013b6383a2ec
+ content/43: 371d0e46b4bd2c23f559b8bc112f6955
+ content/44: f3505fc99976c10189a8bdd06281289a
+ content/45: bcadfc362b69078beee0088e5936c98b
+ content/46: b944979ca1b96c44154db7b38480f47a
+ content/47: ec85158684a17f7075c55ca5ba178c40
+ content/48: 0508c2f54b25f8f31ed432805e094b0b
+ content/49: 371d0e46b4bd2c23f559b8bc112f6955
+ content/50: 6e91b64186a5b220e8539b190991eca2
+ content/51: bcadfc362b69078beee0088e5936c98b
+ content/52: ae001f604fd5ff92aef5797aa0094c2a
+ content/53: 47f7b5486bee09d1d0f2e5c976099ced
+ content/54: c096bcae5c582e9e060d3922549d3eb5
+ content/55: 371d0e46b4bd2c23f559b8bc112f6955
+ content/56: 6e91b64186a5b220e8539b190991eca2
+ content/57: bcadfc362b69078beee0088e5936c98b
+ content/58: 68dc862efbc97d4bd6a12ea5e0bb768a
+ content/59: 3a43a63dc6dc7080da15db3e9cc3b7d9
+ content/60: 507990b312b03294b9a70bf617a4f6f7
+ content/61: 371d0e46b4bd2c23f559b8bc112f6955
+ content/62: 6e91b64186a5b220e8539b190991eca2
+ content/63: bcadfc362b69078beee0088e5936c98b
+ content/64: e4738365d87b2951f7284d2ed3a499ea
+ content/65: a5ff73112631e5d1f07812c7bafa8e1b
+ content/66: 8d56ee136021f3324dacf867b853038e
+ content/67: 371d0e46b4bd2c23f559b8bc112f6955
+ content/68: 48338466c2390dc956c8d7e29dbe54e5
+ content/69: bcadfc362b69078beee0088e5936c98b
+ content/70: 5939fda569e9e2470d0ec33c9e9f65c7
+ content/71: 070ed023774d1aa1e25488372b52307e
+ content/72: a18e5c2a4cd9cf33e6ce14254b22ceba
+ content/73: 371d0e46b4bd2c23f559b8bc112f6955
+ content/74: 4641cc3e4a6b63ce0e14c724b34017b8
+ content/75: bcadfc362b69078beee0088e5936c98b
+ content/76: 976e478e3f2972d8ee3a245dfbe7b62e
+ content/77: 0e87446547d645d6a9d3bf4cdf1578e7
+ content/78: 3211cb4fe3bc83c7c2b54399f0f9137c
+ content/79: 371d0e46b4bd2c23f559b8bc112f6955
+ content/80: 84b2621db57916bbc9e1ff0533cb38e8
+ content/81: bcadfc362b69078beee0088e5936c98b
+ content/82: 824ba104f268f10f2cc115913f6029ad
+ content/83: 64cc7298d2de7ceb78788d58d87898d9
+ content/84: 74cd415dadcb38afdca3f733866a1aa7
+ content/85: 371d0e46b4bd2c23f559b8bc112f6955
+ content/86: 32660308667470b041bb2ad58ea661c1
+ content/87: bcadfc362b69078beee0088e5936c98b
+ content/88: b029d32a6beabaca93723811cb26cd81
+ content/89: 7115d89068cd7857095940eaf8e1bddd
+ content/90: 61d17e01d34a752b71157b8a005ba057
+ content/91: 371d0e46b4bd2c23f559b8bc112f6955
+ content/92: 1ab0a1bc823fcf2de657524ceea291af
+ content/93: bcadfc362b69078beee0088e5936c98b
+ content/94: a7c67f06628744551a9ae8179f2de2f1
+ content/95: f309abdedd929f33810fffa5be8367c2
+ content/96: 37feff6bad59c085b76fade5530b3cef
+ content/97: 371d0e46b4bd2c23f559b8bc112f6955
+ content/98: f9b550860e44f6246a4f40c58c259b92
+ content/99: bcadfc362b69078beee0088e5936c98b
+ content/100: f88ef41a0cd5601c4ce748b36f256253
+ content/101: 675999bd8732f157f00284487dd610c7
+ content/102: 543a7893133239c24998013b6383a2ec
+ content/103: 371d0e46b4bd2c23f559b8bc112f6955
+ content/104: f6b0d1db4665a2bb31dfc8868b633e83
+ content/105: bcadfc362b69078beee0088e5936c98b
+ content/106: db8f7f803591cdb0d53aa6f6aeeadac9
+ content/107: 272d4f8e911da506722e66ea7fc06069
+ content/108: 3ab139411b417c30e7473cad1ed374a1
+ content/109: 371d0e46b4bd2c23f559b8bc112f6955
+ content/110: 4735e0cc24471b2d1083dfde44bcccd5
+ content/111: bcadfc362b69078beee0088e5936c98b
+ content/112: a205342d961d329a951066d1aeb9d344
+ content/113: 325a0443a09a80a7795a3e53d790a608
+ content/114: 907503eb014a7f0781237be119ed936c
+ content/115: 371d0e46b4bd2c23f559b8bc112f6955
+ content/116: b3f1358de153b9dab2ef4c04d992965d
+ content/117: bcadfc362b69078beee0088e5936c98b
+ content/118: 0e244093c7c68d2993dba96d32d78814
+ content/119: 1aa7fb20b2b2da0057d50edee1ee4804
+ content/120: b413d3cb6cc735740d52686d859141ce
+ content/121: 371d0e46b4bd2c23f559b8bc112f6955
+ content/122: 6c042d17fa1610528e0dda13884fd75d
+ content/123: bcadfc362b69078beee0088e5936c98b
+ content/124: c9febd022d469475d126e799d2ee3ddd
+ content/125: ad73b5cc613e18385c5b2b4d501d38cc
+ content/126: df462f7a572ad3994994f0ca76a68e76
+ content/127: 371d0e46b4bd2c23f559b8bc112f6955
+ content/128: 09899077a6a6b195512df6caf6c8fa01
+ content/129: bcadfc362b69078beee0088e5936c98b
+ content/130: 12f0d6903559cb1120d4a3148dd381e7
+ content/131: 9491f7740180102c9d049090daf5102a
+ content/132: 543a7893133239c24998013b6383a2ec
+ content/133: 371d0e46b4bd2c23f559b8bc112f6955
+ content/134: ecc05074290b48ca06325410279a51dc
+ content/135: bcadfc362b69078beee0088e5936c98b
+ content/136: 106cc40304bb3b99875a664945d20653
+ content/137: e903e245433fa0f0050609d0672c0cb5
+ content/138: 9791cc374db8ab132621a0ae7ec50964
+ content/139: 371d0e46b4bd2c23f559b8bc112f6955
+ content/140: 77522579656cf07dd8643eb54962a3e6
+ content/141: bcadfc362b69078beee0088e5936c98b
+ content/142: 97f12ce3c5e54f2b54792bf4eaeaa959
+ content/143: 5420a194a8d33ad00076e768c1a299f6
+ content/144: 2ef88df8b8a3684d125e9355a0dc57ce
+ content/145: 371d0e46b4bd2c23f559b8bc112f6955
+ content/146: 77522579656cf07dd8643eb54962a3e6
+ content/147: bcadfc362b69078beee0088e5936c98b
+ content/148: 25c2070b192a0c432f9c406fd3e68811
+ content/149: 7e57012ba94aa52f9b0a10c121414454
+ content/150: 7d384443444ff0f66076340b465adf8c
+ content/151: 371d0e46b4bd2c23f559b8bc112f6955
+ content/152: 77522579656cf07dd8643eb54962a3e6
+ content/153: bcadfc362b69078beee0088e5936c98b
+ content/154: 68f0fb5fb1c482871629a7ef6f68f401
+ content/155: 5fcce1f516514f07d19ada48a67e64b9
+ content/156: d0f8733556af6080f14f961a970d3ed2
+ content/157: 371d0e46b4bd2c23f559b8bc112f6955
+ content/158: 603d40532b35027d1070a1d511279dd7
+ content/159: bcadfc362b69078beee0088e5936c98b
+ content/160: 8854a695814f9c3e5408024a6de4b874
+ content/161: 38824704803684b47120f90d72c4d1f3
+ content/162: fae2b8c0813d8c4a16cfc1a939557b12
+ content/163: 371d0e46b4bd2c23f559b8bc112f6955
+ content/164: 3e87387b13c5a32cf60e79e288081d2a
+ content/165: bcadfc362b69078beee0088e5936c98b
+ content/166: e611f1b9fcd2ec209f7e8c541da0d334
+ content/167: e23262668801f4e01b1705bf2e06dbb9
+ content/168: 543a7893133239c24998013b6383a2ec
+ content/169: 371d0e46b4bd2c23f559b8bc112f6955
+ content/170: ea6bfafd502021032c8461583d575003
+ content/171: bcadfc362b69078beee0088e5936c98b
+ content/172: fc2291a33dbe5fb5a8e6e9fba4a962e5
+ content/173: 465f3cda4842dcbd91914420c94e7e2c
+ content/174: 0827bafb8fd84e5d2c941a5ba49180f9
+ content/175: 371d0e46b4bd2c23f559b8bc112f6955
+ content/176: 80d9e59852604254bbea9b5b429a56a9
+ content/177: bcadfc362b69078beee0088e5936c98b
+ content/178: e48a4a4332a93d669ae9d6734faf52ed
+ content/179: f4b3dc25c15cd089a940c3f87e1682cb
+ content/180: 29fcda568d59b51927e5032fea029bbb
+ content/181: 371d0e46b4bd2c23f559b8bc112f6955
+ content/182: 80d9e59852604254bbea9b5b429a56a9
+ content/183: bcadfc362b69078beee0088e5936c98b
+ content/184: d5fc19166d3a3cea8b8d2d50f0d563bb
+ content/185: d094dd11ce2f71593989b9f08ef50d1c
+ content/186: ecc367223a7d500e39174238f904c96b
+ content/187: 371d0e46b4bd2c23f559b8bc112f6955
+ content/188: 80d9e59852604254bbea9b5b429a56a9
+ content/189: bcadfc362b69078beee0088e5936c98b
+ content/190: 965bce63781360c2d25225ef73ab2be6
+ content/191: 91d09906a52576aca688686d68fe98c3
+ content/192: 0ef50aac80634edc58281abaf4c172de
+ content/193: 371d0e46b4bd2c23f559b8bc112f6955
+ content/194: 52d31c23ea85ff2429d9ffa3304764f7
+ content/195: bcadfc362b69078beee0088e5936c98b
+ content/196: e6f6c7f9ebe48b0904f00e22dc7fa6a5
+ content/197: 22e79701e2b405b16f3ec3eb1c45ab6e
+ content/198: 6c49f8ce476f21412e4d9ab21dd99a35
+ content/199: 371d0e46b4bd2c23f559b8bc112f6955
+ content/200: ef7d5b6b00dec889debfa44a73912f00
+ content/201: bcadfc362b69078beee0088e5936c98b
+ content/202: d0c41bb0907153104dbdc410f9f8bdb2
+ content/203: 33429e717ec12c6c21aaf8c08cebf59d
+ content/204: 0e8ff53af4c52be00d5dd6f6089e9eb6
+ content/205: 371d0e46b4bd2c23f559b8bc112f6955
+ content/206: 5fd8c99db5befe8b23fd5a689ce113a7
+ content/207: bcadfc362b69078beee0088e5936c98b
+ content/208: 6e076a87026c2bd5cec3f1e3f41f03e5
+ content/209: d0563ce6c297585d9c9597190d55dca4
+ content/210: 543a7893133239c24998013b6383a2ec
+ content/211: 371d0e46b4bd2c23f559b8bc112f6955
+ content/212: ce48d31c56d3bf55875623e232e3a4f7
+ content/213: bcadfc362b69078beee0088e5936c98b
+ content/214: f05f834e80d44f4b261ed70444986784
+ content/215: cc504b22e453c680bd5af9b7346a9b16
+ content/216: c09610268eeccf0bfd34ebd5dd35c007
+ content/217: 371d0e46b4bd2c23f559b8bc112f6955
+ content/218: b367871da0561ad3c5d7dacf2cb9a176
+ content/219: bcadfc362b69078beee0088e5936c98b
+ content/220: 85e1990e4f26720de4b40a1bc42a3e32
+ content/221: f630cb95b06d7aad74eb3ee3061ea255
+ content/222: ff11171170fa01ddfe1b54a6a9b7bf7e
+ content/223: 371d0e46b4bd2c23f559b8bc112f6955
+ content/224: b367871da0561ad3c5d7dacf2cb9a176
+ content/225: bcadfc362b69078beee0088e5936c98b
+ content/226: 2b9e1aad4a556211a265a182cbe25a05
+ content/227: 40965cc40257c6bd2be2cac20c5dfccb
+ content/228: 257fbd87a9b8b1c20190b5b91b304c37
+ content/229: 371d0e46b4bd2c23f559b8bc112f6955
+ content/230: b367871da0561ad3c5d7dacf2cb9a176
+ content/231: bcadfc362b69078beee0088e5936c98b
+ content/232: 55cb78c8d67ffcf7ada95dcc00bde23c
+ content/233: 6cef845ded645616c419d28bad1d6f9e
+ content/234: ba43c5aeb8f25faf46f26bf55b19bff1
+ content/235: 371d0e46b4bd2c23f559b8bc112f6955
+ content/236: 44115089ae4f362d5b4039b17ade418c
+ content/237: bcadfc362b69078beee0088e5936c98b
+ content/238: c3d9c66aa878494de5e962966252bcd4
+ content/239: ed22ba9ba05d9a98ddf5c52c37df20bd
+ content/240: 2cf208e195bb91c07ad9e53e948f6ddf
+ content/241: 371d0e46b4bd2c23f559b8bc112f6955
+ content/242: e6ef31303aa260ffd54368f310718c60
+ content/243: bcadfc362b69078beee0088e5936c98b
+ content/244: e8f550ccf6f5146969dc94e230896468
+ content/245: 4fb261f05c50668d4dbf59cb5b33187c
+ content/246: ca25da475b2c19ca9365eb40a3e883ef
+ content/247: 371d0e46b4bd2c23f559b8bc112f6955
+ content/248: 014b7067c2080c6778a1c5af5786de1f
+ content/249: bcadfc362b69078beee0088e5936c98b
+ content/250: 420275dbc42f605397d2e5d792dd0ec6
+ content/251: e3ae93e2557ade9f9101c7d7002ebae2
+ content/252: 41be55e87cb49923a825c78943f87cda
+ content/253: 371d0e46b4bd2c23f559b8bc112f6955
+ content/254: c86d375921bcc75708fbdcee104151e3
+ content/255: bcadfc362b69078beee0088e5936c98b
+ content/256: 49208ed01fcf6816c16f9be9c609bc3f
+ content/257: d786589994cd61d6822c95ef9bade462
+ content/258: e2a3bd59ba9f74919e79722d01b2cd08
+ content/259: 371d0e46b4bd2c23f559b8bc112f6955
+ content/260: fe4f450f29f2ab131ab01c1e3418050f
+ content/261: bcadfc362b69078beee0088e5936c98b
+ content/262: f0acbbe591b2053cfb0ff4592ada342d
+ content/263: 1e55ca66a9625b7e5d1d402a7b8ad866
+ content/264: 6191ceb51b5788eab069f6f9445ac7d9
+ content/265: 371d0e46b4bd2c23f559b8bc112f6955
+ content/266: ad4f64f06c612d941d8caf1241539721
+ content/267: bcadfc362b69078beee0088e5936c98b
+ content/268: f48fcfa0a3ed81e1a5090d7023745106
+ content/269: 02c6f039913ad3d9aeb4d64940b144a7
+ content/270: 3adfe68791a044e51a37c630a1164083
+ content/271: 371d0e46b4bd2c23f559b8bc112f6955
+ content/272: 4c6876bac6fc6e63bdfa336ed8287e82
+ content/273: bcadfc362b69078beee0088e5936c98b
+ content/274: 267cca917156e53a0a7191ea3b654dd2
+ content/275: 7f59ca32e2e37a892ec0fa0106980689
+ content/276: 837fe390f427bf342fdb347f660b8e24
+ content/277: 371d0e46b4bd2c23f559b8bc112f6955
+ content/278: 1e0346d0d1a808956842f5834a9a4ca7
+ content/279: bcadfc362b69078beee0088e5936c98b
+ content/280: 41138a38aa9cc6bf8d202404de595669
+ content/281: bfe437d8120b3bfdcb3d32f8baaa08cc
+ content/282: a45b4af8c2f1ce76300a770abfdb4586
+ content/283: 371d0e46b4bd2c23f559b8bc112f6955
+ content/284: b13666816ba70de0836700f0baa6a3cd
+ content/285: bcadfc362b69078beee0088e5936c98b
+ content/286: 41138a38aa9cc6bf8d202404de595669
+ content/287: 4d891a03094ba52d969bde716a26ef79
+ content/288: f00b571a9ab7a024a1b7256850110465
+ content/289: 371d0e46b4bd2c23f559b8bc112f6955
+ content/290: 285d1aaab77d5d2c1c6e3414c498458b
+ content/291: bcadfc362b69078beee0088e5936c98b
+ content/292: f3bb7d23cf26b0729d5c2bd050ee2f3d
+ content/293: cc51bfd76f006cb46a1f0971bf6725b3
+ content/294: 0740301dc6622444bf888739959cd064
+ content/295: 371d0e46b4bd2c23f559b8bc112f6955
+ content/296: dbaa8157daa175b74bf24a7a344d9b50
+ content/297: bcadfc362b69078beee0088e5936c98b
+ content/298: f3bb7d23cf26b0729d5c2bd050ee2f3d
+ content/299: 99c6883c74ac9ff2029bf9a993d108b2
+ content/300: 8888ecab4b3b39f2359344b27297b9fc
+ content/301: 371d0e46b4bd2c23f559b8bc112f6955
+ content/302: 725e1460c8d7e77af73130661211832b
+ content/303: bcadfc362b69078beee0088e5936c98b
+ content/304: 8d16e692f351c8018a19ebe10b42e600
+ content/305: 4c657061119501c3e92e44e2e1d34872
+ content/306: 47e2cc0eeec5f2cb91d830348d233911
+ content/307: 371d0e46b4bd2c23f559b8bc112f6955
+ content/308: 014b7067c2080c6778a1c5af5786de1f
+ content/309: bcadfc362b69078beee0088e5936c98b
+ content/310: 0a27f1dece5205a1fdad782471983af0
+ content/311: 208d2fe38550193159f17e05de690d3a
+ content/312: 3d1d49231eeb2920ffb765feb9099fd7
+ content/313: 371d0e46b4bd2c23f559b8bc112f6955
+ content/314: ac5aa666db2990b8e5c9328d435e6f2f
+ content/315: bcadfc362b69078beee0088e5936c98b
+ content/316: 63c2bbaa67c1f21c8394137da481c35c
+ content/317: d3fc31382a8b93b5798b0a8204200e9a
+ content/318: 41be55e87cb49923a825c78943f87cda
+ content/319: 371d0e46b4bd2c23f559b8bc112f6955
+ content/320: d71b6bb8e2dd6ce98101aec6a1dd77f2
+ content/321: bcadfc362b69078beee0088e5936c98b
+ content/322: 04a5b82cf37aba4a903f9fd607bf4321
+ content/323: a981995f0ce1ff26f910fa3f14084258
+ content/324: bb1385dbf0bd4ca26e69ee7259049758
+ content/325: 371d0e46b4bd2c23f559b8bc112f6955
+ content/326: b2cea0326a67f273c57fa21d72669c2d
+ content/327: bcadfc362b69078beee0088e5936c98b
+ content/328: 5f48c7eab78092422ecf5b876f38f5d6
+ content/329: 5465f9813e73a2b2434f093ae9f9e4fe
+ content/330: 41be55e87cb49923a825c78943f87cda
+ content/331: 371d0e46b4bd2c23f559b8bc112f6955
+ content/332: 5043d4e44428c5608442876f605f8fbf
+ content/333: bcadfc362b69078beee0088e5936c98b
+ content/334: 87050e58efe03557a55e784813899b25
+ content/335: 7daa967e284f004f64c8fbcac1dabd6d
+ content/336: 41be55e87cb49923a825c78943f87cda
+ content/337: 371d0e46b4bd2c23f559b8bc112f6955
+ content/338: 245d9a70b38a1b43467510b43b1dfd0b
+ content/339: bcadfc362b69078beee0088e5936c98b
+ content/340: b8b046b580b425b46ee97042b007cb5c
+ content/341: c516d20b10d7d47f9250156fdc05b51b
+ content/342: 41be55e87cb49923a825c78943f87cda
+ content/343: 371d0e46b4bd2c23f559b8bc112f6955
+ content/344: d3f7cf28e23f03c6ccd3c322a0dfcf7a
+ content/345: bcadfc362b69078beee0088e5936c98b
+ content/346: 87050e58efe03557a55e784813899b25
+ content/347: 93e76f13a0b2468f443b0addf2f5b426
+ content/348: fd835a0491ef404f10f95a64a8d799d7
+ content/349: 371d0e46b4bd2c23f559b8bc112f6955
+ content/350: 9330190b54228f4946546d6c918d362a
+ content/351: bcadfc362b69078beee0088e5936c98b
+ content/352: ef38c832c7c3e8a7912326a82e8e152d
+ content/353: cdbda4d943cce1c1e6cee284cd9499ba
+ content/354: afcdfbbd50590cddc8f328231183ffc7
+ content/355: 371d0e46b4bd2c23f559b8bc112f6955
+ content/356: 08b384a0452ac039fcd5a10c700887ef
+ content/357: bcadfc362b69078beee0088e5936c98b
+ content/358: 29bf3a3adb2e03579ce3067c31000cfe
+ content/359: ba0f72f52c6c1b69eb4b7ed77ace3eed
+ content/360: a0f850e27892642967e8387d236c7d3d
+ content/361: 371d0e46b4bd2c23f559b8bc112f6955
+ content/362: b1085b1b1b2cacf24e21dab7e53275ef
+ content/363: bcadfc362b69078beee0088e5936c98b
+ content/364: 3224246af0e256d3b1cebc4f5d4af7b8
+ content/365: 2b7033832f71a1afea2ad0de1a4eb0f6
+ content/366: 543a7893133239c24998013b6383a2ec
+ content/367: 371d0e46b4bd2c23f559b8bc112f6955
+ content/368: dacda77a1a1e6eb1fb09681a03b16b39
+ content/369: bcadfc362b69078beee0088e5936c98b
+ content/370: f92ddf910a76ccfba44526b5fc9e18eb
+ content/371: e5df0bf9989c8fb4bb8cc84bbc2893aa
+ content/372: 8d8179708a474294e5c18aa0f4c8e211
+ content/373: 371d0e46b4bd2c23f559b8bc112f6955
+ content/374: 13d49b60016c99dab88b976bc726dff2
+ content/375: bcadfc362b69078beee0088e5936c98b
+ content/376: 540cebf1a23579cbff89a8471080e513
+ content/377: 2316cd35c407ec12007f9791d7addc5d
+ content/378: 6a8a257b30c96326fb03188c00a8b89f
+ content/379: 371d0e46b4bd2c23f559b8bc112f6955
+ content/380: e9732d548f74b7cc7d045c755255d14b
+ content/381: bcadfc362b69078beee0088e5936c98b
+ content/382: d01baf6d3458f3e6ac1e1b93adbedc85
+ content/383: f04f7c69567c6d4641432928dd8fbbe0
+ content/384: 186964792066e564d16712d000144cfc
+ content/385: 371d0e46b4bd2c23f559b8bc112f6955
+ content/386: d71b6bb8e2dd6ce98101aec6a1dd77f2
+ content/387: bcadfc362b69078beee0088e5936c98b
+ content/388: 23531b030992d6af95a46fedf7ebba2d
+ content/389: 99e642e2d7e14f2de122fd31c8cc05a2
+ content/390: 67cb0568fb3a1ec30492380da7a07d76
+ content/391: 371d0e46b4bd2c23f559b8bc112f6955
+ content/392: 9dfe50ce64c70b434d17598a4ac8234b
+ content/393: bcadfc362b69078beee0088e5936c98b
+ content/394: ed2143e277e57380a95890c21950efa6
+ content/395: 0c6c2544d0bacb6f0f6fd613d858789a
+ content/396: 543a7893133239c24998013b6383a2ec
+ content/397: 371d0e46b4bd2c23f559b8bc112f6955
+ content/398: 6600803515bc80ef0b1a567c49794a6f
+ content/399: bcadfc362b69078beee0088e5936c98b
+ content/400: 36e4192fe30f586d12f1617efd6ef404
+ content/401: 6e7203406297c99cb022bb5c6afe0835
+ content/402: 543a7893133239c24998013b6383a2ec
+ content/403: 371d0e46b4bd2c23f559b8bc112f6955
+ content/404: d71b6bb8e2dd6ce98101aec6a1dd77f2
+ content/405: bcadfc362b69078beee0088e5936c98b
+ content/406: e30243efbaf6344a2588df16b7b03284
+ content/407: 16310c021653f143fa83827a9e4f3a34
+ content/408: 543a7893133239c24998013b6383a2ec
+ content/409: 371d0e46b4bd2c23f559b8bc112f6955
+ content/410: d71b6bb8e2dd6ce98101aec6a1dd77f2
+ content/411: bcadfc362b69078beee0088e5936c98b
+ content/412: 967acf2732882d79bbfbbb09157f5754
+ content/413: 80faf4b7ad34e672124993b741af2632
+ content/414: 513b1bd1010130caba927d7cb4ad317d
+ content/415: 371d0e46b4bd2c23f559b8bc112f6955
+ content/416: 683cb2f65472983ba73b76bd7b6e2d13
+ content/417: bcadfc362b69078beee0088e5936c98b
+ content/418: a6bb59aed6ec6c5cbc6380c07e5d875d
+ content/419: 020bf7263ea4bfdd38b730a5d97a1d27
+ content/420: c5a66ae6dd3d38e0955ddc199b241f94
+ content/421: 371d0e46b4bd2c23f559b8bc112f6955
+ content/422: e670ca8583015c3bbeaa9f0e04dc07e7
+ content/423: bcadfc362b69078beee0088e5936c98b
+ content/424: e35f604c54faeba3ab9cc9222b008e13
+ content/425: fcf4b372290efddeafde18f874cb9056
+ content/426: af6ffdf3979d631c1c0f3ce41aabcf56
+ content/427: 371d0e46b4bd2c23f559b8bc112f6955
+ content/428: f4d2b9c6ac152adb8676d09177e356bb
+ content/429: bcadfc362b69078beee0088e5936c98b
+ content/430: 49bc6ae2d6952bc9ff409d41bb0d21be
+ content/431: 4d6e4bbe907d379c3fbf703ab58b3022
+ content/432: 5536b11f94c6e96cc8ecb198bcf53ca7
+ content/433: 371d0e46b4bd2c23f559b8bc112f6955
+ content/434: f4d2b9c6ac152adb8676d09177e356bb
+ content/435: bcadfc362b69078beee0088e5936c98b
+ content/436: 49bc6ae2d6952bc9ff409d41bb0d21be
+ content/437: fd10df2f8761ee35226d0093777bdf6d
+ content/438: 95260d57dd53c9c3b7fe9429257e767e
+ content/439: 371d0e46b4bd2c23f559b8bc112f6955
+ content/440: 826b5d8ecc169a1e377687ac028040f5
+ content/441: bcadfc362b69078beee0088e5936c98b
+ content/442: 840756181376b103737fda44d21a98f6
+ content/443: 70fe3481a60a82c17db681eced11eada
+ content/444: e974d6f1cc3444d6f44495180e69b05e
+ content/445: 371d0e46b4bd2c23f559b8bc112f6955
+ content/446: 9921ba4d4de84198b763bc0bde6b03b3
+ content/447: bcadfc362b69078beee0088e5936c98b
+ content/448: d5f105ab1237fca610d09608b3b4e88d
+ content/449: 5b3b40dab522c857510f51a63237293c
+ content/450: 030bf2ff87d6c11732b684f306b4d2f5
+ content/451: 371d0e46b4bd2c23f559b8bc112f6955
+ content/452: 9ed3acd5390461eeb6414faf0a1a512e
+ content/453: bcadfc362b69078beee0088e5936c98b
+ content/454: eaca3ee3a7d41ebd10e3ede6127bf459
+ content/455: bf893edcd95310e98a3af9e73cdaae60
+ content/456: c0b33fa82175a4cc6ad90b02c67713b9
+ content/457: 371d0e46b4bd2c23f559b8bc112f6955
+ content/458: f82a23358be57576d645fa76c0955391
+ content/459: bcadfc362b69078beee0088e5936c98b
+ content/460: 834d3f74c39b74e6aa4c99ccd13a46e8
+ content/461: 67c97a416e8abeb8d61893c3f5ac17fd
+ content/462: c2f07afc0743347406fb9c9b98690997
+ content/463: 371d0e46b4bd2c23f559b8bc112f6955
+ content/464: 44d040b1598cbd8043043cb270da5bbb
+ content/465: bcadfc362b69078beee0088e5936c98b
+ content/466: c1a8cbf38b2a8480ea70243b38d509bc
+ content/467: dc3a650eefb9d65f582bfee6517ac2f9
+ content/468: 883277a3e47c7476d6356dc48df6c257
+ content/469: 371d0e46b4bd2c23f559b8bc112f6955
+ content/470: 96d428e4bb2231882653c845b590469b
+ content/471: bcadfc362b69078beee0088e5936c98b
+ content/472: dbc5fceeefb3ab5fa505394becafef4e
+ content/473: b3f310d5ef115bea5a8b75bf25d7ea9a
+ content/474: 27c398e669b297cea076e4ce4cc0c5eb