使用说明 (Markdown)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器端的后端,用于通过统一的接口向 LLM 客户端提供 Anki 收藏数据的访问、对外注册的工具以及对话时使用的提示模板能力。核心通过 MCP 框架定义工具(Tools)、资源查询(如列表、详情、搜索)以及对外执行的操作,客户端通过 JSON-RPC 风格的请求进行调用。
  • 主要功能点

    • MCP 功能实现:通过服务器注册和暴露工具清单,接收客户端请求并执行对应的后端方法,返回标准化的响应。
    • 资源访问与查询:提供浏览和查询 Anki 的 Deck(牌组)、Notes、Cards、Review 统计等能力。
    • 工具注册与执行:定义了可用工具并实现执行路径,支持获取权限摘要、创建/修改/删除资源等操作。
    • 权限与安全:内置权限管理系统(PermissionManager),支持全局权限、修饰(创建/写/删除)权限、允许清单/拒绝清单、标签限制、note-type(笔记类型)权限等多维控制。
    • 多传输与集成方式:服务器端实现了基于 MCP 的 STDIO 交互,并包含一个简单 HTTP 版本的实现,方便在非 Anki 环境进行测试与演示。
    • 测试与示例:包含针对权限、工具列表、服务器功能等的测试用例,确保核心行为符合预期。
  • 安装与运行

    • 依赖与环境
      • 需使用 Python 3.10 及以上,安装 MCP 相关库(根据实际运行环境安装依赖)。
    • 运行方式(核心思路)
      • MCP 服务器端核心逻辑已在源文件中实现,可以在集成环境中将 Anki 数据接入后通过 MCP 框架启动服务,或在 Anki 插件/Addon 的场景中通过内置的简单 HTTP 服务器进行暴露。
    • 运行要点
      • 服务器核心通过装载一个 AnkiInterface 实例来访问数据,工具和权限检查在服务器端完成。
      • 具备 STDIO 与 HTTP 两种通信路径的实现,便于在不同环境下进行调试与集成。
    • 注意事项
      • 这是一套较完整的后端实现,若要在本地快速演示,需准备一个可用的 AnkiInterface(或 Mock 实例)以连接到 MCP 服务。
  • 服务器配置(对 MCP 客户端的说明)

    • MCP 客户端需要知道服务器的名称、启动方式和连接参数。本实现的服务器侧提供了名称为 "ankimcp" 的服务,实际启动可能需要在运行环境中以插件/集成方式进行。以下为示例性配置说明,具体启动方式请依环境实现:
    • server_name: "ankimcp"
    • command: "在 Anki 插件环境中启动 MCP 服务器或通过自定义 HTTP/stdio 桥接启动"
    • args: ["host=localhost", "port=4473"] 注:仓库中没有一个单一的独立 CLI 直接启动服务器的公开入口;服务器通常通过集成在 Anki 插件中的桥接实现或自定义运行方式启动。
  • 基本使用方法

    • 连接与调用
      • 客户端通过 MCP 框架的接口调用 list_tools 获取可用工具清单,随后调用 call_tool 触发具体工具执行。
    • 安全与权限
      • 使用权限管理器进行访问控制,确保对 Deck、Note、Tag 等的操作在允许范围内执行,非法操作会抛出权限错误。
    • 自我验证
      • 测试用例覆盖了多种权限场景、资源查询以及修改操作,便于在集成时进行回归验证。

信息

分类

AI与计算