Skip to main content
Glama
matthieurosset

nas-mcp-server

NAS MCP Server

MCP server for managing your media server stack: Plex, Radarr, Overseerr, Bazarr, Prowlarr, and Trakt.tv.

Use natural language to browse your library, request movies, manage subtitles, search indexers, and discover trending films.

Installation

uvx nas-mcp-server

Related MCP server: overseerr-mcp

Configuration

Add to your Claude Desktop or Claude Code MCP configuration:

{
  "mcpServers": {
    "nas-mcp-server": {
      "command": "uvx",
      "args": ["nas-mcp-server"],
      "env": {
        "PLEX_URL": "http://your-nas:32400",
        "PLEX_TOKEN": "your_plex_token",
        "RADARR_URL": "http://your-nas:7878",
        "RADARR_API_KEY": "your_radarr_api_key",
        "OVERSEERR_URL": "http://your-nas:5055",
        "OVERSEERR_API_KEY": "your_overseerr_api_key",
        "BAZARR_URL": "http://your-nas:6767",
        "BAZARR_API_KEY": "your_bazarr_api_key",
        "PROWLARR_URL": "http://your-nas:9696",
        "PROWLARR_API_KEY": "your_prowlarr_api_key",
        "TRAKT_CLIENT_ID": "your_trakt_client_id"
      }
    }
  }
}

Note: Only configure the services you use. Each service is optional and will be disabled if not configured.

Environment Variables

Variable

Description

Required

PLEX_URL

Plex server URL (e.g., http://192.168.1.100:32400)

Yes

PLEX_TOKEN

Plex authentication token (how to find)

Yes

RADARR_URL

Radarr server URL (e.g., http://192.168.1.100:7878)

No

RADARR_API_KEY

Radarr API key (Settings → General → API Key)

No

OVERSEERR_URL

Overseerr server URL (e.g., http://192.168.1.100:5055)

No

OVERSEERR_API_KEY

Overseerr API key (Settings → General → API Key)

No

BAZARR_URL

Bazarr server URL (e.g., http://192.168.1.100:6767)

No

BAZARR_API_KEY

Bazarr API key (Settings → General → API Key)

No

PROWLARR_URL

Prowlarr server URL (e.g., http://192.168.1.100:9696)

No

PROWLARR_API_KEY

Prowlarr API key (Settings → General → API Key)

No

TRAKT_CLIENT_ID

Trakt.tv Client ID (create app)

No

Features

🎬 Plex - Your Media Library

Browse and explore your personal media collection.

  • List movies and TV shows in your library

  • Get detailed information about any title

  • Check watch status and progress

  • View active streaming sessions

  • Get personalized recommendations based on your library

🎥 Radarr - Movie Management

Automate movie downloads and organization.

  • Search and add movies to your collection

  • Monitor download progress and queue

  • Manage movie quality profiles

  • Remove movies from monitoring

  • Check disk space and system status

🎭 Overseerr - Discovery & Requests

Discover new content and manage requests.

  • Search for actors and view their complete filmography

  • Find which movies from an actor are missing from your library

  • Browse popular and trending movies

  • Submit and manage movie/TV show requests

  • Check request status and approval history

📝 Bazarr - Subtitle Management

Automate subtitle downloads for your media.

  • List movies and episodes with missing subtitles

  • Search and download subtitles in any language

  • View subtitle download history

  • Manage subtitle providers (OpenSubtitles, Addic7ed, etc.)

  • Sync with Radarr/Sonarr libraries

  • Reset throttled providers

🔍 Prowlarr - Indexer Management

Centralized indexer management for your *arr apps.

  • List and manage all configured indexers

  • Test indexer connectivity

  • Search across all indexers simultaneously

  • View indexer statistics and performance

  • Manage connected applications (Radarr, Sonarr, etc.)

  • Monitor indexer health

Discover what's popular and trending worldwide.

  • Get trending movies (most watched right now)

  • Browse popular movies (highest rated + most votes)

  • View most watched movies by period (weekly, monthly, yearly)

  • Search the Trakt database

🔧 Unified Tools

High-level tools that combine multiple services.

  • System Health Check: Get a unified status report of all your services

  • Discover Top Rated Missing: Find highly-rated movies you don't have yet, with genre filtering

Example Queries

Once configured, you can ask Claude things like:

  • "What movies do I have with Tom Hanks?"

  • "Show me my recently added movies"

  • "What's downloading right now?"

  • "Find movies with Timothée Chalamet that I don't have"

  • "Download French subtitles for Inception"

  • "What are the trending movies this week?"

  • "Show me the top 10 missing movies excluding horror and animation"

  • "Check the health of all my services"

  • "Search for 'Dune' on my indexers"

  • "Which subtitle providers are working?"

How to Get API Keys

Plex Token

  1. Sign in to Plex Web App

  2. Browse to any media item

  3. Click "Get Info" → "View XML"

  4. Find X-Plex-Token in the URL

Radarr / Sonarr / Prowlarr / Bazarr API Key

  1. Open the application web UI

  2. Go to Settings → General

  3. Copy the API Key

Overseerr API Key

  1. Open Overseerr web UI

  2. Go to Settings → General

  3. Copy the API Key

Trakt Client ID

  1. Go to Trakt API Applications

  2. Create a new application

  3. Copy the Client ID

License

MIT

Available Tools

12 tools
discover_top_rated_missingA

Découvre les films bien notés que tu n'as pas encore dans ta collection.

Args: source: Source Trakt (popular, trending, watched) period: Période pour 'watched' (weekly, monthly, yearly, all) min_imdb_rating: Note IMDB minimum (défaut: 6.0) limit: Nombre de films à retourner (défaut: 10) exclude_genres: Liste de genres à exclure (ex: ["animation", "anime"])

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNopopular
periodNoweekly
min_imdb_ratingNo
limitNo
exclude_genresNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It explains the tool discovers movies from Trakt sources with rating filters, suggesting read-only behavior. However, it omits details like external API dependency, rate limits, or potential delays, which are relevant for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: one sentence for purpose and a bullet list of parameters. No repeated or redundant information. Each element serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, optional nature, and existence of an output schema, the description adequately explains the tool's behavior and parameter semantics. However, it lacks usage guidelines relative to siblings and is in French, which may hinder some agents. It is mostly complete for a discovery tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden for parameter semantics. It provides French explanations for each parameter (source, period, min_imdb_rating, limit, exclude_genres), adding meaning beyond the schema's default values and types. The language barrier slightly reduces clarity but still adds substantive value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: discovering highly rated movies not yet in the user's collection. It uses a specific verb ('discover') and resource ('missing top-rated movies'), and the context of sibling Plex tools (e.g., plex_search, plex_get_libraries) makes it distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like plex_search or plex_search_movies. It implies use for missing items but doesn't explicitly state scenarios or contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_librariesA

Liste toutes les bibliothèques Plex (Films, Séries, Musique, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether the operation is read-only, any authentication requirements, rate limits, or pagination. For a read/list tool, basic safety is implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters, the description is mostly complete. However, it does not describe the output format or fields of the libraries, which might be useful. Still, it adequately covers the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%. The description adds no parameter info, which is acceptable since none are needed. The baseline of 4 applies for no-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all Plex libraries, specifying types (Movies, Series, Music). It uses a specific verb and resource, and the purpose is easily distinguishable from sibling tools like search or get details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It only states what it does, without any when-to-use or when-not-to-use context relative to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_movie_detailsB

Récupère les détails complets d'un film ou d'une série.

Args: rating_key: L'identifiant du média

ParametersJSON Schema
NameRequiredDescriptionDefault
rating_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It implies a read operation ('Récupère'), but does not explicitly state read-only, safe, or any side effects. Adequate for a simple get, but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences plus an Args section. Front-loaded with purpose. No unnecessary words, but French language may reduce clarity for some agents. Still highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and an output schema present, description does not need to detail return values. It states 'complete details' which is sufficient for simple retrieval. Lacks mentions of error conditions or edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add meaning. It explains 'rating_key' as 'L'identifiant du média' (media identifier), providing basic semantics beyond type string. However, it lacks detail like format or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves complete details of a movie or series (verb+resource). It distinguishes from sibling tools like plex_search or plex_get_watched by specifying it gets details of a single item by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Sibling tools exist for search or aggregated views, but description does not mention when to prefer this over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_on_deckA

Récupère les médias 'À suivre' (en cours de visionnage, à reprendre).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only covers purpose. It does not disclose behavioral traits such as read-only nature, side effects, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded and contains no unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema that defines return values, the description adequately covers the tool's purpose. It does not mention additional details like ordering or pagination, but these are likely not needed for this simple endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. The description adds meaning by explaining the concept of 'on deck' (currently watching, to resume), which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves 'À suivre' media (in progress, to resume), using a clear verb and resource. It distinguishes from sibling tools like plex_get_unwatched and plex_get_watched.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving in-progress media but does not provide explicit guidance on when to use vs alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_recently_addedC

Récupère les médias récemment ajoutés à la bibliothèque.

Args: limit: Nombre maximum de résultats

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states that it retrieves recently added media, without disclosing ordering, pagination, side effects, or whether the results can be filtered further. This lacks sufficient behavioral context for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (2 sentences) but includes an unnecessary 'Args:' prefix. While not verbose, it omits important context that would justify its length. Every sentence provides some value, but it could be more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (so return values need not be detailed), the description lacks completeness given the 11 sibling tools. It does not explain how results are ordered, whether it returns all libraries or a specific one, or any constraints like authentication. The minimal description is insufficient for correct agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter (limit) with 0% schema coverage. The description adds the meaning: 'limit: Nombre maximum de résultats' (maximum number of results), which is helpful beyond the schema's default and type. This compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Retrieves media recently added to the library'. It is specific to the tool's function but does not differentiate from sibling tools like plex_get_on_deck or plex_get_recommendations, which could similarly retrieve recent content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of typical use cases, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_recommendationsB

Récupère des recommandations basées sur un film ou une série.

Args: rating_key: L'identifiant du média (obtenu via plex_search ou autres outils)

ParametersJSON Schema
NameRequiredDescriptionDefault
rating_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic purpose. It does not disclose behavior such as whether the tool requires a server with recommendations enabled, rate limits, or the structure of the output. More detail is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two sentences, front-loading the purpose. No redundant information, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description is minimally adequate but could be improved by briefly describing the output (e.g., returns a list of recommendations).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by explaining that rating_key is a media identifier obtained via plex_search. However, it does not specify the expected format (e.g., integer) or provide further semantic details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves recommendations based on a movie or series, which distinguishes it from siblings like plex_search or plex_get_movie_details. However, it could specify the type of recommendations (e.g., similar content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions the rating_key is obtained via plex_search, implying when to use, but lacks explicit guidance on prerequisites, when not to use, or alternatives. The usage is implied but not fully clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_unwatchedA

Récupère les films ou séries non vus.

Args: library_key: Clé de la bibliothèque (optionnel, utiliser plex_get_libraries pour trouver les clés) limit: Nombre maximum de résultats

ParametersJSON Schema
NameRequiredDescriptionDefault
library_keyNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description only states basic functionality without disclosing behavioral traits such as pagination behavior, returned metadata, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with a single purpose line and brief parameter explanations. No wasted sentences, front-loaded with core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return format. However, it omits context like whether it returns episodes or series-level data, or any prerequisites. Adequate for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description adds value by explaining 'library_key' is optional and referencing 'plex_get_libraries', and 'limit' indicates max results. However, details like format or allowed values are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves unwatched movies or series, using a specific verb ('Récupère') and resource, distinguishing it from siblings like 'plex_get_watched' and 'plex_get_recently_added'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description hints at using 'plex_get_libraries' to find library keys, but lacks explicit guidance on when to use this tool versus alternatives like 'plex_get_watched' or 'plex_get_recently_added'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_get_watchedA

Récupère l'historique de visionnage (films et séries déjà vus).

Args: limit: Nombre maximum de résultats

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the tool retrieves watch history but does not mention authentication requirements, rate limits, pagination, or any side effects. For a read operation, safety is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences covering purpose and parameter. No superfluous information. It is front-loaded with the primary function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return format need not be explained) and only one parameter, the description is mostly complete. However, it could mention that results include both movies and series (already stated) and any default ordering. Minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, so the description must compensate. It adds meaning to the 'limit' parameter by explaining it as 'Nombre maximum de résultats' (maximum number of results), which is helpful. However, it does not describe any other parameters (none exist).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves watch history for movies and series, which distinguishes it from siblings like 'plex_get_unwatched' and others. The verb 'Récupère' and resource 'historique de visionnage' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'plex_get_unwatched' or 'plex_get_recently_added'. The description does not provide context for when it's appropriate to call this function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_search_moviesA

Recherche avancée de films dans la bibliothèque Plex avec filtres combinés.

Tous les critères sont combinés avec une logique AND.

Args: library_key: Clé de bibliothèque (optionnel, sinon toutes les bibliothèques de films) actor: Nom de l'acteur (ex: "Brad Pitt") director: Nom du réalisateur (ex: "Steven Spielberg") genre: Genre du film (ex: "Action", "Comedy", "Drama") year: Année de sortie exacte (ex: 2023) year_min: Année minimum (ex: 2000) year_max: Année maximum (ex: 2023) min_rating: Note IMDB minimum (ex: 7.0) watch_status: "watched", "unwatched", ou None pour tous added_within_days: Films ajoutés dans les X derniers jours (ex: 30) sort_by: Tri des résultats (audienceRating:desc, addedAt:desc, year:desc, title:asc) limit: Nombre maximum de résultats

Exemples: - Films avec Brad Pitt non vus: actor="Brad Pitt", watch_status="unwatched" - Comédies bien notées des 5 dernières années: genre="Comedy", year_min=2019, min_rating=7.0 - Films ajoutés ce mois-ci: added_within_days=30

ParametersJSON Schema
NameRequiredDescriptionDefault
library_keyNo
actorNo
directorNo
genreNo
yearNo
year_minNo
year_maxNo
min_ratingNo
watch_statusNo
added_within_daysNo
sort_byNoaudienceRating:desc
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It mentions that filters are combined with AND logic, but does not discuss safety (e.g., read-only nature), potential side effects, or prerequisites. Given the absence of annotations, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but well-structured, starting with a brief purpose, then a key behavioral note (AND logic), followed by a parameter list with examples. While it is lengthy, the complexity of 12 parameters justifies the length. It could be slightly more concise, but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers how to use the tool with examples and parameter guidance. Since an output schema exists, the absence of return value details is acceptable. However, it does not provide guidance on when to use this tool versus siblings like plex_search or plex_get_recommendations, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds extensive meaning beyond the schema. It provides detailed explanations for all 12 parameters, including types, examples, and usage notes. This compensates for the 0% schema description coverage, making parameter usage very clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs an advanced search for movies with combined filters, using AND logic. It specifies the resource (films in Plex library) and the action (advanced search with filters). The name itself indicates movies, and the description further distinguishes it from general search tools like plex_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage scenarios through examples, such as searching for unwatched movies with Brad Pitt or well-rated comedies from the last 5 years. However, it does not explicitly state when to avoid this tool in favor of alternatives like plex_get_unwatched or plex_search, which are simpler or broader in scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

plex_server_statusA

Récupère les informations et le statut du serveur Plex.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and a minimal description, the tool lacks disclosure of read-only behavior, authentication needs, or edge cases like server unavailability. The description only says it retrieves status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is concise and front-loaded with the action. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status tool, the description is adequate but missing details about the output schema content (e.g., what fields are returned) and any behavioral context. With no annotations, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so no parameter documentation is needed. Baseline 4 applies as per guidelines for tools with zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves Plex server information and status, using a specific French verb 'Récupère'. It distinguishes from sibling tools that focus on specific content like movies or libraries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over alternatives such as 'system_health_check'. There is no context about preconditions or intended usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

system_health_checkA

Vérifie l'état de santé de tous les services du NAS.

Retourne un rapport unifié avec le statut de chaque service (Plex, Radarr, Overseerr, Bazarr, Prowlarr).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the burden. It states the return type (unified report with status) but does not disclose whether the tool is read-only, any side effects, or auth requirements. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that efficiently describe purpose and output. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an existing output schema, the description fully covers the tool's behavior. It lists the specific services checked, which is sufficient for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist in the schema, so the description is not required to add parameter details. The baseline score of 4 applies, and no information is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Vérifie') and resource ('état de santé de tous les services du NAS'), listing exact services. It clearly distinguishes from sibling tools that focus on Plex content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. However, the tool's purpose is inherently clear compared to content-focused siblings, earning a baseline score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv0.0.8
    • First observeddiscover_top_rated_missing
    • First observedplex_get_libraries
    • First observedplex_get_movie_details
    • First observedplex_get_on_deck
    • First observedplex_get_recently_added
    • First observedplex_get_recommendations
    • First observedplex_get_unwatched
    • First observedplex_get_watched
    • First observedplex_search
    • First observedplex_search_movies
    • First observedplex_server_status
    • First observedsystem_health_check

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between plex_search and plex_search_movies, both handling search with different levels of filtering. However, descriptions clarify the differences, and the remaining tools (discover, health check) are well-separated.

Naming Consistency4/5

The naming follows a consistent snake_case pattern, but there is a mix of prefixes: 'plex_', 'discover_', and 'system_'. Within the Plex group, naming is consistent (verb_noun). The 'discover_top_rated_missing' breaks from the 'plex_' prefix, causing minor inconsistency.

Tool Count5/5

12 tools is a reasonable count for a NAS media server focused on Plex functionality. The set covers browsing, searching, recommendations, status checks, and a unique discovery feature, without being overwhelming or too sparse.

Completeness3/5

The tool set covers many Plex operations (retrieve, search, recommend) but lacks media management capabilities (add, update, delete) and direct interaction with other services (Radarr, etc.) beyond a health check. Notable gaps for a full-featured NAS server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that gives AI assistants control over your Sonarr, Radarr, Prowlarr, qBittorrent, and Jellyfin homelab media stack.
    5
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Overseerr that enables searching, requesting, and managing media (movies and TV shows) through natural language, with integration to Radarr/Sonarr for automated downloads.
    -
  • F
    license
    A
    quality
    C
    maintenance
    MCP server for Overseerr media request management. Enables AI assistants to search for media, view requests, and manage media requests through the Model Context Protocol.
    12
    -

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/matthieurosset/nas-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server