Token导航 LogoToken导航TokenDH.com
Anki MCP Manga logo
办公协作stdio官方级别未说明来源级核验

Anki MCP Manga

MCP Server

一个通过Telegram机器人从漫画截图和文本创建日语词汇Anki闪卡的服务,支持多设备同步。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude团队协作Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ThiagoLira

提供方

ThiagoLira

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m src.bot

详细介绍

Anki电报机器人

Telegram机器人,根据漫画截图和文字创建日语词汇Anki抽认卡。发送漫画页面的照片,机器人会提取词汇,用图像创建卡片,并同步到您的所有设备。

由LangGraph ReAct代理(通过OpenRouter)和在Docker中运行的无头Anki集合提供支持。

卡片类型

汉字卡片 (甲板: Japones KANJI):

  • 正面:汉字或单词
  • 返回:阅读(平假名)+含义

漫画发音卡 (甲板: Japones Vocab Mangas):

  • 正面:漫画面板截图+目标单词所在的日语句子 大胆
  • 返回:包含目标词的完整句子翻译 大胆

建筑

Telegram User
    | photo + caption / text
    v
+-----------------------------+
|  anki-bot container         |
|                             |
|  aiogram (polling) ---------+--> Telegram API (outbound)
|      |                      |
|  LangGraph ReAct Agent -----+--> OpenRouter API (outbound)
|      |                      |
|  Anki Tools (direct calls)  |
|      |                      |
|  AnkiManager + SyncManager -+--> anki-sync:8080 (internal)
|      |                      |
|  /data (collection + media) |
+-----------------------------+

+-----------------------------+
|  anki-sync container        |
|  python -m anki.syncserver  |
|  :8080 (Tailscale for       |
|   phone/desktop clients)    |
+-----------------------------+

bot容器上没有入站端口。它使用Telegram轮询(仅限出站)。同步服务器暴露给您的手机/桌面Anki客户端的Tailscale。

设置

先决条件

1.克隆和配置

git clone https://github.com/ThiagoLira/anki-mcp-manga.git
cd anki-mcp-manga

cp .env.example .env

编辑 .env 并填写所需值:

# Required: get this from @BotFather on Telegram
TELEGRAM_BOT_TOKEN=your-bot-token-here

# Required: get this from openrouter.ai/keys
OPENROUTER_API_KEY=your-openrouter-key-here

获取Telegram机器人令牌

  1. 打开电报和消息 @植物学家
  2. 发送 /newbot,选择一个名称和用户名
  3. 复制它给你的令牌 TELEGRAM_BOT_TOKEN

限制访问(可选)

要限制谁可以使用机器人,请设置 ALLOWED_TELEGRAM_USER_IDS 以逗号分隔的Telegram用户ID列表。留空以允许任何人。

要查找您的用户ID,请发送消息 @用户信息机器人 在Telegram上。

ALLOWED_TELEGRAM_USER_IDS=123456789,987654321

2.启动堆栈

docker compose up --build -d

这将启动两个容器:

  • 安基机器人 --Telegram机器人(无暴露端口)
  • anki同步 (:8080)--自托管Anki同步服务器

检查日志以确认机器人已启动:

docker compose logs -f anki-bot

3.与机器人对话

在Telegram中打开你的机器人,然后尝试:

  • /start --欢迎留言
  • /stats --收集统计
  • /decks --列出所有甲板
  • 发送一条短信,如 "Create a card for 食べる (たべる, to eat)" --创建汉字卡并同步
  • 发送漫画截图——代理提取词汇,用图像创建漫画词汇卡,并同步

4.将Anki客户端连接到同步服务器

在您的手机或台式机Anki上(必须在同一网络上,或使用Tailscale):

  1. 首选项>同步>自托管同步服务器
  2. 网址: http://:8080
  3. 用户名/密码:来自您的 .env (SYNC_USER / SYNC_PASSWORD,默认值 user / password)

如果你使用Tailscale,URL将是 http://100.x.x.x:8080http://..ts.net:8080.

k3s部署(Kubernetes)

该堆栈可以在k3s上运行,而不是在普通的Docker Compose上运行。这是在上使用的设置 teagolab-1 Tailnet服务器。

初始设置

安装k3s并配置kubectl:

curl -sfL https://get.k3s.io | sh -
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config
echo 'export KUBECONFIG=~/.kube/config' >> ~/.bashrc

从您的 .env:

kubectl create namespace anki
kubectl create secret generic anki-env -n anki \
  --from-env-file=.env

构建、导入映像和部署:

docker compose build
docker save anki_mcp-anki-bot | sudo k3s ctr images import --all-platforms -
docker save anki_mcp-anki-sync | sudo k3s ctr images import --all-platforms -
kubectl apply -f k8s/anki.yaml

更改后重新部署

从您的开发机器:

ssh teagolab-1 "cd repos/anki_mcp && git pull && ./k8s/deploy.sh"

或者直接在服务器上:

cd ~/repos/anki_mcp
git pull
./k8s/deploy.sh

Kubernetes仪表板

仪表板部署在 https://teagolab-1:30443 (可从任何Tailnet设备访问)。登录令牌位于 ~/.kube/dashboard-token 在服务器上。

数据管理

数据所在之处

data/
  mcp/                    <-- bot's Anki collection
    collection.anki2
    collection.media/     <-- images (manga panels as .webp)
  sync/                   <-- sync server data
    user/

data/ 目录为gitignored。这是你唯一需要备份的状态。

导入现有收藏

docker compose stop anki-bot

cp ~/.local/share/Anki2/User\ 1/collection.anki2 data/mcp/
cp -a ~/.local/share/Anki2/User\ 1/collection.media/. data/mcp/collection.media/

docker compose start anki-bot

然后向机器人发送任何消息,使其触发同步,或重新启动堆栈。

迁移回AnkiWeb

  1. 打开Anki桌面
  2. 从首选项中删除自定义同步服务器URL
  3. 同步到AnkiWeb--选择“上传到AnkiWeb”

环境变量

变量必填默认描述
TELEGRAM_BOT_TOKEN--来自@BotFather的机器人令牌
OPENROUTER_API_KEY--OpenRouter API密钥
OPENROUTER_MODEL没有anthropic/claude-sonnet-4要使用的LLM模型
ALLOWED_TELEGRAM_USER_IDSno(空=允许所有)逗号分隔的Telegram用户ID
SYNC_USER没有user同步服务器用户名
SYNC_PASSWORD没有password同步服务器密码
SYNC_ENDPOINT没有http://anki-sync:8080同步服务器URL(内部)
COLLECTION_PATH没有/data/collection.anki2容器内的收集路径
KANJI_DECK没有Japones KANJI汉字卡牌组名称
MANGA_DECK没有Japones Vocab Mangas漫画vocab卡牌的牌组名称
SYNC_USER1没有user:password同步服务器凭据(user:pass 格式)

发展

# Create venv (Python 3.11 required by anki package)
uv venv --python 3.11 .venv
source .venv/bin/activate
uv sync --extra dev

# Run tests
TELEGRAM_BOT_TOKEN=test OPENROUTER_API_KEY=test pytest tests/ -v

# Run bot locally (without Docker)
source .env
python -m src.bot

目录标签

目录标签

PythonClaude团队协作日语学习本地部署Anki闪卡Telegram机器人漫画学习语言学习工具

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP