动漫数据查询服务

基于Annict REST API的动漫数据查询服务,提供作品、系列、人物、团体、放送信息等全方位检索功能

  • by khjasonlam
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 khjasonlam/anime-mcp

使用说明

动漫MCP服务器

使用Annict REST API,进行动画的检索、人物、团体、工作人员、广播预定的取得 模型上下文协议(MCP) 服务器。

需要的东西

安装,安装

npm install
cp .env.example .env
# .env に ANNICT_ACCESS_TOKEN **を設定**
npm run build

环境变数

ANNICT_ACCESS_TOKEN(必需)—Annict API的访问令牌。应用程序设置中所述方法的备选方法。.env 或者MCP设置的 env 交给。

交付工具

作品(works)

工具名称|说明| |----------|------| | search_anime 用标题检索作品(例:白桦,shirobako) | search_anime_by_season 用广播酷(年·季节)检索(例:2024年春,2016年秋) | get_anime_by_ids 在作品ID的列表中取得作品信息

系列

工具名称|说明| |----------|------| | search_series 以系列名称搜索(例如源艺术,Sword Art) | get_series_by_ids 在系列ID列表中获取系列信息

小插曲(episodes)

工具名称|说明| |----------|------| | get_episodes_by_work_id 取得与作品ID相关联的小故事一览(话数顺序等) | get_episodes_by_ids 在小插曲ID的列表中获取小插曲信息

人物(people)

工具名称|说明| |----------|------| | search_people 用名字检索人物(声优、工作人员等。例如:井上,水濑海苔) | get_people_by_ids 在人物ID的列表中获取人物信息

団体(organizations)

工具名称|说明| |----------|------| | search_organizations 用名字搜索团体(制作公司等。例如:株式会社,P.A.WORKS) | get_organizations_by_ids 在团体ID的列表中取得团体信息

工作人员

工具名称|说明| |----------|------| | get_staffs_by_ids 在员工ID列表中获取员工信息 | get_staffs_by_work_id 取得与作品ID相关的工作人员一览(导演、动画制作等)

放送予定(programs)

工具名称|说明| |----------|------| | get_my_programs 取得认证用户的广播预定。可以缩小日期范围、作品ID、未视听、重播的范围。ANNICT_ACCESS_TOKEN 必须。|

在Cursor/Claude Desktop中的使用方法

注册为MCP服务器。

光标 的MCP设置,或者 克劳德桌面版 的,之 claude_desktop_config.json 添加到示例:

{
  "mcpServers": {
    "anime": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/anime-mcp/build/src/index.js"],
      "env": {
        "ANNICT_ACCESS_TOKEN": "your_annict_token"
      }
    }
  }
}

/ABSOLUTE/PATH/TO/anime-mcp 用项目的绝对路径替换。令牌是 env 或者在项目正下方 .env 中所述修改相应参数的值。

项目配置

  • src/api/ —Annict API客户端(client.ts +作品、系列、剧集、人物、组织、员工、节目)
  • src/类型/ —请求型(api.ts, common.ts)和各资源的类型Zod架构
  • src/工具/ —MCP工具注册(每个资源1个文件)
  • src/utils/format/ —按资源对文本进行整形(common.ts +每个资源)
  • src/utils/result.ts -工具返还(ok/err/wrap)
  • 测试/ —单元测试。test/api/, test/utils/, test/tools/ 支持src

开発

npm run build        # ビルド (tsc + tsc-alias)
npm start            # ビルド済み index.js を実行
npm run dev          # tsc --watch
npm test             # ユニットテスト実行 (Vitest)
npm run lint         # ESLint
npm run lint:fix     # ESLint 自動修正
npm run format       # Prettier でフォーマット
npm run format:check # フォーマットチェック

参考