안키-MCP
Anki용 MCP 서버입니다. 이 서버는 모델 컨텍스트 프로토콜(MCP)을 통해 Anki와 상호 작용할 수 있도록 합니다. 사용자는 플래시카드, 데크, 복습 과정을 프로그래밍 방식으로 관리할 수 있습니다.
필수 조건
Node.js와 npm이 설치되었습니다.
Anki에 AnkiConnect 플러그인이 설치되어 실행 중입니다.
Related MCP server: Anki MCP Server
설정 및 실행
Anki Connect는 로컬에서만 작동하므로 로컬에서 실행하는 것이 좋습니다.
로컬로 실행하려면:
저장소를 복제합니다.
지엑스피1
종속성 설치:
npm install프로젝트 빌드:
package.json의prepare스크립트는 설치 시 자동으로 빌드를 실행합니다. 수동으로 빌드해야 하는 경우:npm run build이 명령은 TypeScript 코드를 컴파일하고 클라이언트 스크립트를 실행 가능하게 만듭니다.
Windows용 커서 설정과 통합
"anki": { "command": "cmd", "args": [ "/c", "node", "c:/Users/-/Downloads/anki-mcp/build/client.js" ] }
사용 가능한 도구
도구를 디버깅하려면 다음을 사용하세요.
서버는 Anki와 상호작용하기 위한 다음과 같은 도구를 제공합니다.
update_cards:설명: 사용자가 퀴즈를 낸 카드에 답한 후, 이 도구를 사용하여 답한 카드를 표시하고 난이도를 업데이트합니다.
입력:
cardId(숫자)와ease(숫자, 1-4)를 갖는 답변의 배열입니다.
add_card:설명: Anki에서 새 플래시카드를 만듭니다. 참고: 콘텐츠는 HTML을 사용합니다.
줄바꿈:
<br>코드:
<pre style="background-color: transparent; padding: 10px; border-radius: 5px;">목록:
<ol>및<li>굵게:
<strong>이탤릭체:
<em>
입력:
fields: (객체) 키가 필드 이름(예: "한자", "병음")이고 값이 HTML 콘텐츠인 객체입니다.modelName: (문자열) 사용할 Anki 노트 유형(모델)의 이름입니다.deckName: (선택 문자열) 카드를 추가할 덱의 이름입니다. 기본값은 현재 덱 또는 '기본값'입니다.tags: (문자열의 선택적 배열) 메모에 추가할 태그 목록입니다.
get_due_cards:설명: 검토가 필요한 지정된 수의 카드를 반환합니다.
입력:
num(숫자).
get_new_cards:설명: 주어진 수의 새 카드와 아직 보지 못한 카드를 반환합니다.
입력:
num(숫자).
get-deck-names:설명: 모든 Anki 덱 이름 목록을 가져옵니다.
입력: 없음.
find-cards:설명: Anki 원시 검색 쿼리를 사용하여 카드를 찾습니다. 필드를 포함한 자세한 카드 정보를 반환합니다.
입력:
query(문자열, 예:'deck:Default -tag:test'또는'"deck:My Deck" tag:important'). 빈 필드를 필터링하려면'-FieldName:_*'(예:'-Hanzi:_*')를 사용하세요.
update-note-fields:설명: 주어진 Anki 노트의 특정 필드를 업데이트합니다.
입력:
noteId(숫자),fields(객체, 예:{"Front": "New Q", "Back": "New A"}).
create_deck:설명: 새로운 Anki 덱을 만듭니다.
입력:
deckName(문자열).
bulk_update_notes:설명: 여러 Anki 노트의 특정 필드를 업데이트합니다.
입력:
notes배열, 각 notes에는noteId(숫자)와fields(객체)가 있습니다.
get_model_names:설명: 사용 가능한 모든 Anki 노트 유형/모델 이름을 나열합니다.
입력: 없음.
get_model_details:설명: 지정된 메모 유형에 대한 필드, 카드 템플릿 및 CSS 스타일을 검색합니다.
입력:
modelName(문자열).
get_deck_model_info:설명: 지정된 데크에서 사용된 노트 유형(모델)에 대한 정보를 검색합니다. 단일 모델이 사용되었는지, 여러 모델이 사용되었는지, 또는 데크가 비어 있거나 존재하지 않는지 확인하는 데 도움이 됩니다.
입력:
deckName(문자열).출력:
deckName,status(예: "single_model_found", "multiple_models_found", "no_notes_found", "deck_not_found"), 그리고 조건에 따라modelName(문자열) 또는modelNames(문자열 배열)가 있는 객체입니다.
add_note_type_field:설명: 메모 유형에 새 필드를 추가합니다.
입력:
modelName(문자열),fieldName(문자열).
노트_유형
remove_note_type_field:설명: 메모 유형에서 기존 필드를 제거합니다.
입력:
modelName(문자열),fieldName(문자열).
rename_note_type_field:설명: 메모 유형의 필드 이름을 바꿉니다.
입력:
modelName(문자열),oldFieldName(문자열),newFieldName(문자열).
reposition_note_type_field:설명: 메모 유형의 필드 순서(색인)를 변경합니다.
입력:
modelName(문자열),fieldName(문자열),index(숫자).
update_note_type_templates:설명: 노트 유형의 카드에 대한 HTML 템플릿(예: 앞면 및 뒷면)을 업데이트합니다.
입력:
modelName(문자열),templates(객체, 예:{"Card 1": {"Front": "html", "Back": "html"}}).
update_note_type_styling스타일링:설명: 메모 유형에 대한 CSS 스타일을 업데이트합니다.
입력:
modelName(문자열),css(문자열).
create_model:설명: 새로운 Anki 노트 유형(모델)을 만듭니다.
입력:
modelName(문자열),fieldNames(문자열 배열),cardTemplates(객체 배열, 각각Name,Front,BackHTML 문자열 포함),css(선택적 문자열),isCloze(선택적 부울, 기본값은 false),modelType(선택적 문자열, 기본값은 'Standard').
add_bulk:설명: 한 번의 작업으로 Anki에 여러 개의 플래시카드를 추가합니다. 메모 콘텐츠는 HTML을 사용합니다. 이 도구는 여러 개의 메모(카드)를 한 번에 추가하는 데 사용됩니다.
입력: 각 노트 객체가 포함하는
notes배열:fields: (객체) 키가 필드 이름이고 값이 HTML 콘텐츠인 객체입니다.modelName: (문자열) 이 노트에 사용할 Anki 노트 유형(모델)의 이름입니다.deckName: (선택 문자열) 이 노트의 덱 이름입니다. 기본값은 'Default'입니다.tags: (문자열의 선택적 배열) 이 노트에 대한 태그 목록입니다.
자세한 내용은 여기에서 확인할 수 있습니다. Anki 통합 | Smithery