Connects Claude to your Deckbase instance, letting you pull documentation, template blocks, and project context directly into conversations. You'd reach for this when you want Claude to work with your team's docs and templates without copy-pasting everything manually. The server exposes read access to your Deckbase content, so you can ask Claude to reference specific templates, search through documentation, or understand project context that lives in your Deckbase workspace. Useful if your team already uses Deckbase to organize docs and you want that knowledge available during AI-assisted development work.
Public tool metadata for what this MCP can expose to an agent.
list_docsList Markdown files in docs/public/. Only docs in that folder are exposed. Use list_docs to see available filenames, then read_doc to fetch one.List Markdown files in docs/public/. Only docs in that folder are exposed. Use list_docs to see available filenames, then read_doc to fetch one.
No parameter schema in public metadata yet.
read_docRead a doc from docs/public/ by path. Only docs in that folder are served. Use list_docs first to see available filenames (e.g. MCP.md).1 paramsRead a doc from docs/public/ by path. Only docs in that folder are served. Use list_docs first to see available filenames (e.g. MCP.md).
pathstringlist_template_block_typesList all Deckbase template block types (keys, numeric ids, labels, category). Use this so the user can choose multiple block types in order; then pass that list as block_types to create_template. **Quiz blocks:** category `quiz` — keys `quizMultiSelect` (8), `quizSingleSelect`...List all Deckbase template block types (keys, numeric ids, labels, category). Use this so the user can choose multiple block types in order; then pass that list as block_types to create_template. **Quiz blocks:** category `quiz` — keys `quizMultiSelect` (8), `quizSingleSelect`...
No parameter schema in public metadata yet.
list_block_schemasReturn JSON structure for each block type: typical blocksSnapshot entry, matching value entry, and **configJson** fields. **Quiz types (`quizSingleSelect`, `quizMultiSelect`, `quizTextAnswer`) require a correct `configJson` on the block** (options, correct answer(s), etc.) — r...Return JSON structure for each block type: typical blocksSnapshot entry, matching value entry, and **configJson** fields. **Quiz types (`quizSingleSelect`, `quizMultiSelect`, `quizTextAnswer`) require a correct `configJson` on the block** (options, correct answer(s), etc.) — r...
No parameter schema in public metadata yet.
list_elevenlabs_voicesList ElevenLabs TTS voice ids (group, label, id, gender, language) from the Deckbase curated catalog for generate_audio_for_card voice_id and template audio block defaultVoiceId. Optional filters: language (ISO 639 code), gender (female|male), search (substring on label/group/...3 paramsList ElevenLabs TTS voice ids (group, label, id, gender, language) from the Deckbase curated catalog for generate_audio_for_card voice_id and template audio block defaultVoiceId. Optional filters: language (ISO 639 code), gender (female|male), search (substring on label/group/...
genderstringfemale · malesearchstringlanguagestringlist_ai_image_modelsList allowed AI text-to-image models for generate_image_for_card model_id (id, label, credits) plus defaults. Use this to ask the user to choose a model before generating images.List allowed AI text-to-image models for generate_image_for_card model_id (id, label, credits) plus defaults. Use this to ask the user to choose a model before generating images.
No parameter schema in public metadata yet.
list_decksList the user's flashcard decks (deckId, title, description, defaultTemplateId, iconEmoji). iconEmoji is optional Unicode emoji for deck list/header; omit/null when unset. Requires hosted MCP with API key. Use with list_templates before create_card.List the user's flashcard decks (deckId, title, description, defaultTemplateId, iconEmoji). iconEmoji is optional Unicode emoji for deck list/header; omit/null when unset. Requires hosted MCP with API key. Use with list_templates before create_card.
No parameter schema in public metadata yet.
list_templatesList the user's card templates (templateId, name, description). Requires hosted MCP with API key. Use when create_card needs an explicit templateId (deck has no defaultTemplateId). If the list is empty, use create_template first. After the user picks a template, call get_templ...List the user's card templates (templateId, name, description). Requires hosted MCP with API key. Use when create_card needs an explicit templateId (deck has no defaultTemplateId). If the list is empty, use create_template first. After the user picks a template, call get_templ...
No parameter schema in public metadata yet.
get_template_schemaAfter the user selects a template, returns exact JSON for that template: each blockId, type, label, configJson, category, plus `side` per block (**"front"** = shown first in study; **"back"** = after the learner flips the card), valuesExample, and create_card hints. **Back-sid...2 paramsAfter the user selects a template, returns exact JSON for that template: each blockId, type, label, configJson, category, plus `side` per block (**"front"** = shown first in study; **"back"** = after the learner flips the card), valuesExample, and create_card hints. **Back-sid...
deckIdstringtemplateIdstringcreate_deckCreate a new flashcard deck for the user. Requires hosted MCP with API key. Returns deckId and icon fields for create_card. **Deck icon:** There is no Deckbase emoji list to fetch—use any standard Unicode emoji (one grapheme). Unless the user asked for no icon or a specific em...4 paramsCreate a new flashcard deck for the user. Requires hosted MCP with API key. Returns deckId and icon fields for create_card. **Deck icon:** There is no Deckbase emoji list to fetch—use any standard Unicode emoji (one grapheme). Unless the user asked for no icon or a specific em...
titlestringiconEmojistringicon_emojistringdescriptionstringupdate_deckUpdate an existing deck’s title, description, default template id, and/or deck icon emoji. Requires hosted MCP with API key. Pass only fields to change. To clear the deck icon, pass icon_emoji or iconEmoji as empty string.6 paramsUpdate an existing deck’s title, description, default template id, and/or deck icon emoji. Requires hosted MCP with API key. Pass only fields to change. To clear the deck icon, pass icon_emoji or iconEmoji as empty string.
titlestringdeckIdstringiconEmojistringicon_emojistringdescriptionstringdefault_template_idstringupdate_cardUpdate an existing card’s content. Requires hosted MCP with API key. **Merge:** `front` / `block_text` (only listed blockIds change). **Preview lines:** optional **`main_block_id`** / **`sub_block_id`** (which blocks drive deck list + study preview; ids must exist on this card...34 paramsUpdate an existing card’s content. Requires hosted MCP with API key. **Merge:** `front` / `block_text` (only listed blockIds change). **Preview lines:** optional **`main_block_id`** / **`sub_block_id`** (which blocks drive deck list + study preview; ids must exist on this card...
frontstringcardIdstringdeckIdstringvaluesarrayvoiceIdstringvoice_idstringblockSidestringfront · backblock_sidestringfront · backblock_textobjectsubBlockIdstringaudioGenderstringfemale · maleinsertIndexintegermainBlockIdstringmoveBlockIdstringappendBlocksarrayaudio_genderstringfemale · maleinsert_indexintegerkeepPositionbooleansub_block_idstringappend_blocksarrayaudioLanguagestringkeep_positionbooleanmain_block_idstringmove_block_idstringaudio_languagestringappendBlockSidestringfront · backblocks_snapshotarrayappendBlockTypesarrayappend_block_sidestringfront · backappend_block_typesarrayinsertAfterBlockIdstringinsertBeforeBlockIdstringinsert_after_block_idstringinsert_before_block_idstringbulk_update_cards**Merge-only** bulk updates (max 50 cards). **Does not add new blocks** — use **bulk_append_blocks** first. **Does not clear fields** — **bulk_remove_card_fields**. **Modes:** (1) **Same patch for every card:** `card_ids` + `front` and/or `block_text` and/or **`main_block_id`...18 params**Merge-only** bulk updates (max 50 cards). **Does not add new blocks** — use **bulk_append_blocks** first. **Does not clear fields** — **bulk_remove_card_fields**. **Modes:** (1) **Same patch for every card:** `card_ids` + `front` and/or `block_text` and/or **`main_block_id`...
frontstringtextsarraydeckIdstringblockIdstringblockIdsarrayblock_idstringcard_idsarrayper_cardarrayblock_idsarraynew_textsarrayblock_textobjectsubBlockIdstringblock_labelstringblock_textsarraymainBlockIdstringsemantic_keystringsub_block_idstringmain_block_idstringbulk_append_blocksInsert **new empty blocks** on many cards (max 50). **Layout-only** — no `front` / `block_text` (use **bulk_update_cards** after). Same block definitions and **insert position** on every card: `append_block_types` or `append_blocks`; **insert_before_block_id**, **insert_after_...22 paramsInsert **new empty blocks** on many cards (max 50). **Layout-only** — no `front` / `block_text` (use **bulk_update_cards** after). Same block definitions and **insert position** on every card: `append_block_types` or `append_blocks`; **insert_before_block_id**, **insert_after_...
deckIdstringdryRunbooleandry_runbooleanvoiceIdstringcard_idsarrayvoice_idstringaudioGenderstringfemale · maleinsertIndexintegerappendBlocksarrayaudio_genderstringfemale · maleinsert_indexintegerappend_blocksarrayaudioLanguagestringaudio_languagestringappendBlockSidestringfront · backappendBlockTypesarrayappend_block_sidestringfront · backappend_block_typesarrayinsertAfterBlockIdstringinsertBeforeBlockIdstringinsert_after_block_idstringinsert_before_block_idstringbulk_move_blockMove **one existing block** on **many** cards (max 50) or flip its **front/back** face. **Layout-only** — no `front` / `block_text`. Optional **`block_side`** `front`|`back` (applied after move). **`keep_position`:** `true` with **`block_side`** flips face only (no `insert_*`)...16 paramsMove **one existing block** on **many** cards (max 50) or flip its **front/back** face. **Layout-only** — no `front` / `block_text`. Optional **`block_side`** `front`|`back` (applied after move). **`keep_position`:** `true` with **`block_side`** flips face only (no `insert_*`)...
deckIdstringdryRunbooleandry_runbooleancard_idsarrayblockSidestringfront · backblock_sidestringfront · backinsertIndexintegermoveBlockIdstringinsert_indexintegerkeepPositionbooleankeep_positionbooleanmove_block_idstringinsertAfterBlockIdstringinsertBeforeBlockIdstringinsert_after_block_idstringinsert_before_block_idstringnormalize_cards_to_templateRewrite each card’s layout + values to match the **current template** (block ids, order, side). Migrates content by label+type. Use when template and cards drifted. Optional **card_ids** to subset; **dry_run** to preview without writes. Hosted MCP.6 paramsRewrite each card’s layout + values to match the **current template** (block ids, order, side). Migrates content by label+type. Use when template and cards drifted. Optional **card_ids** to subset; **dry_run** to preview without writes. Hosted MCP.
deckIdstringdryRunbooleandry_runbooleancard_idsarraytemplateIdstringtemplate_idstringvalidate_deck_layoutNon-destructive report: missing/extra blocks vs template, side/order issues, duplicate label groups across cards. Hosted MCP.3 paramsNon-destructive report: missing/extra blocks vs template, side/order issues, duplicate label groups across cards. Hosted MCP.
deckIdstringtemplateIdstringtemplate_idstringbulk_set_block_sideSet **front**/**back** for one **move_block_id** on many **card_ids** (explicit; same as bulk_move_block + keep_position). Optional **dry_run**. Hosted MCP.8 paramsSet **front**/**back** for one **move_block_id** on many **card_ids** (explicit; same as bulk_move_block + keep_position). Optional **dry_run**. Hosted MCP.
deckIdstringdryRunbooleandry_runbooleancard_idsarrayblockSidestringfront · backblock_sidestringfront · backmoveBlockIdstringmove_block_idstringbulk_set_main_sub_blocksSet **main_block_id** and/or **sub_block_id** (deck preview / study sub line) on many cards. **Ids:** pass **main_block_id** / **sub_block_id** (same for every card; null clears). **Labels:** pass **main_block_label** / **sub_block_label** with optional **main_semantic_key** /...16 paramsSet **main_block_id** and/or **sub_block_id** (deck preview / study sub line) on many cards. **Ids:** pass **main_block_id** / **sub_block_id** (same for every card; null clears). **Labels:** pass **main_block_label** / **sub_block_label** with optional **main_semantic_key** /...
deckIdstringdryRunbooleandry_runbooleancard_idsarraysubBlockIdstringmainBlockIdstringsub_block_idstringmain_block_idstringsubBlockLabelstringmainBlockLabelstringsubSemanticKeystringmainSemanticKeystringsub_block_labelstringmain_block_labelstringsub_semantic_keystringmain_semantic_keystringcopy_template_blocks_to_cardsAppend **copies** of template blocks (new UUIDs per card) via **template_block_ids** or **block_labels**. Supports **insert_***, **append_block_side**, **dry_run**. Hosted MCP.15 paramsAppend **copies** of template blocks (new UUIDs per card) via **template_block_ids** or **block_labels**. Supports **insert_***, **append_block_side**, **dry_run**. Hosted MCP.
deckIdstringdryRunbooleandry_runbooleancard_idsarraytemplateIdstringblockLabelsarraytemplate_idstringblock_labelsarrayinsert_indexintegerappendBlockSidestringfront · backtemplateBlockIdsarrayappend_block_sidestringfront · backtemplate_block_idsarrayinsert_after_block_idstringinsert_before_block_idstringremove_card_fieldsClear content for specific blocks on **one** card (text empty; quiz selections cleared; image/audio media cleared). **Separate from update_card** — use this only when the user wants to remove field content, not merge new text. **DESTRUCTIVE** to those fields. Requires hosted M...5 paramsClear content for specific blocks on **one** card (text empty; quiz selections cleared; image/audio media cleared). **Separate from update_card** — use this only when the user wants to remove field content, not merge new text. **DESTRUCTIVE** to those fields. Requires hosted M...
cardIdstringdeckIdstringremoveBlockIdsarrayuser_confirmedbooleanremove_block_idsarraybulk_remove_card_fieldsClear the **same** blockIds on **many** cards in one deck. **Separate from bulk_update_cards** — merge and field removal are not mixed. **DESTRUCTIVE** to content in those blocks. Max 50 cards per request. **user_confirmed** must be true after the user explicitly agrees.5 paramsClear the **same** blockIds on **many** cards in one deck. **Separate from bulk_update_cards** — merge and field removal are not mixed. **DESTRUCTIVE** to content in those blocks. Max 50 cards per request. **user_confirmed** must be true after the user explicitly agrees.
deckIdstringcard_idsarrayremoveBlockIdsarrayuser_confirmedbooleanremove_block_idsarraydelete_cardSoft-delete one flashcard (sets is_deleted; same as app trash). **DESTRUCTIVE.** Requires hosted MCP. **You MUST ask the human for explicit confirmation before calling.** The server refuses unless `user_confirmed` is exactly true — only set it after the user clearly agreed to...3 paramsSoft-delete one flashcard (sets is_deleted; same as app trash). **DESTRUCTIVE.** Requires hosted MCP. **You MUST ask the human for explicit confirmation before calling.** The server refuses unless `user_confirmed` is exactly true — only set it after the user clearly agreed to...
cardIdstringdeckIdstringuser_confirmedbooleandelete_cardsSoft-delete multiple cards in one deck (same rules as delete_card). **Ask the user to confirm the exact card IDs before calling.** Refuses unless user_confirmed is true. Max 50 cards per request. Response lists deleted ids and per-id errors if any fail.3 paramsSoft-delete multiple cards in one deck (same rules as delete_card). **Ask the user to confirm the exact card IDs before calling.** Refuses unless user_confirmed is true. Max 50 cards per request. Response lists deleted ids and per-id errors if any fail.
deckIdstringcard_idsarrayuser_confirmedbooleancreate_cardCreate a new card from a template’s block layout. Requires hosted MCP with API key. Required: deckId. If templateId is omitted, uses the deck’s default template (defaultTemplateId from list_decks); if the deck has none, pass templateId from list_templates. If no templates exis...8 paramsCreate a new card from a template’s block layout. Requires hosted MCP with API key. Required: deckId. If templateId is omitted, uses the deck’s default template (defaultTemplateId from list_decks); if the deck has none, pass templateId from list_templates. If no templates exis...
frontstringdeckIdstringvoice_idstringblock_textobjecttemplateIdstringaudio_genderstringfemale · maleaudio_languagestringgenerate_audiobooleancreate_cardsBulk create cards in one deck using the same template resolution and validation as create_card (deck default or explicit templateId). Requires hosted MCP. Same front/back rules as create_card: use block_text per card for back-side blockIds from get_template_schema. For templat...7 paramsBulk create cards in one deck using the same template resolution and validation as create_card (deck default or explicit templateId). Requires hosted MCP. Same front/back rules as create_card: use block_text per card for back-side blockIds from get_template_schema. For templat...
cardsarraydeckIdstringvoice_idstringtemplateIdstringaudio_genderstringfemale · maleaudio_languagestringgenerate_audiobooleangenerate_audio_for_cardGenerate ElevenLabs TTS audio and attach it to an existing card’s audio block (updates values.mediaIds). Requires hosted MCP with API key. Required: deckId, cardId. Ask the user for voice settings, then pass voice_id from list_elevenlabs_voices OR pass audio_language (ISO 639)...9 paramsGenerate ElevenLabs TTS audio and attach it to an existing card’s audio block (updates values.mediaIds). Requires hosted MCP with API key. Required: deckId, cardId. Ask the user for voice settings, then pass voice_id from list_elevenlabs_voices OR pass audio_language (ISO 639)...
textstringcardIdstringdeckIdstringblock_idstringvoice_idstringaudio_genderstringfemale · maleaudio_languagestringgenerate_audiobooleanreplace_existingbooleanlist_image_subject_promptsList subject starter presets for AI image generation (unified_id, label, prompt, tags) plus the user’s saved subjects from Firestore. Same sources as the web wizard. Subscribers only in production. Pass unified_id values as library_entry_ids on generate_image_for_card (with li...List subject starter presets for AI image generation (unified_id, label, prompt, tags) plus the user’s saved subjects from Firestore. Same sources as the web wizard. Subscribers only in production. Pass unified_id values as library_entry_ids on generate_image_for_card (with li...
No parameter schema in public metadata yet.
list_image_style_promptsList curated style presets for AI image generation (id, label, description, snippet, tags). Same catalog as the web app. Subscribers only. Optional tag (kebab-case, e.g. vocabulary, anime, physics) filters presets. Use unified_id style:… with generate_image_for_card library_en...1 paramsList curated style presets for AI image generation (id, label, description, snippet, tags). Same catalog as the web app. Subscribers only. Optional tag (kebab-case, e.g. vocabulary, anime, physics) filters presets. Use unified_id style:… with generate_image_for_card library_en...
tagstringgenerate_image_for_cardGenerate an AI image (fal.ai) and attach it to an existing card’s image block — **web wizard parity**: optional source_block_ids (default = image block defaultSourceBlockId + card mainBlockId like the dashboard), library_entry_ids (unified subject:… / style:… from list_image_s...15 paramsGenerate an AI image (fal.ai) and attach it to an existing card’s image block — **web wizard parity**: optional source_block_ids (default = image block defaultSourceBlockId + card mainBlockId like the dashboard), library_entry_ids (unified subject:… / style:… from list_image_s...
cardIdstringdeckIdstringpromptstringblock_idstringmodel_idstringmedia_tagsarrayfinal_promptstringstyle_prompt_idstringreplace_existingbooleansource_block_idsarraylibrary_entry_idsarrayreference_media_idstringreference_image_urlstringreference_image_data_urlstringmerge_library_tag_defaultsbooleanexport_deckExport a deck (metadata + cards). Requires hosted MCP with API key. **file_format** (default json): json = full payload in the tool response; csv | xlsx | apkg = small marker JSON for the Deckbase assistant UI to download that file type (ask the user which format they want if...6 paramsExport a deck (metadata + cards). Requires hosted MCP with API key. **file_format** (default json): json = full payload in the tool response; csv | xlsx | apkg = small marker JSON for the Deckbase assistant UI to download that file type (ask the user which format they want if...
deckIdstringformatstringmax_cardsnumberfileFormatstringexport_typestringfile_formatstringexport_cardsExport **only** the given cards in a deck (same per-card JSON shape as **export_deck**, plus `notFound` / `skippedWrongDeck` for bad ids). Use when the user wants a subset file or backup. **file_format** works like **export_deck** (json default; csv/xlsx/apkg only in the web A...7 paramsExport **only** the given cards in a deck (same per-card JSON shape as **export_deck**, plus `notFound` / `skippedWrongDeck` for bad ids). Use when the user wants a subset file or backup. **file_format** works like **export_deck** (json default; csv/xlsx/apkg only in the web A...
deckIdstringformatstringcardIdsarraycard_idsarrayfileFormatstringexport_typestringfile_formatstringlist_cardsList cards in a deck with **values** and (when export_type is full) **blocksSnapshot** per card — same per-card shape as **export_deck**, without repeating full deck metadata. Use for read/edit flows when you only need card payloads. Requires hosted MCP with API key. Default e...3 paramsList cards in a deck with **values** and (when export_type is full) **blocksSnapshot** per card — same per-card shape as **export_deck**, without repeating full deck metadata. Use for read/edit flows when you only need card payloads. Requires hosted MCP with API key. Default e...
deckIdstringmax_cardsnumberexport_typestringcreate_templateCreate a flashcard template (block layout for new cards). Requires hosted MCP with API key. Call **list_template_block_types** first so the user can pick block types; pass the ordered selection as block_types. **When the user wants quizzes (multiple choice, single choice, or t...9 paramsCreate a flashcard template (block layout for new cards). Requires hosted MCP with API key. Call **list_template_block_types** first so the user can pick block types; pass the ordered selection as block_types. **When the user wants quizzes (multiple choice, single choice, or t...
namestringblocksarrayvoice_idstringsubBlockIdstringblock_typesarraydescriptionstringmainBlockIdstringaudio_genderstringaudio_languagestringupdate_templateUpdate an existing template’s name, description, block layout (blocks or block_types), main/sub block ids, and/or default voice for audio blocks. Set each block’s `side` to "front" or "back". Requires hosted MCP. When adding or changing **quiz** blocks, use **list_block_schema...10 paramsUpdate an existing template’s name, description, block layout (blocks or block_types), main/sub block ids, and/or default voice for audio blocks. Set each block’s `side` to "front" or "back". Requires hosted MCP. When adding or changing **quiz** blocks, use **list_block_schema...
namestringblocksarrayvoice_idstringsubBlockIdstringtemplateIdstringblock_typesarraydescriptionstringmainBlockIdstringaudio_genderstringaudio_languagestring