from tools.anki.client import anki_request
async def add_flashcards(
cards: list[dict],
deck_name: str = "Default",
tags: list[str] | None = None,
) -> list[int | None]:
"""
Add multiple flashcards to Anki in a single operation.
Args:
cards: List of dicts with 'front' and 'back' keys
deck_name: The deck to add cards to (default: 'Default')
tags: Optional list of tags for all cards
Returns:
List of note IDs (None for duplicates)
Example:
add_flashcards([
{"front": "What is Python?", "back": "A programming language"},
{"front": "What is FastMCP?", "back": "A Python framework for MCP servers"},
], deck_name="Programming", tags=["python", "mcp"])
"""
notes = [
{
"deckName": deck_name,
"modelName": "Basic",
"fields": {
"Front": card["front"],
"Back": card["back"],
},
"options": {
"allowDuplicate": False,
},
"tags": tags or [],
}
for card in cards
]
return await anki_request("addNotes", notes=notes)