mediaserver-operation

Inspect and operate configured Emby, Jellyfin, Plex, and Navidrome media servers via controlled actions.

11.7k|1.5k|Updated May 31, 2023
One-click install
npx skills add https://github.com/jxxghp/MoviePilot --skill mediaserver-operation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mediaserver-operation
Source: https://github.com/jxxghp/MoviePilot/tree/main/skills/mediaserver-operation
Command: npx skills add https://github.com/jxxghp/MoviePilot --skill mediaserver-operation

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Managing multiple media servers (Emby, Jellyfin, Plex, ZSpace, UGREEN, TrimeMedia, Navidrome) normally requires logging into each provider's own API or UI. This Skill lets an agent inspect, diagnose, and operate any media server already configured in MoviePilot through one controlled command-line helper, without ever handling hosts, tokens, or credentials directly.

Core Features & Use Cases

  • Server-native exploration: List libraries, page and count items, search movies and music, read episode coverage, item details, and provider play URLs.
  • Diagnostics and playback state: Read recent additions, resumable items, active playback sessions, server statistics, and user counts.
  • Controlled side effects: Trigger library scans and metadata refreshes with full argument validation, provider support checks, and safety confirmation guidance.
  • Use Case: Ask the agent to check whether season 2 of a series is complete on your Jellyfin server; it resolves the instance, validates arguments, calls items.season_episodes, and returns the episode coverage as JSON.

Quick Start

Ask the agent to list the libraries on your configured media server, for example: "Show me the libraries on my Emby server and the 20 most recently added items."

Frequently Asked Questions about mediaserver-operation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search movies on my Emby or Jellyfin server from an AI agent?

Call the helper with the items.movies.search action, passing a title and optional year as a JSON arguments object. The script resolves the configured server, validates the arguments, and returns matching provider-native movie items as JSON.

Which media servers does this media server operation tool support?

It supports Emby, Jellyfin, Plex, ZSpace, UGREEN, TrimeMedia, and Navidrome. Each action declares its supported providers, and the capabilities command lists exactly which actions a configured provider supports.

Does the media server helper need API keys or tokens?

No. The helper reads MoviePilot's local server configuration and credentials itself, so you never pass a host, username, password, API key, token, or cookie. Sensitive fields are also stripped from returned results.

How do I trigger a library scan or metadata refresh on Plex?

Use the library.scan action to trigger a provider scan, or metadata.refresh with a list of items containing title, year, type, category, and target_path. Both are side-effect actions, so confirm the exact server and item list first, then verify with activity.latest or items.detail.

What happens when multiple media servers are configured?

If you omit the server name and more than one enabled instance exists, the call fails and lists every valid server name. Pass that name with the server option on the next call; a separate instances call is only needed when you explicitly want to inspect instances.

When should I use this instead of the MoviePilot library.exists check?

Use library.exists in the moviepilot-api for canonical duplicate checks, since it aggregates servers with MoviePilot identity rules. Use this Skill for server-native exploration, diagnostics, playback state, scans, and metadata refreshes.