htlin222/yanki-mcp-server
If you are the rightful owner of yanki-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Yanki MCP Server is a Model Context Protocol server that interfaces with Anki for card review and creation, featuring date-based organization.
update_cards
Marks cards with given card IDs as answered and gives them an ease score between 1 (Again) and 4 (Easy).
add_card
Creates a new card in a date-structured deck (format: DECK::YYYY::MM::DD).
get_due_cards
Returns n number of cards currently due for review.
get_new_cards
Returns n number of cards from new.
Yanki MCP Server ( Yet Another Anki MCP Server )
A Model Context Protocol server implementation that connects to a locally running Anki, providing card review and creation. This is a fork of scorzeth/anki-mcp-server with date-based organization features.
Available as an npm package: yanki-mcp-server
This server is designed to work with the Anki desktop app and the Anki-Connect add-on.
Make sure you have the add-on installed before using.
Resources
- anki://search/deckcurrent
- Returns all cards from current deck
- Equivalent of
deck:current
in Anki
- anki://search/isdue
- Returns cards in review and learning waiting to be studied
- Equivalent of
is:due
in Anki
- anki://search/isnew
- Returns all unseen cards
- Equivalent of
is:new
in Anki
Tools
-
update_cards
- Marks cards with given card IDs as answered and gives them an ease score between 1 (Again) and 4 (Easy)
- Inputs:
answers
(array): Array of objects withcardId
(number) andease
(number) fields
-
add_card
- Creates a new card in a date-structured deck (format:
DECK::YYYY::MM::DD
) - Inputs:
front
(string): Front of cardback
(string): Back of card
- Creates a new card in a date-structured deck (format:
-
get_due_cards
- Returns n number of cards currently due for review
- Inputs:
num
(number): Number of cards
-
get_new_cards
- Returns n number of cards from new
- Inputs:
num
(number): Number of cards
Installation & Usage
You can use this package without installation via npx:
npx yanki-mcp-server
Or install it globally:
npm install -g yanki-mcp-server
yanki-server
Development
Clone the repository and install dependencies:
git clone https://github.com/htlin222/yanki-mcp-server.git
cd yanki-mcp-server
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Run the server directly during development:
npm run dev
Configuration
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"yanki-mcp-server": {
"command": "npx",
"args": ["yanki-mcp-server"],
"env": {
"DECK": "Default"
}
}
}
}
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
Date-Based Card Organization
This server automatically organizes new cards using a date-based structure instead of traditional topic-based organization. When you create a new card, it's added to a deck with the following format:
DECK::YYYY::MM::DD
Where:
DECK
is the base deck name (default: "00_Inbox" or configured via environment variable)YYYY
is the 4-digit yearMM
is the 2-digit monthDD
is the 2-digit day
Benefits of Date-Based Organization
- Effortless Organization: Cards are automatically organized by creation date without manual categorization
- Temporal Context: Review cards created during specific time periods (e.g., during a course or project)
- Natural Spaced Repetition: Cards naturally group by when you learned concepts
- Time-Efficient: No need to spend time deciding which category each card belongs to
- Historical Record: See your learning journey over time
Configuration
You can customize the base deck name by setting the DECK
environment variable in your MCP server configuration:
"env": {
"DECK": "YourCustomDeckName"
}
If not specified, it defaults to "00_Inbox".
Changelog
1.0.5 (2025-05-31)
- Completely removed all console output and logging functionality
- Simplified codebase by eliminating all non-essential output
- Ensured 100% clean MCP protocol communication with no extraneous output
- Removed all filesystem operations related to logging
1.0.4 (2025-05-31)
- Fixed critical issue with logs directory path being created at filesystem root
- Improved logging system with robust error handling and fallback mechanisms
- Ensured logs are always created relative to the current working directory
- Added silent failure for logging to prevent breaking MCP protocol if logging fails
1.0.3 (2025-05-31)
- Fixed MCP communication protocol issue by redirecting all console output to log files
- Added file-based logging system that preserves all debug and status information
- Logs are stored in the
logs
directory with date-based filenames - Ensured clean stdout communication for proper MCP JSON-RPC protocol compliance