MAL MCP工人
Cloudflare Worker暴露 MyAnimeList v2 API 作为只读 MCP(模型上下文协议) 服务器使用Streamable HTTP传输。
将其连接到Claude.ai(或任何MCP客户端)并询问以下问题:
- “搜索类似于《攻击泰坦》的动漫”
- “MAL有史以来十大动漫是什么?”
- “2025年冬天有什么节目?”
- “给我看看JohnDoe完成的动漫列表和他们的个人分数”
MCP工具
| 工具 | 描述 | 必需参数 |
|---|---|---|
mal_search_anime | 按关键字搜索动漫 | query |
mal_get_anime | 按ID显示动漫的完整细节 | id |
mal_get_rankings | 按排名类型排列的顶级动漫 | -- |
mal_get_seasonal | 季节性动漫图表 | year, season |
mal_get_user_list | 带有个人分数的公共用户动漫列表 | username |
______________________________________________________________________
获取MAL客户端ID
所有部署选项都需要MAL客户端ID。它是免费的,需要2分钟。
- 登录地址: myanimelist.net
- 首选 myanimelist.net/apiconfig → 创建ID
- 应用程序名称:anything•应用程序类型:other•重定向URL:
http://localhost - 复制 客户端ID 从下一页开始
______________________________________________________________________
部署
Cloudflare Workers是免费的。选择适合您的选项:
______________________________________________________________________
选项1——从此仓库部署(最简单,无需本地设置)
Cloudflare直接从这个公共GitHub仓库中提取数据,并在每次推送时自动部署到 main。在GitHub中没有CLI,没有API令牌。
- 注册/登录 在 dash.cloudflare.com --它是免费的
- 首选 工人和页面→ 创建→ 从Git导入
- 连接您的GitHub并选择此仓库(
Leander-Andersen/mal-mcp-worker) - 生成设置:
- 构建命令: npm install - 部署命令: npx wrangler deploy
- 点击 保存和部署
- 部署后,转到Worker→ 设置→ 变量和秘密→ 添加密码
- 姓名: MAL_CLIENT_ID •值:您的MAL客户ID
- 触发重新部署,使秘密生效
您的员工URL:
https://mal-mcp-worker..workers.dev______________________________________________________________________
选项2——分叉并部署您自己的副本
与选项1相同,但允许您完全控制修改和推送自己的更改。
- 在GitHub上分叉此仓库
- 按照选项1的步骤,选择叉子
- 任何推动
main在你的fork中会自动部署
______________________________________________________________________
选项3--从本地克隆部署
适合那些喜欢CLI或想在本地开发的人。
# 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 deployLocal development (wrangler dev)
# 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 dev测试终点:
# 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}}}'______________________________________________________________________
连接到Claude.ai
- 打开 Claude.ai → 设置 → 集成
- 点击 添加集成
- 输入您的Worker URL:
https://mal-mcp-worker..workers.dev/mcp- 保存--Claude将自动发现所有5个工具
______________________________________________________________________
建筑
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)运输: 流式HTTP(规范2025-03-26)——客户端POST JSON-RPC到 /mcp,服务器以SSE响应。
备注
- 自由奔跑 --Cloudflare Workers免费版足以供个人使用
- 完全无国籍 --无KV、D1或持久存储。每个请求都是自包含的。
- 开源安全 —
MAL_CLIENT_ID是在运行时注入的Cloudflare机密;从未出现在源代码中 - 只读 --只有公共MAL数据。没有OAuth,没有写操作
- 跨域资源共享 --通配符来源(
*)因此,任何MCP客户端都可以连接
