@yama662607/anki-mcp
v0.5.0
Published
MCP server for safe, review-first Anki authoring on official Anki concepts
Downloads
530
Maintainers
Readme
anki-mcp
MCP server for safe, review-first Anki authoring built on official Anki concepts: profile, deck, note type, note, card, tag, and media.
It is designed for agents that need to inspect existing Anki structure, create or revise note types, add notes, preview the real Anki rendering, and only then release cards into study.
The package was renamed from anki-mcps to @yama662607/anki-mcp. The CLI command is now anki-mcp.
Why this exists
- avoid custom abstractions on top of Anki's own data model
- keep note creation review-first by suspending new cards until they are accepted
- let agents learn from existing decks and note types before writing new content
- keep note type changes additive-safe and validate them before apply
Features
- deck and note discovery for example-driven authoring
- additive-safe note type authoring with
dryRun=trueby default - lightweight note type linting with structured
errorsandwarningsbefore apply - direct note creation with
modelName,deckName,fields, andtags - review-first isolation by suspending new cards until the user keeps them
- optimistic conflict detection for
update_note - batch add/delete note operations with stable per-item outcomes
- local media import for audio and image fields
- frozen v1 contract resource at
anki://contracts/v1/tools
Requirements
- Node.js 22+
- Anki with AnkiConnect enabled
- optional: the
anki-connect-extensionadd-on for read-only native preview instead of edit-dialog fallback
Quick start
- Install
@yama662607/anki-mcpfrom npm. - Start Anki with AnkiConnect enabled.
- Add the MCP server to your client.
- Ask the agent to run
get_runtime_statusfirst. - Use the review-first flow:
add_note->open_note_preview->update_noteorset_note_cards_suspended(false).
For a first-time setup guide, see 5-minute quick start.
Dependency model
AnkiConnectis required for real Anki usageanki-connect-extensionis optional and provides a read-only native preview path- without the extension,
open_note_previewfalls back to opening the edit dialog - in
ANKI_GATEWAY_MODE=memory, neither dependency is required because the server is running in test mode
Installation
From npm
npm install -g @yama662607/anki-mcpFrom source
npm install
npm run buildRunning
As a local command
anki-mcpFrom source
npm run devMCP client setup
Codex
Official Codex setup is codex mcp add or ~/.codex/config.toml.
Add the server with the CLI:
codex mcp add anki-mcp \
--env ANKI_CONNECT_URL=http://127.0.0.1:8765 \
--env ANKI_ACTIVE_PROFILE=default \
-- anki-mcpEquivalent ~/.codex/config.toml entry:
[mcp_servers.anki-mcp]
command = "anki-mcp"
[mcp_servers.anki-mcp.env]
ANKI_ACTIVE_PROFILE = "default"
ANKI_CONNECT_URL = "http://127.0.0.1:8765"Claude-style clients
Some MCP clients use mcpServers JSON instead.
{
"mcpServers": {
"anki-mcp": {
"command": "anki-mcp",
"env": {
"ANKI_CONNECT_URL": "http://127.0.0.1:8765",
"ANKI_ACTIVE_PROFILE": "default"
}
}
}
}Environment
ANKI_CONNECT_URLdefault:http://127.0.0.1:8765ANKI_ACTIVE_PROFILEoptional fallback for read toolsANKI_MCP_DB_PATHdefault:.data/anki-mcp.sqliteANKI_GATEWAY_MODE=memoryfor deterministic local tests without Anki
ANKI_MCP_DB_PATH is the internal SQLite path used for idempotency and operational metadata. DRAFT_DB_PATH is still accepted as a backward-compatible fallback.
Core workflow
- Verify setup with
get_runtime_status. - Discover existing structure with
list_decks,list_note_types,get_note_type_schema,search_notes, andget_notes. - Create missing decks with
ensure_deck. - Create or revise note types with
upsert_note_type(dryRun=true)and inspectresult.validation. - Add review-pending content with
add_noteoradd_notes_batch. - Inspect the real Anki rendering with
open_note_preview(the extension path uses a read-only native previewer, not a live editor dialog). - After user feedback, call
update_note,delete_note, orset_note_cards_suspended(suspended=false).
Media workflow
import_media_asset- Insert returned
asset.fieldValueinto the target note field add_noteorupdate_noteopen_note_preview
Main docs
- 5-minute quick start
- Operating model
- Contracts and tool surface
- Note type authoring
- Real Anki E2E
- Migration from pack/card-type APIs
- Public release checklist
License
MIT
