mcp-kodi
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KODI_AUTH | No | HTTP Basic credentials as user:pass | |
| KODI_HOST | No | Host[:port] of the Kodi box or proxy | |
| KODI_SCHEME | No | http or https (default https) | |
| KODI_CURL_OPTS | No | Curl options; include '-k' for insecure |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| playA | Press Play on the Kodi remote: resumes paused playback only — it cannot start new content (with nothing loaded it is a no-op); use playfile to start something. Returns the player-state snapshot { "state", "media", "id", "title", "artist", "time", "totaltime", … }. |
| pauseA | Press Pause on the Kodi remote: pause the active player on the target instance. Returns the player-state snapshot { "state", "media", "id", "title", "artist", "time", "totaltime", … }. |
| stopA | Press Stop on the Kodi remote: stop the active player on the target instance and clear the playlist it was playing, so no queued items linger. Returns the player-state snapshot — { "state": "stopped" } after a successful stop. |
| muteA | Mute the target instance's audio output. Returns { "muted", "volume" }. |
| unmuteA | Unmute the target instance's audio output. Returns { "muted", "volume" }. |
| volumeA | Adjust the target instance's volume by a relative step (in percentage points); step 0 or omitted just reports the current volume. Returns { "muted", "volume", "min", "max" }. |
| nowplayingA | Report what is playing on the target instance without changing anything — also a reachability and state probe. Returns the player-state snapshot { "state", "media", "id", "title", "artist", "time", "totaltime", … }; { "state": "stopped" } when idle. |
| instancesA | Read or modify the configured Kodi instances (action: get/set/remove). Manages the MCP server's own config, not a Kodi device. Returns { "default", "instances": [ { "key", "host", "scheme", "insecure", "has_auth", "allow_rpc", … } ] }. |
| searchmediaA | Find playable files by name: music/tv-show/movie, drilled to leaf files with paging (limit/offset) and a total count. For music, title means the ALBUM name — songs cannot be matched by their own title. Movie and tv-show queries can also filter by actor/director. Finds media items only — for people lookups (bands, artists, who is in the library) use |
| contributorsA | Find or list contributors (bands, solo artists, composers, actors, directors): optional name substring, optional type (band/composer/actor/director) — e.g. {type: "band"} lists all bands. Rows {name, in: [albums|songs|movies|tvshows]} say where each name yields hits — feed the exact name back into |
| playfileA | Play one file by path (e.g. a |
| queueA | Queue an item behind the one now playing, for continuous playback: a |
| getplaylistA | Read the queue without changing it: the items of the active player's playlist — or of a named one (audio/video/picture), which always wins — plus the position of the now-playing item. An empty queue is an empty list. Returns { "type"?, "total", "position"?, "items": [ { "id", "file", "label", "type" } ] }. |
| dropplaylistsA | Empty all queues: clear the audio, video and picture playlists in one call. The current item keeps playing — only the queued items behind it are removed — so playback is never interrupted. Not undoable; inspect with getplaylist first if the content matters. Returns the player-state snapshot — whatever was playing still is, with nothing queued behind it. |
| historyA | List recently played items from the local playback log. Filter with an ISO-8601 window (since/until), media/kind/artist, a free-text match or an exact id; page with limit/offset/order, or ask for a count only. An omitted instance returns all boxes. Reads only the local log — no Kodi call, so it works even when no box is reachable. Returns { "total", "returned", "offset", "truncated", "entries": [ { "at", "instance", "kind", "media", "title", "artist", … } ] }. |
| rpcA | Escape hatch: send a raw JSON-RPC method to Kodi and return its reply unchanged. Disabled unless the target instance has opted in (allow_rpc in the server config, set by hand only). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/laszlopere/mcp-kodi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server