Anki MCP
The Anki MCP server provides comprehensive AI-driven integration with Anki flashcards, enabling natural language interaction for enhanced learning and management.
Interactive Learning & Review: Quiz on specific cards, simulate answering with ease ratings, query due or suspended cards, and manage card states (suspend, unsuspend, forget, relearn) through conversational commands.
Smart Content Creation: Generate flashcards from text, create cloze deletion cards, convert lecture notes into study materials, and import external files directly into Anki with custom fields and tags.
Advanced Analytics: Access detailed performance metrics including retention rates, ease factors, review intervals, study patterns, and daily statistics to identify weak areas and track learning progress.
Efficient Bulk Operations: Perform complex search queries using Anki's syntax, execute multiple actions atomically, manage thousands of cards simultaneously, and handle tagging, moving, and duplicate detection at scale.
Comprehensive Management: Create, rename, and delete decks; customize note types and templates with CSS styling; manage media files (images, audio); configure deck settings and learning parameters; and handle profile management, synchronization, and database operations.
GUI Integration: Interact with Anki's interface programmatically for browsing, editing, and advanced database operations while maintaining real-time synchronization.
Provides full access to Anki flashcards through AnkiConnect, enabling deck management, card operations, note management, and statistics retrieval. Allows creating, updating, and organizing flashcards, running quizzes, and analyzing study performance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Anki MCPquiz me on 10 random cards from my biology deck"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ง Anki MCP
Transform your Anki flashcard experience with AI! This MCP (Model Context Protocol) server bridges your Anki flashcard collection with AI assistants like Claude, enabling natural conversations about your study materials.
๐ What Can You Do?
Imagine having an AI tutor that knows your entire flashcard collection and can:
๐ Interactive Learning
"Quiz me on Japanese vocabulary I haven't seen in 3 days"
"Test me on challenging cards from my medical deck"
"Show me cards I've been struggling with recently"
โจ Smart Content Creation
"Create flashcards about photosynthesis with diagrams"
"Turn this PDF chapter into spaced repetition cards"
"Generate cloze deletion cards from my lecture notes"
๐ Powerful Analytics
"Which topics am I struggling with most?"
"Show me my study patterns for the last month"
"What's my retention rate for different card types?"
๐ฏ Bulk Operations
"Tag all my chemistry cards with 'exam-prep'"
"Move cards with low retention to an intensive review deck"
"Find and fix duplicate cards across my decks"
Related MCP server: MCP-AnkiConnect
๐ฏ Features
๐ฏ Smart Tool Design: Intuitive, high-level tools designed specifically for AI agents
๐ฌ Natural Conversations: Talk to Claude about your flashcards like you would a study buddy
โก Lightning Fast: Efficient operations that don't bog down your AI assistant
๐ฆ Bulk Operations: Update thousands of cards at once with simple commands
๐ Study Insights: Deep analytics on your learning progress and patterns
๐จ Rich Media: Full support for images, audio, and other media in your cards
๐ Powerful Search: Leverage Anki's advanced search syntax through natural language
๐ Rock Solid: Fully typed TypeScript with comprehensive error handling
๐ Technical Stack
Node.js: Runtime environment (18+ required)
TypeScript: Type safety and developer experience
MCP SDK: Model Context Protocol implementation
yanki-connect: ๐ Fully-typed, isomorphic AnkiConnect API client
tsup: Fast TypeScript bundler
PNPM: Efficient package manager
Special thanks to the yanki-connect library for providing the robust AnkiConnect interface that powers this integration!
๐ Prerequisites
1. Install Anki
Download and install Anki if you haven't already.
2. Install AnkiConnect Plugin
Open Anki
Go to Tools โ Add-ons
Click Get Add-ons...
Enter code:
2055492159Restart Anki
๐ Version Requirements: This server requires AnkiConnect version 25.2.25.0 or newer (released 2025-02-25) for full compatibility. Most features work with older versions, but we recommend updating for the best experience.
3. Configure AnkiConnect (Optional)
AnkiConnect works out of the box, but you can customize settings:
Go to Tools โ Add-ons
Select AnkiConnect and click Config
Default settings should work fine for most users
๐ Quick Start
Option 1: Use with Claude Desktop (Recommended)
Install the package
npm install -g @arielbk/anki-mcpConfigure Claude Desktop
Edit your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.jsonAdd this configuration:
{ "mcpServers": { "anki": { "command": "anki-mcp", "args": [] } } }Restart Claude Desktop
Start using it!
Make sure Anki is running with AnkiConnect enabled
Ask Claude: "Show me my Anki decks" or "Quiz me with 5 cards"
๐ก Pro Tip: You can test your setup by asking Claude simple questions like "How many Anki decks do I have?" or "What's in my largest deck?"
Option 2: Development Setup
Clone the repository
git clone https://github.com/arielbk/anki-mcp.git cd anki-mcpInstall dependencies
pnpm installBuild the project
pnpm buildTest the server
# Use the MCP inspector to test functionality pnpm inspect
Option 3: Use with Other MCP Clients
This server works with any MCP-compatible client. You can also use it with:
MCP Inspector: Interactive debugging tool
Cline: VS Code extension for AI coding
Custom MCP clients: Build your own using the MCP SDK
For stdio transport, run:
node dist/index.jsFor localhost HTTP (Streamable HTTP) transport, run:
node dist/index.js --http --host=127.0.0.1 --port=3000
# The MCP endpoint will be at http://127.0.0.1:3000/mcpClients that support Streamable HTTP can connect directly. Legacy SSE clients may still work via client-side fallback.
๐ฎ Usage Examples
Once configured with Claude Desktop, you can have natural conversations like:
๐ Study Sessions
You: "I have a Japanese exam tomorrow. Can you quiz me on Hiragana cards I haven't reviewed in a week?"
Claude: I'll find your Hiragana cards that need review and start a quiz session...๐ Content Creation
You: "Create flashcards for the major battles of World War II with dates and significance"
Claude: I'll create comprehensive flashcards covering the key WWII battles...๐ Study Analytics
You: "How am I doing with my medical terminology deck? Show me my weak areas."
Claude: Let me analyze your performance on the medical terminology deck...๐ท๏ธ Organization
You: "Tag all cards about cardiovascular system with 'cardiology' and move them to my MCAT prep deck"
Claude: I'll help you organize those cards...๐ง Available Tools
The server provides 7 intuitive tools that cover everything you need:
๐ Manage Flashcards
Create, update, delete, and search your flashcards. Perfect for content creation, bulk updates, and organization.
๐ฏ Study Sessions
Run interactive quiz sessions, manage card scheduling, and track which cards need review.
๐ Manage Decks
Create and organize decks, move cards around, and configure deck settings.
๐ Get Analytics
Dive into your study statistics, review history, and learning patterns.
๐จ Manage Models
Customize note types, add fields, modify templates, and style your cards.
๐ง Anki Operations
Handle sync, media files, imports/exports, and other utility operations.
๐ผ๏ธ Get Media File
Retrieve media files (images, audio, etc.) from your Anki collection. AI assistants can analyze images directly (though they won't display in the UI).
๐ก Pro Tip: Many operations support pagination to prevent overwhelming your context window. Use
limitandoffsetparameters when working with large result sets.
๐ Development
# Run in development mode with auto-reloading
pnpm dev
# Lint the code
pnpm lint
# Format the code
pnpm format
# Test with MCP inspector
pnpm inspect๐ง Configuration
AnkiConnect Settings
The server connects to AnkiConnect on localhost:8765 by default. If you've customized your AnkiConnect configuration, you may need to adjust the connection settings.
Important: Make sure Anki is running and AnkiConnect is installed before using the MCP server. The server will fail to connect if AnkiConnect is not accessible.
๐ก Note: The underlying yanki-connect library supports auto-launching Anki on macOS, but this feature is not currently exposed in the MCP server configuration. You'll need to start Anki manually.
Claude Desktop Advanced Configuration
For advanced users, you can pass additional parameters:
{
"mcpServers": {
"anki": {
"command": "anki-mcp",
"args": ["--verbose"],
"env": {
"ANKI_CONNECT_HOST": "localhost",
"ANKI_CONNECT_PORT": "8765"
}
}
}
}Troubleshooting
Common Issues:
"Failed to connect to AnkiConnect": Ensure Anki is running and AnkiConnect plugin is installed
"No decks found": Make sure you have at least one deck in Anki
Claude doesn't respond: Restart Claude Desktop after configuration changes
Permission errors: Check that the global npm install worked correctly with
npm list -g @arielbk/anki-mcp
๐ค Contributing
We welcome contributions! Please:
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
๐ License
MIT - see LICENSE file for details.
๐ Acknowledgments
yanki-connect - Excellent TypeScript client for AnkiConnect
AnkiConnect - The plugin that makes Anki automation possible
Model Context Protocol - Enabling seamless AI integrations
Transform your flashcard experience with AI-powered conversations! ๐
Available Tools
7 toolsanki_operationsD
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Anki utility operation | |
| deckName | No | Deck name to export | |
| filePath | No | File path for export/import | |
| includeSched | No | Include scheduling in export | |
| filename | No | Media filename | |
| mediaData | No | Base64 encoded media data | |
| mediaUrl | No | URL to download media from | |
| pattern | No | Pattern to match media files |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analyticsD
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | Analytics scope | |
| deckName | No | Deck name for deck-specific stats | |
| cardIds | No | Card IDs for detailed analysis | |
| startTimestamp | No | Start timestamp for review history | |
| wholeCollection | No | Get whole collection stats vs current deck |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_fileD
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Media filename referenced in Anki cards (e.g., "image.png") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_decksD
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Deck management operation | |
| deckName | No | Deck name | |
| deckNames | No | Deck names (for batch operations) | |
| deleteCards | No | Delete cards when deleting deck | |
| cardIds | No | Card IDs to move | |
| targetDeck | No | Target deck for moving cards | |
| configId | No | Config ID to apply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_flashcardsD
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | The flashcard operation to perform | |
| deckName | No | Deck name (for create operations) | |
| modelName | No | Note type/model name (for create operations) | |
| fields | No | Field name-value pairs (for create/update) | |
| tags | No | Tags to add/remove or set | |
| notes | No | Array of notes to create (for create_batch) | |
| noteId | No | Note ID (for update/delete single note) | |
| noteIds | No | Note IDs (for delete multiple) | |
| query | No | Anki search query (for find operation) | |
| includeDetails | No | Include detailed note info (for find) | |
| limit | No | Max results to return (default: 50, recommended to prevent context overflow) | |
| offset | No | Number of results to skip for pagination (default: 0) | |
| cardIds | No | Card IDs to get info for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_modelsD
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Model management operation | |
| modelName | No | Model/note type name | |
| fields | No | Field names in order (for create) | |
| templates | No | Card templates (for create) | |
| css | No | CSS styling | |
| isCloze | No | Is cloze deletion type | |
| fieldName | No | Field name | |
| newFieldName | No | New field name (for rename) | |
| fieldIndex | No | Field index position | |
| templateName | No | Template name | |
| template | No | Template content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
study_sessionD
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Study session operation | |
| query | No | Search query to find cards (for find_due) | |
| cardIds | No | Card IDs to operate on | |
| answers | No | Card answers (for answer operation) | |
| days | No | Days from today for due date (for reschedule) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
98 tool updates
v1.0.0- Removed
add_note - Removed
add_notes - Removed
add_tags_to_notes - Added
anki_operations - Removed
answer_cards - Removed
api_reflect - Removed
can_add_notes - Removed
card_reviews - Removed
cards_to_notes - Removed
change_deck - Removed
check_card_suspended - Removed
check_cards_due - Removed
check_cards_suspended - Removed
clear_unused_tags - Removed
clone_deck_config - Removed
create_deck - Removed
create_model - Removed
delete_decks - Removed
delete_media_file - Removed
delete_notes - Removed
export_package - Removed
find_and_replace_in_models - Removed
find_cards - Removed
find_notes - Removed
forget_cards - Removed
get_active_profile - Added
get_analytics - Removed
get_cards_ease_factors - Removed
get_cards_info - Removed
get_cards_intervals - Removed
get_cards_mod_time - Removed
get_collection_stats_html - Removed
get_latest_review_id - Removed
get_media_dir_path - Added
get_media_file - Removed
get_media_files_names - Removed
get_num_cards_reviewed_by_day - Removed
get_num_cards_reviewed_today - Removed
get_profiles - Removed
get_reviews_of_cards - Removed
get_version - Removed
gui_add_cards - Removed
gui_answer_card - Removed
gui_browse - Removed
gui_check_database - Removed
gui_current_card - Removed
gui_deck_browser - Removed
gui_deck_overview - Removed
gui_deck_review - Removed
gui_edit_note - Removed
gui_exit_anki - Removed
gui_import_file - Removed
gui_select_card - Removed
gui_select_note - Removed
gui_selected_notes - Removed
gui_show_answer - Removed
gui_show_question - Removed
gui_start_card_timer - Removed
gui_undo - Removed
import_package - Removed
insert_reviews - Removed
load_profile - Added
manage_decks - Added
manage_flashcards - Added
manage_models - Removed
model_field_add - Removed
model_field_remove - Removed
model_field_rename - Removed
model_field_reposition - Removed
model_field_set_description - Removed
model_field_set_font - Removed
model_field_set_font_size - Removed
model_template_add - Removed
model_template_remove - Removed
model_template_rename - Removed
model_template_reposition - Removed
multi - Removed
relearn_cards - Removed
reload_collection - Removed
remove_deck_config - Removed
remove_empty_notes - Removed
remove_tags_from_notes - Removed
replace_tags_in_notes - Removed
request_permission - Removed
retrieve_media_file - Removed
save_deck_config - Removed
set_card_specific_values - Removed
set_cards_due_date - Removed
set_cards_ease_factors - Removed
set_deck_config - Removed
store_media_file - Added
study_session - Removed
suspend_cards - Removed
sync - Removed
unsuspend_cards - Removed
update_model_styling - Removed
update_model_templates - Removed
update_note
91 tool updates
- First observed
add_note - First observed
add_notes - First observed
add_tags_to_notes - First observed
answer_cards - First observed
api_reflect - First observed
can_add_notes - First observed
card_reviews - First observed
cards_to_notes - First observed
change_deck - First observed
check_card_suspended - First observed
check_cards_due - First observed
check_cards_suspended - First observed
clear_unused_tags - First observed
clone_deck_config - First observed
create_deck - First observed
create_model - First observed
delete_decks - First observed
delete_media_file - First observed
delete_notes - First observed
export_package - First observed
find_and_replace_in_models - First observed
find_cards - First observed
find_notes - First observed
forget_cards - First observed
get_active_profile - First observed
get_cards_ease_factors - First observed
get_cards_info - First observed
get_cards_intervals - First observed
get_cards_mod_time - First observed
get_collection_stats_html - First observed
get_latest_review_id - First observed
get_media_dir_path - First observed
get_media_files_names - First observed
get_num_cards_reviewed_by_day - First observed
get_num_cards_reviewed_today - First observed
get_profiles - First observed
get_reviews_of_cards - First observed
get_version - First observed
gui_add_cards - First observed
gui_answer_card - First observed
gui_browse - First observed
gui_check_database - First observed
gui_current_card - First observed
gui_deck_browser - First observed
gui_deck_overview - First observed
gui_deck_review - First observed
gui_edit_note - First observed
gui_exit_anki - First observed
gui_import_file - First observed
gui_select_card - First observed
gui_select_note - First observed
gui_selected_notes - First observed
gui_show_answer - First observed
gui_show_question - First observed
gui_start_card_timer - First observed
gui_undo - First observed
import_package - First observed
insert_reviews - First observed
load_profile - First observed
model_field_add - First observed
model_field_remove - First observed
model_field_rename - First observed
model_field_reposition - First observed
model_field_set_description - First observed
model_field_set_font - First observed
model_field_set_font_size - First observed
model_template_add - First observed
model_template_remove - First observed
model_template_rename - First observed
model_template_reposition - First observed
multi - First observed
relearn_cards - First observed
reload_collection - First observed
remove_deck_config - First observed
remove_empty_notes - First observed
remove_tags_from_notes - First observed
replace_tags_in_notes - First observed
request_permission - First observed
retrieve_media_file - First observed
save_deck_config - First observed
set_card_specific_values - First observed
set_cards_due_date - First observed
set_cards_ease_factors - First observed
set_deck_config - First observed
store_media_file - First observed
suspend_cards - First observed
sync - First observed
unsuspend_cards - First observed
update_model_styling - First observed
update_model_templates - First observed
update_note
TDQS
The tools have distinct purposes targeting different aspects of Anki functionality: operations, analytics, media, decks, flashcards, models, and study sessions. There is some potential overlap between 'anki_operations' and the more specific 'manage_' tools, but the separation is generally clear enough for an agent to distinguish them based on their names.
The naming is mixed: 'anki_operations', 'get_analytics', and 'get_media_file' follow a verb_noun pattern, while 'manage_decks', 'manage_flashcards', and 'manage_models' use a verb_noun pattern with a consistent 'manage_' prefix, and 'study_session' is a noun_noun pattern. This inconsistency in conventions reduces predictability but remains readable.
With 7 tools, the count is well-scoped for an Anki server, covering core areas like decks, flashcards, models, study sessions, analytics, media, and general operations. Each tool appears to earn its place without being excessive or insufficient for the domain.
The tool set covers key areas of Anki (decks, flashcards, models, study, analytics, media, operations), but without descriptions, it's unclear if there are gaps in CRUD/lifecycle coverage. For example, 'manage_flashcards' might imply create/update/delete, but specific tools for individual operations are missing, potentially leading to agent workarounds.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
One memory, every AI: Claude, ChatGPT, Perplexity, Gemini, Cursor, OpenClaw, Hermes, any MCP client.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants like Claude to interact with Anki flashcard decks, allowing users to create, manage, and update flashcards through natural language conversations.41MIT
- AlicenseAqualityCmaintenanceAn MCP server that integrates Claude with Anki flashcards, allowing users to review due cards and create new flashcards directly through conversation.1413MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants to interact with the Anki flashcard application for studying, deck management, and note creation. It supports natural language interaction for reviewing cards, searching content, and managing media files across local and remote environments.1,716467MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to seamlessly manage Anki flashcards, decks, and templates through the AnkiConnect API. It supports intelligent querying, batch note creation, and detailed study progress analysis using natural language.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arielbk/anki-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server