Token导航 LogoToken导航TokenDH.com
AnkiMCP Server logo
AI代理stdio官方级别未说明来源级核验

AnkiMCP Server

MCP Server

一个通过模型上下文协议(MCP)将Anki闪卡集合暴露给AI助手的插件,支持AI驱动的学习会话、卡片创建和集合管理。

工具数

36

提示词数

0

GitHub Stars

40

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

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

作者 / 组织

ankimcp

提供方

ankimcp

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python3 = pkgs.python3;

详细介绍

AnkiMCP服务器(插件)

Seamlessly integrate Anki with AI assistants through the Model Context Protocol

Anki插件,通过 模型上下文协议(MCP).

这是什么?

AnkiMCP服务器在Anki内部运行一个本地MCP服务器,允许像Claude这样的人工智能助手与您的闪卡收藏进行交互。这使得人工智能支持的学习课程、卡片创建和收藏管理成为可能。

部分 ankimcp.ai 项目。

首次运行注意事项

首次运行时,此插件会下载 pydantic_core (~2MB)来自PyPI。这是必需的,因为pydantic_core包含无法捆绑在单个插件文件中的特定于平台的二进制文件(Windows/MOSC/Linux)。

特性

  • 本地HTTP服务器 -继续运行 http://127.0.0.1:3141/ 默认情况下
  • MCP协议 -兼容任何MCP客户端(克劳德桌面等)
  • 自动启动 -Anki打开时服务器自动启动
  • 隧道友好型 -与Cloudflare Tunnel、ngrok等合作。
  • 跨平台 -适用于macOS、Windows和Linux(x64和ARM)

安装

来自AnkiWeb(推荐)

  1. 打开Anki并转到 *工具→ 附加组件→ 获取附加组件。..*
  2. 输入代码: 124672614
  3. 重新启动Anki

来自GitHub发布

  1. 下载 anki_mcp_server.ankiaddon发布
  2. 双击安装或使用 *工具→ 附加组件→ 从文件安装。..*
  3. 重新启动Anki

NixOS 系统

带薄片(推荐)

添加flake输入并使用预构建的包:

# flake.nix
{
  inputs.anki-mcp.url = "github:ankimcp/anki-mcp-server-addon";

  outputs = { nixpkgs, anki-mcp, ... }: {
    # Option A: Standalone — Anki with the addon pre-installed
    environment.systemPackages = [
      anki-mcp.packages.${system}.default
    ];

    # Option B: Composable with other addons via overlay
    nixpkgs.overlays = [ anki-mcp.overlays.default ];
    environment.systemPackages = [
      (pkgs.anki.withAddons [ pkgs.ankiAddons.anki-mcp-server ])
    ];
  };
}

无薄片

# configuration.nix
{ pkgs, ... }:
let
  python3 = pkgs.python3;

  ankiMcpPythonDeps = python3.withPackages (ps: with ps; [
    mcp pydantic pydantic-settings starlette uvicorn anyio httpx websockets
  ]);

  anki-mcp-server = pkgs.anki-utils.buildAnkiAddon (finalAttrs: {
    pname = "anki-mcp-server";
    version = "0.13.0";
    src = pkgs.fetchFromGitHub {
      owner = "ankimcp";
      repo = "anki-mcp-server-addon";
      rev = "v${finalAttrs.version}";
      hash = ""; # nix will tell you the correct hash on first build
    };
    sourceRoot = "${finalAttrs.src.name}/anki_mcp_server";
  });

  ankiWithMcp = pkgs.anki.withAddons [ anki-mcp-server ];

  ankiWrapped = pkgs.symlinkJoin {
    name = "anki-with-mcp";
    paths = [ ankiWithMcp ];
    nativeBuildInputs = [ pkgs.makeWrapper ];
    postBuild = ''
      wrapProgram $out/bin/anki \
        --prefix PYTHONPATH ':' "${ankiMcpPythonDeps}/${python3.sitePackages}"
    '';
  };
in
{
  environment.systemPackages = [ ankiWrapped ];
}

用法

当您打开Anki时,服务器会自动启动。通过以下方式检查状态 *工具→ AnkiMCP服务器设置。..*

与克劳德桌面连接

需要 安装。添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "anki": {
      "command": "npx",
      "args": ["mcp-remote", "http://127.0.0.1:3141"]
    }
  }
}
注: Claude Desktop在JSON配置中不支持HTTP服务器-- mcp-remote 通过stdio桥接连接。

与克劳德代码连接

claude mcp add anki --transport http http://127.0.0.1:3141/

配置

通过Anki编辑 *工具→ 附加组件→ AnkiMCP服务器→ 配置*:

{
  "mode": "http",
  "http_port": 3141,
  "http_host": "127.0.0.1",
  "http_path": "",
  "cors_origins": [],
  "cors_expose_headers": ["mcp-session-id", "mcp-protocol-version"],
  "auto_connect_on_startup": true,
  "disabled_tools": [],
  "media_import_dir": "",
  "media_allowed_types": [],
  "media_allowed_hosts": []
}

禁用工具

对AI客户端隐藏特定工具或操作以减少令牌使用:

{
  "disabled_tools": [
    "sync",
    "card_management:bury",
    "card_management:unbury"
  ]
}
  • "tool_name" --禁用整个工具
  • "tool_name:action" --禁用多操作工具中的特定操作

禁用的工具将从MCP模式中完全删除——AI客户端永远看不到它们。工具/操作名称中的拼写错误将产生控制台警告。

自定义路径

http_path 在自定义路径下为MCP端点提供服务。当通过隧道(Cloudflare、ngrok)暴露Anki以避免完全开放的端点时很有用:

{
  "http_path": "my-secret-path"
}

服务器将可在以下位置访问 http://localhost:3141/my-secret-path/ 而不是根。为默认行为留空。

CORS配置

要允许基于浏览器的MCP客户端(如网络托管的MCP检查器),请添加允许的源:

{
  "cors_origins": ["https://inspector.example.com", "http://localhost:5173"]
}

使用 ["*"] 允许所有来源(不建议用于生产)。

cors_expose_headers 设置控制浏览器可以读取哪些响应标头。默认值(mcp-session-id, mcp-protocol-version)MCP Streamable HTTP协议在浏览器中工作所必需的。

媒体安全

多亏了 高桥英明 (哥伦比亚大学)负责披露媒体路径遍历漏洞。

store_media_file 该工具验证所有输入,以防止路径遍历和SSRF攻击:

  • 文件路径 通过MIME类型检查仅限于媒体文件(图像、音频、视频)
  • 网址 必须使用 http://https:// 并且不能针对专用/内部网络
  • 文件名 经过净化以删除路径遍历序列

通过配置进行可选硬化:

{
  "media_import_dir": "/Users/me/anki-media",
  "media_allowed_types": ["application/pdf"],
  "media_allowed_hosts": ["192.168.1.50", "my-nas.local"]
}
  • media_import_dir --限制文件路径导入到此目录树(空=无限制)
  • media_allowed_types --允许图像/音频/视频之外的其他MIME类型
  • media_allowed_hosts --允许特定主机绕过专用网络阻塞

可用工具

基本工具

工具说明
sync将收藏与AnkiWeb同步
list_decks列出集合中的所有甲板
create_deck创建新甲板
find_notes使用Anki的搜索语法搜索笔记
notes_info获取有关笔记的详细信息
add_note在卡片组中添加新笔记
add_notes批量添加最多100张共享同一套牌和型号的钞票。使用Anki的本机批处理API进行原子撤消。支持部分成功——个人失败不会影响他人
card_management通过9个操作管理卡片: reposition (设置学习顺序), change_deck (在甲板之间移动), bury/unbury (躲到明天), suspend/unsuspend (无限期排除在审查之外), set_flag (颜色标志0-7), set_due_date (用DSL日期重新安排), forget_cards (重置为新)
tag_management通过5个操作管理标签: add_tags/remove_tags (批量添加/删除笔记), replace_tags (将一个标签换成另一个标签), get_tags (列出全部), clear_unused_tags (删除孤儿)
filtered_deck过滤甲板生命周期: create_or_update (创建或修改带有搜索词的过滤组), rebuild (重新填充), empty (将卡片放回主牌组), delete
update_note_fields更新现有注释的字段
delete_notes从收藏中删除笔记
get_due_cards获取下一张到期卡以供审核(支持 skip_images/skip_audio 用于语音模式)
present_card获取卡片内容以供审核
rate_card审核后对卡片进行评分(再次/难/好/容易)
model_names列出可用的笔记类型
model_field_names获取笔记类型的字段名称和描述
model_styling获取注释类型的CSS样式
update_model_styling更新注释类型的CSS样式
create_model创建新的笔记类型
store_media_file通过base64、文件路径或URL存储媒体文件(图像/音频)。文件路径根据媒体类型分配列表进行验证;检查URL是否有SSRF
get_media_files_names列出与模式匹配的媒体文件
delete_media_file将媒体文件移动到Anki的垃圾箱(可通过Check media恢复)

FSRS工具

工具说明
get_fsrs_params获取甲板预设的FSRS调度程序参数
set_fsrs_params更新FSRS参数(权重、所需保留、最大间隔)
get_card_memory_state获取卡片的FSRS内存状态(稳定性、难度、可检索性)
optimize_fsrs_params使用Anki的内置优化器运行FSRS参数优化

GUI工具

这些工具与Anki的用户界面交互:

工具说明
gui_browse使用搜索查询打开卡浏览器
gui_add_cards打开“添加卡”对话框
gui_edit_note打开特定注释的注释编辑器
gui_current_card获取当前显示的卡的信息
gui_show_question显示当前卡片的问题侧
gui_show_answer显示当前卡片的答案面
gui_select_card在审阅者中选择特定卡片
gui_deck_browser导航到甲板浏览器
gui_undo撤消上次操作

资源

资源URI描述
system_infoanki://system-infoAnki版本、配置文件和调度程序信息
query_syntaxanki://query-syntaxAnki搜索查询语法参考
schemaanki://schema数据模型文档(实体、字段、关系)
stats_todayanki://stats/today今天的学习统计
stats_forecastanki://stats/forecast30天回顾预测
stats_collectionanki://stats/collection总体收集统计
fsrs_configanki://fsrs/configFSRS配置摘要和参数

鼓励

提示描述
review_session引导式复习工作流程(交互式、快速或语音模式)

需求

  • Anki 25.07或更高版本 (发布Python 3.13)
  • Anki 25.02及更早版本发布了Python 3.9 不支持 --MCP SDK需要Python 3.10+(#8)

建筑

该插件在后台线程中使用HTTP传输(FastMCP+uvicorn)运行MCP服务器。所有Anki操作都通过队列系统桥接到主Qt线程,遵循与AnkiConnect相同的经过验证的模式。

有关详细信息,请参阅 Anki插件开发文档.

发展

运行E2E测试

E2E测试在Docker中针对真实的Anki实例运行,使用 无头安吉.

# Install test dependencies
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt

# Build the addon
./package.sh

# Start Anki container
cd .docker && docker compose up -d && cd ..

# Run tests (waits for server automatically)
pytest tests/e2e/ -v

# Stop container
cd .docker && docker compose down

或者使用Makefile快捷方式:

make e2e        # Build, start container, run tests, stop
make e2e-up     # Just start container
make e2e-test   # Just run tests
make e2e-down   # Just stop container

CI

E2E测试在任何分支和PR上自动运行 main。参见 .github/workflows/e2e.yml.

许可证

AGPL-3.0或更高版本

链接

目录标签

目录标签

PythonClaudeAI代理Anki插件本地部署AI学习工具闪卡管理MCP协议本地HTTP服务

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

session

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

36

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosessionlocal-only

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

安装前确认

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

来源信息

继续浏览同类 MCP