SeerrSense

Setup guide

Seerr MCP setup

This guide connects an Overseerr or Jellyseerr you already run to an AI assistant, using SeerrSense as the MCP server in between. By the end, the assistant can look titles up on your server, work out which one you meant from a description, and file a request after you confirm it.

What runs where

Before you start

1. Add the connector

The endpoint is the same in every client:

Endpoint https://seerrsense.mctl.ai/mcp

2. Sign in with Google

Signing in starts on the first Connect. One consent screen names the client and what it is being granted: seerr:read for the lookups and seerr:request for filing requests. There is no token to copy.

3. Attach your Seerr

Open /account and enter your Seerr address, such as https://seerr.example.com, and its API key. For an instance behind Cloudflare Access, add its service token in the CF-Access-Client-Id and CF-Access-Client-Secret fields. Test and save tries the credentials against your instance before storing them.

4. Run a read-only check

Before requesting anything, ask your assistant:

Use SeerrSense to check who I am,
then tell me whether Arrival is on my server.

This calls whoami and search_media, and neither can change anything. In the whoami result, connected should be true:

{
  "email": "[email protected]",
  "source": "own",
  "connected": true
}

Each match from search_media carries a TMDB id and a status from your Seerr, such as AVAILABLE, PENDING or UNKNOWN. UNKNOWN means your Seerr has no record of the title yet.

5. Resolve an imprecise title

When you remember the story but not the name, describe it:

Find the Danish political drama
with the female prime minister.

resolve_media tries your Seerr's search first and uses the language model only if that fails. It returns one candidate, with a confidence score and the reason for the match. The response below is shortened:

{
  "candidate": {
    "title": "Borgen",
    "mediaType": "tv",
    "year": 2010,
    "providerId": 42445,
    "status": "UNKNOWN"
  },
  "confidence": 0.85,
  "matchReason": "title inferred from the description"
}

6. Verify the candidate

Check the title and year against what you had in mind. A high score is the resolver's own estimate, not a guarantee. To see the current record for that id, including whether a request is already waiting for approval, ask:

What is the status of that one on my Seerr?

That calls get_media, which is also read-only.

7. Confirm the request

Request season 1 of that.

request_media is the only tool that writes, and it needs the seerr:request scope. It is declared as a write so that your assistant can ask you to confirm first. The server then re-reads the record and refuses a title that is already available, pending or blocklisted. After that, your Seerr's own quotas and approval rules apply.

Troubleshooting

For anything else, see Support.

Disconnect

To replace or revoke the key itself, generate a new API key in your Seerr.