Anki牌组生成服务

基于genanki和Model Context Protocol (MCP)的自动化Anki牌组生成服务,专注于可靠的牌组创建、严格的媒体沙箱和简化的工作流程。

  • by Epiphany-0312
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Epiphany-0312/genanki-mcp

使用说明

Genanki-MCP(注:此词可能为特定领域或项目中的专有名词,直接翻译为“基因安基-MCP”并无实际意义,需根据具体上下文确定其准确含义,此处仅为音译)

使用(某种技术或工具)构建的自动化Anki卡片生成服务 “genanki”可以翻译为“记忆卡片生成器”或“自定义记忆卡片工具”,具体取决于上下文和该词在特定语境中的含义。不过,“genanki”并不是一个广泛认知或标准的英文词汇,它可能是某个特定软件、工具或平台的名称,或者是对某个功能或概念的非正式描述。在中文中,我们通常会根据其功能或用途来翻译这类词汇,以使读者能够理解其含义。 以及 模型上下文协议(MCP)。
专注于可靠的画板创建、严格的媒体沙盒管理,以及保持工作流程简洁高效——仅此而已。

中文文档

亮点

  • 可插入任何符合MCP标准的客户端的Streamable MCP HTTP工具
  • 代理可以安全地创建丰富的CSS模板并嵌入媒体资源
  • 临时下载链接(默认有效期600秒)用于 .apkg 检索
  • 媒体路径沙盒防止访问范围外的文件和孤立资源

项目布局

anki_mcp/
├── anki_tools/           # genanki utility wrapper
│   └── genanki_tool.py
├── server/               # MCP + HTTP entrypoints
│   ├── anki_models.py    # Pydantic request/response models
│   └── anki_server.py    # FastMCP / Starlette server
├── temp_anki_decks/      # Temporary .apkg exports
├── .envexample           # Environment variable template
├── pyproject.toml        # uv / pip project definition
└── uv.lock

快速入门

git clone https://github.com/Epiphany-0312/genanki-mcp.git
cd genanki-mcp

要求

  • Python ≥ 3.13(Python版本需大于或等于3.13)
  • 通过依赖管理 紫外线 (推荐)或 pip

安装依赖项

# With uv (recommended)
uv sync

# Or with pip
python -m venv .venv
.venv\Scripts\activate  # PowerShell
pip install -r requirements.txt

配置环境变量

重复 .envexample 到;对于;向;在...方面 .env 并根据需要进行调整。

变量 描述 默认值
PORT Uvicorn/FastAPI 监听端口 10099
SREVERIP 用于生成下载链接的公共IP/主机 127.0.0.1
TOKEN 可选的承载令牌,用于保护工具访问 (空)

如果 TOKEN 如果省略此设置,服务将跳过身份验证。请在生产环境中进行设置。

运行服务

uv run python -m server.anki_server
# or
python -m server.anki_server

FastMCP提供了该工具的访问接口 http://0.0.0.0:<PORT>/anki 以及临时下载于 http://0.0.0.0:<PORT>/downloads。

用法

与任何支持MCP的客户端建立连接。默认情况下,MCP终端监听在 http://127.0.0.1:10099/anki。

Cherry Studio 示例配置和工作流程:

许可证

麻省理工学院许可证