Anki MCP Server
# Anki MCP Server
An MCP (Model Context Protocol) server that provides tools for interacting with the Anki API. This server allows AI assistants to manage Anki decks and cards through simple tool calls.
## Features
- List Anki decks with pagination
- Create new decks
- Add cards (basic and cloze types)
- Batch add multiple cards
- Get review queue with filtering options
- Support for dynamically loading additional tools from an external API
## Available Tools
1. **listDecks** - List all Anki decks with optional pagination
2. **createDeck** - Create a new Anki deck
3. **addCardsBatch** - Add multiple cards to a deck in batch
4. **addBasicCard** - Add a single basic card to a deck
5. **addClozeCard** - Add a cloze deletion card to a deck
6. **getReviewQueue** - Get cards due for review with filtering options
## Installation
```bash
npm install -g @x-mcp/anki
# or
pnpm add -g @x-mcp/anki
```
## Development
```bash
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Run in development mode (auto-restart on changes)
pnpm run dev
# Run the server
pnpm start
# Lint and format code
pnpm run lint
pnpm run format
```
## Configuration
### MCP Client Configuration
Add this to your MCP client settings:
```json
{
"mcpServers": {
"anki-mcp": {
"command": "npx",
"args": ["-y", "@x-mcp/anki@latest"],
"env": {
"ANKI_BASE_URL": "http://localhost:3000", // Anki API base URL
"ANKI_API_KEY": "ank_YOUR_API_KEY_HERE" // Your Anki API key
}
}
}
}
```
### Environment Variables
Create a `.env` file:
```bash
# Required: Anki API configuration
ANKI_BASE_URL=http://localhost:3000/api/v1
ANKI_API_KEY=ank_YOUR_API_KEY_HERE
# Optional: External tools API configuration
API_URL=https://your-api-endpoint.com/tools
API_KEY=your-api-key
```
## Usage Example
Once configured, the AI assistant can use commands like:
- "List all my Anki decks"
- "Create a new deck called 'Spanish Vocabulary'"
- "Add a card with front 'Hello' and back 'Hola' to my Spanish deck"
- "Show me cards due for review"
Each tool makes direct HTTP requests to the Anki API and returns the response data.
## API Requirements
The tools interact with an Anki API that should have the following endpoints:
- `GET /api/v1/decks` - List decks
- `POST /api/v1/decks` - Create deck
- `POST /api/v1/decks/{deckId}/cards/batch` - Add cards
- `GET /api/v1/study/queue` - Get review queue
## License
MIT
TDQS
Scored across 6 tools
Tools are mostly distinct: addBasicCard, addClozeCard, and addCardsBatch target different card types or batch operations; createDeck, listDecks, and getReviewQueue are clearly separate. However, addCardsBatch could overlap with addBasicCard or addClozeCard if used for multiple cards of a specific type.
All tools follow a verb_noun pattern with imperative verbs (add, create, get, list). Minor inconsistencies: 'CardsBatch' uses plural and compound noun, while others use singular (BasicCard, ClozeCard). Capitalization is consistent with CamelCase.
With 6 tools, the server is well-scoped for basic Anki operations: deck creation, card addition (basic, cloze, batch), deck listing, and review queue retrieval. The number is appropriate for a focused subset.
Significant gaps exist: no update or delete operations for cards or decks, no ability to list cards within a deck, and no support for managing models or tags. Agents can create and add but cannot modify or remove content.