cleanuparr-mcp (arr-mcps/cleanuparr-mcp) is an MCP server listed on the M8ven Trust Index. It scores 67 out of 100, grade C. It declares 84 tools. No publisher has claimed this listing.

C
Limited view
67/100

cleanuparr-mcp

MCP server that exposes Cleanuparr's REST API for inspecting status, history, statistics, jobs, and configuration, enabling natural language interaction with Cleanuparr.

Limited view. Automated analysis covers part of this stack. Findings reflect what we verified. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

Limited view: static analysis for Python is partially covered.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

arr-mcps

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

⏳ This MCP is queued for scoring. Check back in a few minutes.
// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 1 credential: CLEANUPARR_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes84 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

cleanuparr_health

Check anonymous liveness at /health.

cleanuparr_health_ready

Check anonymous readiness at /health/ready.

cleanuparr_health_detailed

Get the authenticated detailed health report.

cleanuparr_get_status

Get Cleanuparr version, uptime, resource, and instance status.

cleanuparr_get_download_client_status

Check all configured download-client connections.

cleanuparr_get_arr_status

Check all configured Sonarr/Radarr/Lidarr-style connections.

cleanuparr_health_checks

List configured health checks.

cleanuparr_run_health_check

Run all health checks, or one check by GUID when check_id is supplied.

cleanuparr_list_jobs

List scheduled jobs and their current status.

cleanuparr_get_job

Get one job. Values include QueueCleaner, MalwareBlocker, DownloadCleaner, BlacklistSynchronizer, Seeker, and CustomFormatScoreSyncer.

cleanuparr_trigger_job

Run a one-time job now. Seeker cannot be manually triggered.

cleanuparr_start_job

Start a job with a schedule object containing the JobSchedule DTO.

cleanuparr_update_job_schedule

Replace a job schedule using the JobSchedule DTO.

cleanuparr_list_events

List events. Dates are ISO-8601 strings; page_size is capped by the API at 500.

cleanuparr_get_event

Get one event by GUID.

cleanuparr_get_events_by_tracking

Get events associated with a tracking GUID.

cleanuparr_list_event_types

List event type enum values.

cleanuparr_list_event_severities

List event severity enum values.

cleanuparr_get_event_timeline

Get event timeline buckets for the requested number of hours.

cleanuparr_list_manual_events

List manual events with pagination and optional filters.

cleanuparr_get_manual_event

Get one manual event by GUID.

cleanuparr_resolve_manual_event

Mark one manual event resolved.

cleanuparr_resolve_all_manual_events

Mark all unresolved manual events resolved.

cleanuparr_get_manual_event_stats

Get manual-event counts by severity and resolution.

cleanuparr_list_manual_event_severities

List manual-event severity enum values.

cleanuparr_list_strikes

List strike-bearing download items.

cleanuparr_list_recent_strikes

List recent strikes; count is capped by the API at 50.

cleanuparr_list_strike_types

List strike type enum values.

cleanuparr_delete_strikes

Delete all strikes for a download-item GUID.

cleanuparr_get_stats

Get v2 aggregate statistics. The deprecated v1 stats endpoint is not exposed.

cleanuparr_get_stats_timeline

Get v2 metric timeline. Metrics include events, strikesIssued, recovered, removed, and malwareBlocked; buckets include hour, day, week, and month.

cleanuparr_get_search_summary

Get Seeker search totals and per-instance summary.

cleanuparr_list_search_events

List Seeker search events. search_status can contain repeated enum filters.

cleanuparr_list_cf_scores

List current custom-format scores with cutoff and monitored filters.

cleanuparr_list_cf_upgrades

List recent custom-format score upgrades.

cleanuparr_list_cf_instances

List instances and quality profiles with tracked scores.

cleanuparr_get_cf_stats

Get custom-format score tracking statistics.

cleanuparr_get_cf_item_history

Get score history for an item; episode_id is used for Sonarr episode history.

cleanuparr_get_general_config

Get general configuration, including dry-run and auth settings.

cleanuparr_update_general_config

Replace general config. Fields include dryRun, retry/timeout settings, ignoredDownloads, connectivity, retention, log, and auth objects.

cleanuparr_purge_strikes

Purge all stored strikes. This is irreversible.

cleanuparr_get_arr_config

Get one *arr config. arr_type must be one of:

cleanuparr_update_arr_config

Replace one *arr config, normally containing failedImportMaxStrikes.

cleanuparr_list_arr_instances

List instances for arr_type:

cleanuparr_create_arr_instance

Create an *arr instance. DTO fields: enabled, name, url, apiKey, version, externalUrl.

cleanuparr_update_arr_instance

Replace an *arr instance. Use Cleanuparr's secret placeholder for apiKey.

cleanuparr_delete_arr_instance

Delete an *arr instance by GUID.

cleanuparr_test_arr_instance

Test an *arr connection. DTO fields: url, apiKey, version, optional instanceId.

cleanuparr_list_download_clients

List configured download clients.

cleanuparr_create_download_client

Create a download client. DTO includes enabled, name, typeName, type, host, username, password, urlBase, externalUrl, and directory source/target.

cleanuparr_update_download_client

Replace a download client. Use the secret placeholder for password.

cleanuparr_delete_download_client

Delete a download client by GUID.

cleanuparr_test_download_client

Test a download client. DTO includes typeName, type, host, credentials, urlBase, and optional clientId.

cleanuparr_get_queue_cleaner_config

Get queue cleaner configuration.

cleanuparr_update_queue_cleaner_config

Replace queue cleaner config. DTO includes enabled, cronExpression, useAdvancedScheduling, failedImport, downloadingMetadataMaxStrikes, processNoContentId, and ignoredDownloads.

cleanuparr_list_queue_rules

List stall or slow queue rules.

cleanuparr_create_queue_rule

Create a stall or slow queue rule. Common DTO fields include name, enabled, maxStrikes, privacyType, completion percentages, and changeCategory.

cleanuparr_update_queue_rule

Replace a stall or slow queue rule. Stall fields include minimumProgress; slow fields include minSpeed, maxTimeHours, and ignoreAboveSize.

cleanuparr_delete_queue_rule

Delete a stall or slow queue rule by GUID.

cleanuparr_get_download_cleaner_config

Get download cleaner configuration.

cleanuparr_update_download_cleaner_config

Replace download cleaner config: enabled, cronExpression, useAdvancedScheduling, and ignoredDownloads.

cleanuparr_get_dead_torrent_config

Get dead-torrent settings for a download-client GUID.

cleanuparr_update_dead_torrent_config

Replace dead-torrent settings: enabled, targetCategory, useTag, maxStrikes, categories.

cleanuparr_get_unlinked_config

Get unlinked-file settings for a download-client GUID.

cleanuparr_update_unlinked_config

Replace unlinked settings: enabled, targetCategory, useTag, ignoredRootDirs, categories.

cleanuparr_get_orphaned_files_config

Get orphaned-file settings for a download-client GUID.

cleanuparr_update_orphaned_files_config

Replace orphaned-file settings: enabled, scanDirectories, orphanedDirectory, excludePatterns, minFileAgeHours, and optional purgeAfterHours.

cleanuparr_list_seeding_rules

List seeding rules for a download-client GUID.

cleanuparr_create_seeding_rule

Create a seeding rule. DTO includes name, categories, trackerPatterns, tagsAny/tagsAll, priority, privacyType, ratio/time/seeder limits, and deleteSourceFiles.

cleanuparr_update_seeding_rule

Replace a seeding rule by GUID. Priority is ignored by the upstream update.

cleanuparr_delete_seeding_rule

Delete a seeding rule by GUID.

cleanuparr_reorder_seeding_rules

Reorder rules by sending an orderedIds GUID array.

cleanuparr_get_malware_blocker_config

Get malware blocker configuration.

cleanuparr_update_malware_blocker_config

Replace malware blocker config, including per-arr blocklist settings.

cleanuparr_get_seeker_config

Get Seeker configuration.

cleanuparr_update_seeker_config

Replace Seeker config: search toggles, strategy, grace period, and instances.

cleanuparr_get_blacklist_sync_config

Get blacklist synchronizer configuration.

cleanuparr_update_blacklist_sync_config

Replace blacklist sync config: enabled and optional blacklistPath.

cleanuparr_list_notification_providers

List notification providers. Secret fields may be redacted by Cleanuparr.

cleanuparr_get_apprise_cli_status

Get Apprise CLI availability status.

cleanuparr_create_notification_provider

Create a notification provider.

cleanuparr_update_notification_provider

Replace a notification provider. Use Cleanuparr placeholders for secrets.

cleanuparr_test_notification_provider

Test a notification provider using its provider-specific DTO.

cleanuparr_delete_notification_provider

Delete a notification provider by GUID.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configCLEANUPARR_URLYes Cleanuparr URL, including any reverse-proxy BASE_PATH; the server appends /api.
🔐 secretCLEANUPARR_API_KEYUsually API key sent as X-Api-Key. Health endpoints can be used without it when permitted.
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

84/84 tools missing one or more hints — cleanuparr_health (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); cleanuparr_health_ready (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); cleanuparr_health_detailed (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +81 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

57/84 tool handlers declare input schemas (68%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 0/84 tool handlers wrap calls in try/catch (0%)

Wrap each tool handler body in try/catch and return a structured error response.

Tool test coverage

38/84 tools referenced in tests (45%)

Write tests that reference each tool by name so every tool has at least one test.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/arr-mcps/cleanuparr-mcp)](https://m8ven.ai/mcp/arr-mcps/cleanuparr-mcp)
Shows your grade and updates automatically. Prefer no grade? Append ?variant=verified to the badge URL.
commit: efe39a8957e07d4936b210475fe5cac216011683
code hash: ec40292c5cd9a5e4b2f8f3dfe716c2306ee79aadce47abb27c9abf235a2df8bf
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client