Clanki
Clanki - Claude의 Anki 통합
Claude와 같은 AI 도우미가 Model Context Protocol(MCP)을 통해 Anki 플래시카드 덱과 상호 작용할 수 있도록 하는 MCP 서버입니다.
특징
Anki 데크를 만들고 관리하세요
앞면/뒷면 내용이 있는 기본 플래시카드 만들기
빈칸 삭제 카드 만들기
기존 카드 업데이트 및 삭제된 내용 삭제
태그 추가 및 관리
덱 내용 및 카드 정보 보기
AnkiConnect와의 완벽한 통합
Related MCP server: Anki MCP Server
필수 조건
Anki 설치 및 실행
Anki에 AnkiConnect 플러그인이 설치되었습니다.
Node.js 16 이상
설치
이 저장소를 복제하세요:
지엑스피1
종속성 설치:
npm install프로젝트를 빌드하세요:
npm run build설정
Anki가 실행 중이고 AnkiConnect 플러그인이 설치되어 활성화되어 있는지 확인하세요.
claude_desktop_config.json편집하여 Claude for Desktop이 서버를 사용하도록 구성합니다.
{
"mcpServers": {
"clanki": {
"command": "node",
"args": ["/absolute/path/to/clanki/build/index.js"]
}
}
}/absolute/path/to/clanki Clanki 설치 경로로 바꾸세요.
사용 가능한 도구
덱 만들기
새로운 Anki 덱을 만듭니다
매개변수:
name: 새로운 덱의 이름
카드 생성
지정된 덱에 새로운 기본 플래시카드를 만듭니다.
매개변수:
deckName: 카드를 추가할 덱의 이름front: 카드의 앞면 내용back: 카드 뒷면 내용tags: (선택 사항) 카드에 대한 태그 배열
클로즈카드 만들기
지정된 덱에 새로운 빈칸 삭제 카드를 만듭니다.
매개변수:
deckName: 카드를 추가할 덱의 이름text: {{c1::text}} 구문을 사용하여 빈칸 삭제가 포함된 텍스트backExtra: (선택 사항) 카드 뒷면에 표시할 추가 정보tags: (선택 사항) 카드에 대한 태그 배열
업데이트 카드
기존 기본 플래시카드를 업데이트합니다
매개변수:
noteId: 업데이트할 노트의 IDfront: (선택 사항) 새로운 앞면 콘텐츠back: (선택 사항) 새로운 뒷면 콘텐츠tags: (선택 사항) 카드에 대한 새 태그
업데이트-클로즈-카드
기존 빈칸 삭제 카드를 업데이트합니다.
매개변수:
noteId: 업데이트할 노트의 IDtext: (선택 사항) 빈칸 삭제를 포함한 새 텍스트backExtra: (선택 사항) 뒷면에 대한 새로운 추가 정보tags: (선택 사항) 카드에 대한 새 태그
개발
서버를 수정하거나 확장하려면:
src/index.ts를 변경하세요npm run build로 다시 빌드하세요npx @modelcontextprotocol/inspector node build/index.js로 디버깅
Available Tools
9 toolscreate-cardB
Create a new note in a specified deck. Supports HTML formatting in text fields. You can attach multiple images and audio files from URLs - they will be automatically downloaded and embedded in the note.
| Name | Required | Description | Default |
|---|---|---|---|
| back | Yes | Back side content of the note (supports HTML formatting) | |
| tags | No | Optional tags for the note. A tag cannot contain a space (Anki splits it into two tags) or a tab or newline (Anki removes it) - use organic_chemistry or organic::chemistry for a hierarchy. | |
| front | Yes | Front side content of the note (supports HTML formatting) | |
| deckName | Yes | Name of the deck to add the note to. The deck must already exist - use create-deck first if it does not. A `::` in the name means a nested deck: `Biology::Cells` is a deck named Cells inside a deck named Biology. There is no way to name a single deck literally `Biology::Cells`. | |
| backAudio | No | Optional array of audio file URLs to attach to the back of the note. Audio will be downloaded and can be played in Anki. | |
| backImages | No | Optional array of image URLs to embed on the back of the note. Images will be downloaded and attached automatically. | |
| frontAudio | No | Optional array of audio file URLs to attach to the front of the note. Audio will be downloaded and can be played in Anki. | |
| frontImages | No | Optional array of image URLs to embed on the front of the note. Images will be downloaded and attached automatically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It does disclose meaningful behavior: HTML support, automatic downloading and embedding of media from URLs. However, it does not mention what happens on success or failure, whether a card ID is returned, or any side effects beyond creation. For a mutation tool with no annotations, richer behavioral disclosure would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. It consists of three sentences with no obvious filler. It could be slightly sharper by naming the front/back text fields instead of 'text fields,' but it is generally well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 8 parameters and no output schema, the description is adequate but incomplete for fully informed invocation. The rich schema covers parameter details, but the description does not clarify the expected return value, error behavior, or how this tool differs from the bulk and cloze siblings. That leaves some decision-making burden on the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 8 parameters with 100% coverage, so the baseline is 3. The description's mention of HTML and URL-based media roughly mirrors the schema's per-parameter descriptions and adds little new semantic meaning beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create a new note in a specified deck.' It also adds useful scope by mentioning HTML formatting and media attachment. It does not explicitly distinguish itself from siblings like create-cloze-card or create-cards-bulk, though the required front/back fields and name imply a standard note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives such as create-cloze-card, create-cards-bulk, or update-card. There are no usage conditions, exclusions, or prerequisites stated in the description itself; the deck-existence prerequisite appears only in the schema, not in the tool description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-cards-bulkA
Create multiple basic notes in a single call. Use this instead of calling create-card repeatedly — it sends one request to Anki regardless of how many notes are in the batch. Does not support images or audio: use create-card for notes that need media.
| Name | Required | Description | Default |
|---|---|---|---|
| cards | Yes | Array of notes to create | |
| deckName | Yes | Name of the deck to add the notes to. The deck must already exist - use create-deck first if it does not. A `::` in the name means a nested deck: `Biology::Cells` is a deck named Cells inside a deck named Biology. There is no way to name a single deck literally `Biology::Cells`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the batching behavior (one request regardless of batch size) and the media constraint, which is genuinely useful. However, it omits batch failure semantics — whether the whole batch is atomic or partially applied if one note is invalid — which matters for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, batching rationale, and limitation with alternative routing. The core purpose is front-loaded and there is zero wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with 100% schema coverage, the description covers purpose, usage, and exclusions well. Minor gaps remain: no mention of return value/behavior since no output schema exists, and no statement about partial-failure handling in a batch. These are small against the otherwise complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter descriptions are rich (tags constraints, deck nesting, prerequisite to create-deck first). The tool description itself adds no parameter-level detail, so the baseline 3 applies — the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair ('Create multiple basic notes in a single call') and pins down the note type ('basic'), distinguishing it from cloze siblings like create-cloze-cards-bulk. It also differentiates from create-card by explicitly addressing the media limitation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use directive ('Use this instead of calling create-card repeatedly') with the underlying reason (single request vs many). It also gives an explicit when-not-to-use rule ('Does not support images or audio: use create-card') that routes the agent to the correct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-cloze-cardB
Create a new cloze note in a specified deck. Use {{c1::text}} syntax for cloze deletions (e.g., {{c1::Paris}} is the capital of France). Supports HTML formatting and can attach multiple images and audio files from URLs - they will be automatically downloaded and embedded.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags for the note. A tag cannot contain a space (Anki splits it into two tags) or a tab or newline (Anki removes it) - use organic_chemistry or organic::chemistry for a hierarchy. | |
| text | Yes | Text containing cloze deletions using {{c1::text}} syntax. Supports HTML formatting. Use {{c1::word}}, {{c2::word}}, etc. for multiple deletions. | |
| deckName | Yes | Name of the deck to add the note to. The deck must already exist - use create-deck first if it does not. A `::` in the name means a nested deck: `Biology::Cells` is a deck named Cells inside a deck named Biology. There is no way to name a single deck literally `Biology::Cells`. | |
| backAudio | No | Optional array of audio file URLs to attach to the back extra field. Audio will be downloaded and can be played in Anki. | |
| backExtra | No | Optional extra information to show on the back of the card (supports HTML formatting) | |
| textAudio | No | Optional array of audio file URLs to attach to the main text field. Audio will be downloaded and can be played in Anki. | |
| backImages | No | Optional array of image URLs to embed in the back extra field. Images will be downloaded and attached automatically. | |
| textImages | No | Optional array of image URLs to embed in the main text field. Images will be downloaded and attached automatically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose the key non-obvious behavior: media from URLs is 'automatically downloaded and embedded.' However, this largely repeats what the schema parameter descriptions already state, and it omits other behaviors an agent might need, such as duplicate-creation consequences or deletion of previous notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the primary purpose and syntax example front-loaded. The example ({{c1::Paris}} is the capital of France) earns its place, and the media-handling sentence is compact. Slight redundancy with schema param descriptions prevents a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter creation tool with no annotations and no output schema, the description covers the core cloze workflow adequately and the schema richly documents every parameter. It is incomplete in that it doesn't address return values, duplicate-creation behavior, or how this differs from the bulk sibling, though schema richness compensates for much of the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds marginal value by demonstrating the {{c1::text}} syntax pattern for the text parameter, but it adds nothing about deckName, tags, audio, or image parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new cloze note in a specified deck') and the cloze-deletion syntax example makes it clearly distinct from the sibling create-card. However, it does not differentiate itself from create-cloze-cards-bulk, so it falls just short of full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains HOW to use the tool (cloze syntax, HTML support) but gives no guidance on WHEN to choose it over alternatives like create-card, create-cloze-cards-bulk, or update-cloze-card. The only usage routing (use create-deck first) lives in the schema, not the description, so an agent gets no explicit selection criteria from the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-cloze-cards-bulkA
Create multiple cloze notes in a single call. Use this instead of calling create-cloze-card repeatedly — it sends one request to Anki regardless of how many notes are in the batch. Does not support images or audio: use create-cloze-card for notes that need media.
| Name | Required | Description | Default |
|---|---|---|---|
| cards | Yes | Array of cloze notes to create | |
| deckName | Yes | Name of the deck to add the notes to. The deck must already exist - use create-deck first if it does not. A `::` in the name means a nested deck: `Biology::Cells` is a deck named Cells inside a deck named Biology. There is no way to name a single deck literally `Biology::Cells`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key behavioral trait (sends one request regardless of batch size) and a limitation (no media support). This goes beyond the schema, which only describes parameters. However, it does not mention error handling, idempotency, or return behavior, which would make it more complete. Still, it provides meaningful context that an agent would find useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. The primary purpose and efficiency benefit are front-loaded in the first sentence, and the limitation with alternative is in the second. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk creation tool with two parameters and no output schema, the description covers the essential context: what it does, when to use it, and a key limitation. It relies on the schema for deck existence and tag constraints, which is appropriate given 100% schema coverage. It lacks explicit mention of return values or failure modes, but those are not critical for a straightforward creation tool. Overall, it is complete enough for an agent to correctly invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (deckName, cards, and nested fields). The tool description adds no extra parameter-specific meaning beyond the schema. Per calibration, baseline is 3 when schema covers all parameters, and no additional value is added here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates multiple cloze notes in a single call, using specific verbs and resources. It explicitly distinguishes itself from create-cloze-card by stating it is a batch alternative, and even names the sibling for media support. This leaves no ambiguity about its function or its differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: use this instead of calling create-cloze-card repeatedly, and use create-cloze-card when media (images/audio) is needed. It also implies it is the preferred choice for bulk cloze creation without media. This directly addresses when to use the tool versus its alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-deckA
Create a new Anki deck
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new deck. A `::` in the name creates a nested deck - `Biology::Cells` is a deck named Cells inside a deck named Biology and Anki creates the parent if it does not exist. There is no way to name a single deck literally `Biology::Cells`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only says 'Create' with no mention of side effects, error handling, or what happens on duplicate deck names. The schema does note nested deck behavior, but that is outside the description itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero redundancy. The purpose is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with one parameter and no output schema, the definition is mostly complete. However, without annotations, the lack of behavioral disclosure (e.g., idempotency, failure modes) leaves some gaps for an agent expecting robust guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the 'name' parameter is thoroughly documented, including nested deck syntax and parent auto-creation. The description adds no additional parameter context, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and a specific resource ('a new Anki deck'). It clearly distinguishes from sibling tools that operate on cards, so an agent can identify it without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit alternative deck creation tool among siblings, so the intended use is implied. The description could mention when not to use it (e.g., if a deck already exists), but the context makes the primary use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-cardA
PERMANENTLY deletes notes. This cannot be undone and there is no trash to recover them from — the notes and every card generated from them are gone. Only delete notes the user has asked you to delete. Use find-cards first to obtain the note IDs and to confirm you have the right notes; there is no delete-by-query, and IDs must be listed explicitly. Deleting one cloze note removes every card generated from it.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true. Acknowledges that this deletion is permanent and was requested by the user. | |
| noteIds | Yes | IDs of the notes to delete permanently, at most 50 per call. Obtain them with find-cards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly warns that deletion is permanent, cannot be undone, has no trash recovery, removes every card generated from the notes, and that deleting a cloze note removes all its generated cards. This is exemplary disclosure for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized for a destructive tool and front-loads the most important fact: permanent deletion. Every sentence adds relevant guidance. It is slightly redundant between 'cannot be undone' and 'notes and every card generated from them are gone,' but the repetition serves to emphasize severity, so it remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive two-parameter tool with no annotations and no output schema, the description is fully complete. It covers the safety warning, the prerequisite find-cards workflow, explicit ID requirements, the confirm acknowledgement, and the cloze-note cascade behavior. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains that noteIds must come from find-cards, that there is no delete-by-query, and that IDs must be listed explicitly. It also reinforces the confirm parameter's purpose by tying it to user-requested deletion and permanence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'PERMANENTLY deletes notes.' It clearly distinguishes itself from the create/update/find siblings by focusing exclusively on deletion, and it adds the critical 'permanent' qualifier that defines the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: only delete notes the user has asked to delete. It also provides a required workflow: use find-cards first to obtain note IDs and confirm the right notes, and states that there is no delete-by-query and IDs must be listed explicitly. This fully routes the agent away from misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-cardsA
Search for notes using Anki's search syntax and return their note IDs, note type, tags, and a short excerpt of each field. Use this to get the noteId needed by update-card, update-cloze-card or delete-card. Field content is truncated and the number of results is capped, so narrow the query if the note you want is not listed. Examples: 'deck:Spanish', 'tag:vocab', 'front:hello', 'deck:Spanish tag:verbs'.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Anki search query, e.g. 'deck:Default', 'tag:vocab', or 'deck:Spanish tag:verbs'. See Anki's search documentation for the full syntax. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It discloses that field content is truncated, results are capped, and the output includes note IDs, note type, tags, and excerpts. It does not mention auth, exact caps, or ordering, but for a read-only search tool the disclosed behavior is substantially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loads the core purpose, then gives the usage context, limitations, and examples. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter, no output schema, and no annotations, the description covers the essential information: what it searches, what it returns, how to use the query, and the main limitations. It could add the exact truncation cap or result format, but the existing content is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the query parameter, so the baseline is 3. The description adds value by giving concrete Anki query syntax examples and explaining the consequence of overly broad queries, which helps the agent choose an effective parameter value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Search for notes using Anki's search syntax') and enumerates the returned fields (note IDs, note type, tags, excerpts). It also explicitly positions the tool as the prerequisite for update-card, update-cloze-card, and delete-card, clearly differentiating it from the sibling create/update/delete tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: to obtain the noteId needed by update-card, update-cloze-card, or delete-card. It also warns that results are truncated and capped and instructs the agent to narrow the query if the desired note is not listed, which is actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-cardC
Update an existing note
| Name | Required | Description | Default |
|---|---|---|---|
| back | No | New back side content | |
| tags | No | New tags for the note. A tag cannot contain a space (Anki splits it into two tags) or a tab or newline (Anki removes it) - use organic_chemistry or organic::chemistry for a hierarchy. | |
| front | No | New front side content | |
| noteId | Yes | ID of the note to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states 'update' without revealing whether fields are partially updated or fully replaced, what happens to omitted fields, or any side effects. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It's appropriately sized for a simple update operation, though it could benefit from more detail. The brevity is a strength, not a flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description leaves out important operational context. It doesn't explain the effect on fields not provided, whether tags are replaced or merged, or what the response looks like. For a tool with four parameters, this is incomplete and could lead to incorrect usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already having a clear description in the schema. The tool description adds no additional meaning beyond what the schema provides, so the baseline of 3 applies. The schema itself adequately explains the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing note, giving a specific verb and resource. However, it doesn't differentiate from sibling update-cloze-card, which is a similar operation on a specialized note type. The name 'update-card' vs description 'note' adds minor ambiguity, but it's still understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like update-cloze-card. There's no mention of what kinds of notes are appropriate, nor any exclusions or prerequisites. An agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-cloze-cardC
Update an existing cloze note
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | New tags for the note. A tag cannot contain a space (Anki splits it into two tags) or a tab or newline (Anki removes it) - use organic_chemistry or organic::chemistry for a hierarchy. | |
| text | No | New text with cloze deletions using {{c1::text}} syntax | |
| noteId | Yes | ID of the note to update | |
| backExtra | No | New extra information to show on the back of the card |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the action without mentioning side effects, permission requirements, whether the update is partial or full, or any impact on existing card data. For a mutation tool, this is a significant gap – the agent knows it updates but not how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, essentially restating the tool name. While it is not verbose, it fails to add any value beyond the name – it does not earn its place by providing useful context. It is under-specified rather than concise, similar to a tautology.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, no annotations, and no output schema, the description is completely inadequate. It does not explain what 'update' means operationally, whether fields are optional or overwrite existing values, or what the expected outcome is. An agent cannot safely invoke this tool based solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented in the input schema. The description adds no additional parameter context, but per the rubric, the baseline is 3 when the schema covers everything. The description does not clarify parameter relationships or update semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Update an existing cloze note'. It distinguishes from create-cloze-card by using 'update' and specifies 'cloze' to differentiate from generic update-card. However, it does not mention the fields that can be updated or the fact that it operates on a note rather than a card, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling update-card or create-cloze-card. An agent cannot determine whether to use this for cloze notes and update-card for basic notes without additional context. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
create-card - First observed
create-cards-bulk - First observed
create-cloze-card - First observed
create-cloze-cards-bulk - First observed
create-deck - First observed
delete-card - First observed
find-cards - First observed
update-card - First observed
update-cloze-card
TDQS
Scored across 9 tools
Each tool targets a distinct action and note type: deck creation, card creation/update for basic and cloze types, bulk variants, search, and deletion. The bulk tools are explicitly separated from single-card tools, and find-cards is clearly the retrieval path. No two tools appear to do the same thing.
All tool names follow a consistent hyphenated lowercase verb-noun pattern: create-deck, create-card, update-card, create-cloze-card, update-cloze-card, create-cards-bulk, create-cloze-cards-bulk, find-cards, delete-card. The pattern is uniform and predictable.
With 9 tools, the server is well-scoped for Anki card management. It covers core lifecycle operations (create, update, find, delete) with separate handling for basic vs. cloze notes and bulk operations, without excessive redundancy.
The card lifecycle is well covered: create (single/bulk, basic/cloze), update, find, delete. Deck management is limited to creation only, with no update or delete deck tools, but this is a minor gap since decks are simple containers and find-cards can search by deck name.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Cloud-hosted MCP server for durable AI memory
MCP server for AI dialogue using various LLM models via AceDataCloud
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that integrates Claude with Anki flashcards, allowing users to review due cards and create new flashcards directly through conversation.1423 PyPI13MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants to interact with the Anki flashcard application for studying, deck management, and note creation. It supports natural language interaction for reviewing cards, searching content, and managing media files across local and remote environments.2,033 npm508MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to seamlessly manage Anki flashcards, decks, and templates through the AnkiConnect API. It supports intelligent querying, batch note creation, and detailed study progress analysis using natural language.4MIT
- FlicenseAqualityDmaintenanceAn MCP server that enables Claude Code to create, manage, and search Anki flashcards directly from the terminal. It supports batch card creation, deck statistics retrieval, and synchronization with AnkiWeb for cross-platform review.8-