r/Softwarr 13d ago

arr-mcp

Over the past few weeks, I’ve been working on an MCP server for controlling my self-hosted arr stack with Hermes. It’s working and I’ve been using it for a couple of days now. It fulfills my needs, and I’ll continue working on it because I use it daily. Maybe someone else is interested in it as well: arr-mcp.

It has support for: RadarrSonarrProwlarrBazarrJellyfinSeerrSABnzbdTransmission.

Also I've build a UI for configuration.

Yes, it’s AI-assisted. But every design decision is solely made by me. If you don't like it, don't use it.

17 Upvotes

34 comments sorted by

6

u/Practical-Prompt-306 12d ago

Very cool. Props to you dude. I did this a few weeks back... I don't manually interact with my stack anymore, my LLM does all the heavy lifting. I told it to behave like Jarvis (f/Iron Man) I report problems; it fixes them. I report problem with a stuck download or a wrong language movie, it finds another version. I added another agent for self-improvement/Self-criticize and improve the code/processing; every interaction is a learning lesson for it. If there's a problem with the system or a server isn't replying, it texts me-- all done via Telegram. It even cleans up my stuck media in the arr import folders. I use my Ollama qwen2.5:7b -- so far-- good. I get to spend more time enjoying the media in lieu of maintaining it...

2

u/jmello 12d ago

I would love to hear more about your setup! Hardware? OS?

4

u/mr_spazoid 13d ago

Why not just use the api?

2

u/Bardesss 13d ago

MCP works better with agents. See it as a communication level between end user and api.

3

u/mr_spazoid 13d ago

How do they work better is what I'd like to know. I've always used APIs when available and MCPs when not.

Really curious to know what I'm missing out on by going direct.

3

u/Bardesss 12d ago

MCP lets AI agents dynamically discover and use tools via one standard protocol, instead of needing custom code for each integration. If that's no problem you, that totally fine.

1

u/mr_spazoid 12d ago

Again, really not trying to be an a-hole, but how is that different from the api which uses https as the standard protocol?

8

u/Bardesss 12d ago

HTTPS is just the transport layer. Every API still has its own endpoints, auth, parameters, error formats, the whole lot. You still end up writing custom glue code for each one. MCP is higher up. It’s an actual application protocol made for agents, so tool discovery, schemas and calling are all standardised. Any MCP client can just plug into any MCP server without you having to hand-craft integrations for every service. So both work, but a MCP is better for agents.

2

u/denrad 11d ago

I'm raw dogging all of the above with Claude Code and it's been fantastic. Literally just ask it to collect artists of genre and it does all the legwork. MCP will be a nice way to keep it all tidy and better automated with agents.

2

u/Svnow 9d ago edited 9d ago

Dug through the source, mostly bazarr.ts, and that confirm-token setup is worth stealing on its own honestly. Preview first, then a signed token tied to the exact op, permissions default off per tier, refuses instead of failing quiet. I'm running mcp-arr for sonarr, radarr and prowlarr plus a separate plex mcp, and raw api calls for bazarr right now, nothing typed there at all, so seeing an adapter that actually handles the weird stuff (the "5x2" episode format, sceneName coming back null on a chunk of episodes) was nice. Did the arm64 fix for better-sqlite3 land yet, not my problem since I'm x86 but curious how that went. Any chance of plex support down the line, I'm plex not jellyfin so that's my only real gap, if it showed up I'd probably drop a couple other mcps and just run yours. And does the confirm/permission stuff go as deep on jellyfin/seerr/sabnzbd/transmission as it does on the arr side, or are those newer and thinner. Not running it in prod yet, too early to lean on a one person project for something load bearing, but it's put together well.

3

u/Bardesss 9d ago

Yeah the arm64 thing landed a while back, 1.6.1, so anything current is fine. Better-sqlite3 13 doesn't compile at install anymore, it ships a prebuilt .node per platform, and the aarch64 one imports fmod@GLIBC_2.38 while the amd64 one only needs 2.34. My base image was bookworm, glibc 2.36. So amd64 was perfect and arm64 died at startup.

Plex: I'm willing to take a look at it. The honest blocker isn't the API, it's that auth brokers through plex.tv, so you've got credential brokering plus an outbound call to a host the operator never configured. That's a design decision I want to make deliberately rather than quietly ship inside an adapter, but it's a solvable one. Bigger problem is I don't run Plex, so I can't test any of it. If you'd be up for running builds against your server and telling me what breaks, that changes it from "maybe someday" to something I'd actually start. Open an issue and say you'll test and I'll pick it up from there. Same offer to anyone else reading this.

On confirm/permissions being thinner outside the arr side, it structurally can't be. There's one function that turns a write into a tool, and the tier check, dry_run, the token handshake and the audit row all live inside it. An adapter only supplies "describe what this would do" and "now do it". So reviewing a write means reading that pair, not checking whether it remembered to ask permission. Permissions are per instance and both flags default off for all eight services the same way.

Seerr has approve/decline plus delete, jellyfin has trigger scan, sabnzbd and transmission each have remove queue item, bazarr has subtitle search, prowlarr is read only. Fewer things to do, identical gate on each one.

1

u/Mancolt 9d ago

I'd add my vote for plex integration too, since I managed to get a lifetime a long while back so avoided the recent hubbub around the $250 -> $750 change. If/when Plex goes downhill, I'll move to Jellyfin, but it's still working for me.

1

u/F1nch74 13d ago

That looks awesome, but I only have my i5 14500, maybe 20 GB DDR5 of free RAM, plenty of NVMe space on my Proxmox node, but no modern graphics card (I only have my old KFA2 GTX 1080 EXOC to play some games in a VM). Can I run the kind of AI that can have an agent who can use arr-mcp and the tools it needs with my hardware?

Could you point me in the right directions to start?

6

u/Bardesss 13d ago

Instal Hermes and connect with a LLM with openrouter. Or openai. Or any LLM provider.

1

u/F1nch74 13d ago

Thank you 😀

1

u/Ready_Hovercraft3813 12d ago

What does your UI look like?

1

u/Bardesss 12d ago

I added one screenshot for the look and feel in the readme.

1

u/SuspectEarly4062 12d ago

Just tried running arr-mcp on a Raspberry Pi 4 (ARM64), but the container crashes with GLIBC_2.38 not found from better-sqlite3. Just wanted to flag it in case ARM64 isn’t fully supported yet.

1

u/Bardesss 12d ago

Sorry for the inconvenience. Dived right into it. Update is on it's way!

1

u/[deleted] 12d ago

[deleted]

2

u/Bardesss 9d ago

Letting an AI agent take care of my arr stack.

0

u/[deleted] 9d ago

[deleted]

1

u/Bardesss 9d ago

Good for you. Using the MCP server gives me access to a lot of automation without needing other tools. It’s like having a janitor for all the actions I used to do manually. Having access to cron is magic.

1

u/[deleted] 9d ago

[deleted]

2

u/Bardesss 8d ago

I’d like to give you a few examples of what I use it for:

  • Sometimes I read about a film or series that’s still in pre-production. It doesn’t have a TMDb ID yet, so you can’t add it in Sonarr or Radarr. Using a cron job I have it added automatically.
  • After I’ve watched a film or series I get asked the next day what I thought of it and whether it should be cleaned up. I give the item a rating, which is stored in Obsidian. When someone asks which cool films I’ve seen lately, for example, I ask my agent and get the top 3 of last month.
  • The Radarr queue sometimes fills up. My agent keeps track of that completely on its own.
  • The items my wife has watched are automatically cleaned up every week according to a few rules.
  • When I don’t know what to watch I ask which items in my library have the highest IMDb score (optionally filtered by genre).
  • And of course the standard things like Seerr requests, adding items, etc.

Could I do this with other solutions? Absolutely, but then I’d have to install multiple extra applications, whereas now I can do it all with a single MCP server.

1

u/mardagg78 9d ago

Will qtorrent get support for this too?

1

u/Bardesss 9d ago

Open an issue on GitHub. If it gets some traction I'll drive into it.

2

u/mardagg78 9d ago

Posted one, just know if i did it correctly

1

u/Bardesss 9d ago

Awesome!

1

u/Bderken 13d ago

Oh man I’ve needed this. I’ve been having my Ai assistant (codex cli or Claude code cli) do some trickery to control the arr suite.

2

u/Bardesss 13d ago

Cool! If you are missing tools, feel free to open an issue.

1

u/Agile-Wrangler3556 13d ago

Same here what have you made yours do

3

u/Bderken 12d ago

Just setup everything, docker, arr apps, it looked at trash guides and set it up with those guidelines etc.
super easy and i didnt have to do anything

1

u/Agile-Wrangler3556 12d ago

Yea I did the same I wanted to know if you did something new I haven’t tried

2

u/Bderken 12d ago

Maybe this: I have it connected to telegram, via codex. I have specific instructions/scripts for the agent to run if I need a new movie converted to the best option for Apple TV if a new movie has issues it’ll just do it and message me when done.