Skip to main content
Glama
rollecode

Bazarr MCP server

by rollecode

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAZARR_URLYesThe URL of your Bazarr instance.
BAZARR_API_KEYYesThe API key for your Bazarr instance (Settings, General, Security, API key).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_episodes_blacklistC

Add an episodes subtitles to blacklist.

POST /api/episodes/blacklist

Args: seriesid: Series ID episodeid: Episode ID provider: Provider name subs_id: Subtitles ID language: Subtitles language subtitles_path: Subtitles file path

create_episodes_subtitlesB

Upload an episode subtitles.

POST /api/episodes/subtitles

Args: seriesid: Series ID episodeid: Episode ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string file: Subtitles file as file upload object

create_jellyfin_test_connectionA

Test connection to a Jellyfin server with provided credentials.

POST /api/jellyfin/test-connection

Args: url: Jellyfin server URL apikey: Jellyfin API key

create_moviesB

Update specific movies languages profile.

POST /api/movies

Args: radarrid: Radarr movie(s) ID profileid: Languages profile(s) ID or "none"

create_movies_blacklistC

Add a movies subtitles to blacklist.

POST /api/movies/blacklist

Args: radarrid: Radarr ID provider: Provider name subs_id: Subtitles ID language: Subtitles language subtitles_path: Subtitles file path

create_movies_subtitlesB

Upload a movie subtitles.

POST /api/movies/subtitles

Args: radarrid: Movie ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string file: Subtitles file as file upload object

create_plex_apikeyC

POST plex/apikey.

POST /api/plex/apikey

Args: apikey: API key

create_plex_encrypt_apikeyC

POST plex/encrypt-apikey.

POST /api/plex/encrypt-apikey

create_plex_oauth_logoutC

POST plex/oauth/logout.

POST /api/plex/oauth/logout

create_plex_oauth_pinC

POST plex/oauth/pin.

POST /api/plex/oauth/pin

Args: client_id: Client ID

create_plex_select_serverD

POST plex/select-server.

POST /api/plex/select-server

Args: machine_identifier: Machine identifier name: Server name uri: Connection URI local: Is local connection connections: All available connection URIs

create_plex_test_connectionC

POST plex/test-connection.

POST /api/plex/test-connection

Args: uri: Server URI

create_plex_webhook_createD

POST plex/webhook/create.

POST /api/plex/webhook/create

create_plex_webhook_deleteC

POST plex/webhook/delete.

POST /api/plex/webhook/delete

Args: webhook_url: Webhook URL to delete

create_providersB

Reset providers status.

POST /api/providers

Args: action: Action to perform from ["reset"]

create_providers_episodesB

Manually download an episode subtitles.

POST /api/providers/episodes

Args: seriesid: Series ID episodeid: Episode ID hi: HI subtitles from ["True", "False"] forced: Forced subtitles from ["True", "False"] original_format: Use original subtitles format from ["True", "False"] provider: Provider name subtitle: Subtitle ID as returned by GET

create_providers_moviesA

Manually download a movie subtitles.

POST /api/providers/movies

Args: radarrid: Movie ID hi: HI subtitles from ["True", "False"] forced: Forced subtitles from ["True", "False"] original_format: Use original subtitles format from ["True", "False"] provider: Provider name subtitle: Subtitle ID as returned by GET

create_seriesB

Update specific series languages profile.

POST /api/series

Args: seriesid: Sonarr series ID profileid: Languages profile(s) ID or "none"

create_systemA

Shutdown or restart Bazarr.

POST /api/system

Args: action: Action to perform from ["shutdown", "restart"]

create_system_accountA

Login or logout from Bazarr UI when using form login.

POST /api/system/account

Args: action: Action from ["login", "logout"] username: Bazarr username password: Bazarr password

create_system_announcementsA

Mark announcement as dismissed.

POST /api/system/announcements

Args: hash: hash of the announcement to dismiss

create_system_backupsB

Create a new backup.

POST /api/system/backups

create_system_jobsA

Force start, move to top or move to bottom of the queue a specific job.

POST /api/system/jobs

Args: id: Job ID act onto action: Action to perform from ["force_start", "move_top", "move_bottom"]

create_system_settingsC

POST system/settings.

POST /api/system/settings

create_system_tasksC

Run task.

POST /api/system/tasks

Args: taskid: Task id of the task to run

create_system_webhooks_testA

Test external webhook connection.

POST /api/system/webhooks/test

create_webhooks_plexB

Trigger subtitles search on play media event in Plex.

POST /api/webhooks/plex

Args: payload: Webhook payload

create_webhooks_radarrA

Search for missing subtitles based on Radarr webhooks.

POST /api/webhooks/radarr

create_webhooks_sonarrA

Search for missing subtitles based on Sonarr webhooks.

POST /api/webhooks/sonarr

delete_episodes_blacklistC

Delete an episodes subtitles from blacklist.

DELETE /api/episodes/blacklist

Args: all: Empty episodes subtitles blacklist provider: Provider name subs_id: Subtitles ID

delete_episodes_subtitlesB

Delete an episode subtitles.

DELETE /api/episodes/subtitles

Args: seriesid: Series ID episodeid: Episode ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string path: Path of the subtitles file

delete_movies_blacklistB

Delete a movies subtitles from blacklist.

DELETE /api/movies/blacklist

Args: all: Empty movies subtitles blacklist provider: Provider name subs_id: Subtitles ID

delete_movies_subtitlesC

Delete a movie subtitles.

DELETE /api/movies/subtitles

Args: radarrid: Movie ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string path: Path of the subtitles file

delete_system_backupsA

Delete a backup file.

DELETE /api/system/backups

Args: filename: Backups to delete filename

delete_system_jobsA

Delete a job from the queue.

DELETE /api/system/jobs

Args: id: Job ID to delete from queue

delete_system_logsA

Force log rotation and create a new log file.

DELETE /api/system/logs

get_plex_oauth_pin_by_pin_id_checkC

GET plex/oauth/pin/string:pin_id/check.

GET /api/plex/oauth/pin/{pin_id}/check

Args: pin_id: Path parameter.

list_badgesA

Get badges count to update the UI.

GET /api/badges

list_episodesB

List episodes metadata for specific series or episodes.

GET /api/episodes

Args: seriesid: Series IDs to list episodes for episodeid: Episodes ID to list

list_episodes_blacklistA

List blacklisted episodes subtitles.

GET /api/episodes/blacklist

Args: start: Paging start integer length: Paging length integer

list_episodes_historyB

List episodes history events.

GET /api/episodes/history

Args: start: Paging start integer length: Paging length integer episodeid: Episode ID

list_episodes_wantedB

List episodes wanted subtitles.

GET /api/episodes/wanted

Args: start: Paging start integer length: Paging length integer episodeid: Episodes ID to list

list_filesB

List Bazarr file system content.

GET /api/files

Args: path: Path to browse

list_files_radarrB

List Radarr file system content.

GET /api/files/radarr

Args: path: Path to browse

list_files_sonarrA

List Sonarr file system content.

GET /api/files/sonarr

Args: path: Path to browse

list_history_statsA

Get history statistics.

GET /api/history/stats

Args: time_frame: Timeframe to get stats for. Must be in ["week", "month", "trimester", "year"] action: Action type to filter for. provider: Provider name to filter for. language: Language name to filter for

list_jellyfin_librariesA

List available movie and series libraries from the Jellyfin server.

GET /api/jellyfin/libraries

Args: url: Jellyfin server URL apikey: Jellyfin API key

list_moviesB

List movies metadata for specific movies.

GET /api/movies

Args: start: Paging start integer length: Paging length integer radarrid: Movies IDs to get metadata for

list_movies_blacklistB

List blacklisted movies subtitles.

GET /api/movies/blacklist

Args: start: Paging start integer length: Paging length integer

list_movies_historyB

List movies history events.

GET /api/movies/history

Args: start: Paging start integer length: Paging length integer radarrid: Movie ID

list_movies_tagsA

List all distinct tags assigned to any movie.

GET /api/movies/tags

list_movies_wantedC

List movies wanted subtitles.

GET /api/movies/wanted

Args: start: Paging start integer length: Paging length integer radarrid: Movies ID to list

list_plex_autopulse_configB

GET plex/autopulse/config.

GET /api/plex/autopulse/config

list_plex_oauth_librariesC

GET plex/oauth/libraries.

GET /api/plex/oauth/libraries

list_plex_oauth_pinD

GET plex/oauth/pin.

GET /api/plex/oauth/pin

list_plex_oauth_serversB

GET plex/oauth/servers.

GET /api/plex/oauth/servers

list_plex_oauth_validateC

GET plex/oauth/validate.

GET /api/plex/oauth/validate

list_plex_select_serverC

GET plex/select-server.

GET /api/plex/select-server

list_plex_test_connectionC

GET plex/test-connection.

GET /api/plex/test-connection

list_plex_webhook_listC

GET plex/webhook/list.

GET /api/plex/webhook/list

list_providersB

Get providers status.

GET /api/providers

Args: history: Provider name for history stats

list_providers_episodesB

Search manually for an episode subtitles.

GET /api/providers/episodes

Args: episodeid: Episode ID

list_providers_moviesC

Search manually for a movie subtitles.

GET /api/providers/movies

Args: radarrid: Movie ID

list_seriesC

List series metadata for specific series.

GET /api/series

Args: start: Paging start integer length: Paging length integer seriesid: Series IDs to get metadata for

list_series_tagsA

List all distinct tags assigned to any series.

GET /api/series/tags

list_subtitlesB

Return available audio and embedded subtitles tracks with external subtitles. Used for manual subsync.

GET /api/subtitles

Args: subtitles_path: External subtitles file path sonarr_episode_id: Sonarr Episode ID radarr_movie_id: Radarr Movie ID

list_subtitles_contentsC

Retrieve subtitle file contents.

GET /api/subtitles/contents

Args: subtitle_path: Subtitle filepath

list_subtitles_infoB

Guessit over subtitles filename.

GET /api/subtitles/info

Args: filenames: Subtitles filenames

list_system_announcementsA

List announcements relative to Bazarr.

GET /api/system/announcements

list_system_backupsA

List backup files.

GET /api/system/backups

list_system_healthB

List health issues.

GET /api/system/health

list_system_jobsB

List jobs from the queue.

GET /api/system/jobs

Args: id: Job ID to return status: Job status to return

list_system_languagesA

List languages for history filter or for language filter menu.

GET /api/system/languages

Args: history: Language name for history stats

list_system_languages_profilesA

List languages profiles.

GET /api/system/languages/profiles

list_system_logsA

List log entries.

GET /api/system/logs

list_system_pingB

Return status and http 200.

GET /api/system/ping

list_system_releasesB

Get Bazarr releases.

GET /api/system/releases

list_system_searchesA

List results from query.

GET /api/system/searches

Args: query: Series or movie name to search for

list_system_settingsB

GET system/settings.

GET /api/system/settings

list_system_statusA

Return environment information and versions.

GET /api/system/status

list_system_tasksB

List tasks.

GET /api/system/tasks

Args: taskid: List tasks or a single task properties

patch_episodes_subtitlesC

Download an episode subtitles.

PATCH /api/episodes/subtitles

Args: seriesid: Series ID episodeid: Episode ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string

patch_moviesB

Run actions on specific movies.

PATCH /api/movies

Args: radarrid: Radarr movie ID action: Action to perform from ["scan-disk", "search-missing", "search-wanted", "sync"]

patch_movies_subtitlesB

Download a movie subtitles.

PATCH /api/movies/subtitles

Args: radarrid: Movie ID language: Language code2 forced: Forced true/false as string hi: HI true/false as string

patch_seriesA

Run actions on specific series.

PATCH /api/series

Args: seriesid: Sonarr series ID action: Action to perform from ["scan-disk", "search-missing", "search-wanted", "sync"]

patch_subtitlesA

Apply mods/tools on external subtitles.

PATCH /api/subtitles

Args: action: Action from ["sync", "translate", "extract" or mods name] language: Language code2 path: Subtitles file path type: Media type from ["episode", "movie"] id: Media ID (episodeId, radarrId) forced: Forced subtitles from ["True", "False"] hi: HI subtitles from ["True", "False"] original_format: Use original subtitles format from ["True", "False"] reference: Reference to use for sync from video file track number (a:0) or some subtitles file path max_offset_seconds: Maximum offset seconds to allow no_fix_framerate: Don't try to fix framerate from ["True", "False"] gss: Use Golden-Section Search from ["True", "False"] subtitles_id: Subtitles database ID (required for the "extract" action)

patch_system_backupsC

Restore a backup file.

PATCH /api/system/backups

Args: filename: Backups to restore filename

patch_system_jobsB

Empty a specific jobs queue.

PATCH /api/system/jobs

Args: queue_name: Jobs queue name to empty

patch_system_notificationsB

Test a notifications provider URL.

PATCH /api/system/notifications

Args: url: Notifications provider URL

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 89 tools

Disambiguation4/5

Tools are generally distinct by resource and action (movies, series, episodes, system), but the 'create_' prefix is misleadingly used for non-creating operations like shutdown or testing, which could cause initial confusion. Overall, each tool has a unique endpoint and clear purpose.

Naming Consistency3/5

Naming follows an HTTP-method-like pattern (create_, list_, patch_, delete_) but mixes list_ and get_ for GET endpoints and uses create_ for actions like reset or test. This inconsistency makes the naming pattern less predictable than a clean verb_noun convention.

Tool Count2/5

With 89 tools, the surface is heavily over-scoped for most use cases. Many niche Plex/OAuth/admin operations could be grouped or omitted, making the server feel bloated and harder to navigate.

Completeness5/5

The tool set thoroughly covers Bazarr's API: subtitle CUD, blacklists, history, wanted lists, providers, system management, backups, tasks, and media integrations. It leaves little functional gap for the server's intended domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues