mal-mcp
mal-mcp is an MCP server for MyAnimeList that lets you search, browse, and manage anime/manga data — read-only tools require no credentials, while personal list management requires a MAL token.
Search & Discovery
Search anime/manga by keyword with filters for type, status, genres, score, and pagination (
search_anime,search_manga)NSFW results are included by default but can be excluded with
sfw: true
Anime & Manga Details
Get full anime/manga details — synopsis, score, genres, studios, streaming links, related entries (
get_anime,get_manga)Get anime characters (with voice actors), community recommendations, and user reviews (
get_anime_characters,get_anime_recommendations,get_anime_reviews)
Rankings & Seasons
Top-ranked anime/manga lists filtered by airing status, popularity, or favorites (
get_top_anime,get_top_manga)Seasonal anime by season/year and weekly broadcast schedule (
get_seasonal_anime,get_anime_schedule)
Public User Profiles
View public MAL user profiles, stats, and favorites — anime, manga, characters, and people (
get_user_profile,get_user_favorites)
Personal List Management (MAL token required)
View your own profile and account stats (
get_my_user_info)Access your anime/manga lists with filtering and sorting (
get_my_anime_list,get_my_manga_list)Add or update list entries — status, score, progress (episodes/chapters/volumes), dates, rewatch/reread flags (
update_my_anime_status,update_my_manga_status)Delete entries from your list (
delete_my_anime_list_item,delete_my_manga_list_item)
Prompts
recommend_similar— get recommendations for similar animeseasonal_overview— get an overview of a given season
Provides tools to search for anime and manga, get details, rankings, seasonal anime, characters, recommendations, and reviews, as well as manage personal anime/manga lists (read, update, delete entries) via MyAnimeList.
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., "@mal-mcpsearch for anime Frieren"
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.
mal-mcp
An MCP server for MyAnimeList. It works with any MCP-compatible client or agent (Claude Desktop/Code, Cursor, VS Code, Cline, Continue, and others) — the server speaks the standard MCP stdio protocol.
What it does
It uses a hybrid backend:
Reads → Jikan (unofficial MAL API). Search, details, rankings, seasons, characters, recommendations, reviews and public profiles. No credentials required.
Your personal list → official MyAnimeList API. Read, update and delete entries on your own anime/manga list. Requires a user token (see docs/auth.md).
If no token is configured, the personal-list tools return a clear, actionable error and everything else keeps working.
Related MCP server: mangadex-mcp
Tools
Tool | Backend | Auth |
| Jikan | none |
| Jikan | none |
| Jikan | none |
| Jikan | none |
| Jikan | none |
| Jikan | none |
| MAL | token |
| MAL | token |
| MAL | token |
Prompts: recommend_similar, seasonal_overview.
Install
As an .mcpb bundle (one-click, e.g. Claude Desktop)
Download mal-mcp.mcpb from the latest release
and open it with your MCP client. The client will prompt for the optional token
fields.
From source
git clone https://github.com/Grinv/mal-mcp
cd mal-mcp
npm ci
npm run buildThis produces a self-contained dist/index.js. Point your client at it (see below).
Connect it to an MCP client
Add the server to your client's MCP config (Claude Desktop/Code, Cursor, VS Code,
Cline, …). The simplest option is npx — no clone, no build:
{
"mcpServers": {
"mal": {
"command": "npx",
"args": ["-y", "mal-mcp"],
"env": {
"MAL_CLIENT_ID": "...",
"MAL_CLIENT_SECRET": "...",
"MAL_REFRESH_TOKEN": "..."
}
}
}
}Or with the Claude Code CLI:
claude mcp add mal \
-e MAL_CLIENT_ID=... -e MAL_CLIENT_SECRET=... -e MAL_REFRESH_TOKEN=... \
-- npx -y mal-mcpIf you built from source instead, replace "command": "npx", "args": ["-y", "mal-mcp"]
with "command": "node", "args": ["/absolute/path/to/mal-mcp/dist/index.js"].
The env block is optional — omit it to use only the credential-free read
tools (search, details, rankings, …); the personal-list tools will return a clear
error until a token is configured. The server does not read a .env file, so pass
credentials via this env block (or your shell environment). See
docs/auth.md for obtaining the token values and
docs/clients.md for more clients.
Configuration
All configuration is via environment variables, all optional — without credentials the read tools still work. For the personal-list tools, set the three credentials below; the access token is then fetched and refreshed automatically.
Variable | Purpose |
| Personal-list credentials (with auto-refresh). See docs/auth.md. |
| Advanced/optional. A standalone token; works ~30 days, no refresh. |
| Override the token cache path (default: OS config dir). |
|
|
Provide these in your MCP client config's env block (the server does not
read a .env file). See docs/auth.md for how to obtain the
credentials, and
docs/clients.md for client configuration snippets.
NSFW content
NSFW (adult) results are not filtered by default — the server returns whatever
the upstream API provides. Search tools accept an optional sfw parameter; set
sfw: true to exclude adult entries via Jikan.
Development
npm run build # type-check + bundle to dist/
npm test # node:test suite (mocked, offline)
npm run test:coverage
npm run lint
npm run format
npm run check:api # live health-check of upstream endpoints
npm run inspector # run under the MCP InspectorRuntime requires Node ≥ 18 (global fetch). See AGENTS.md for
contributor/agent guidance.
Updating
To be notified of new versions, click Watch → Releases on GitHub.
.mcpbbundle: download the newmal-mcp.mcpbfrom the releases page and reinstall it in your client (it replaces the old version).From source:
git pull && npm ci && npm run build.npx (after npm publish): unpinned
npx -y mal-mcpfetches the latest on the next run; if you pinned a version, bump it.
See the CHANGELOG for what changed in each release.
Attribution and terms
This is an unofficial project and is not affiliated with or endorsed by MyAnimeList. Read data is provided by Jikan, an unofficial MAL API; please respect its rate limits. Personal-list operations use the official MyAnimeList API under your own account and token. Use is subject to the MyAnimeList Terms of Service.
License
MIT © Grinv
Maintenance
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/Grinv/mal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server