A side-by-side look at the EngrAmo and Anki MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose EngrAmo for education work over a hosted endpoint; choose Anki MCP for education as a local process. You can also run both side by side in one mcpServers block.
ENGRAMO_API_URL, ENGRAMO_API_TOKEN.get_server_version, list_catalogs, get_catalog.manage_flashcards, study_session, manage_decks.Rows where the two servers differ are marked.
| Spec | E EngrAmo | |
|---|---|---|
| Category | Education | Education |
| Quality signal | 67/100 · Great | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Remote HTTP/SSE | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | ENGRAMO_API_URLENGRAMO_API_TOKEN | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 11 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 27 | 25 |
| Full listing | View EngrAmo | View Anki MCP |
get_server_versionGet this MCP server's own build version (not a catalog/card's `version` field)list_catalogsList all flashcard catalogsget_catalogGet a single catalog by IDupdate_catalogUpdate a catalog's name or descriptiondelete_catalogDelete a cataloglist_cardsList cards in a catalogget_cardGet a single card by IDupdate_cardUpdate a card's contentdelete_cardDelete a cardget_due_cardsGet cards due for review todayget_all_learning_cardsGet all cards in the learning queueadd_card_to_learningAdd a card to the learning queuemanage_flashcardsCreate, update, delete, search, inspect, and tag Anki flashcards through one high-level note/card workflow. Use this for note lifecycle work and card lookup, not for deck structure, note-type schema changes, or study scheduling. Mutating operations change the local Anki collection immediately; searches are read-only. Choose `operation` first, then provide the operation-specific IDs, query, fields, tags, or pagination inputs described by the schema.study_sessionFind due cards and apply review-state actions such as answering, suspending, unsuspending, resetting, and relearning cards. Use this for scheduling and review flow, not for editing note content or reorganizing decks. Several operations mutate card state in Anki immediately; `find_due` and `check_status` are read-only. Select `operation`, then pass either `query`, `cardIds`, or `answers` as required for that action.manage_decksCreate, delete, list, inspect, move cards between, and configure Anki decks. Use this for deck-level organization, not for editing flashcard fields, note types, or study answers. Create, delete, move, and config operations mutate the collection; list and stats/config reads do not. Set `operation` first and supply the matching deck names, card IDs, target deck, or config ID.get_analyticsRead study analytics and review history for decks, the collection, or specific cards. Use this when the agent needs reporting or diagnostics, not when it needs to mutate Anki data. This tool is read-only but some scopes can return large payloads, so prefer the narrowest scope and explicit card IDs or timestamps when available. Choose `scope`, then provide the deck, cards, or review start timestamp required by that scope.manage_modelsList, create, and modify Anki note types, including fields, templates, and CSS styling. Use this for schema/template work, not for individual note content, decks, or review scheduling. All operations except `list` mutate the collection and can affect future rendering or compatibility of notes using that model. Pick `operation` first, then provide the model name plus the exact field, template, CSS, or creation inputs needed.anki_operationsRun general Anki utility operations: sync, version lookup, package import/export, profile listing, and media storage or retrieval. Use this for cross-cutting maintenance tasks that do not belong to flashcard, deck, model, or study workflows. Import, export, sync, and media writes have external side effects; version and profile reads do not. Select `operation`, then provide the relevant deck name, file path, filename, media payload, URL, or pattern.get_media_fileRetrieve one named Anki media file as base64 data and, for images, as MCP image content that compatible clients can inspect. Use this when an agent needs the actual contents of a referenced media asset, not when it only needs media names or storage operations; those belong in `anki_operations`. This tool is read-only and rejects path traversal. Pass a simple filename exactly as stored in Anki media.gui_add_cardsgui_answer_cardgui_browsegui_check_databasegui_current_cardPaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"engramo": {
"command": "npx",
"args": [
"-y",
"@engramo/mcp"
],
"env": {
"ENGRAMO_API_URL": "YOUR_ENGRAMO_API_URL_HERE",
"ENGRAMO_API_TOKEN": "YOUR_ENGRAMO_API_TOKEN_HERE"
}
}
}
}
{
"mcpServers": {
"anki-mcp": {
"command": "npx",
"args": [
"-y",
"@arielbk/anki-mcp"
]
}
}
}