anki mcp

Local 2025-08-31 23:34:50 0
Knowledge And Memory @johwiebe/anki-mcp

A simple note-taking MCP server that stores notes and can generate summaries of stored content.


A Model Context Protocol (MCP) server for integrating AI assistants with Anki, the popular spaced repetition flashcard software.

Features

This MCP server enables AI assistants to interact with Anki through the following tools:

Tools

  • get-collection-overview: Returns an overview of the Anki collection like available decks, available models and their fields

  • add-or-update-notes: Adds new notes or updates existing ones. Allows batch adding/updating multiple notes at once.

  • get-cards-reviewed: Get the number of cards reviewed by day

  • find-notes: Allows querying notes using the Anki searching syntax

Requirements

  • Anki must be installed and running
  • The AnkiConnect add-on must be installed in Anki and running
  • This MCP server uses uv. To install uv, follow the official instructions.

Configuration

Claude Desktop

  1. Open your Claude Desktop config file:
  2. MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. Windows: %APPDATA%/Claude/claude_desktop_config.json

  4. Add anki-mcp to the mcpServers section:

    "mcpServers": {
      "anki-mcp": {
        "command": "uvx",
        "args": [
          "anki-mcp"
        ]
      }
    }

  5. Restart Claude Desktop.

[
  {
    "description": "Get comprehensive information about the Anki collection including decks, models, and fields",
    "inputSchema": {
      "properties": {},
      "title": "get_collection_overviewArguments",
      "type": "object"
    },
    "name": "get-collection-overview"
  },
  {
    "description": "Get the number of cards reviewed by day",
    "inputSchema": {
      "properties": {},
      "title": "get_cards_reviewedArguments",
      "type": "object"
    },
    "name": "get-cards-reviewed"
  },
  {
    "description": "Find notes matching a query in Anki",
    "inputSchema": {
      "properties": {
        "query": {
          "title": "Query",
          "type": "string"
        }
      },
      "required": [
        "query"
      ],
      "title": "find_notesArguments",
      "type": "object"
    },
    "name": "find-notes"
  },
  {
    "description": "Add new notes or update existing ones in Anki",
    "inputSchema": {
      "$defs": {
        "Note": {
          "properties": {
            "deck": {
              "default": "Default",
              "description": "Deck name (optional)",
              "title": "Deck",
              "type": "string"
            },
            "fields": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Field values for the note (varies by model)",
              "title": "Fields",
              "type": "object"
            },
            "id": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Note ID, if the note already exists. If this is populated the existing note will be updated. If this is `None` a new note will be created.",
              "title": "Id"
            },
            "model": {
              "default": "Basic",
              "description": "Model name (optional)",
              "title": "Model",
              "type": "string"
            },
            "name": {
              "description": "Name of the note",
              "maxLength": 64,
              "title": "Name",
              "type": "string"
            },
            "tags": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": {
                "path": "README.md",
                "type": "blob"
              },
              "description": "Tags to assign to the note (optional)",
              "title": "Tags"
            }
          },
          "required": [
            "name",
            "id",
            "fields"
          ],
          "title": "Note",
          "type": "object"
        }
      },
      "properties": {
        "notes": {
          "items": {
            "$ref": "#/$defs/Note"
          },
          "title": "Notes",
          "type": "array"
        }
      },
      "required": [
        "notes"
      ],
      "title": "add_or_update_notesArguments",
      "type": "object"
    },
    "name": "add-or-update-notes"
  }
]