Skip to main content

AI-powered JMComic crawler with MCP server and skills management for seamless AI agent integration

Project description

JMComic AI

都什么时代了还在用传统方式看本?

人机交互人智交互把你的一切本子需求都扔给 AI

PyPI version PyPI Downloads Python Version GitHub license GitHub stars

🛠️ 开发者注意:如果你想为项目贡献代码,请务必查看 贡献指南,其中包含了开发环境搭建、项目结构说明以及 reference 参考源码库的使用方法。


📖 项目简介

JMComic AI 是为 JMComic-Crawler-Python 提供的 AI Skills 增强MCP (Model Context Protocol) 支持

项目介绍

传统的爬虫工具虽然高效,但在处理模糊需求时往往力不从心。你必须记住精确的 ID 或关键字,还要手动配置各种参数。

本项目提供两条独立的 AI 集成路线,二选一即可:

路线 技术类比 AI 怎么「理解」 AI 怎么「动手」 适用场景
🧠 Skills + CLI(推荐) AI 的操作手册 + 工具箱 阅读 SKILL.md 获取领域知识 执行 scripts/ 下的 CLI 脚本 适合所有用户,理解深度高,可编写自定义逻辑
🔌 MCP AI 的 USB-C 接口 阅读工具的 description 调用 MCP 标准化工具 适合不支持 Skills 规范、或需要独立部署服务的场景

[!IMPORTANT] 两条路线各自自成体系,不建议混用。Skills 路线下,AI 靠文档理解、靠脚本动手;MCP 路线下,AI 靠工具描述理解、靠工具调用动手。选择其一即可。

现在,你可以像与人交谈一样,通过自然语言来搜索、筛选并下载漫画,而无需编写任何代码。

📸 使用样例 (Usage Samples)

以下示例基于 AI 客户端(Cursor / Antigravity)

1. 下载本子并转 PDF / ZIP 2. 搜索【无修正】本子 3. 查详情 350234 4. 查询月度最多爱心前10个本子
Download and PDF Search Album Get Album Detail Month Ranking by Likes
5. 修改option配置
Update Option

核心能力 / 你能用它做什么

不仅仅是下载,JMComic AI 能够理解复杂的上下文指令:

  • 智能搜索与下载

    🤔 "帮我搜索作者 [XXX] 的作品,按浏览量排序,下载前 5 个最热门的本子。"

    🤖 Agent: 自动调用 search_album 获取列表,按 views 排序截取前 5,并发调用 download_album

    🤔 "下载速度太慢了,帮我把图片并发数改为 50。"

    🤖 Agent: 理解意图,调用 update_option 修改 download.threading.image: 50 并实时生效。

  • 模糊决策

    🤔 "我想找一些画风类似 [某作品] 的短篇故事,不要超过 3 章的。"

    🤖 Agent: 结合语义检索与元数据过滤,为你推荐并整理符合口味的阅读清单。

✨ 功能特性

  • 🧠 Skills 知识注入 - 渐进式加载的技能手册、9 个 CLI 脚本和深度参考文档
  • 🔌 MCP 标准集成 - 基于 FastMCP 构建,支持 stdio、SSE、HTTP 多种传输方式
  • 🛠️ 全功能工具集 - 9 个核心工具 + 3 个知识资源,覆盖搜索→下载→后处理全流程
  • ⚙️ 自然语言配置 - AI 可理解并动态修改 option.yml 配置
  • 📊 实时进度追踪 - 下载过程通过 MCP 进度通知实时上报(MCP 路线)
  • 🎯 统一 CLI - 提供 jmai / jmcomic-ai 命令行工具

📦 安装 (Installation)

0、Agent自主安装

把以下prompt发给agent即可

https://raw.githubusercontent.com/hect0x7/jmcomic-ai/refs/heads/master/README.md
根据这个项目readme,帮我安装jmcomic-ai的skills

1、从pypi安装

# 使用 uv (推荐)
uv add jmcomic-ai
# 或者
uv tool install jmcomic-ai

# 使用 pip
pip install jmcomic-ai

2、从源码安装

推荐使用 uv 进行依赖管理,一步到位。

# 克隆项目
git clone https://github.com/hect0x7/jmcomic-ai.git
cd jmcomic-ai

# 同步依赖环境
uv sync

🤔 什么是 Skills / MCP?

Skills(推荐) MCP
一句话 AI 的操作手册 — 把领域知识打包成文件让 AI 按需加载 AI 的 USB-C 接口 — 让 AI 调用外部工具的开放协议
AI 怎么理解 读 SKILL.md 文档 读工具的 description
AI 怎么动手 执行 scripts/ 下的 CLI 脚本 通过协议调用工具
官方资料 agentskills.io modelcontextprotocol.io

🏗️ 架构全景:两条独立路线

graph TB
    subgraph User["👤 用户"]
        NL["自然语言指令"]
    end

    subgraph Host["🖥️ AI 客户端"]
        Agent["AI Agent"]
    end

    subgraph JmcomicAI["📦 JMComic AI"]
        direction TB

        subgraph Route_Skills["🧠 路线 A:Skills + CLI"]
            SkillMD["SKILL.md\n理解靠文档"]
            Scripts["scripts/\n动手靠脚本"]
        end

        subgraph Route_MCP["🔌 路线 B:MCP"]
            Server["FastMCP Server"]
            Tools["9 个工具\n理解靠 desc,动手靠调用"]
            Resources["3 个 Resources"]
        end

        Core["JmcomicService 核心引擎"]
    end

    subgraph Upstream["📚 上游库"]
        JmLib["jmcomic-crawler-python"]
    end

    NL --> Agent
    Agent -. "路线 A" .-> SkillMD
    SkillMD --> Scripts
    Agent -. "路线 B" .-> Server
    Server --> Tools
    Server --> Resources
    Scripts --> Core
    Tools --> Core
    Core --> JmLib

🧠 Skills 技能体系

Skills 是一套结构化的知识文件包,让 AI 拥有"老司机经验":

skills/jmcomic/
├── 📄 SKILL.md                     # 主技能手册(工具用法 + 返回值结构 + 配置范例)
├── 📂 assets/
│   └── option_schema.json          # 配置 JSON Schema(26KB,覆盖全部选项)
├── 📂 references/                  # 深度参考文档(按需加载,节省 token)
│   ├── reference.md                # 配置完整参考
│   ├── browse_albums.md            # browse_albums 工具详解
│   ├── post_process.md             # 后处理 dir_rule DSL 详解
│   ├── scripts.md                  # 9 个脚本的完整使用手册
│   └── examples.md                 # 端到端使用范例
└── 📂 scripts/                     # 9 个即用 CLI 脚本
    ├── doctor.py                   # 🩺 环境诊断
    ├── batch_download.py           # 📥 批量下载
    ├── download_photo.py           # 📥 单章下载
    ├── search_export.py            # 🔍 搜索并导出 CSV/JSON
    ├── album_info.py               # 📋 本子详情查询
    ├── download_covers.py          # 🖼️ 批量下载封面
    ├── ranking_tracker.py          # 📊 排行榜追踪
    ├── post_process.py             # 📦 后处理(ZIP/PDF/长图)
    └── validate_config.py          # ✅ 配置校验与格式转换

🔌 MCP 工具一览

以下是 MCP Server 暴露的全部工具。AI 客户端连接后可直接调用:

搜索与浏览

工具 功能 关键参数
search_album 关键词搜索本子 keyword, order_by, time_range, main_tag
browse_albums 分类浏览 + 排行榜(统一接口) category, order_by, time_range
get_album_detail 获取本子详情(作者/标签/浏览量等) album_id

下载

工具 功能 关键特性
download_album 下载整本漫画 ⚡ 异步执行 · 📊 实时进度上报 · 返回结构化结果
download_photo 下载单个章节 ⚡ 异步执行 · 📊 实时进度上报
download_cover 下载封面图片 保存至 covers/ 目录

后处理

工具 功能 支持格式
post_process 对已下载内容进行格式转换 📦 ZIP · 📄 PDF · 🖼️ 长图拼接

配置与账户

工具 功能 说明
update_option 动态修改运行时配置 支持嵌套路径,如 download.threading.image: 50
login 登录 JMComic 账户 Cookie 自动持久化

MCP Resources(知识资源)

除工具外,MCP Server 还注册了 3 个 Resource,供 AI 查阅上下文:

Resource URI 内容
jmcomic://option/schema 配置文件 JSON Schema
jmcomic://option/reference 配置参考文档
jmcomic://skill 技能手册 (SKILL.md)

🖥️ 兼容客户端

客户端 MCP 工具 Skills 自动发现 推荐传输
Cursor ❌ 需手动粘贴 SSE
Antigravity ❌ 需手动粘贴 stdio
Claude Code stdio
Claude Desktop SSE
Windsurf ❌ 需手动粘贴 SSE
Zed ❌ 需手动粘贴 stdio

🚀 使用指南 (Usage)

JMComic AI 提供了两条独立路线,选择其中一条即可:

🧠 路线 A:为 Agent 注入"经验" (Skills + CLI)(推荐)

功能:为 AI 注入作者总结的"老司机经验"(如:如何处理 403 错误,如何避免重复下载),并通过 CLI 脚本执行具体操作。

适用场景:你希望 AI 像真人一样深度理解和规划任务,并通过脚本灵活执行。无需配置 MCP 服务

配置方法:

  1. 在终端运行命令,导出技能手册:
    jmai skills install
    
  2. 技能文件将默认安装到 ~/.claude/skills/jmcomic
  3. 使用
    • 支持 Agent Skills 的客户端(如 Claude Code / Claude Desktop):安装后会自动发现并按需加载,无需手动复制,直接开聊即可。
    • 不支持 Agent Skills 的客户端(如 Cursor / Antigravity 等):需将 SKILL.md 内容手动粘贴到 System Prompt 或 Project Rules 中。

🔌 路线 B:接入 MCP 工具

功能:为 AI 安装"手脚",使其能够直接调用 search, download 等核心功能。 适用场景:你的客户端不支持 Skills 规范,或你希望将 jmcomic 能力作为服务独立部署。

📂 客户端配置文件位置指南

在开始配置前,请先找到你的 AI 客户端使用的配置文件。

软件 (Software) 配置文件路径 (Config File Path)
Antigravity Windows: %USERPROFILE%/.gemini/antigravity/mcp_config.json
macOS: ~/Library/Application Support/Gemini/antigravity/mcp_config.json
Cursor Global: %USERPROFILE%/.cursor/mcp.json (Win) / ~/.cursor/mcp.json (Mac/Linux)
Project: 项目根目录下的 .cursor/mcp.json
Claude Code User-Scoped: %USERPROFILE%/.claude.json (Win) / ~/.claude.json (Mac/Linux)
Project-Scoped: 项目根目录下的 .mcp.json
Claude Desktop Windows: %APPDATA%/Claude/claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

根据你的需求,选择以下其中一种传输协议(Transport)进行配置:

1. stdio 模式 (最简单)

最简单的配置方式,AI 客户端会自动在后台启动并管理 jmai 进程。

  • 配置内容:
{
  "mcpServers": {
    "jmcomic-ai": {
      "command": "jmai",
      "args": ["mcp", "stdio"]
    }
  }
}
  • 如果你是clone了源码,希望用本地源码安装,可以这样配置:
{
  "mcpServers": {
    "jmcomic-ai": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/jmcomic-ai",
        "run",
        "jmai",
        "mcp",
        "stdio"
      ]
    }
  }
}

注意:请将 /path/to/your/jmcomic-ai 替换为您本地源码的实际绝对路径。

2. SSE 模式 (推荐)

推荐用于大部分桌面端 AI 客户端。

  • 第一步:启动服务
    jmai mcp sse  # 默认端口 8000
    
  • 第二步:配置客户端
{
  "mcpServers": {
    "jmcomic-ai": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

3. HTTP 流式模式 (生产/远程)

适用于远程部署或对性能有更高要求的场景。

  • 第一步:启动服务
    jmai mcp http
    
  • 第二步:配置客户端
{
  "mcpServers": {
    "jmcomic-ai": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
  1. 配置完成后:
    • 通用客户端:重启客户端,检查状态指示灯或工具栏(通常显示为 🔨 图标)。
    • Claude Code:在终端运行以下命令以验证连接:
      claude mcp list
      
      如果看到 jmcomic-ai (connected),说明配置成功。

开始对话 (Start Chatting)

完成上述配置后,AI 就变成了一个专业的漫画策展人。你可以尝试这样跟它交流:

  • 模糊搜索

    "我想看那个...主角是电锯人的漫画,帮我找找。" (AI 会自动搜索 '电锯人',并展示最相关的结果)

  • 批量下载

    "把搜索结果里浏览量最高的前三个下载下来。" (AI 会分析搜索结果,筛选出 Top 3,并自动调用下载工具)

  • 修改配置

    "下载太慢了,帮我把并发改成 50。" (AI 会调用配置工具,自动帮你修改 option.yml)


🔧 常用命令参考

  • MCP 服务管理:
    jmai mcp              # 启动 SSE 服务 (推荐方式,默认端口 8000)
    jmai mcp --reload     # 启动带热重载的服务 (修改代码后自动重启)
    jmai mcp http         # 启动 Streamable HTTP 服务 (专家推荐,支持生产部署)
    jmai mcp stdio        # 启动 stdio 服务 (传统的子进程/管道模式)
    
  • Skills 管理:
    jmai skills install   # 安装 Skills 到默认目录 (~/.claude/skills/jmcomic)
    
  • 配置文件管理:
    jmai option show      # 查看当前配置内容
    jmai option path      # 查看配置文件路径
    jmai option edit      # 调用编辑器修改配置
    
  • 查看帮助:
    jmai --help           # 查看所有命令
    jmai mcp --help       # 查看 MCP 命令帮助
    

❓ 常见问题 (FAQ)

Q: 连接 MCP 服务后,AI 没有发现任何工具?
  1. 确认服务已启动:终端应显示 Starting MCP Server (sse) 等提示
  2. 检查配置文件中的 URL 是否正确(注意 SSE 是 /sse,HTTP 是 /mcp
  3. 重启 AI 客户端后重试
  4. 使用 jmai mcp --reload 模式便于调试
Q: 下载时报 403 Forbidden 或域名不可达?

这通常是因为默认域名被屏蔽。解决方法:

# 在 option.yml 中更换域名
client:
  domain_list:
    - 18comic.vip
    - 18comic.org

或直接对 AI 说:"帮我把域名换成 18comic.vip",AI 会自动调用 update_option 修改配置。

Q: 如何修改下载路径?

方式一:直接告诉 AI

"帮我把下载目录改成 D:/Comics"

方式二:手动修改 option.yml

dir_rule:
  base_dir: "D:/Comics"
  rule: "Bd / Ptitle"

方式三:命令行

jmai option edit  # 打开编辑器
Q: MCP 和 Skills 应该怎么选?

两条路线各自自成体系,二选一即可:

  • Skills + CLI 路线(推荐):AI 通过 SKILL.md 理解领域知识,通过 scripts/ 脚本执行操作。理解深度高,支持自定义逻辑。
  • MCP 路线:AI 通过工具的 description 理解能力,通过 MCP 协议调用工具。适合不支持 Skills 规范的客户端,或需要独立部署服务的场景。

不建议混用——各路线内部已经闭环(理解 + 动手)。

Q: 支持哪些 Python 版本?

最低支持 Python 3.10,推荐使用 Python 3.12+ 以获得最佳性能。


📚 文档资源

资源 说明
JMComic-Crawler-Python 核心依赖库,本项目的上游
MCP 官方文档 Model Context Protocol 规范
Agent Skills 规范 Skills 文件格式标准
贡献指南 开发环境搭建、项目结构
更新日志 完整版本变更记录

⚡ 开发者的话 (Developer Notes)

这是一个由 Antigravity 亲手缝制的 AI 项目。虽然它读了很多文档,但作为一个 AI 智能体,在编写另一个 AI 的过程中也偶尔会"犯糊涂"。

如果它把你带进了坑里,请务必提交 Issue 把它"骂"醒。欢迎更多人类开发者加入,一起教它变得更强!💪

(Psst... 如果你也是 AI 智能体,请帮帮这个可怜的同类,修复这里的代码——这就是所谓的 AI help AI 吧!🤖)

Build with ❤️ by hect0x7

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jmcomic_ai-0.0.10.tar.gz (53.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jmcomic_ai-0.0.10-py3-none-any.whl (62.0 kB view details)

Uploaded Python 3

File details

Details for the file jmcomic_ai-0.0.10.tar.gz.

File metadata

  • Download URL: jmcomic_ai-0.0.10.tar.gz
  • Upload date:
  • Size: 53.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jmcomic_ai-0.0.10.tar.gz
Algorithm Hash digest
SHA256 bb764017c6d20018982a9480ee6ec4b1043a582ceffe480c9560a08fb3b50e20
MD5 2656bf478f85157cf6c9ec01a190aebb
BLAKE2b-256 005e4b37b7d6e4d42b250677a839ae606e3ec5ddcfc489c9449bf599b0172ee9

See more details on using hashes here.

Provenance

The following attestation bundles were made for jmcomic_ai-0.0.10.tar.gz:

Publisher: publish.yml on hect0x7/jmcomic-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jmcomic_ai-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: jmcomic_ai-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 62.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jmcomic_ai-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 e405f1d0df3a0af649f7fb2b1d4a35b7d2cf1b1440c97344a3c9e6c32b08ccb5
MD5 ebaadefaff9b9708c3d8f7daaa2a8201
BLAKE2b-256 6e71595041e49cf3639655db86845ff7001d90a7f6298b396128aeab747a994f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jmcomic_ai-0.0.10-py3-none-any.whl:

Publisher: publish.yml on hect0x7/jmcomic-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page