---
slug: "anki-anki-mcp-server"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/ethangillani/Anki-MCP-Server@main/README.md"
repo: "https://github.com/ethangillani/Anki-MCP-Server"
source_file: "README.md"
branch: "main"
---
# Anki MCP Server

A Model Context Protocol (MCP) server that enables LLMs to interact with Anki flashcard software through the AnkiConnect API.

## Features

- Create new decks in Anki
- Add notes to existing decks
- List available decks and note models
- Search for notes using Anki's search syntax
- Get detailed information about note models and their fields
- Bulk add multiple notes at once

## Prerequisites

- [Node.js](https://nodejs.org/) (v14 or later)
- [Anki](https://apps.ankiweb.net/) with the [AnkiConnect](https://ankiweb.net/shared/info/2055492159) add-on installed
- A Model Context Protocol compatible client (such as Claude with Anthropic MCP support)

## Installation

1. Make sure you have Anki installed with the AnkiConnect add-on
   - Install AnkiConnect by going to Tools > Add-ons > Get Add-ons and entering code: `2055492159`

2. Clone this repository:
   ```
   git clone https://github.com/yourusername/anki-mcp-server.git
   cd anki-mcp-server
   ```

3. Install dependencies:
   ```
   npm install
   ```

4. Build the project:
   ```
   npm run build
   ```

## Usage

1. Make sure Anki is running on your computer with AnkiConnect enabled

2. Start the MCP server:
   ```
   npm start
   ```

3. Connect your MCP client (e.g., Claude) to this server

## Available Tools

The server provides the following tools to MCP clients:

- **listDecks**: Get a list of all decks in Anki
- **listModels**: Get a list of all note models/types in Anki
- **createDeck**: Create a new deck in Anki
- **getModel**: Get details about a specific note model/type
- **addNote**: Add a single note to a deck
- **addNotes**: Add multiple notes at once
- **searchNotes**: Search for notes using Anki's search syntax

## Examples

### Create a New Deck

```json
{
  "name": "createDeck",
  "arguments": {
    "name": "My New Deck"
  }
}
```

### Add a Note

```json
{
  "name": "addNote",
  "arguments": {
    "deckName": "My New Deck",
    "modelName": "Basic",
    "fields": {
      "Front": "What is the capital of France?",
      "Back": "Paris"
    },
    "tags": ["geography", "europe"]
  }
}
```

### Search Notes

```json
{
  "name": "searchNotes",
  "arguments": {
    "query": "deck:\"My New Deck\" tag:geography"
  }
}
```

## Configuration

The server configuration is in the `config` object in `src/index.ts`. You can modify:

- `ankiConnectUrl`: URL for the AnkiConnect API (default: `http://localhost:8765`)
- `apiVersion`: API version for AnkiConnect (default: `6`)
- `defaultDeckName`: Default deck to use if none specified (default: `Default`)

## Troubleshooting

1. **Cannot connect to Anki**
   - Make sure Anki is running
   - Check that AnkiConnect add-on is installed and working
   - Verify that the AnkiConnect URL is correct (default: http://localhost:8765)

2. **Permission issues with AnkiConnect**
   - AnkiConnect may prompt for permission when the server tries to add cards. Look for a popup in Anki.

## License

MIT License