Skip to main content
Glama
Anki Connect MCP Server

Anki Connect MCP Server

Add note

add_note

Creates one Anki note with a specified deck, note type, and field values, optionally attaching media, and returns the new note ID.

Instructions

Creates one note in the given deck using the given model (note type) and field values. Anki then generates one or more cards from it. Returns the new note ID. Fails (tool error) if the deck or model does not exist, a field name is wrong, the first field is empty, or the note is a duplicate. Tip: check with can_add_notes first; for several notes prefer add_notes. Attach images/audio/video with picture/audio/video: each item's source is an http(s) URL or an absolute path on the computer running Anki, and the file is appended to the listed fields. Fails before creating anything if a file cannot be stored.

Input Schema

NameRequiredDescriptionDefault
tagsNoTags to put on the note, one tag per array item (no spaces inside a tag).
audioNoAudio files to store and play from the given fields (appended as [sound:...]).
videoNoVideo files to store and play from the given fields (appended as [sound:...]).
fieldsYesField values keyed by field name, e.g. {"Front": "...", "Back": "..."}. Names must match the model exactly (see model_field_names). Values may contain HTML.
pictureNoImages to store and show in the given fields (appended as <img>).
deckNameYesExact name of an existing deck (see deck_names). Use "Parent::Child" for subdecks.
modelNameYesExact name of the note type/model, e.g. "Basic" (see model_names).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-readonly, non-destructive, non-idempotent write, so the description correctly does not restate that. It goes further and adds what the annotations cannot: the enumeration of failure conditions (missing deck/model, wrong field name, empty first field, duplicate note) and the atomicity guarantee that media failures occur 'before creating anything'. It does not cover partial-success or duplicate-detection semantics in depth, keeping it just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then return value, then failure modes, then routing tips, then media semantics – a sensible ordering with no filler sentences. It is dense but every clause carries information; only the media sentence runs slightly long relative to the rest.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter write tool with nested media objects and no output schema, the description covers what is created, the return value (note ID), all failure modes, atomicity, and sibling routing. An agent has everything needed to invoke it correctly and interpret failures without opening anything else.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds cross-parameter behavior the schema cannot convey: media `source` values are constrained to an http(s) URL or an absolute path on the machine running Anki, and each file is appended to the listed fields rather than replacing them. That framing meaningfully informs how to populate `picture`/`audio`/`video` and `fields` together.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Creates one note in the given deck using the given model') and explains the downstream effect (Anki generates one or more cards) plus the return value (new note ID). It is clearly differentiated from the sibling add_notes ('for several notes prefer add_notes') and can_add_notes ('check with can_add_notes first').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names both alternatives explicitly and gives the condition that selects each: can_add_notes for a pre-flight check, add_notes when adding several notes. It also states the precondition that deck and model must already exist, leaving little inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.