mal-mcp-worker
Allows searching anime by keyword, retrieving full anime details, top rankings, seasonal anime charts, and a public user's anime list with personal scores, all via the MyAnimeList v2 API.
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-mcp-workerWhat are the top 10 anime of all time?"
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-Worker
A Cloudflare Worker that exposes the MyAnimeList v2 API as a read-only MCP (Model Context Protocol) server using the Streamable HTTP transport.
Connect it to Claude.ai (or any MCP client) and ask things like:
"Search for anime similar to Attack on Titan"
"What are the top 10 anime of all time on MAL?"
"What's airing in winter 2025?"
"Show me JohnDoe's completed anime list with their personal scores"
MCP Tools
Tool | Description | Required Params |
| Search anime by keyword |
|
| Full details for an anime by ID |
|
| Top anime by ranking type | — |
| Seasonal anime chart |
|
| A public user's anime list with personal scores |
|
Getting a MAL Client ID
All deployment options require a MAL Client ID. It's free and takes 2 minutes.
Log in at myanimelist.net
Go to myanimelist.net/apiconfig → Create ID
App Name: anything • App Type: other • Redirect URL:
http://localhostCopy the Client ID from the next page
Deployment
Cloudflare Workers is free. Pick the option that suits you:
Option 1 — Deploy from this repo (easiest, no local setup)
Cloudflare pulls directly from this public GitHub repo and auto-deploys on every push to main. No CLI, no API tokens in GitHub.
Sign up / log in at dash.cloudflare.com — it's free
Go to Workers & Pages → Create → Import from Git
Connect your GitHub and select this repo (
Leander-Andersen/mal-mcp-worker)Build settings:
Build command:
npm installDeploy command:
npx wrangler deploy
Click Save and Deploy
Once deployed, go to your Worker → Settings → Variables and Secrets → Add Secret
Name:
MAL_CLIENT_ID• Value: your MAL Client ID
Trigger a redeploy so the secret takes effect
Your Worker URL:
https://mal-mcp-worker.<your-subdomain>.workers.devOption 2 — Fork and deploy your own copy
Same as Option 1, but gives you full control to modify and push your own changes.
Fork this repo on GitHub
Follow Option 1 steps, selecting your fork instead
Any push to
mainin your fork will auto-deploy
Option 3 — Deploy from local clone
For those who prefer the CLI or want to develop locally.
# Clone and install
git clone https://github.com/Leander-Andersen/mal-mcp-worker.git
cd mal-mcp-worker
npm install
# Set your MAL Client ID as a Cloudflare secret
npx wrangler secret put MAL_CLIENT_ID
# Paste your Client ID when prompted
# Deploy
npm run deploy# Create your local secrets file
cp .dev.vars.example .dev.vars
# Edit .dev.vars and set MAL_CLIENT_ID=your_actual_client_id
# Start local dev server at http://localhost:8787
npm run devTest endpoints:
# Health check
curl http://localhost:8787/
# Initialize MCP session
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{}}}'
# List available tools
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# Search anime
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mal_search_anime","arguments":{"query":"fullmetal alchemist","limit":3}}}'Connecting to Claude.ai
Open Claude.ai → Settings → Integrations
Click Add Integration
Enter your Worker URL:
https://mal-mcp-worker.<your-subdomain>.workers.dev/mcpSave — Claude will discover all 5 tools automatically
Architecture
src/index.ts — Request routing, CORS, Env type
└─ src/mcp.ts — MCP/JSON-RPC protocol (initialize, tools/list, tools/call)
└─ src/tools.ts — Tool definitions (inputSchema) + dispatch + formatting
└─ src/mal.ts — MAL v2 API client (typed fetch wrappers)Transport: Streamable HTTP (spec 2025-03-26) — client POSTs JSON-RPC to /mcp, server responds with SSE.
Notes
Free to run — Cloudflare Workers free tier is more than enough for personal use
Fully stateless — no KV, D1, or persistent storage. Each request is self-contained.
Open-source safe —
MAL_CLIENT_IDis a Cloudflare secret injected at runtime; never in source codeRead-only — only public MAL data. No OAuth, no write operations
CORS — wildcard origin (
*) so any MCP client can connect
This server cannot be installed
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/Leander-Andersen/mal-mcp-worker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server