# Jellyfin MCP

> Use Jellyfin to manage your entire media library directly through conversation. This MCP lets you browse movies, TV shows, and music collections, check server health, and track playback progress without logging into an interface. You can get detailed information on any item or user account instantly from your AI agent.

## Overview
- **Category:** loved-by-devs
- **Price:** Free
- **Tags:** media-server, streaming, home-theater, self-hosted, video-streaming

## Description

Connecting your self-hosted Jellyfin instance to your favorite AI client gives you complete command over your media vault using natural conversation. Instead of navigating complex web dashboards, you talk to the system and it performs actions. You can ask what's available in your root libraries or request a list of specific movies and shows currently stored on the server. Furthermore, if you need to monitor how the system is running—checking things like the version number or OS details—you just ask. This capability lets developers test API interactions easily, while media enthusiasts get total control over their collection from right in your chat window. When you connect this MCP through Vinkius, you gain a single access point to manage everything, making sure your media management stays inside your workflow.

## Tools

### authenticate_by_name
Verifies a user's identity by submitting their name and password.

### get_current_user
Fetches information about the account that is currently logged into the server.

### get_item
Retrieves full details, including descriptions and IDs, for a specific media item.

### get_playback_info
Gathers the necessary information to start playing any piece of content on the server.

### list_items
Searches and reports all available media items within the entire library.

### list_users
List all users (Admin only)

### list_virtual_folders
Shows a list of all top-level libraries configured on the server (e.g., Movies, Music).

### session_playing_progress
Updates the system with how far along you are in watching a piece of media.

### session_playing_stopped
Sends a signal to the server that your current playback session has ended.

### session_playing
Notifies the server when you begin playing media content.

### get_system_configuration
Retrieves the global settings and configuration details for the entire Jellyfin instance.

### get_system_info
Provides essential basic server facts, such as its version number and operating system.

## Prompt Examples

**Prompt:** 
```
List all the root libraries on my Jellyfin server.
```

**Response:** 
```
I've retrieved your root libraries. You have 'Movies' (ID: 1a2b), 'TV Shows' (ID: 3c4d), and 'Music' (ID: 5e6f) configured.
```

**Prompt:** 
```
Show me the movies available in my library.
```

**Response:** 
```
Fetching movies... I found titles including 'Big Buck Bunny' and 'Elephants Dream'. Would you like details for any of these?
```

**Prompt:** 
```
What is the current status and version of my Jellyfin server?
```

**Response:** 
```
Your Jellyfin server is running version 10.9.11 on Linux. The system is healthy and all services are operational.
```

## Capabilities

### Browse and list content
See the root libraries (like Movies or Music) and query all items within them.

### Check specific item details
Retrieve deep metadata, including IDs and descriptions, for a single movie or show episode.

### Manage playback status
Tell the server when you start watching something, update your current position, or notify it that playback has ended.

### Monitor system health
Get core operational details about the Jellyfin setup, including version and OS information.

### Manage user accounts
List all active users or verify a user's credentials by name and password.

## Use Cases

### Diagnosing playback issues
A user notices their media player isn't tracking progress. They ask the agent, 'What is the current session status?' The agent responds by using `get_playback_info`, allowing them to diagnose if the server needs a manual update via `session_playing_progress`.

### Building an inventory script
A developer needs all available titles for a new app feature. They ask the agent to 'List every show and movie in the library.' The agent uses `list_items`, providing a comprehensive list of content that can then be processed by code.

### Checking system readiness
A user just installed Jellyfin on a new box. They ask, 'Tell me about the server.' The agent uses `get_system_info` to report the current version and operating system details in plain text.

### Onboarding new users
An admin needs to verify a contractor's access. They ask, 'Can I check if John Doe has an account?' The agent runs `authenticate_by_name`, confirming the user's status and providing their details.

## Benefits

- Don't manually click through folders. You can check your entire catalog instantly by using `list_items` or asking to browse root libraries, making content discovery effortless.
- Keep track of viewing progress without hassle. Use functions like `session_playing_progress` and `session_playing` so the server knows exactly where you left off when you step away.
- System monitoring becomes part of your chat routine. Getting system facts via `get_system_info` lets you check the OS or version number instantly, which is huge for home lab users.
- Handling user accounts is simple. You can list all connected users with `list_users`, or validate credentials using `authenticate_by_name` without switching apps.
- Getting deep content context is fast. If a friend asks about a title, you use `get_item` to retrieve detailed metadata and IDs instantly for them.

## How It Works

The bottom line is that this connector turns your media server into an actionable resource for any compatible AI client.

1. First, subscribe to this MCP within Vinkius and provide your specific Jellyfin Server URL and API Key.
2. Next, tell your AI agent exactly what you need—for example, 'List all TV shows in the library' or 'What is the server version?'
3. Your agent sends a request through the connection; the MCP retrieves the data from Jellyfin and passes it back to you as readable text.

## Frequently Asked Questions

**How do I list all my root libraries using Jellyfin MCP?**
You simply ask your agent to list the virtual folders. The tool `list_virtual_folders` gives you a clean breakdown of every top-level library—like 'Movies' or 'Music'—configured on your server.

**Can I check if a user exists in Jellyfin using the MCP?**
Yes, you can. Use `list_users` to get a full roster of all accounts. If you need to verify credentials for a specific person, use `authenticate_by_name`.

**What is the difference between list_items and get_item in Jellyfin MCP?**
`list_items` gives you a broad query of all content available within a library. `get_item`, however, requires knowing the specific item ID to retrieve deep, detailed metadata about just that single piece of media.

**How do I tell Jellyfin that I started watching something?**
You initiate playback using the `session_playing` function. This notifies the server immediately and ensures your activity is logged correctly for tracking purposes.