UNPKG

@ankimcp/anki-mcp-server

Version:

Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards

188 lines (187 loc) • 3.91 kB
export declare enum CardType { New = 0, Learning = 1, Review = 2, Relearning = 3 } export interface AnkiCard { cardId: number; fields: Record<string, { value: string; order: number; }>; fieldOrder: number; question: string; answer: string; modelName: string; ord: number; deckName: string; css: string; factor?: number; interval?: number; note: number; type: number; queue: number; due?: number; reps?: number; lapses?: number; left?: number; mod?: number; flags?: number; } export interface SimplifiedCard { cardId: number; front: string; back?: string; deckName: string; modelName: string; due: number; interval: number; factor: number; } export interface CardPresentation { cardId: number; front: string; back?: string; deckName: string; modelName: string; tags?: string[]; currentInterval: number; easeFactor: number; reviews: number; lapses: number; cardType: string; noteId: number; } export interface DeckInfo { name: string; stats?: DeckStats; } export interface DeckStats { deck_id: number; name: string; new_count: number; learn_count: number; review_count: number; total_new: number; total_cards: number; } export interface AnkiDeckStatsResponse { deck_id: number; name: string; new_count: number; learn_count: number; review_count: number; total_in_deck: number; } export declare enum CardRating { Again = 1, Hard = 2, Good = 3, Easy = 4 } export interface AnkiConnectRequest { action: string; version: number; params?: Record<string, any>; key?: string; } export interface AnkiConnectResponse<T = any> { result: T; error: string | null; } export interface NoteOptions { allowDuplicate?: boolean; duplicateScope?: "deck" | "collection"; duplicateScopeOptions?: { deckName?: string; checkChildren?: boolean; checkAllModels?: boolean; }; } export interface AddNoteParams { deckName: string; modelName: string; fields: Record<string, string>; tags?: string[]; options?: NoteOptions; } export interface Model { name: string; id: number; css: string; fields: string[]; } export interface NoteInfo { noteId: number; modelName: string; tags: string[]; fields: Record<string, { value: string; order: number; }>; cards: number[]; mod?: number; } export interface UpdateNoteFieldsParams { note: { id: number; fields: Record<string, string>; audio?: Array<{ url: string; filename: string; fields: string[]; }>; picture?: Array<{ url: string; filename: string; fields: string[]; }>; }; } export interface CardTemplate { Name: string; Front: string; Back: string; } export interface CreateModelParams { modelName: string; inOrderFields: string[]; cardTemplates: CardTemplate[]; css?: string; isCloze?: boolean; } export interface UpdateModelStylingParams { model: { name: string; css: string; }; } export interface GuiCurrentCardInfo { answer: string; question: string; deckName: string; modelName: string; cardId: number; buttons: number[]; nextReviews: string[]; fields?: Record<string, { value: string; order: number; }>; } export interface GuiBrowseParams { query: string; reorderCards?: { order: "ascending" | "descending"; columnId: string; }; } export interface GuiAddCardsParams { note: { deckName: string; modelName: string; fields: Record<string, string>; tags?: string[]; }; }