Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Kodi

БесплатноНе проверен

Model Context Protocol server for Kodi media center integration

GitHubEmbed

Описание

Model Context Protocol server for Kodi media center integration

README

A Model Context Protocol (MCP) server for interacting with Kodi media center. This server provides tools for querying media libraries, checking existing content, playing media, and managing Kodi remotely.

Features

  • Library Search: Search movies and TV shows by title, year, or genre
  • Content Verification: Check if movies/episodes exist before downloading
  • Smart Playback Control: Play movies/episodes and control playback
  • Watch Status Tracking: NEW v1.2.0 - Automatically track what you've watched and play next unwatched episodes
  • Targeted Library Scanning: NEW v1.2.0 - Scan specific TV show directories instead of entire library (fast!)
  • Library Management: Get statistics, recent additions, and trigger scans
  • SOCKS5 Proxy Support: Connect to remote Kodi instances through SSH tunnels
  • Fuzzy Matching: Intelligent title matching for better search results

Installation

  1. Clone the repository:
git clone https://github.com/v-odoo-testing/kodi-mcp-server.git
cd kodi-mcp-server
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Test the connection:
python test_connection.py --host 192.168.1.71 --username kodi --password kodi

Configuration

Configure the server using environment variables:

Basic Configuration

export KODI_HOST="192.168.1.71"
export KODI_PORT="8080"
export KODI_USERNAME="kodi"
export KODI_PASSWORD="kodi"
export KODI_TIMEOUT="30"
export USE_HTTPS="false"

SOCKS5 Proxy (for remote access)

export SOCKS5_HOST="localhost"
export SOCKS5_PORT="1080"
export SOCKS5_USERNAME=""  # Optional
export SOCKS5_PASSWORD=""  # Optional

Claude Desktop Integration

Add this configuration to your Claude Desktop config file:

{
  "mcpServers": {
    "kodi": {
      "command": "/path/to/kodi-mcp-server/venv/bin/python",
      "args": ["/path/to/kodi-mcp-server/src/server.py"],
      "env": {
        "KODI_HOST": "192.168.1.71",
        "KODI_PORT": "8080",
        "KODI_USERNAME": "kodi",
        "KODI_PASSWORD": "kodi",
        "KODI_TIMEOUT": "30",
        "USE_HTTPS": "false",
        "SOCKS5_HOST": "",
        "SOCKS5_PORT": "1080",
        "SOCKS5_USERNAME": "",
        "SOCKS5_PASSWORD": ""
      }
    }
  }
}

Available Tools

Search Tools

  • search_movies - Search movies by title, year, or genre
  • search_tv_shows - Search TV shows by title or genre
  • check_movie_exists - Quick check if a movie exists
  • check_tv_show_exists - Check TV show/season/episode availability

Playback Tools

  • play_movie - Play a movie by title
  • play_episode - Play a specific TV episode
  • play_next_unwatched - NEW v1.2.0 - Find and play the next unwatched episode automatically
  • control_playback - Pause, stop, or get playback status

Library Tools

  • get_library_stats - Get library overview and statistics
  • get_recently_added - List recently added content
  • update_library - Trigger library scan (full library)
  • scan_tv_show - NEW v1.2.0 - Scan specific TV show directory only (fast, targeted)
  • get_episode_details - NEW v1.2.0 - Get detailed episode information with file paths

All tools support the use_socks5 parameter for remote access.

SOCKS5 Proxy Setup

For remote Kodi access through SSH:

  1. Create SSH tunnel:
ssh -D 1080 -N user@remote-server
  1. Set environment variables:
export SOCKS5_HOST="localhost"
export SOCKS5_PORT="1080"
  1. Use proxy in tool calls:
User: "Search my remote Kodi for movies, use SOCKS5"
Assistant: Uses search_movies with use_socks5=true

API Reference

Environment Variables

Variable Default Description
KODI_HOST 192.168.1.71 Kodi server IP address
KODI_PORT 8080 Kodi web interface port
KODI_USERNAME kodi Authentication username
KODI_PASSWORD kodi Authentication password
KODI_TIMEOUT 30 Request timeout in seconds
USE_HTTPS false Use HTTPS connection
SOCKS5_HOST - SOCKS5 proxy host
SOCKS5_PORT 1080 SOCKS5 proxy port
SOCKS5_USERNAME - SOCKS5 proxy username (optional)
SOCKS5_PASSWORD - SOCKS5 proxy password (optional)

Tool Parameters

search_movies

{
  "title": "Movie title to search for",
  "year": 2023,
  "genre": "Action",
  "use_socks5": false
}

play_movie

{
  "title": "The Matrix",
  "year": 1999,
  "use_socks5": false
}

play_episode

{
  "show_title": "Breaking Bad",
  "season": 1,
  "episode": 1,
  "use_socks5": false
}

play_next_unwatched

{
  "show_title": "Murderbot",
  "use_socks5": false
}

scan_tv_show

{
  "show_title": "Breaking Bad", 
  "use_socks5": false
}

get_episode_details

{
  "show_title": "Breaking Bad",
  "season": 1,
  "episode": 1,
  "use_socks5": false
}

control_playback

{
  "action": "pause|stop|status",
  "use_socks5": false
}

Usage Examples

Smart Episode Management (NEW v1.2.0)

Scan specific show for new episodes and play next unwatched:

User: "Scan the Murderbot TV show directory for new episodes and play the last one that I have not watched"

Workflow:
1. Uses kodi:scan_tv_show("Murderbot") → Scans only Murderbot directory (fast)
2. Uses kodi:play_next_unwatched("Murderbot") → Finds S01E03 was last watched, plays S01E04

Get detailed episode information:

User: "Get details for Murderbot S1E4"
Assistant: Uses kodi:get_episode_details → Shows file path, rating, plot, episode ID

Basic Library Queries

Check if content exists:

User: "Do I have Inception (2010) in my Kodi library?"
Assistant: Uses kodi:check_movie_exists → "✅ Inception (2010) found in library!"

Search for content:

User: "Show me all action movies from 2022"
Assistant: Uses kodi:search_movies → Lists matching movies with details

Playback Control

Play specific content:

User: "Play The Matrix"
Assistant: Uses kodi:play_movie → "🎬 Started playing The Matrix (1999)"

User: "Play Breaking Bad S1E1" 
Assistant: Uses kodi:play_episode → "📺 Started playing Breaking Bad S01E01: Pilot"

Smart unwatched playback:

User: "Play the next episode of Murderbot I haven't seen"
Assistant: Uses kodi:play_next_unwatched → Detects watch status, plays next episode

Library Management

Targeted scanning (no more full library scans!):

User: "Scan just the Murderbot folder for new episodes"
Assistant: Uses kodi:scan_tv_show → Scans only that show's directory

Get library information:

User: "How many movies do I have?"
Assistant: Uses kodi:get_library_stats → Shows totals and top genres

User: "What did I add recently?"
Assistant: Uses kodi:get_recently_added → Lists recent additions with dates

Integration Examples

Smart TV Show Management (NEW v1.2.0)

User: "Check for new Murderbot episodes and play where I left off"

Workflow:
1. kodi:scan_tv_show("Murderbot") → Fast targeted scan
2. kodi:play_next_unwatched("Murderbot") → Plays next unwatched episode

Troubleshooting

Connection Issues

  1. Verify Kodi is running and accessible:
python test_connection.py
  1. Check network connectivity:
curl http://192.168.1.71:8080/jsonrpc -d '{"jsonrpc":"2.0","method":"JSONRPC.Ping","id":1}'
  1. Test SOCKS5 proxy:
python test_connection.py --socks5 socks5://localhost:1080

Common Errors

"Cannot connect to Kodi"

  • Verify KODI_HOST and KODI_PORT
  • Check if Kodi web interface is enabled
  • Ensure firewall allows connections

"Authentication failed"

  • Verify KODI_USERNAME and KODI_PASSWORD
  • Check Kodi web interface authentication settings

"SOCKS5 proxy connection failed"

  • Verify SSH tunnel is active
  • Check SOCKS5_HOST and SOCKS5_PORT
  • Test proxy with curl: curl --socks5 localhost:1080 http://example.com

Kodi Configuration

Ensure Kodi has the following enabled:

  1. Web Interface:

    • Settings → Services → Control → Allow remote control via HTTP
    • Username: kodi
    • Password: kodi
  2. Network Access:

    • Allow connections from other systems
    • Port: 8080

Development

Project Structure

kodi-mcp-server/
├── src/
│   └── server.py              # Main MCP server
├── requirements.txt           # Dependencies
├── test_connection.py         # Connection testing
├── claude-desktop-config.json # Claude integration
├── README.md                  # This file
├── CHANGELOG.md              # Development log
└── .gitignore                # Git ignore rules

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes with proper commit messages
  4. Update CHANGELOG.md (append only)
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Related Projects

Support

For issues and questions:

  • Create an issue on GitHub
  • Check troubleshooting section
  • Test connection with test_connection.py

from github.com/dgoo2308/kodi-mcp-server

Установка Kodi

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/dgoo2308/kodi-mcp-server

FAQ

Kodi MCP бесплатный?

Да, Kodi MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Kodi?

Нет, Kodi работает без API-ключей и переменных окружения.

Kodi — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Kodi в Claude Desktop, Claude Code или Cursor?

Открой Kodi на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Kodi with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории media