mcp-medusa
Provides tools for managing anime series via Medusa's API, including adding anime, querying seasonal anime, resolving titles, and bulk operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-medusashow me the top anime this season"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-medusa
MCP server that exposes Medusa anime automation tools.
Tools
add_anime
Adds an anime to Medusa using POST /api/v2/anime/add.
Common arguments:
{
"anime_id": 62076,
"source": "myanimelist",
"root_dir": "/media/videos/Anime",
"anime": true,
"scene": false,
"status": "wanted",
"initial_release_group": "SubsPlease",
"fallback_release_groups": ["SubsPlease", "Erai-raws"],
"release_group_fallback_days": 7
}Arguments:
Argument | Required | Default | Allowed values / notes |
| yes | none | Source-specific anime ID. For |
| yes | none | Medusa root directory path for the new series. |
| no |
| Case-insensitive: |
| no |
| Usually keep |
| no |
| Whether to enable scene numbering. |
| no |
| Medusa episode status string, commonly |
| no | none | First/active release group to whitelist, for example |
| no | none | Ordered list of release groups to rotate through. Include the initial group first for deterministic behavior. |
| no |
| Days after episode airdate before switching to the next fallback group. |
| no | Medusa-generated | Optional series folder name override. |
seasonal_anime
Queries Medusa seasonal anime using GET /api/v2/anime/seasonal.
{
"year": 2026,
"season": "SPRING",
"source": "myanimelist",
"source_sort": "anime_num_list_users",
"page": 1,
"limit": 10,
"fields": ["animeId", "displayTitle", "year", "animeType", "genres", "score", "imageUrl"]
}Minimal call using current anime season defaults:
{}Arguments:
Argument | Required | Default | Allowed values / notes |
| no | current year | If omitted, calculated from the MCP server's current date. |
| no | current anime season | Case-insensitive: |
| no |
| Case-insensitive: |
| no |
| Case-insensitive: |
| no |
| Medusa result page number. Must be |
| no |
| Results per page. Medusa allows |
| no |
| Optional list of response fields to keep. If omitted/null, the full Medusa anime objects are returned. |
Current anime season defaults use this month mapping:
Months | Season |
January-March |
|
April-June |
|
July-September |
|
October-December |
|
Useful fields values include:
["animeId", "source", "displayTitle", "titleRomanji", "titleEnglish", "year", "season", "animeType", "status", "episodes", "episodeInfo", "genres", "studios", "score", "numListUsers", "imageUrl", "anidbId", "tvdbId", "malId", "url", "directoryName"]resolve_anime_title
Resolves a title to enriched Medusa/MyAnimeList candidates using GET /api/v2/anime/search with source, includeDetails=true, and limit.
{
"title": "Frieren",
"source": "myanimelist",
"limit": 10,
"min_score": 88,
"score_gap": 8
}Returns decision as match, ambiguous, or no_match, plus scored candidates.
anime_info
Returns compact anime details and Medusa presence by title or MAL ID without adding anything.
{
"title": "Frieren",
"source": "myanimelist"
}or:
{
"mal_id": 52991,
"source": "myanimelist"
}seasonal_candidates
Fetches seasonal candidates using Medusa's server-side seasonal filters before applying residual OpenClaw-specific heuristics.
{
"year": 2026,
"season": "SUMMER",
"source": "myanimelist",
"limit": 25,
"min_num_list_users": 3000,
"fields": ["animeId", "displayTitle", "animeType", "genres", "numListUsers", "synopsis"]
}The MCP tool sends Medusa filters such as animeType=TV, minNumListUsers, excludeGenres=Kids,Boys Love, matched=false, firstSeasonOnly=true, and fields to reduce payload size.
prepare_seasonal_review
Compacts seasonal candidate items into an AI review packet with conservative review instructions.
{
"items": [{"animeId": 62076, "displayTitle": "Example Title"}],
"max_items": 25
}resolve_and_add_anime
Resolves and dry-runs or executes a single add through Medusa's bulk-add endpoint. Writes require execute: true.
{
"title": "Frieren",
"root_dir": "/media/videos/Anime",
"execute": false
}bulk_add_anime
Dry-runs or executes multiple anime adds through POST /api/v2/anime/bulk-add. Writes require execute: true.
{
"items": [{"animeId": 62076, "displayTitle": "Example Title", "aiDecision": "add"}],
"decision_field": "aiDecision",
"allowed_decisions": ["add"],
"execute": false
}Related MCP server: Bangumi TV MCP Service
Configuration
Environment variables:
Variable | Required | Description |
| yes | Base URL for Medusa, for example |
| recommended | Medusa API key sent as |
| no | Web root if Medusa is hosted below a path |
| no | HTTP timeout in seconds, default |
| no |
|
| no | SSE bind host, default |
| no | SSE bind port, default |
| no | Enable MCP SDK Host/Origin validation, default |
| no | Comma-separated allowed |
| no | Comma-separated allowed |
For container/SSE deployments, keep MCP_HOST=0.0.0.0 or set it explicitly. DNS rebinding protection is disabled by default because mapped ports, reverse proxies, and LAN hostnames otherwise commonly cause 421 Misdirected Request errors. If you enable it, include the externally visible host and port in MCP_ALLOWED_HOSTS.
Run locally
pip install -e .
MEDUSA_URL=http://localhost:8081 MEDUSA_API_KEY=... mcp-medusaFor SSE:
MEDUSA_URL=http://localhost:8081 MEDUSA_API_KEY=... mcp-medusa --transport sse --port 8000Docker
The image defaults to SSE on port 8000.
docker build -t mcp-medusa .
docker run --rm -p 8000:8000 \
-e MEDUSA_URL=http://medusa:8081 \
-e MEDUSA_API_KEY=... \
mcp-medusaFor stdio instead:
docker run --rm -i \
-e MEDUSA_URL=http://medusa:8081 \
-e MEDUSA_API_KEY=... \
mcp-medusa --transport stdioMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cpxazn/mcp-medusa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server