Prowlarr MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PROWLARR_URL | Yes | The base URL of the Prowlarr instance, e.g. http://127.0.0.1:9696 | |
| PROWLARR_API_KEY | Yes | The Prowlarr API key, found under Settings, General, Security |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_applicationsC | Create Application. POST /api/v1/applications Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| create_applications_action_by_nameC | Create Application. POST /api/v1/applications/action/{name} Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_applications_testC | Create Application. POST /api/v1/applications/test Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter. |
| create_applications_testallD | Create Application. POST /api/v1/applications/testall |
| create_appprofileA | Create AppProfile. POST /api/v1/appprofile Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_commandB | Create Command. POST /api/v1/command Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_customfilterA | Create CustomFilter. POST /api/v1/customfilter Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_downloadclientC | Create DownloadClient. POST /api/v1/downloadclient Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| create_downloadclient_action_by_nameC | Create DownloadClient. POST /api/v1/downloadclient/action/{name} Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_downloadclient_testC | Create DownloadClient. POST /api/v1/downloadclient/test Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter. |
| create_downloadclient_testallC | Create DownloadClient. POST /api/v1/downloadclient/testall |
| create_indexerB | Create Indexer. POST /api/v1/indexer Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| create_indexer_action_by_nameA | Create Indexer. POST /api/v1/indexer/action/{name} Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_indexer_testC | Create Indexer. POST /api/v1/indexer/test Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter. |
| create_indexer_testallD | Create Indexer. POST /api/v1/indexer/testall |
| create_indexerproxyA | Create IndexerProxy. POST /api/v1/indexerproxy Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| create_indexerproxy_action_by_nameC | Create IndexerProxy. POST /api/v1/indexerproxy/action/{name} Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_indexerproxy_testC | Create IndexerProxy. POST /api/v1/indexerproxy/test Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter. |
| create_indexerproxy_testallC | Create IndexerProxy. POST /api/v1/indexerproxy/testall |
| create_loginC | Create Authentication. POST /login Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. return_url: Query parameter. |
| create_notificationB | Create Notification. POST /api/v1/notification Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| create_notification_action_by_nameC | Create Notification. POST /api/v1/notification/action/{name} Args: name: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_notification_testC | Create Notification. POST /api/v1/notification/test Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_test: Query parameter. |
| create_notification_testallC | Create Notification. POST /api/v1/notification/testall |
| create_searchA | Create Search. POST /api/v1/search Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_search_bulkC | Create Search. POST /api/v1/search/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| create_system_backup_restore_by_idC | Create Backup. POST /api/v1/system/backup/restore/{id} Args: id: Path parameter. |
| create_system_backup_restore_uploadC | Create Backup. POST /api/v1/system/backup/restore/upload |
| create_system_restartC | Create System. POST /api/v1/system/restart |
| create_system_shutdownC | Create System. POST /api/v1/system/shutdown |
| create_tagA | Create Tag. POST /api/v1/tag Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| delete_applications_bulkC | Delete Application. DELETE /api/v1/applications/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| delete_applications_by_idC | Delete Application. DELETE /api/v1/applications/{id} Args: id: Path parameter. |
| delete_appprofile_by_idB | Delete AppProfile. DELETE /api/v1/appprofile/{id} Args: id: Path parameter. |
| delete_command_by_idC | Delete Command. DELETE /api/v1/command/{id} Args: id: Path parameter. |
| delete_customfilter_by_idB | Delete CustomFilter. DELETE /api/v1/customfilter/{id} Args: id: Path parameter. |
| delete_downloadclient_bulkB | Delete DownloadClient. DELETE /api/v1/downloadclient/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| delete_downloadclient_by_idB | Delete DownloadClient. DELETE /api/v1/downloadclient/{id} Args: id: Path parameter. |
| delete_indexer_bulkC | Delete Indexer. DELETE /api/v1/indexer/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| delete_indexer_by_idB | Delete Indexer. DELETE /api/v1/indexer/{id} Args: id: Path parameter. |
| delete_indexerproxy_by_idA | Delete IndexerProxy. DELETE /api/v1/indexerproxy/{id} Args: id: Path parameter. |
| delete_notification_by_idB | Delete Notification. DELETE /api/v1/notification/{id} Args: id: Path parameter. |
| delete_system_backup_by_idC | Delete Backup. DELETE /api/v1/system/backup/{id} Args: id: Path parameter. |
| delete_tag_by_idC | Delete Tag. DELETE /api/v1/tag/{id} Args: id: Path parameter. |
| get_applications_by_idA | Read Application. GET /api/v1/applications/{id} Args: id: Path parameter. |
| get_appprofile_by_idA | Read AppProfile. GET /api/v1/appprofile/{id} Args: id: Path parameter. |
| get_by_id_apiC | Read Newznab. GET /{id}/api Args: id: Path parameter. t: Query parameter. q: Query parameter. cat: Query parameter. imdbid: Query parameter. tmdbid: Query parameter. extended: Query parameter. limit: Query parameter. offset: Query parameter. minage: Query parameter. maxage: Query parameter. minsize: Query parameter. maxsize: Query parameter. rid: Query parameter. tvmazeid: Query parameter. traktid: Query parameter. tvdbid: Query parameter. doubanid: Query parameter. season: Query parameter. ep: Query parameter. album: Query parameter. artist: Query parameter. label: Query parameter. track: Query parameter. year: Query parameter. genre: Query parameter. author: Query parameter. title: Query parameter. publisher: Query parameter. configured: Query parameter. source: Query parameter. host: Query parameter. server: Query parameter. |
| get_by_id_downloadD | Read Newznab. GET /{id}/download Args: id: Path parameter. link: Query parameter. file: Query parameter. |
| get_by_pathC | Read StaticResource. GET /{path} Args: path: Path parameter. |
| get_command_by_idC | Read Command. GET /api/v1/command/{id} Args: id: Path parameter. |
| get_config_development_by_idA | Read DevelopmentConfig. GET /api/v1/config/development/{id} Args: id: Path parameter. |
| get_config_downloadclient_by_idB | Read DownloadClientConfig. GET /api/v1/config/downloadclient/{id} Args: id: Path parameter. |
| get_config_host_by_idC | Read HostConfig. GET /api/v1/config/host/{id} Args: id: Path parameter. |
| get_config_ui_by_idB | Read UiConfig. GET /api/v1/config/ui/{id} Args: id: Path parameter. |
| get_content_by_pathC | Read StaticResource. GET /content/{path} Args: path: Path parameter. |
| get_customfilter_by_idB | Read CustomFilter. GET /api/v1/customfilter/{id} Args: id: Path parameter. |
| get_downloadclient_by_idA | Read DownloadClient. GET /api/v1/downloadclient/{id} Args: id: Path parameter. |
| get_indexer_by_idB | Read Indexer. GET /api/v1/indexer/{id} Args: id: Path parameter. |
| get_indexer_by_id_downloadC | Read Newznab. GET /api/v1/indexer/{id}/download Args: id: Path parameter. link: Query parameter. file: Query parameter. |
| get_indexer_by_id_newznabC | Read Newznab. GET /api/v1/indexer/{id}/newznab Args: id: Path parameter. t: Query parameter. q: Query parameter. cat: Query parameter. imdbid: Query parameter. tmdbid: Query parameter. extended: Query parameter. limit: Query parameter. offset: Query parameter. minage: Query parameter. maxage: Query parameter. minsize: Query parameter. maxsize: Query parameter. rid: Query parameter. tvmazeid: Query parameter. traktid: Query parameter. tvdbid: Query parameter. doubanid: Query parameter. season: Query parameter. ep: Query parameter. album: Query parameter. artist: Query parameter. label: Query parameter. track: Query parameter. year: Query parameter. genre: Query parameter. author: Query parameter. title: Query parameter. publisher: Query parameter. configured: Query parameter. source: Query parameter. host: Query parameter. server: Query parameter. |
| get_indexerproxy_by_idC | Read IndexerProxy. GET /api/v1/indexerproxy/{id} Args: id: Path parameter. |
| get_log_file_by_filenameB | Read LogFile. GET /api/v1/log/file/{filename} Args: filename: Path parameter. |
| get_log_file_update_by_filenameB | Read UpdateLogFile. GET /api/v1/log/file/update/{filename} Args: filename: Path parameter. |
| get_notification_by_idB | Read Notification. GET /api/v1/notification/{id} Args: id: Path parameter. |
| get_system_task_by_idC | Read Task. GET /api/v1/system/task/{id} Args: id: Path parameter. |
| get_tag_by_idB | Read Tag. GET /api/v1/tag/{id} Args: id: Path parameter. |
| get_tag_detail_by_idC | Read TagDetails. GET /api/v1/tag/detail/{id} Args: id: Path parameter. |
| list_apiB | Read ApiInfo. GET /api |
| list_applicationsB | Read Application. GET /api/v1/applications |
| list_applications_schemaC | Read Application. GET /api/v1/applications/schema |
| list_appprofileC | Read AppProfile. GET /api/v1/appprofile |
| list_appprofile_schemaB | Read AppProfile. GET /api/v1/appprofile/schema |
| list_commandB | Read Command. GET /api/v1/command |
| list_config_developmentB | Read DevelopmentConfig. GET /api/v1/config/development |
| list_config_downloadclientB | Read DownloadClientConfig. GET /api/v1/config/downloadclient |
| list_config_hostA | Read HostConfig. GET /api/v1/config/host |
| list_config_uiA | Read UiConfig. GET /api/v1/config/ui |
| list_customfilterB | Read CustomFilter. GET /api/v1/customfilter |
| list_downloadclientB | Read DownloadClient. GET /api/v1/downloadclient |
| list_downloadclient_schemaB | Read DownloadClient. GET /api/v1/downloadclient/schema |
| list_filesystemC | Read FileSystem. GET /api/v1/filesystem Args: path: Query parameter. include_files: Query parameter. allow_folders_without_trailing_slashes: Query parameter. |
| list_filesystem_typeC | Read FileSystem. GET /api/v1/filesystem/type Args: path: Query parameter. |
| list_healthA | Read Health. GET /api/v1/health |
| list_historyC | Read History. GET /api/v1/history Args: page: Query parameter. page_size: Query parameter. sort_key: Query parameter. sort_direction: Query parameter. event_type: Query parameter. successful: Query parameter. download_id: Query parameter. indexer_ids: Query parameter. |
| list_history_indexerC | Read History. GET /api/v1/history/indexer Args: indexer_id: Query parameter. event_type: Query parameter. limit: Query parameter. |
| list_history_sinceD | Read History. GET /api/v1/history/since Args: date: Query parameter. event_type: Query parameter. |
| list_indexerA | Read Indexer. GET /api/v1/indexer |
| list_indexer_categoriesA | Read IndexerDefaultCategories. GET /api/v1/indexer/categories |
| list_indexer_schemaA | Read Indexer. GET /api/v1/indexer/schema |
| list_indexerproxyA | Read IndexerProxy. GET /api/v1/indexerproxy |
| list_indexerproxy_schemaC | Read IndexerProxy. GET /api/v1/indexerproxy/schema |
| list_indexerstatsB | Read IndexerStats. GET /api/v1/indexerstats Args: start_date: Query parameter. end_date: Query parameter. indexers: Query parameter. protocols: Query parameter. tags: Query parameter. |
| list_indexerstatusB | Read IndexerStatus. GET /api/v1/indexerstatus |
| list_localizationA | Read Localization. GET /api/v1/localization |
| list_localization_optionsB | Read Localization. GET /api/v1/localization/options |
| list_logC | Read Log. GET /api/v1/log Args: page: Query parameter. page_size: Query parameter. sort_key: Query parameter. sort_direction: Query parameter. level: Query parameter. |
| list_log_fileC | Read LogFile. GET /api/v1/log/file |
| list_log_file_updateC | Read UpdateLogFile. GET /api/v1/log/file/update |
| list_loginC | Read StaticResource. GET /login |
| list_logoutB | Read Authentication. GET /logout |
| list_notificationB | Read Notification. GET /api/v1/notification |
| list_notification_schemaB | Read Notification. GET /api/v1/notification/schema |
| list_pingB | Read Ping. GET /ping |
| list_rootD | Read StaticResource. GET / Args: path: Path parameter. |
| list_searchC | Read Search. GET /api/v1/search Args: query: Query parameter. type: Query parameter. indexer_ids: Query parameter. categories: Query parameter. limit: Query parameter. offset: Query parameter. |
| list_system_backupC | Read Backup. GET /api/v1/system/backup |
| list_system_routesC | Read System. GET /api/v1/system/routes |
| list_system_routes_duplicateC | Read System. GET /api/v1/system/routes/duplicate |
| list_system_statusB | Read System. GET /api/v1/system/status |
| list_system_taskD | Read Task. GET /api/v1/system/task |
| list_tagA | Read Tag. GET /api/v1/tag |
| list_tag_detailA | Read TagDetails. GET /api/v1/tag/detail |
| list_updateC | Read Update. GET /api/v1/update |
| update_applications_bulkC | Update Application. PUT /api/v1/applications/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_applications_by_idA | Update Application. PUT /api/v1/applications/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| update_appprofile_by_idA | Update AppProfile. PUT /api/v1/appprofile/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_config_development_by_idA | Update DevelopmentConfig. PUT /api/v1/config/development/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_config_downloadclient_by_idA | Update DownloadClientConfig. PUT /api/v1/config/downloadclient/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_config_host_by_idB | Update HostConfig. PUT /api/v1/config/host/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_config_ui_by_idB | Update UiConfig. PUT /api/v1/config/ui/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_customfilter_by_idA | Update CustomFilter. PUT /api/v1/customfilter/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_downloadclient_bulkC | Update DownloadClient. PUT /api/v1/downloadclient/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_downloadclient_by_idC | Update DownloadClient. PUT /api/v1/downloadclient/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| update_indexer_bulkA | Update Indexer. PUT /api/v1/indexer/bulk Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
| update_indexer_by_idB | Update Indexer. PUT /api/v1/indexer/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| update_indexerproxy_by_idA | Update IndexerProxy. PUT /api/v1/indexerproxy/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| update_notification_by_idB | Update Notification. PUT /api/v1/notification/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. force_save: Query parameter. |
| update_tag_by_idA | Update Tag. PUT /api/v1/tag/{id} Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 128 tools
Multiple tools share identical or near-identical descriptions, such as the two "Read Newznab" tools (get_by_id_api and get_indexer_by_id_newznab) and the many generic "Create X" variants (create_indexer, create_indexer_test, create_indexer_testall). Static resource tools (get_by_path, get_content_by_path, list_root, list_login) also blur together. An agent would struggle to reliably pick the correct tool without deeper inspection.
The dominant pattern is verb_noun (create_indexer, list_indexer, update_indexer, delete_indexer), but there are notable exceptions like get_by_id_api, get_by_path, and get_indexer_by_id_newznab that break the convention. Plural/singular mixing (applications vs appprofile) and inconsistent action naming (test vs testall vs action_by_name) further reduce consistency, though the general style remains readable.
With 128 tools, this server exposes the entire Prowlarr API surface with little curation. This is far beyond the typical well-scoped MCP server range and creates a heavy, intimidating surface for agents. The count represents an extreme mismatch for a focused tool set.
The tool set provides extensive CRUD coverage across major resources: applications, indexers, download clients, notifications, tags, config, and more. Operations like search, history, health, logs, and system tasks round out the surface. Minor gaps exist (e.g., no explicit create backup or update command), but overall the domain is very thoroughly covered.